分支预测器如何知道它是否不正确?

时间:2014-07-04 15:04:17

标签: caching branch cpu

所以我确实搜索了这个问题,但我发现答案我并不太了解。

我对CPU的理解是,指令获取单元仅接收来自分支预测器的指令;然后它将通过L1i缓存/ L2 / L3 / RAM来查找预测的执行指令,然后将其移除。

但是,我遇到的问题是;分支预测器如何知道它的作用是否正确?

1 个答案:

答案 0 :(得分:0)

分支指令本身仍在执行,即评估条件并确定目标。对于条件分支,如果条件和目标都被正确预测,则通常会通知预测器,以便可以将状态更新为强烈采用/不采用(如果先前的状态被弱采取/不采用)。 SUP> 1

如果错误预测了条件或目标,预测器会从执行分支指令接收到正确的信息,错误预测的路径中的指令将从管道中刷新,并在正确的地址处重新启动。


1 预测器可以推测性地更新分支信息并在错误预测时进行纠正。推测更新对于全局历史向量是典型的,因为下一预测需要信息,而在发生错误预测之前通常不需要置信信息。置信度信息可用于选择性动态预测,减少检查点,优先考虑另一个线程,减少功率使用等,但它通常仅用于防止单个事件改变预测方向。