在Intel's optimization guide,第2.1.3节,他们列出SKYLAKE微架构的一些增强了高速缓存和内存子系统(重点煤矿):Skylake二级缓存通过降低关联性得到增强?
的SKYLAKE微架构微架构的缓存层次结构具有以下 增强功能:
- 与前几代相比,更高的高速缓存带宽。
- 通过放大的缓冲区同时处理更多的加载和存储。
- 与Haswell微架构和早期版本中的处理器相比,处理器可以并行处理两个页面。
- 页面拆分负载惩罚从上一代的100个循环降低到5个循环。
- L3写入带宽从上一代的4个周期增加到每行2个。
- 支持CLFLUSHOPT指令来刷新数据行并使用SFENCE管理刷新数据的内存排序。
- 针对指定NULL指针的软件预取降低了性能损失。
- L2相关性从8种方式变为4种方式。
最后一个吸引我的目光。以何种方式减少增强方式的数量?就其本身而言,似乎更少的方式严格比更多的方式更糟糕。当然,我认为可能存在有效的工程原因,为什么减少方法的数量可能是一种折衷,可以实现其他增强功能,但在这里它本身就被定位为增强功能。
我错过了什么?
这是[另一个有趣的理论](http://www.agner.org/optimize/blog/read.php?i=415#867):Skylake-S(即原始Skylake)有几个建筑修改预计Skylake-X和Skylake Xeon系列产品将支持AVX-512,尽管Skylake-S不支持它。特别是:_ [SKL降低关联性为4]准备增加高速缓存大小 - SKL-S高速缓存仅为具有相同组织的SKL-X高速缓存的四分之一,并降低了关联性,可降低大规模1MB高速缓存的晶体管预算。 。只是猜测,但很有趣! – BeeOnRope
@BeeOnRope:是的,在阅读[AnandTech的SKL-X文章]后,我有同样的想法(http://www.anandtech.com/show/11550/the-intel-skylakex-review-core-i9-7900x-i7 -7820x-and-i7-7800x-tested/4),他们在这里作出相同的声明:减少L2相关性至少部分是为了使其更加模块化。因此,SKL-S在其他地方将能耗预算整体加速的假设可能并不正确。 (但它并不排除,但对于SKL-S来说,它可能仍然是一个整体的好的或中性的改变,如果他们认为它太糟糕,英特尔不会这么做。) –