晚lhr / ghr在长期管道中更新

时间:2016-09-06 20:37:24

标签: branch-prediction pipelining micro-architecture

我想知道在长管道中是否存在可行的情况,当年轻的分支指令已经由分支预测机制处理时,但相应的lhr(或ghr,取决于实现)仍未更新实际结果较旧的分支,由于管道长度。

这是一个可行的方案,它是如何解决的?

2 个答案:

答案 0 :(得分:0)

您在问题中提到的情况似乎是合法的,但我怀疑这是否会导致与分支预测器相关的任何功能/性能问题。 考虑一种情况,其中有两个背靠背分支,然后较年轻的分支不会看到较旧分支的预测结果。但是当我们有背靠背分支时,以下是可能的结果 -

  • 采用较旧的分支并正确预测 - 由于分支被正确预测,预测算法将使用预测结果并使用该信息来预测较年轻的分支。更新不会影响预测结果,因为旧分支已经正确预测。
  • 旧分支被采用且未正确预测 - 在这种情况下,较年轻的分支不在问题本身中,因为处理器无论如何都会压缩在旧分支的阴影中进行的所有指令/更新。因此预测是没有用的。

这同样适用于未采取分支并正确/不正确预测的情况。 希望这能回答您的疑问。

答案 1 :(得分:0)

是的,那绝对是可能的。虽然尚未解决较旧的分支,或者未根据较旧分支的结果更新了预测机制(无论如何),但将根据可用的“过时”历史来预测新分支。