【王道考研·计算机组成原理】第3章 存储系统(整章完整版)

【王道考研·计算机组成原理】第3章 存储系统(整章完整版)
Austoin引言
第三章是计组中“综合计算最多”的章节之一。
它把硬件容量、速度、成本三者矛盾用层次化设计统一起来。你必须同时掌握:
- 存储器硬件组织。
- Cache 命中与替换。
- 虚拟存储地址转换与缺页。
图像化理解(Mermaid)
mindmap
root((第3章 存储系统))
层次结构
寄存器
Cache
主存
辅存
主存技术
SRAM
DRAM
刷新
Cache
直接映射
全相联
组相联
替换算法
虚拟存储
页式管理
TLB
缺页中断
一、存储器层次与基本概念
1. 层次化目标
- 上层快但贵且小。
- 下层慢但便宜且大。
- 通过局部性原理实现“看起来又快又大”。
2. 局部性原理
- 时间局部性:近期访问的数据未来还可能访问。
- 空间局部性:访问某地址后附近地址也常被访问。
3. 关键指标
- 命中率
h。 - 未命中率
1-h。 - 平均访存时间
AMAT = HitTime + MissRate × MissPenalty。
4. 存储器分类再细分
- 按介质:半导体存储器、磁表面存储器、光存储器。
- 按存取方式:随机存取、顺序存取、直接存取、相联存取。
- 按可改写性:只读存储器与可读写存储器。
- 按保存性:易失性和非易失性;Flash/SSD 断电可保存,但长期掉电仍可能退化。
5. ROM 家族与典型用途
- ROM:出厂固化,只能读。
- PROM:可编程一次。
- EPROM:可紫外线擦除后重写。
- EEPROM:可电擦除,支持多次改写。
- Flash 可看作 EEPROM 的发展形式,常用于 BIOS、固件和 SSD 等非易失存储场景。
二、主存储器
1. SRAM 与 DRAM
- SRAM:速度快,不需刷新,常用于 Cache。
- DRAM:集成度高,需周期刷新,常用于主存。
2. DRAM 刷新
- 集中刷新。
- 分散刷新。
- 异步刷新。
考点:刷新不改变存储内容,但占用存储器周期。
3. 编址与容量计算
- 按字节编址最常见。
- 地址线
n位时可寻址2^n个地址单位。 - 数据线宽度决定一次传输位数。
4. 主存结构与数据存放
- MAR 给出地址,经地址译码器选中目标单元;MDR 保存待写入或刚读出的数据。
- 单译码结构简单但阵列大时连线复杂,双译码可减少单个译码器规模。
- 多字节数据涉及大端/小端:大端高字节放低地址,小端低字节放低地址。
- 边界对齐本质是用空间换时间,减少一次数据访问跨越两个存储字的概率。
5. SRAM 与 DRAM 再比较
- SRAM 存储元通常基于触发器,读出不破坏原值,速度快、成本高、集成度低。
- DRAM 存储元基于电容,需要周期刷新,速度略慢但容量大、成本低。
- DRAM 常见考点包括行列地址复用、刷新周期、刷新占用访存带宽。
6. 主存扩展与交叉编址(补充考点)
- 位扩展:并联多个存储芯片以扩大字长。
- 字扩展:串联地址空间以扩大容量。
- 字位同时扩展需要同时考虑片选线、地址线和数据线的连接。
- 交叉编址(多体并行)可提升连续访问带宽,常见低位交叉;高位交叉更利于分段管理但连续访问并行性较弱。
7. 主存系统的常见优化方法
- 双端口 RAM:允许两个端口并行访问,提高并发能力。
- 单体多字存储器:一次读出多个字,适合顺序高速传送。
- 多体交叉存储器:把连续地址分散到不同存储体,提高连续访存吞吐。
- 比较题常从“硬件成本、并行能力、连续访问性能”三个角度出题。
三、Cache 组织与映射
1. 直接映射
- 主存块只能映射到唯一 Cache 行。
- 冲突未命中明显。
- 硬件简单,比较开销小。
2. 全相联映射
- 主存块可放任意 Cache 行。
- 命中率高于直接映射。
- 比较硬件复杂。
3. 组相联映射
- 主存块先映射到某组,再放组内任意行。
- 在命中率与硬件复杂度间折中。
4. 地址划分
常见拆分:
1 | 主存地址 = 标记Tag + 组号(或行号) + 块内地址 |
5. Cache 的层次与分类
- 单级 Cache 结构简单,但容量与速度折中空间有限。
- 多级 Cache 通过 L1/L2/L3 分层进一步平衡速度与容量。
- 指令 Cache 与数据 Cache 分离(I-Cache / D-Cache)可减少结构冲突,常与流水线设计配合出现。
四、Cache 替换与写策略
1. 替换算法
- LRU:最近最少使用。
- FIFO:先进先出。
- RAND:随机替换。
2. 写策略
- 写直达(Write Through):同时写 Cache 和主存。
- 写回(Write Back):只写 Cache,替换时回写主存。
3. 写不命中策略
- 写分配(Write Allocate):先调入块再写。
- 非写分配(No Write Allocate):直接写下层。
五、虚拟存储器
1. 基本思想
- 程序使用虚拟地址空间。
- 仅把活跃页面调入主存。
- 通过页表完成虚实地址转换。
2. 地址转换路径
- 先查 TLB(快表)。
- 未命中则查页表。
- 页不在内存则触发缺页中断。
3. 页面置换算法
- OPT(理论最优)。
- FIFO。
- LRU。
- CLOCK(近似 LRU)。
4. 快表命中下的有效访问时间(EAT)
设 TLB 命中率为 h,查 TLB 时间为 t,访存时间为 m,则常见简化模型:
1 | EAT = h × (t + m) + (1-h) × (t + 2m) |
该式高频用于选择题与计算题。
5. 虚拟存储补充考点
- 页式管理便于离散分配,但存在页内碎片;段式管理便于按逻辑模块组织,但会产生外部碎片。
- 段页式兼顾逻辑分段与页式离散分配,是现代系统常见方案。
- TLB 与 Cache 不是同一层次:TLB 缓存页表项,Cache 缓存主存块。
- 缺页中断属于内部异常,处理流程比普通外中断更重,通常需要 OS 参与调页。
6. TLB 与 Cache 联合访问
- CPU 先依据虚拟地址做页号提取,优先查询 TLB 获取物理页框号。
- TLB 命中后,物理地址再去访问 Cache;若 Cache 未命中,再到主存取块。
- TLB 未命中时需要访问页表;若页表项显示页面不在主存,则再触发缺页中断。
- 这说明地址转换开销和数据访问开销是两条相互嵌套的路径,综合题经常把它们放在一起考。
7. Cache 与虚拟存储器的区别
- Cache 主要解决速度问题,虚拟存储器主要解决容量扩展问题。
- Cache 的数据交换单位通常是块,虚拟存储器通常按页或段进行调入调出。
- Cache 主要由硬件自动管理,虚拟存储器则依赖硬件与操作系统协同工作。
- 二者都利用局部性原理,但服务目标、管理层级和未命中代价明显不同。
六、PDF 例题与考点补充(第3章)
例题 1:AMAT 计算
题目:命中时间 1ns,命中率 95%,未命中代价 40ns,求 AMAT。
解:
1 | AMAT = 1 + (1-0.95)×40 = 3ns |
例题 2:容量与地址线
题目:按字节编址,主存容量 4GB,需要多少位地址线。
解:
1 | 4GB = 2^32 Byte,因此地址线为 32 位 |
例题 3:组相联计算
题目:Cache 64KB,块大小 64B,4 路组相联,求组数。
解:
1 | 总行数 = 64KB / 64B = 1024 |
例题 4:TLB 意义
题目:为什么 TLB 能提升性能。
解:
- 避免每次访存都访问页表。
- 命中时地址转换接近寄存器级速度。
- 利用页访问的时间局部性。
例题 5:写回与写直达比较
结论:
- 写回减少主存写流量,但一致性控制更复杂。
- 写直达一致性简单,但主存带宽压力更大。
七、高频易错点
- 把“命中率高”误解成“平均访存时间一定线性降低”。
- 忘记组相联中组数计算要除以路数。
- 写回策略下忽略脏位。
- 把缺页中断当成普通外中断。
- 地址划分时把块内地址位数算错。
八、本章速记清单
AMAT = HitTime + MissRate × MissPenalty。- 局部性是存储层次成立的理论基础。
- TLB 缓存的是页表项。
- 写回要配合脏位。
- 缺页由硬件触发、OS处理。
总结
第三章本质是在做“速度-容量-成本”的系统折中。
你要能把主存、Cache、虚拟存储放在同一条链路上看:
- 先提高命中。
- 再降低未命中代价。
- 最后控制一致性与替换成本。
作者:[Austoin]
参考来源:E:\PDF\计算机组成原理(含新大纲考点).pdf、E:\PDF\2027计算机组成原理_高清带书签版.pdf(章节知识点整合)








