Skip to content

Athlon II 或 Phenom II:你的 CPU 需要 L3 缓存吗?

    1651191903

    L3 缓存:它对 AMD 有多重要?

    为多核处理器配备一个由所有可用内核共同使用的专用内存是有意义的。在这个角色中,快速的三级缓存 (L3) 可以加速对频繁需要的数据的访问。内核不应尽可能恢复访问速度较慢的主内存 (RAM)。

    这是理论,至少。AMD 最近推出的 Athlon II X4 基本上是没有 L3 的 Phenom II X4,这意味着三级缓存可能并不总是必要的。我们决定使用这两个选项进行苹果对苹果的比较并找出答案。

    缓存的工作原理

    在深入研究我们的测试之前,了解一些基础知识很重要。缓存的原理相当简单。它们将数据缓冲到尽可能靠近处理核心的位置,以避免 CPU 不得不从更远、更慢的内存源访问数据。今天的桌面平台缓存层次结构在达到系统内存访问之前由三个缓存级别组成。第二层,尤其是第三层不仅仅用于数据缓冲。它们的目的还在于防止 CPU 总线因内核之间不必要的数据交换流量而阻塞。

    缓存命中/未命中

    缓存架构的有效性是通过其命中率来衡量的。可以在给定缓存中响应的数据请求称为命中。如果该缓存不包含所寻找的数据并且必须将请求传递给后续的内存结构,则这是一个未命中。显然,失误是缓慢的。它们会导致执行管道停顿并引入等待期。另一方面,命中有助于维持最佳性能。

    缓存写入、排他性、一致性

    替换策略规定如何在完整缓存中为新缓存条目创建空间。由于写入缓存的数据最终必须在主内存中可用,系统可以同时执行此操作(直写)或将覆盖的位置标记为“脏”(回写)并在数据完成后执行写入被从缓存中清除。

    多级缓存上的数据可以独占存储,这意味着不存在冗余。您不会在两个不同的缓存结构中找到相同的数据。或者,缓存可以以包容的方式运行,保证较低级别的缓存保存在较高级别(更靠近处理器)缓存中找到的数据。AMD 的 Phenom 使用专有的 L3 缓存,而 Intel 遵循包容性缓存策略。一致性协议负责跨多个级别、内核甚至处理器维护数据。

    缓存容量

    更大的缓存可以缓冲更多的数据,但它们也往往会引入更高的延迟。由于高速缓存还消耗大量处理器的晶体管,因此在晶体管成本和芯片尺寸、功耗和性能/延迟问题之间找到可行的平衡非常重要。

    关联性

    RAM 条目可以是直接映射的,这意味着高速缓存中只能有一个位置用于主存储器的副本,或者它们可以是 n 路关联的,它代表高速缓存中用于存储数据的 n 个可能位置。更高的关联性(直到完全关联的缓存)提供了最佳的缓存灵活性,因为不必覆盖现有的缓存数据。换句话说,高 n 向关联性保证了更高的命中率,但它引入了更多的延迟,因为比较所有这些关联的命中率需要更多时间。归根结底,为最后一级缓存实现多向关联是有意义的,因为可用的容量最大,超出此范围的搜索会将处理器发送到较慢的系统内存。

    以下是一些示例: Core i5 和 i7 使用 32KB 的 8 路关联 L1 数据缓存和 32KB 的 4 路关联 L1 指令缓存。显然,英特尔希望指令更​​快可用,同时最大限度地提高 L1 数据缓存的命中率。它的 L2 缓存也是 8-way set-associative,而 Intel 的 L3 缓存更加智能,实现 16-way associativity 以最大限度地提高缓存命中率。

    然而,AMD 在 Phenom II X4 上采用了另一种策略,它具有 2 路组关联 L1 缓存,可提供更低的延迟。为了弥补可能的失误,它具有两倍的内存容量:64KB 数据和 64KB 指令缓存。L2 缓存是 8 路组关联的,就像 Intel 的设计一样,但 AMD 的 L3 缓存以 48 路组关联工作。如果不查看整个 CPU 架构,这些都无法判断。自然,只有基准测试结果才真正重要,但本次技术之旅的全部目的是提供对多级缓存背后的复杂性的了解。

    0 0 votes
    Rating post
    Subscribe
    Notify of
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x
    ()
    x