Skip to main content

Timeline for Branch wrong prediction pipeline

Current License: CC BY-SA 3.0

7 events
when toggle format what by license comment
Jan 25, 2017 at 9:31 vote accept Peter
Jan 23, 2017 at 1:09 comment added Grabul @gnasher729: Wrongly fetched (mispredicted) instructions are after the branch, not between the comparison/test instruction and the conditional branch. If the condition is elaborated soon enough and if the CPU supports it, then there will be no misprediction possible for that particular branch.
Jan 22, 2017 at 22:43 comment added gnasher729 @TEMLIB: Of course it does. It reduces the number of instructions that are issued wrongly and therefore wasted.
Jan 22, 2017 at 22:41 history edited gnasher729 CC BY-SA 3.0
added 558 characters in body
Jan 22, 2017 at 16:49 comment added Grabul Putting the comparison early can help instruction scheduling because of the data dependency with the branch instruction, but it do not help minimize penalty for an incorrect branch.
Jan 22, 2017 at 15:52 comment added Peter I undestand what are you saying here, but I wasn't talking about general situation, with variable number of cycles between the moment the jump instruction entered the pipeline and the moment it was reported as being incorrectly predicted. I imagined a situation in which always the testing for the jump condition is done at stage 14. From the "formula" you gave me, I guess I was correct about this particular situation.
Jan 22, 2017 at 13:52 history answered gnasher729 CC BY-SA 3.0