提问者:小点点

最近几代 CPU 架构的每个周期加载/存储


受到这个答案的启发

砂桥和haswell SSE2/AVX/AVX2每周期的FLOPS

对于桑迪/常春藤桥、布罗德/哈斯韦尔、天空/凯比湖,可以在核心上发布的刚加载/加载和存储的数量是多少?同样有趣的是AMD推土机,捷豹和Zen的数量。

PS-我知道这可能不是一个可持续的速率,因为高速缓存/内存带宽,我只是问一些问题。


共1个答案

匿名用户

根据来自以下方面的信息:

  • http://users.atw.hu/instlatx64/
  • http://www.agner.org/optimize/
  • http://www.agner.org/optimize/blog/read.php?i=423
  • https://en.wikichip.org/wiki/amd/microarchitectures/zen

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

Haswell/Broadwell:2 个加载和一个存储,256 位加载/存储不计算双倍。端口 7(存储 AGU)只能处理简单的地址计算(基本常量,没有索引),复杂情况将进入 p2/p3 并与负载竞争,简单情况无论如何都可以竞争,但至少不必竞争。

天空/卡比:和布罗德韦尔一样

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

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

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