gpt4 book ai didi

x86 - 英特尔 Nehalem 微架构可以实现的最大 IPC 是多少?

转载 作者:行者123 更新时间:2023-12-01 16:02:34 24 4
gpt4 key购买 nike

是否有对英特尔 Nehalem 架构可实现的每周期最大指令数的估计?另外,影响每个周期最大指令数的瓶颈是什么?

最佳答案

电话:DR :

Intel Core、Nehalem 和 Sandybridge/IvyBridge:最多 5 个 IPC,包括 1 宏融合 cmp+分支 将 5 条指令放入 4 个融合域 uops,其余为单 uop 指令。 (其中最多 2 个可以是微融合存储或负载 + ALU。)

Haswell 高达第 9 代:使用两对 macro-fusable ALU+branch 最多可以实现每个周期 6 条指令指令和两条指令被解码为两个潜在的微融合 uops。根据 my testing on Skylake.,最大未融合域 uop 吞吐量为每个时钟 7 uop .

早期的 P6 系列:Pentium Pro/PII/PIII 和 Pentium M。还有 Pentium 4:使用 3 条被解码为 3 uop 的指令可以实现每个周期最多 3 条指令。 (没有宏融合,和 3-wide 解码和问题)。

由于增加了每时钟 5 uop 的前端带宽,Sunny Cove 上的最大 IPC 可能是 7。

来源:Agner Fog's microarch pdf and instruction tables .另见 标记维基。

Intel Core2 和更高版本中的乱序管道可以在每个时钟发出/重命名 4 个融合域 uops。这是瓶颈。 宏融合将结合cmp / jcc变成一个 uop,但是每个解码块只能发生一次。 (直到哈斯韦尔)。

此外,解码(最多 4 条指令以 4-1-1-1 模式将最多 4 条指令转换为最多 7 条微指令)是 SnB 系列中微指令缓存之前的另一个重要瓶颈。多 uop 指令必须在第一个“槽”中解码。有关 Nehalem 中潜在瓶颈的更多信息,请参阅 Agner Fog 的微架构指南。

尼哈勒姆 InstLatx64显示 nop令人惊讶的是只有 0.33c 的吞吐量,而不是 0.25,但结果是根据 https://www.uops.info/table.html那是因为 nop在 Sandybridge 之前需要 CPU 中的 ALU 执行单元。 Agner Fog 说他没有发现 Nehalem 的退休瓶颈。

即使您可以将每 4 个 uops 设置为多个宏融合对处于循环中,但 Nehalem 的吞吐量仅为每个时钟(端口 5)一个融合测试和分支 uop。因此,即使其中一些未被采用,每个时钟也不能维持一个以上的宏融合比较和分支。 (Haswell 可以在端口 0 或端口 6 上运行未采用的分支)。

;; Should run at one iteration per clock
.l:
mov edx, [rsi] ; doesn't need an ALU uop. A store would work here, too, but a NOP need an ALU port on Nehalem.
add eax, edx
inc rsi
cmp rsi, rdi ; macro-fuses
jb .l ; with this, into 1 cmp+branch uop

为了便于测试并消除缓存/内存瓶颈,您可以将其更改为每次从同一位置加载,而不是在寻址模式下使用循环计数器。 (只要您避免过多冷寄存器导致寄存器读取停顿。)

请注意,Haswell 之前的 uarches 只有三个 ALU 端口。但是 mov加载或存储占用管道带宽,因此拥有 4 宽问题/重命名有好处。前端能够比乱序内核执行的速度更快也很有用,因此在调度程序中总是有一个工作缓冲区排队,因此它可以找到指令级并行性并尽早开始 future 的负载,诸如此类。

我认为除了加载/存储(包括 push/ pop 感谢堆栈引擎), fxchg可能是 Nehalem 中唯一不需要 ALU 端口的融合域 uop。或者也许它确实如此,比如 nop .在 SnB 家族 uarches 上, xor same,same is handled in the rename/issue stage ,有时还有 reg-reg mov s(IVB 及更高版本)。 nop也从未执行过,与 Nehalem 不同,因此 SnB/IvB 对于 nop 的吞吐量为 0.25c即使他们只有 3 个 ALU 端口。

关于x86 - 英特尔 Nehalem 微架构可以实现的最大 IPC 是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37041009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com