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 |