处理器缓存L1、L2、L3都是SRAM吗?

Aca*_*uza 10 cpu cpu-cache

处理器缓存 L1、L2 和 L3 是否都由 SRAM 制成?如果为真,为什么 L1 比 L2 快,L2 比 L3 快?当我阅读它们时,我不明白这部分。

Pau*_*ton 12

一般来说,它们都是用 SRAM 实现的。

(IBM 的 POWER 和 zArchitecture 芯片将 DRAM 内存用于 L3。这被称为嵌入式 DRAM,因为它采用与逻辑相同类型的工艺技术实现,允许将快速逻辑集成到与 DRAM 相同的芯片中。对于 POWER4,关闭芯片 L3 使用 eDRAM;POWER7 的 L3 与处理内核位于同一芯片上。)

尽管它们使用 SRAM,但它们并不都使用相同的SRAM 设计。L2 和 L3 的 SRAM 针对尺寸进行了优化(在有限的可制造芯片尺寸的情况下增加容量或降低给定容量的成本),而 L1 的 SRAM 更有可能针对速度进行优化。

更重要的是,访问时间与存储的物理大小有关。对于二维布局,可以预期物理访问延迟大致与容量的平方根成正比。(非均匀缓存架构利用这一点以更低的延迟提供缓存子集。最近的 Intel 处理器的 L3 片具有类似的效果;本地片中的命中具有显着更低的延迟。)这种效果可以使 DRAM 缓存更快与大容量的 SRAM 缓存相比,因为 DRAM 在物理上更小。

另一个因素是大多数 L2 和 L3 缓存使用标签和数据的串行访问,而大多数 L1 缓存并行访问标签和数据。这是一个功耗优化(L2miss率比L1miss率高,所以数据访问更容易浪费工作;L2数据访问一般需要更多的能量——与容量有关——;而L2缓存通常具有更高的关联性这意味着必须推测性地读取更多数据条目)。显然,在访问数据之前必须等待标签匹配会增加检索数据所需的时间。(L2 访问通常也仅在确认 L1 未命中后才开始,因此 L1 未命中检测的延迟会添加到L2的访问延迟中。)

此外,L2 缓存在物理上距离执行引擎更远。将 L1 数据缓存放置在靠近执行引擎的位置(以便 L1 命中的常见情况很快)通常意味着 L2 必须放置在更远的地方。