Skylake L2 缓存通过减少关联性增强?

2023-11-22

In 英特尔的优化指南在第 2.1.3 节中,他们列出了 Skylake 中缓存和内存子系统的许多增强功能(重点是我的):

Skylake微架构的缓存层次结构有以下 增强功能:

  • 与前几代相比,缓存带宽更高。
  • 通过扩大的缓冲区可以同时处理更多的负载和存储。
  • 与 Haswell 微架构及前几代中的处理器相比,处理器可以并行执行两页遍历。
  • 页面分割加载损失从上一代的 100 个周期减少到 5 个周期。
  • L3 写入带宽从上一代的每行 4 个周期增加到每行 2 个周期。
  • 支持 CLFLUSHOPT 指令来刷新缓存行并使用 SFENCE 管理刷新数据的内存顺序。
  • 减少指定 NULL 指针的软件预取的性能损失。
  • L2 关联性从 8 种方式更改为 4 种方式。

最后一张引起了我的注意。减少方式数量在哪方面是一种增强?就其本身而言,更少的方法似乎比更多的方法更糟糕。当然,我知道可能存在有效的工程原因,为什么减少方式数量可能是实现其他增强功能的权衡,但在这里它本身被定位为增强功能。

我缺少什么?


对于 L2 缓存的性能来说,这绝对更差。

根据AnandTech 撰写的 SKL-SP(又名 skylake-avx512 或 SKL-X),英特尔表示“[减少关联性]的主要原因是使设计更加模块化”。 Skylake-AVX512 具有 1MiB 的 L2 缓存和 16 路关联性。

大概下降到四向关联性不会有什么坏处too在双核和四核笔记本电脑和台式机部件 (SKL-S) 中表现很差,因为 L3 缓存有大量带宽。我认为如果英特尔的模拟和测试发现它会造成很大的伤害,他们就会投入额外的设计时间来在非 AVX512 Skylake 上保留 8 路 256k 缓存。


较低关联性的好处是功率预算。它可以通过允许更多的涡轮余量来间接提高性能,但主要是为了提高效率,而不是提高速度。释放电力预算中的一些空间使他们可以将其花在其他地方。或者不花掉所有的电量,而只使用更少的电量。

移动和多核服务器 CPU 比高端四核桌面 CPU 更关心功耗预算。

列表中的标题应该更准确地理解为“更改”,而不是“增强”,但我确信营销部门不会让他们写任何听起来不积极的东西。 :P 至少英特尔准确而详细地记录了事情,包括新 CPU 比旧设计更糟糕的方式。


Anandtech 的 SKL 文章表明放弃关联性可以释放功率预算以增加 L2 带宽,这(从总体上看)可以补偿增加的丢失率。

IIRC,英特尔有一项政策,即任何拟议的设计变更都必须具有 2:1 的性能增益与功耗成本之比,或类似的值。因此,如果他们通过 L2 更改损失 1% 的性能但节省 3% 的电量,他们就会这么做。如果我没记错的话,2:1 的数字可能是正确的,但 1% 和 3% 的例子完全是编造的。

在以色列国防军细节公布后,大卫·坎特 (David Kanter) 在一次播客采访中对这一变化进行了一些讨论。IDK 如果这是正确的链接.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Skylake L2 缓存通过减少关联性增强? 的相关文章

随机推荐