0

我想知道在长流水线中这是否是一个可行的方案,当分支预测机制已经处理了较年轻的分支指令时,但相应的 lhr (或 ghr,取决于实现)仍然没有更新旧分支的实际结果,由于管道长度。

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

4

2 回答 2

0

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

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

这同样适用于没有正确/不正确地采用和预测分支的情况。希望这能回答您的问题。

于 2017-05-30T09:08:27.507 回答
0

是的,这绝对有可能。虽然旧分支尚未解决或预测机制(无论它可能是什么)更新旧分支的结果,但将根据可用的“陈旧”历史预测新分支。

于 2018-11-20T16:51:07.300 回答