第 8 章:Cache 原理
学习目标
- 理解 Cache 原理
- 掌握局部性原理
- 计算命中率
8.1 思考:访存为什么慢?
// 访问内存需要 100 周期
if (mem_read)
wait 100 cycles;
CPI 会变得很大!
解决方案:Cache(缓存)
8.2 局部性原理
时间局部性
刚访问的数据,很快会再次访问。
空间局部性
访问某个地址,附近地址也会被访问。
例子:数组遍历
for (int i = 0; i < 100; i++)
sum += arr[i];
8.3 Cache 基本概念
CPU ←→ Cache ←→ Memory
1 周期 100 周期
- 命中(Hit):数据在 Cache 中
- 缺失(Miss):需要从内存读取
命中率 = 命中次数 / 总访问次数
平均访问时间 = 命中率 × 1 + (1 - 命中率) × 100
思考:命中率 90% 时,平均访问时间是多少?