在Intel Manual中,提到了很多性能事件,这些事件的描述类似于“错误预测的分支指令已经退役”。 retired
在这种情况下到底意味着什么?
请注意,我已经查看了英特尔的Performance Analysis Guide,其中指出“已退休”具有非常精确的含义(第8页),请参阅第7页上的图表,但我认为我缺乏背景知识要明确Retirement / Writeback
的含义。这个过程到底是什么以及它涉及什么?
答案 0 :(得分:21)
在上下文中“退休”是指:指令(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