Sunday, 21 May 2017

performance - Intel CPUs Instruction Queue provides static branch prediction?

In Volume 3 of the Intel Manuals it contains the description of a hardware event counter:




BACLEAR_FORCE_IQ




Counts number of times a BACLEAR was forced by the Instruction Queue.
The IQ is also responsible for providing conditional branch prediction
direction
based on a static scheme and dynamic data provided by the L2
Branch Prediction Unit. If the conditional branch target is not found
in the Target Array and the IQ predicts that the branch is taken, then
the IQ will force the Branch Address Calculator to issue a BACLEAR.
Each BACLEAR asserted by the BAC generates approximately an 8 cycle
bubble in the instruction fetch pipeline.





I always thought the Branch Address Calculator performs the static prediction algorithm (when the Branch Target Buffer contains no branch entry)?



Can anybody confirm which of the above two are correct? I cannot find anything.

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...