一个CPU有可能有多个L3级缓存吗?

问题描述 投票:0回答:1

多核CPU的核心必须全部共享L3缓存吗?一个CPU有可能有多个L3级缓存吗?例如,假设一个 cpu 有 24 个核心,并且没有三个核心共享 L3 缓存,因此有 8 个 L3 缓存。

caching cpu cpu-architecture cpu-cache
1个回答
0
投票

AMD Zen 系列通过共享 L3 的 4 或 8 核的每个“核心复合体”(CCX) 来实现此目的,但除此之外没有全芯片共享缓存。 AMD 的 Infinity Fabric 将 CCX 相互连接起来,并连接到内存控制器和 I/O,其中“多核 CPU 由 CCX + 内存控制器 + I/O 的多个模块构建而成。” 这很像传统的多插槽系统,其中每个插槽都有一个芯片,所有内核都有一个共享的 L3,并通过监听过滤器链接到其他插槽,以将带宽降低到可管理的水平(并在一个插槽内保持快速的延迟/ CCX)。同一 CCX 内的成对核心与不同 CCX 内的成对核心存在 NUMA 风格的核心间延迟差异

低端型号只有1个CCX,Zen 1 & 2最多4核,

或 Zen 3 和 4 中最多 8 个核心。每个 CCX 的 L3 缓存量可能因一代型号而异。 更多详情请参阅:


https://en.wikichip.org/wiki/amd/microarchitectures/zen#CPU_Complex_.28CCX.29

  • https://en.wikichip.org/wiki/amd/microarchitectures/zen_2#Core_Complex

  • https://en.wikichip.org/wiki/amd/microarchitectures/zen_3#Key_changes_from_Zen_2

  • https://chipsandcheese.com/2022/11/08/amds-zen-4-part-2-memory-subsystem-and-conclusion/

  • 英特尔还以一种更糟糕的方式做到了这一点,对于 Core 2 Quad,基本上是

    将两个 Core 2 Duo 芯片粘在一个封装中
  • ,它们之间的互连是 FSB(前端总线),速度几乎与动态随机存储器。 (当时的最后一级缓存是 L2,因此它是两个独立的 L2 缓存。)请参阅
chips&cheese 对 Dunnington 的历史回顾
中的“最终话 (Dunnington)”部分,了解 Core 2 Quad 中的工作原理

没有有其非核心/共享L3,实际上只是让另一个芯片监听共享FSB并响应而不是DRAM(如果它有该行的副本)。 一些现代芯片具有 2 到 4 个核心的组,共享中等大小的 L2,但同一处理器上的多个组均由大型共享 L3 支持。例如,Alder Lake 中的 Intel E 核 就是这样做的。

AMD 的 Bulldozer 系列将一对共享前端和 L1i 缓存的弱整数核心与 SIMD/FP 单元(称为 CMT,作为 SMT 的替代品)进行了更紧密的耦合。 L1d 缓存具有共享的 L2。

https://www.realworldtech.com/bulldozer/2/。不过,整个芯片共享一个 L3。由于多种原因,推土机总体性能不是很高。

ARM Cortex-A510 可以以类似的方式进行集群,共享 FPU、L2 缓存和 L2 TLB。 (

chipsandcheese讨论了有序效率核心的权衡)。但同样,通常有一个共享的 L3 作为在此之外的后盾。

Apple A14 在两个 Firestorm 大核心之间共享 8MiB 的二级缓存。

但还有较慢的 L3 共享末级缓存 + Ice Storm E 核心和 GPU 等。

© www.soinside.com 2019 - 2024. All rights reserved.