我想知道在长流水线中这是否是一个可行的方案,当分支预测机制已经处理了较年轻的分支指令时,但相应的 lhr (或 ghr,取决于实现)仍然没有更新旧分支的实际结果,由于管道长度。
这是一个可行的方案,它是如何解决的?
我想知道在长流水线中这是否是一个可行的方案,当分支预测机制已经处理了较年轻的分支指令时,但相应的 lhr (或 ghr,取决于实现)仍然没有更新旧分支的实际结果,由于管道长度。
这是一个可行的方案,它是如何解决的?
您在问题中提到的场景似乎是合法的,尽管我怀疑这是否会导致与分支预测器相关的任何功能/性能问题。考虑有两个背靠背分支的场景,那么较旧分支的预测结果将不会被较年轻的分支看到。但是当我们有背靠背分支时,以下是可能的结果 -
这同样适用于没有正确/不正确地采用和预测分支的情况。希望这能回答您的问题。
是的,这绝对有可能。虽然旧分支尚未解决或预测机制(无论它可能是什么)更新旧分支的结果,但将根据可用的“陈旧”历史预测新分支。