处理器高速缓存L1,L2和L3是否全部由SRAM制成?如果为真,为什么L1快于L2而L2快于L3?当我阅读它们时,我不理解这部分。
处理器高速缓存L1,L2和L3是否全部由SRAM制成?如果为真,为什么L1快于L2而L2快于L3?当我阅读它们时,我不理解这部分。
Answers:
通常,它们都是用SRAM实现的。
(IBM的POWER和zArchitecture芯片将DRAM存储器用于L3。之所以称为嵌入式DRAM,是因为它以与逻辑相同的处理技术类型实现,允许将快速逻辑与DRAM集成到同一芯片中。对于POWER4,off- L3芯片使用eDRAM; POWER7将L3与处理内核放在同一芯片上。)
尽管它们使用SRAM,但它们并非都使用相同的 SRAM设计。针对L2和L3的SRAM已针对大小进行了优化(在有限的可制造芯片尺寸下增加了容量,或降低了给定容量的成本),而针对L1的SRAM更可能针对速度进行了优化。
更重要的是,访问时间与存储的物理大小有关。使用二维布局,可以预期物理访问延迟大约与容量的平方根成比例。(非统一的高速缓存体系结构利用此功能以较低的延迟提供高速缓存的子集。最新Intel处理器的L3片具有类似的效果;本地片中的命中具有显着更低的延迟。)这种效果可以使DRAM高速缓存更快与DRAM高速缓存相比,因为DRAM体积更小。
另一个因素是,大多数L2和L3缓存使用标签和数据的串行访问,而大多数L1并行缓存访问标签和数据。这是一项功耗优化(L2丢失率高于L1丢失率,因此数据访问更有可能被浪费; L2数据访问通常需要更多的能量(与容量相关);并且L2缓存通常具有更高的关联性这意味着必须推测性地读取更多数据条目)。显然,在访问数据之前必须等待标签匹配,这将增加检索数据所需的时间。(L2访问通常也仅在确认L1未命中之后才开始,因此L1未命中检测的延迟会添加到L2 的总访问延迟中。)
此外,L2缓存在物理上与执行引擎的距离更远。将L1数据高速缓存放置在执行引擎附近(以使L1命中的常见情况很快)通常意味着L2必须放置得更远。