常用概念
CPU 读取数据流程
- CPU 给出虚拟地址
- MMU 开始地址转换
- 查TLB(页表缓存):
- 命中:直接得到物理地址
- 不命中(TLB 缺失):触发页表查询,甚至可能引发页面缺失(调页)
- 同时 MMU 会检查访问越权(比如只读页却想写)
- 查TLB(页表缓存):
- 得到物理地址后,才会去访问 Cache / 内存
- 用物理地址查Cache:
- 命中:直接拿数据
- 不命中(Cache 缺失):去主存读数据
- 用物理地址查Cache:
- 总结:TLB是页表的副本,Cache是主存的副本
映射方式
假设 cache 有 M 个 cache 块,对于块号为 k (主存单元号 / q) 的 主存块:
- 直接映射:被映射到块号
k % M的 cache 块 - 全相连映射:可能被映射到任意一个 cache 块
- 组相连映射:对于 m 路组相连,被映射到组号为
k % (M / m)或者&