第6章 存储层次¶
理想存储器应当又快、又大、又便宜、掉电不丢失,但现实器件无法同时满足。存储层次用少量快速存储保存“近期最有用的数据”,让多数访问接近上层速度,同时把容量和成本交给下层。
本章内容¶
- 局部性、Cache 与主存:从访问模式推导块、组相联、写策略和平均访问时间。
- 虚拟存储的硬件支持:理解地址翻译、TLB、页表遍历和缺页异常怎样协同。
三类不要混淆的失败¶
| 现象 | 缺少什么 | 谁处理 |
|---|---|---|
| cache miss | 数据不在当前 cache 层 | cache 控制器与下层存储 |
| TLB miss | 地址翻译不在 TLB | 硬件或软件页表遍历 |
| page fault | 页表指示页面不在主存或权限不符 | 操作系统异常处理 |
三者可能在一次访存中连续发生,但时间尺度和责任边界不同。
存储墙¶
处理器运算速度增长快于主存访问延迟改善,形成“存储墙”。提高峰值 ALU 数量并不能让等待数据的程序更快。现代性能分析必须同时看计算、带宽、延迟和数据复用。
本章自测¶
- 为什么“更大的 cache”不保证更低访问时间?
- 虚拟地址怎样同时服务隔离和内存容量管理?
- TLB 是数据 cache 吗?它缓存的内容有什么不同?