如何对分支指令进行错误预测和退役?

时间:2015-02-01 00:50:32

标签: performance optimization x86 cpu cpu-architecture

英特尔有一个名为:

的硬件事件计数器

BR_MISP_RETIRED.ALL_BRANCHES

描述中写着:

  

错误预测的宏分支指令已停用。

退役指令是正确要求的指令:

  

现代处理器执行程序流程的更多指令   需要。这被称为"投机执行"。

     

然后是经过证实的说明"正如流动所需要的那样   "退休"

https://software.intel.com/en-us/forums/topic/311170

那么如何根据需要证明分支误预测指令呢?

1 个答案:

答案 0 :(得分:2)

乱序机器通过同时推测过去的多个分支来工作。当发现分支被错误预测时,CPU将清除任何不需要的状态并将执行返回到该指令,以便可以采取正确的路径。

因此,虽然许多推测性执行的指令(包括分支)被丢弃,但是导致错误预测的分支的单个指令却不是。在错误预测之后,该分支指令生效并退役。

这个计数器似乎记录了这样的指示。