may*_*ank 5 caching intel cpu-architecture cpu-cache amd-processor
8 路设置缓存关联性是否有我看不到的特殊优势?
请注意,Ice Lake 将其提升至 12 路、48kiB(向每组添加更多路,相同的索引)。8-way 并没有什么特别的神奇之处。之前的 AMD 设计(例如 K8 和 Bulldozer)尝试了不同的 L1d 和 L1i 几何结构,例如 64k/2 路。(不过,不如英特尔的 16k/4 路和 32k/8 路成功。)
对于 L1d / L1i 缓存,给定 x86 的 4k 页面,8 路允许 32k 缓存成为 VIPT,而不会出现别名(请参阅此)。32kiB 是一个很好的 2 次方“最佳点”,它足够小,速度快,但又足够大,关联性足够高,可以实现良好的命中率,如果您想避免需要额外的技巧来避免混叠,8 路是最小关联性。
请参阅为什么大多数处理器中 L1 缓存的大小小于 L2 缓存的大小?了解更多关于为什么我们有缓存层次结构的信息(因为不可能构建一个 L2 或 L3 大小的巨大缓存,并且具有我们需要/想要的 L1 的延迟和读/写端口数量,并且尝试将是一个糟糕的方式来花费你的时间)功率预算)。另请参阅英特尔酷睿 i7 处理器使用哪种缓存映射技术?
8-way 也是关联性“足够”的,例如,大多数数组上的循环总共少于 8 个输入和输出流(如果它们来自页对齐数组中的相同偏移量,则在 L1d 中将彼此别名),并且它是已知问题还有更多。(不同访问的某些形式的 4k 别名也是软件大多试图避免的已知问题。)
另请注意,SKL 的 256k L2 缓存仅为 4 路关联,而 SKX 的 1MiB 16 路 L2。(Skylake L2 缓存通过减少关联性增强?)。L3 缓存通常超过 8 路关联,但我猜您正在谈论 L1d / L1i 缓存。
| 归档时间: |
|
| 查看次数: |
2239 次 |
| 最近记录: |