You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The pull request #135 is initial step to provide branch prediction visualization for teaching but there are more issues to solve when pipelined execution is considered.
the BHT update is late for the short loops (body less than three instructions plus branch one) - this is probably hard to solve and can be used to demonstrate interaction of BHT and pipeline and their consequences
the BHT cannot correctly predict the first pass through branch and jump instructions for other initial condition cas then BNT/BSNT/BWNT, because it is not known that instruction is branch before decode - it is solved on real processor by classification branch instructions during fetch into cache and addition of flags to cache - we do not want this for initial educational case because it is complexity much above branch introduction in textbooks.
BHR is delayed if the single one is used and for tightly placed branches it would seriously misbehave
even for single cycle the branch which is never taken is not considered in previous prediction, it should be discussed and resolved
it should be considered that a BHT entry is not allocated for unconditional/jump branches and these branches should be marked in BTB as unconditional type and should not consult BHT during PC computation
even for instructions which are not of branch/jump type the predictor update should be called probably because stalled BHT and or BTB entries for self-modifying code would cause significant misbehave where branch is replaced by non branch instruction.
Input and discussion from community, BHT/BTB visualization author (@jiristefan) and reviewer @jdupak are strongly appreciated.
The text was updated successfully, but these errors were encountered:
The branch prediction demonstration developed by Jiri Stefan
in the frame of his master's thesis is welcomed step
for QtRvSim to cover more computer architectures lectures topics.
The visualization and correct/wrong prediction statistic counting matches
teaching needs of the classes when demonstrated on single-cycle processor.
For pipelined version there are more topics to discussion, see #143.
It is questionable if solution matching basic textbooks principles
on the pipelined version without classification of branched during
cache fills can be found. Probably not, but some updates would
provide better insight to the problem and code should be enhanced.
Signed-off-by: Pavel Pisa <[email protected]>
The pull request #135 is initial step to provide branch prediction visualization for teaching but there are more issues to solve when pipelined execution is considered.
Input and discussion from community, BHT/BTB visualization author (@jiristefan) and reviewer @jdupak are strongly appreciated.
The text was updated successfully, but these errors were encountered: