
《深入理解计算机系统》中关于存储器层次结构的内容核心是解决CPU与存储器之间日益增长的速度差距通过构建多级存储体系利用局部性原理实现高效的数据访问。存储器层次结构的基本概念存储器层次结构将不同类型的存储设备按访问速度从快到慢和容量从小到小大组织成多个层次包括寄存器、SRAM缓存、DRAM主存、磁盘等。每一层都作为下一层的“缓存”即第k层存储设备会存储第k1层中部分数据的副本数据以固定大小的块在相邻层之间传输。各层次特点寄存器位于CPU内部速度最快约1个时钟周期容量最小几十到几百字节由编译器管理。缓存Cache通常由SRAM实现分为多级L1/L2/L3速度比主存快10~100倍容量从几十KB到几MB。主存DRAM程序运行的主要存储区域容量较大GB级但访问延迟约几十到几百纳秒。磁盘机械硬盘或SSD容量最大TB级但访问速度最慢毫秒级用于持久化存储。局部性原理存储器层次结构能有效工作的前提是局部性原理包括时间局部性如果一个数据被访问那么在不久的将来很可能再次被访问。例如循环中的变量会反复使用。空间局部性如果一个数据被访问那么其附近的数据也很可能被访问。例如数组元素的顺序访问。缓存的工作机制缓存命中当程序访问的数据已在更高层更快的缓存中时直接返回速度极快。缓存不命中若数据不在缓存中则需从下一层较慢读入包含该数据的整个块并替换缓存中的旧块。一次不命中的代价较高但后续对该块中其他数据的访问会受益于空间局部性。块大小通常为64字节或更大以利用空间局部性。程序性能优化启示理解存储器层次结构有助于编写高效代码例如尽量使用局部变量寄存器或栈缓存。按行优先顺序访问多维数组提高空间局部性。减少循环中不必要的内存访问利用时间局部性。通过硬件和软件如编译器优化的协作存储器层次结构使得程序能接近高速存储设备的性能同时拥有大容量存储的虚拟空间。