退休单位在预订站退休指令需要多长时间?

时间:2018-01-20 18:54:00

标签: assembly architecture nasm cpu-architecture micro-architecture

我在英特尔优化手册中进行了搜索,而对于Skylake,我找不到在指令离开执行端口后没有延迟就退出指令需要多长时间。

有人可以提供这些信息,或者在我找到答案的地方给我一个参考。此外,我们非常感谢任何关于退休单位/流程如何运作以及延迟的痛苦细节的论文/文件的参考。

感谢。

1 个答案:

答案 0 :(得分:2)

该问题的评论已经涵盖了退休率,这是指示退出的吞吐量,一旦它们是最旧的未退休指令。对于最近的英特尔(Skylake)和AMD(Ryzen),这似乎至少为每个周期8条指令,尽管细节是模糊的 1 。这个速度比其他瓶颈要大得多,例如重命名(最近的英特尔为4,最近的AMD为5或6),它很少成为瓶颈而且难以直接测量,因为大多数测试在达到最大值之前会在其他方面遇到瓶颈退休率。

看起来这可能不是你的问题,因为你写了:

  

退出指令后退出指令需要多长时间   假设没有延迟的执行端口

目前尚不清楚“没有延迟”是什么意思,但这是一个完全不同的问题 - 需要多长时间取决于等待退休的前面有多少指令以及退休需要多长时间。我认为在更糟糕的情况下,最老的指令被停止(例如,DRAM的长延迟未命中),然后任何较年轻指令的退出可能需要100ns或更长时间。也许这违反了你的“无延迟”规则?在一般情况下,指令必须等待所有先前的指令退出,即使事情顺利进行,也可能需要很多周期。

1 例如,在超线程中是否总共8个,或者每个线程最多4个,甚至每个线程8个?