Chap4 存储子系统
返回:0500 计算机组成原理总目录 · 上一章:0503 Chap3 CPU 子系统 · 下一章:0505 Chap5 总线与 I/O 子系统
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 字位同时扩展
同时扩展字数和位数。计算题里要先确定:
- 目标总容量。
- 目标字长。
- 单个芯片容量和位宽。
- 需要多少片。
- 地址线和片选线如何分配。
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 的方式:
- 降低命中时间。
- 降低缺失率。
- 降低缺失代价。
这条公式是连接硬件结构和程序性能的重要桥梁。
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 公式 | 待复盘 |
| 能解释虚拟地址到物理地址转换 | 待复盘 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruiqy~!







