1、学习目标

存储子系统解决两个矛盾:CPU 很快而存储器相对慢,容量需求很大而高速存储很贵。存储层次结构就是在速度、容量和成本之间做折中。

模块 要掌握的内容
存储层次 寄存器、Cache、主存、辅存
半导体存储 SRAM、DRAM、ROM、Flash
主存组织 位扩展、字扩展、地址译码
外存 磁盘、光盘、固态存储
性能改进 Cache、虚拟存储、并行存储、联想存储

2、存储层次结构

典型层次:

1
寄存器 -> Cache -> 主存 -> SSD/磁盘 -> 远程存储
层次 速度 容量 成本
寄存器 最快 最小 最高
Cache 很快 较小
主存 中等 较大
外存 很大

核心思想:利用局部性,让 CPU 大部分时间访问靠近自己的高速小容量存储。

3、局部性原理

局部性 含义 例子
时间局部性 最近访问过的数据,很可能很快再次访问 循环变量
空间局部性 访问某地址后,很可能访问附近地址 顺序遍历数组

Cache 和虚拟存储都依赖局部性。没有局部性,层次结构的效果会明显下降。

4、半导体存储器

4.1 SRAM

SRAM 使用触发器保存数据。

特点 说明
速度
集成度
成本
刷新 不需要
用途 Cache

4.2 DRAM

DRAM 使用电容保存电荷。

特点 说明
速度 比 SRAM 慢
集成度
成本 较低
刷新 需要周期刷新
用途 主存

DRAM 要理解“刷新”这一点,因为电容会漏电,数据不能永久保持。

4.3 ROM 与 Flash

ROM 适合保存固件、启动程序等不经常修改的数据。Flash 可擦写,常见于 SSD、U 盘、嵌入式存储。

5、主存组织

存储芯片常需要组合成目标容量和字长。

5.1 位扩展

多个芯片并联,增加字长。

1
多个 1K x 1 芯片 -> 1K x 8 存储器

5.2 字扩展

多个芯片串接地址空间,增加字数。

1
多个 1K x 8 芯片 -> 4K x 8 存储器

5.3 字位同时扩展

同时扩展字数和位数。计算题里要先确定:

  1. 目标总容量。
  2. 目标字长。
  3. 单个芯片容量和位宽。
  4. 需要多少片。
  5. 地址线和片选线如何分配。

6、Cache

Cache 是 CPU 和主存之间的高速缓存。

基本单位:

概念 说明
块/行 Cache 和主存交换的基本单位
标记 Tag 判断当前 Cache 行对应哪个主存块
有效位 判断行内容是否有效
脏位 写回策略下判断是否被修改

映射方式:

方式 特点
直接映射 一个主存块只能去一个 Cache 行,简单但冲突多
全相联 主存块可放任意行,灵活但硬件复杂
组相联 折中方案,主存块映射到某组,组内相联

替换策略:

1
LRU、FIFO、随机替换

写策略:

策略 说明
写直达 写 Cache 同时写主存
写回 先写 Cache,替换时再写回主存
写分配 写缺失时把块调入 Cache
非写分配 写缺失时直接写主存

7、平均访问时间

Cache 性能常用平均访问时间:

1
AMAT = Hit Time + Miss Rate * Miss Penalty

降低 AMAT 的方式:

  1. 降低命中时间。
  2. 降低缺失率。
  3. 降低缺失代价。

这条公式是连接硬件结构和程序性能的重要桥梁。

8、虚拟存储

虚拟存储让程序看到连续的大地址空间,由操作系统和硬件共同完成地址转换。

基本概念:

概念 说明
虚拟地址 程序使用的地址
物理地址 主存真实地址
虚拟存储管理单位
页表 虚拟页到物理页的映射
TLB 页表项缓存
缺页 所需页不在主存,需要从外存调入

虚拟存储属于组成原理和操作系统交界内容。组成原理关注硬件支持,操作系统关注管理策略。

9、磁盘与光存储

磁盘访问时间通常由三部分组成:

1
寻道时间 + 旋转延迟 + 数据传输时间

磁盘顺序访问远快于随机访问,这是文件系统和数据库优化的重要背景。

光存储如 CD/DVD/蓝光主要用于大容量、低成本、可移动介质,速度通常低于半导体存储。

10、高性能存储技术

技术 作用
多体交叉存储 多个存储体并行访问,提高带宽
联想存储 按内容查找,常用于 TLB/Cache tag 匹配
预取 提前把可能访问的数据调入
多级 Cache L1/L2/L3 分层折中速度和容量
RAID 多磁盘组合提升性能或可靠性

11、易错点

易错点 修正
Cache 越大一定越快 容量变大可能增加命中时间
命中率和缺失率混淆 Miss Rate = 1 - Hit Rate
SRAM/DRAM 刷新混淆 DRAM 需要刷新,SRAM 不需要
主存扩展只算总片数 还要分析地址线、数据线、片选
虚拟存储当成单纯扩容 它还提供地址隔离和统一地址空间

12、复盘清单

检查项 状态
能画出存储层次结构 待复盘
能区分 SRAM 和 DRAM 待复盘
能做主存芯片扩展计算 待复盘
能比较三种 Cache 映射方式 待复盘
能写出 AMAT 公式 待复盘
能解释虚拟地址到物理地址转换 待复盘