首页 文章

在解码之前是否预取了大多数现代英特尔指令流?

提问于
浏览
0

我一直在想在大多数指令流是否在现代英特尔微架构解码之前被预取?如果这是真的,那么分支变得非常昂贵,因为当分支发生时,指令流必须基本上从缓存中转储出来?这会使指令管道中的分支更加昂贵吗?

1 回答

  • 2

    David Kanter的writeup on Sandybridge(第一个以当前形式引入uop缓存的Intel CPU)以非常好的细节覆盖了前端 . 例如,他讨论了在管道中发生分支预测的位置,以隐藏预测采用分支的指令获取中的小停顿 .

    有人认为你在你的问题中说的是一个误解:分支误预测并不意味着I $(L1指令缓存(现金))内容是错误的,只是解码器需要在不同的点解码 . (正如Hans Passant在评论中指出的那样 . )

    如果你跳转到I $中存储的地址't in the I$, the instruction stream is delivered to the decoders at the same time it' . 有一个I $不需要存储在缓存中,然后从缓存中读回来 . 所以在最坏的情况下,prefetch / I $ /等不会受到伤害 . 当然,几乎在所有情况下它都有很大帮助 .

相关问题