最近 CPU 代架构的每个周期 Load/stores

Load/stores per cycle for recent CPU architecture generations

灵感来自 this answer

FLOPS per cycle for sandy-bridge and haswell SSE2/AVX/AVX2

可以在核心上发布的 just-loads/loads-and-stores 数量是多少 - 对于 Sandy/Ivy Bridge、Broad/Haswell、Sky/Kaby Lake?同样有趣的是 AMD Bulldozer、Jaguar 和 Zen 的数量。

PS - 我知道由于 cache/memory 带宽,这可能不是一个可持续的速率,我只是问问题。

基于以下信息:

Sandy/Ivy:每个周期,2 次加载,或 1 次加载和 1 次存储。 256 位加载和存储计数加倍,但仅限于加载或存储本身 - 它仍然只有一个地址,因此 AGU 在下一个周期再次可用。通过混合一些 256b 操作,您仍然可以获得每个周期 2x 128b 加载和 1x 128b 存储。

Haswell/Broadwell: 2 加载 and 一个存储,256 位 loads/stores 算双倍。端口7(store AGU)只能处理简单的地址计算(base+const,无索引),复杂的情况会去p2/p3和负载竞争,简单的情况可能会竞争无论如何,但至少不要

Sky/Kaby: 与 Broadwell

相同

推土机:2 装载量,或 1 装载量和 1 装载量。 256 位加载和存储计数加倍。

Jaguar:1 次加载或 1 次存储,256 位加载和存储计数加倍。到目前为止,这是该列表中最差的一个,因为它是列表中唯一的低功耗 µarch。

Ryzen:2 次加载,或 1 次加载和 1 次存储。 256 位加载和存储计数加倍。