【问题标题】:Why are set cache associativity in modern day processors 8-way set associative?为什么现代处理器中的集合缓存关联性是 8 路集合关联?
【发布时间】:2021-02-24 02:16:24
【问题描述】:

我看不到 8 路设置缓存关联性有什么特别的优势吗? (如果这是一个愚蠢的问题,请提前道歉。)

【问题讨论】:

    标签: caching intel cpu-architecture cpu-cache amd-processor


    【解决方案1】:

    注意Ice Lake bumps that up to 12-way, 48kiB(为每个集合添加更多方法,相同的索引)。 8路特别没有什么神奇之处。以前的 AMD 设计,如 K8 和 Bulldozer,试验了不同的 L1d 和 L1i 几何形状,如 64k / 2-way。 (虽然不如英特尔的 16k/4-way 和 32k/8-way 成功。)

    对于 L1d / L1i 缓存,8 路允许 32k 缓存在没有别名的情况下成为 VIPT (see this),给定 x86 的 4k 页。 32kiB 是一个很好的 2 次幂“最佳位置”,它足够小,可以快速运行,但也足够大且具有足够的关联性以获得良好的命中率,如果您想避免需要额外的技巧来避免混叠,则 8-way 是最小的关联性.

    请参阅Why is the size of L1 cache smaller than that of the L2 cache in most of the processors? 了解更多关于为什么我们有缓存层次结构的信息(因为不可能构建一个 L2 或 L3 大小的巨大缓存,而延迟和我们需要/想要的 L1 读/写端口的数量,并且尝试会是花费你的电力预算的坏方法)。另见Which cache mapping technique is used in intel core i7 processor?


    8-way 也是关联的“足够”,例如大多数数组上的循环的总输入和输出流少于 8 个(如果它们来自页面对齐数组中的相同偏移量,它们会在 L1d 中相互别名),并且有更多是一个已知问题。 (并且某些形式的不同访问的 4k 别名也是软件主要试图避免的已知问题。)

    另请注意,SKL 的 256k L2 缓存只有 4 路关联,而 SKX 的 1MiB 16 路 L2。 (Skylake L2 cache enhanced by reducing associativity?)。 L3 缓存通常超过 8 路关联,但我猜您说的是 L1d / L1i 缓存。

    【讨论】:

    • 非常感谢。我现在明白了。
    猜你喜欢
    • 2019-12-30
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    相关资源
    最近更新 更多