缓存性能分析
设计权衡
缓存设计需要在多个因素间权衡,没有完美的方案。
1. 块大小(Block Size)
| 块大小 | 优势 | 劣势 |
|---|---|---|
| 大 | 空间局部性好 | 不命中处罚高、行数减少冲突增加 |
| 小 | 不命中处罚低、冲突少 | 空间局部性利用不足 |
2. 相联度(Associativity)
| 相联度 | 优势 | 劣势 |
|---|---|---|
| 高 | 冲突不命中率低 | 命中时间长(硬件复杂) |
| 低 | 命中时间短 | 冲突不命中率高 |
3. 缓存容量(Cache Size)
| 容量 | 优势 | 劣势 |
|---|---|---|
| 大 | 容量不命中率低 | 成本高、命中时间长 |
| 小 | 成本低、命中时间短 | 容量不命中率高 |
性能度量指标
- 不命中率:不命中次数 / 总访问次数
- 命中时间:缓存命中的访问延迟
- 不命中处罚:不命中时从下层加载数据的额外时间
- 平均访问时间 = 命中时间 + 不命中率 × 不命中处罚
现代 CPU 的多级缓存策略
- L1:小容量(32KB)、高速度(~1ns)、高相联度适中
- L2:更大容量(256KB)、略慢(~4ns)
- L3:最大容量(8-32MB)、较慢(~10ns),多核共享
这种层次化设计平衡了速度、容量和成本。
相关笔记:
链接到
- 上一个知识点:6.16 缓存写操作
- 下一个知识点:6.18 存储器山