缓存性能分析

设计权衡

缓存设计需要在多个因素间权衡,没有完美的方案。

1. 块大小(Block Size)

块大小优势劣势
空间局部性好不命中处罚高、行数减少冲突增加
不命中处罚低、冲突少空间局部性利用不足

2. 相联度(Associativity)

相联度优势劣势
冲突不命中率低命中时间长(硬件复杂)
命中时间短冲突不命中率高

3. 缓存容量(Cache Size)

容量优势劣势
容量不命中率低成本高、命中时间长
成本低、命中时间短容量不命中率高

性能度量指标

  • 不命中率:不命中次数 / 总访问次数
  • 命中时间:缓存命中的访问延迟
  • 不命中处罚:不命中时从下层加载数据的额外时间
  • 平均访问时间 = 命中时间 + 不命中率 × 不命中处罚

现代 CPU 的多级缓存策略

  • L1:小容量(32KB)、高速度(~1ns)、高相联度适中
  • L2:更大容量(256KB)、略慢(~4ns)
  • L3:最大容量(8-32MB)、较慢(~10ns),多核共享

这种层次化设计平衡了速度、容量和成本。


相关笔记:

链接到