问题 英特尔是什么意思“退休”?


在里面 英特尔手册,提到了许多性能事件,这些事件的描述类似于“错误预测的分支指令已经退役”。到底是什么 retired 在这方面意味着什么?

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


6703
2018-03-13 04:02


起源

“错误预测的分支指令已退役。”意味着有一些分支,每个分支被转换为微操作并被分派到相应的执行单元;其中一些被预测为“被采取”,一些被预测为“未被采取”,但预测是错误的(错误预测)。分支被“采取”(预测未被采取,罚款约15-17个周期)并且它是真正的分支(不是猜测),因为它到达并离开退休单位。即使分支指令在现实生活中“未被采用”,它仍然使用执行单元,并且将退役(嗯)。 - osgx
@osgx性能指南意味着错误预测的分支指令不会退役,因为退休仅用于正确的指令?我真的很困惑...... - user997112


答案:


在上下文中“退休”是指:指令(微操作,μop)离开“退休单位”。这意味着 乱序 CPU管道最终执行指令,其结果正确且可见 建筑国家 好像他们按顺序执行。在性能上下文中,这是您应该检查的数字,以计算实际执行的指令数(具有有用的输出)。如果您的上下文是节能的,您可以检查在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退休


15
2018-03-13 04:47



嗨,这仍然没有回答这个问题。退休单位仅从正确的分支“退休”指令。因此,如果它的分支不正确,它们怎么能退役? - user997112
@ user997112,错误预测分支本身不正确,只有其后的指令。在将CPU再次设置在正确的轨道上后,分支仍必须退出。 - Leeor