第7章 存储系统

存储系统由Cache和虚拟存储器组成,旨在解决CPU与主存之间的速度匹配问题以及主存容量不足的问题,对应用程序员透明。

7.1 存储系统的层次结构

CPU 寄存器
    ↑
  高速缓冲存储器(Cache)     ← 解决速度匹配
    ↑
  主存储器(主存)             ← 存放正在运行的程序和数据
    ↑
  辅助存储器(磁盘/SSD)       ← 解决容量问题

层次结构满足的原则:

  • 一致性原则:同一信息在不同层次的值应相同
  • 包含性原则:内层存储器的全部信息是其相邻外层信息的一部分的复制品

7.2 Cache高速缓冲存储器

工作原理

Cache由SRAM实现,速度接近CPU寄存器,容量较小。CPU与Cache以字为单位交换数据,Cache与主存以块为单位交换数据。

访问局部性原理

  • 时间局部性:近期被访问的存储单元很可能在未来再次被访问(循环)
  • 空间局部性:近期被访问的存储单元邻近的单元很可能在未来被访问(数组、连续存储)

命中率

h = Nc / (Nc + Nm)
Nc = Cache完成存取总次数,Nm = 主存完成存取总次数
平均访问时间:Ta = h × Tc + (1-h) × Tm
访问效率:e = Tc / Ta = 1 / (h + (1-h) × r),r = Tm / Tc

Cache地址映射

映射方式 主存地址格式 特点
直接映射 [标记(s-r)] [行号(r)] [块内(w)] i = j mod m,实现简单,冲突率高
全相联映射 [标记(s)] [块内(w)] 任意块→任意行,灵活,比较电路复杂
组相联映射 [标记(s-d)] [组号(d)] [块内(w)] 组内全相联,组间直接映射,折中方案

Cache替换算法

算法 说明 特点
随机法 随机选择一行替换 实现简单
FIFO 最先进入的行被替换 可能替换掉频繁使用的行
LRU 最久未使用的行被替换 命中率最高,需记录访问历史
LFU 使用次数最少的行被替换 实现复杂

Cache写策略

策略 写命中 写未命中 特点
写回法 只修改Cache,换出时写回主存 将主存块拷贝到Cache后修改 减少写主存次数
全写法(写通) Cache和主存同时修改 直接向主存写入 一致性好
写一次法 第一次写命中时同时写入主存,之后只写Cache 同写回法 写回法+第一次全写

7.3 虚拟存储器

虚拟存储器是主存-辅存层次,以透明方式提供比实际主存大得多的地址空间。

页式虚拟存储器

  • 虚拟空间分成逻辑页,主存空间分成同样大小的物理页
  • 页的大小为磁盘扇区的整数倍
  • 虚存地址:[逻辑页号] [页内行地址]
  • 实存地址:[物理页号] [页内行地址]
  • 地址转换通过页表完成(在主存中)

页表项:包含物理页号、装入位(有效位)、修改位、访问位等。

快表(TLB):将近期最活跃的页表项存放在高速存储器中,加速地址转换。

段式虚拟存储器

  • 按程序的逻辑结构划分段,各段长度因程序而异
  • 虚拟地址由段号+段内地址组成
  • 段表包含:段起始地址、装入位、段长
  • 段内地址超过段长时 → 地址越界中断

段页式虚拟存储器

  • 段式和页式的结合:按逻辑单位分段,每段再分成固定大小的页
  • 程序的调入调出按页面进行,按段实现共享和保护
  • 兼取页式和段式的优点,但地址映象需多次查表
  • 目前大中型机普遍采用

三种方式对比

特征 页式 段式 段页式
划分单位 固定大小页 可变长度段 段+页
地址结构 页号+页内地址 段号+段内地址 段号+段内页号+页内地址
保护 页级保护困难 段级保护容易 兼具两者
共享 困难 容易 容易
碎片 内部碎片 外部碎片 内部碎片

7.4 相联存储器

相联存储器(CAM)按内容寻址,而非按地址寻址。用于Cache的标记比较、TLB地址查找等场景。

工作原理:将输入数据与所有存储单元的内容同时比较,输出匹配信号。可并行比较全部单元。

7.5 存储管理部件(MMU)

MMU是CPU中负责虚拟地址到物理地址转换的硬件单元,功能包括:

  1. 地址转换:虚拟地址→物理地址(查页表/段表)
  2. TLB管理:维护快表,加速地址转换
  3. 访问保护:检查访问权限(读/写/执行)
  4. Cache控制:控制Cache的使能与策略

考试重点

★★★ 第一梯队(必考)

考点 典型题型
Cache地址映射(直接/全相联/组相联地址格式分析) 地址格式分析 + 计算
Cache替换算法(LRU执行过程) 过程分析
页式虚拟存储器地址转换 计算 + 分析

★★☆ 第二梯队

考点 典型题型
命中率和平均访问时间计算 计算题
Cache写策略对比 对比简答
段式/页式/段页式对比 对比表 + 简答

★☆☆ 第三梯队

考点 典型题型
存储层次结构 层次图 + 说明
TLB快表的作用 简答
MMU的功能 简答
相联存储器原理 简答