分支预测器如何知道它做出了错误的猜测



我的问题来自Mystic的答案。正如我所理解的,你有一个分支指令,它可以转到另一个指令,比如0x123344,也可以继续执行。

如果分支预测器根据过去的模式从它们中的任何一个进行猜测,它如何意识到自己犯了错误,并将其还原?

这一切都来自分阶段处理器,在这些处理器中,CPU的一部分在过去保持空闲,现在我们尽可能多地利用每一小块。如果没有分支或条件事件,这将是顺利的,但我们需要不时地改变正在发生的事情。

因此,正如Mystic所提到的,预测器会做出猜测,这样大部分时间空闲的计算能力都不会等待。处理器继续进行猜测,当等待的上一条指令完成时,将预测器与之进行比较。如果猜测正确,则不会发生任何事情;如果猜测错误,则发送信号,并抛出预测点后的阶段,然后使用正确的值重新运行。

在技术层面上如何做到这一点因体系结构而异。与其说这是一个还原操作,不如说它会使错误预测后计算的所有内容无效,并且这些过程会被重做。

相关内容

  • 没有找到相关文章

最新更新