英特尔有一个名为:
的硬件事件计数器BR_MISP_RETIRED.ALL_BRANCHES
描述中写着:
错误预测的宏分支指令已停用。
但退役指令是正确要求的指令:
现代处理器执行程序流程的更多指令 需要。这被称为"投机执行"。
然后是经过证实的说明"正如流动所需要的那样 "退休"
https://software.intel.com/en-us/forums/topic/311170
那么如何根据需要证明分支误预测指令呢?
答案 0 :(得分:2)
乱序机器通过同时推测过去的多个分支来工作。当发现分支被错误预测时,CPU将清除任何不需要的状态并将执行返回到该指令,以便可以采取正确的路径。
因此,虽然许多推测性执行的指令(包括分支)被丢弃,但是导致错误预测的分支的单个指令却不是。在错误预测之后,该分支指令生效并退役。
这个计数器似乎记录了这样的指示。