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