为最近的CPU架构生成每个周期加载/存储

时间:2017-07-14 15:43:30

标签: performance x86 cpu cpu-architecture memory-bandwidth

this answer启发

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

对于Sandy / Ivy Bridge,Broad / Haswell,Sky / Kaby Lake,可以在核心上发布的正常装载/装载和存储的数量是多少?同样有趣的是AMD Bulldozer,Jaguar和Zen的数量。

PS - 我知道由于缓存/内存带宽可能不是一个可持续的速率,我只是询问问题。

1 个答案:

答案 0 :(得分:5)

基于以下信息:

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

Haswell / Broadwell:2加载商店,256位加载/存储计数加倍。端口7(存储AGU)只能处理简单的地址计算(base + const,没有索引),复杂的情况会转到p2 / p3并与负载竞争,简单的情况可能无论如何都会竞争但至少不要' 到。

Sky / Kaby:和Broadwell一样

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

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

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