【问题标题】:What does Intel mean by "retired"?英特尔所说的“退休”是什么意思?
【发布时间】:2014-04-17 14:37:46
【问题描述】:

Intel Manual 中,提到了许多性能事件,其描述如“错误预测的采用分支指令已退休。”。在这种情况下,retired 到底是什么意思?

请注意,我已经看过英特尔的Performance Analysis Guide,其中指出“退休”具有非常精确的含义(第8页),参考第7页的图表,但我认为我缺乏了解的背景知识Retirement / Writeback 到底是什么意思。这个过程到底是什么?它涉及什么?

【问题讨论】:

  • “错误预测的采用分支指令已退休。”表示有一定数量的分支,每个分支都被翻译成微操作并分派到相应的执行单元;其中一些被预测为“采取”,一些被预测为“未采取”,但预测是错误的(错误预测)。分支被“采用”(预测为未采用,惩罚大约 15-17 个周期)并且它是真正的分支(不是推测),因为它到达并离开退休单元。即使分支指令在现实生活中“没有被采用”,它仍然使用执行单元,并且将被淘汰(hmm)。
  • @osgx 性能指南暗示错误预测的分支指令不会退役,因为退役仅适用于正确的指令?我真的很困惑......

标签: performance x86 x86-64 intel


【解决方案1】:

在上下文中“退休”是指:指令(microoperation,μop)离开“退休单元”。这意味着在Out-of-order CPU 流水线中,指令最终被执行,其结果是正确的,并且在architectural state 中可见,就好像它们按顺序执行一样。在性能方面,这是您应该检查的数字,以计算实际执行了多少指令(具有有用的输出)。如果您的上下文是节能的,您可以检查有多少指令在 OOO 管道(“ISSUED”计数器或“EXECUTED”计数器)中开始执行,并将数量与退休操作计数进行比较;高差异表明CPU做了很多无用的工作并使用了多余的功率。

退休单位的简短描述在这里:http://users.utcluj.ro/~baruch/book_ssce/SSCE-Intel-Pipeline.pdf

5.4.7.4。退休单位

退休单元将推测执行的微操作的结果写入用户可见的寄存器,并从重新排序缓冲区中删除微操作。与保留站一样,退休单元不断检查重排序缓冲区中的微操作状态,查找已执行且不再与指令池中其他微操作有任何依赖关系的微操作。然后,它会按照原始程序顺序退出已完成的微操作。

引退单元可以在每个时钟周期引退三个微操作(/

更多关于单元的详细信息在这里(作者:Agner Fog)http://www.agner.org/optimize/microarchitecture.pdf 你的 CPU 的退役章节

【讨论】:

  • 嗨,这仍然没有回答问题。引退单元仅从正确分支“引退”指令。因此,如果它的分支不正确,他们如何退休?
  • @user997112,错误预测的分支本身并没有错误,只是它后面的指令。在将 CPU 重新设置在正确的轨道上之后,该分支仍必须退出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
相关资源
最近更新 更多