# 6.3.2 存储器层次结构概念小结

概括来说,基于缓存的存储器层次结构行之有效,是因为较慢的存储设备比较快的存储设备更便宜,还因为程序倾向于展示局部性:

  • **利用时间局部性:**由于时间局部性,同一数据对象可能会被多次使用。一旦一个数据对象在第一次不命中时被复制到缓存中,我们就会期望后面对该目标有一系列的访问命中。因为缓存比低一层的存储设备更快,对后面的命中的服务会比最开始的不命中快很多。
  • **利用空间局部性:**块通常包含有多个数据对象。由于空间局部性,我们会期望后面对该块中其他对象的访问能够补偿不命中后复制该块的花费。

现代系统中到处都使用了缓存。正如从图 6-23 中能够看到的那样,CPU 芯片、操作系统、分布式文件系统中和万维网上都使用了缓存。各种各样硬件和软件的组合构成和管理着缓存。注意,图 6-23 中有大量我们还未涉及的术语和缩写。在此我们包括这些术语和缩写是为了说明缓存是多么的普遍。

类型 缓存什么 被缓存在何处 延迟(周期数) 由谁管理
CPU 寄存器 4 字节或 8 字节字 芯片上的 CPU 寄存器 0 编译器
TLB 地址翻译 芯片上的 TLB 0 硬件 MMU
L1 高速缓存 64 字节块 芯片上的 L1 高速缓存 4 硬件
L2 高速缓存 64 字节块 芯片上的 L2 高速缓存 10 硬件
L3 高速缓存 64 字节块 芯片上的 L3 高速缓存 50 硬件
虚拟内存 4KB 页 主存 200 硬件 + OS
缓冲区缓存 部分文件 主存 200 OS
磁盘缓存 磁盘扇区 磁盘控制器 100 000 控制器固件
网络缓存 部分文件 本地磁盘 10 000 000 NFS 客户
浏览器缓存 Web 页 本地磁盘 10 000 000 Web 浏览器
Web 缓存 Web 页 远程服务器磁盘 1 000 000 000 Web 代理服务器

图 6-23 缓存在现代计算机系统中无处不在。TLB:翻译后备缓冲器(Translation Lookaside Buffer);MMU:内存管理单元(Memory Management Unit);OS:操作系统(Operating System);AFS:安德鲁文件系统(Andrew File System);NFS:网络文件系统(Network File System)