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 公式 待复盘
能解释虚拟地址到物理地址转换 待复盘