在现代 x86 CPU 中,所有微操作的长度都相同吗?

Are all micro-ops the same length in a modern x86 CPU?

在查看 u-op 缓存一段时间后,我的印象是每个微操作都是 8 个字节,但我的问题是所有微操作都具有相同的大小,甚至是融合域微操作吗?

x86 芯片供应商未记录此详细信息。然而,微指令需要足够简单,以便它们可以在一个周期的一小部分内被解码。这与 x86 指令形成对比,其中一条指令需要至少一个周期才能被解码(尽管可以在同一周期中解码多个指令)。因此,制作具有相当统一格式的相同大小的微指令极大地有助于实现这一点。我认为在大多数 x86 处理器上,融合域和非融合域 uops 的大小很可能都是相同的。在 Intel 处理器中,uop 缓存中的 uops 可以有不同的大小,具体取决于 uop 是否具有立即数 and/or 位移操作数。另一方面,IDQ 可以容纳固定数量的 uops,而 uops 是什么没有条件,这表明 IDQ 中的每个 uop 占用相同数量的 space。融合域 uop 的大小可能与非融合域 uop 的大小不同。但是要使微融合有用,融合域 uop 的大小必须严格小于未融合域 uop 大小的两倍。另外我认为我们可以从逻辑上说融合域 uop 的大小至少与非融合域 uop 的大小一样大。