【计算机组成原理】第三章 存储系统
第三章 存储系统
- 3.1 存储器概述
- 3.1.1 存储器的层次化结构
- 3.1.2 存储器的分类
- 3.1.3 存储器的性能指标
- 3.2 主存储器
- 3.2.1主存储器的基本组成
- 3.2.2 DRAM和SRAM
- 3.2.2.1 DRAM和SRAM的区别
- 3.2.2.2 DRAM刷新
- 3.2.3 ROM(Read Only Memory)
- 3.3 主存储器容量的扩展
- (1)位扩展法
- (2)字扩展法
- (3)字位扩展法
- 3.4 外部存储器
- 3.4.1 磁盘存储器
- (1)磁盘结构
- (2)磁盘的性能指标
- (3)磁盘的地址
- 3.4.2 SSD
- 3.5 高速缓冲存储器
- 3.5.1 Cache的工作原理
- 3.5.2 Cache与主存的映射方式
- (1)全相联映射
- (2)直接映射
- (3)组相联映射
- 3.5.3 Cache替换算法
- (1)RAND算法
- (2)FIFO先进先出算法
- (3)LRU最近最少使用算法
- (4)LFU最不经常使用算法
- 3.5.4 Cache写策略
- 3.5.4.1 写命中
- (1)写回法
- (2)全写法
- 3.5.4.2 写不命中
- (1)写分配法
- (2)非写分配法
- 3.5.4.3 多级Cache
3.1 存储器概述
3.1.1 存储器的层次化结构
- 主存-辅存:实现虚拟存储系统,解决了主存容量不够的问题
- Cache-主存:解决了主存与CPU速度不匹配的问题
3.1.2 存储器的分类
3.1.3 存储器的性能指标
- 存储容量:存储字数*字长
- 单位成本:每位价格=总成本/总容量。
- 存储速度:数据传输率数据的宽度/存储周期。
①存取时间(Ta):存取时间是指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间。
②存取周期(Tm):存取周期又称为读写周期或访问周期。它是指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立地访问存储器操作(读或写操作)之间所需的最小时间间隔。
3.2 主存储器
3.2.1主存储器的基本组成
3.2.2 DRAM和SRAM
3.2.2.1 DRAM和SRAM的区别
类型特点 | SRAM(静态RAM) | DRAM(动态RAM) |
---|---|---|
电子结构 | ![]() | ![]() |
存储信息 | 触发器 | 电容 |
破坏性读出 | 非 | 是 |
读出后需要重写?(再生) | 不用 | 需要 |
运行速度 | 快 | 慢 (算上重写时间) |
集成度 | 低 | 高 |
发热量 | 大 | 小 |
存储成本 | 高 | 低 |
易失/非易失性存储器? | 易失(断电后信息消失) | 易失(断电后信息消失) |
需要“刷新”? | 不需要 | 需要 |
送行列地址 | 同时送 | 分两次送 ![]() |
3.2.2.2 DRAM刷新
-
多久需要刷新一次?
刷新周期:一般为2ms -
每次刷新多少存储单元?
以行为单位,每次刷新一行存储单元 -
如何刷新?
有硬件支持,读出一行的信息后重新写入,占用1个读/写周期 -
在什么时刻刷新?
假设DRAM内部结构排列成128X128的形式,读/写周期0.5us(存取周期)
2ms共2ms/0.5us=4000个周期
3.2.3 ROM(Read Only Memory)
-
MROM(掩模式只读存储器):
- 由厂家在生产过程中直接写入信息,之后不可重写。
- 可靠性高,但灵活性差,生产周期长,适合批量定制。
-
PROM(可编程只读存储器):
- 用户可使用专用设备写入信息,但只能写一次,之后不可更改。
-
EPROM(可擦除可编程只读存储器):
- 允许用户多次擦除和重写信息。
- UVEPROM:通过紫外线照射擦除所有信息。
- EEPROM:通过电擦除方式擦除特定字。
-
Flash Memory(闪速存储器):
- 在EEPROM基础上发展而来,断电后仍能保存信息,可多次快速擦除重写。
- 每个存储元只需单个MOS管,集成度高。
- 写速度比读速度慢,因为需要先擦除再写入。
-
SSD(固态硬盘):
- 由控制单元和存储单元(Flash芯片)构成。
- 存储介质与闪存类似,可多次快速擦除重写。
- 速度快、功耗低、价格高,逐渐取代传统机械硬盘。
3.3 主存储器容量的扩展
(1)位扩展法
(2)字扩展法
(3)字位扩展法
3.4 外部存储器
3.4.1 磁盘存储器
(1)磁盘结构
磁盘结构
(2)磁盘的性能指标
- 磁盘的容量:一个磁盘所能存储的字节总数称为磁盘容量。磁盘容量有非格式化容量和格式化容量之分。
- 非格式化容量是指磁记录表面可以利用的磁化单元总数。
- 格式化容量是指按照某种特定的记录格式所能存储信息的总量。
- 记录密度:记录密度是指盘片单位面积上记录的二进制的信息量,通常以道密度、位密度和面密度表示。
- 道密度是沿磁盘半径方向单位长度上的磁道数;
- 位密度是磁道单位长度上能记录的二进制代码位数;
- 面密度是位密度和道密度的乘积。
- 平均存取时间=寻道时间(磁头移动到目的磁道)+旋转延迟时间(磁头定位到所在扇区)+传输时间(传输数据所花费的时间)
寻道算法(磁盘调度算法)
(3)磁盘的地址
3.4.2 SSD
3.5 高速缓冲存储器
3.5.1 Cache的工作原理
局部性原理
3.5.2 Cache与主存的映射方式
(1)全相联映射
CPU访问主存地址1…1101 001110
①主存地址的前22位,对比Cache中所有块的标记;
②若标记匹配且有效位=1,则Cache命中,访问块内地址为 001110 的单元。
③若未命中或有效位=0,则正常访问主存
(2)直接映射
直接映射,主存块在Cache中的位置=主存块号%Cache总块数
CPU访问主存地址0…01 000 001110:
①根据主存块号的后3位确定Cache行
②若主存块号的前19位与Cache标记匹配且有效位=1,则Cache命中,访问块内地址为001110 的单元。
③若未命中或有效位=0,则正常访问主存
(3)组相联映射
组相联映射,所属分组=主存块号%分组数
CPU访问主存地址1…11 01 001110:
①根据主存块号的后2位确定所属分组号
②若主存块号的前20位与分组内的某个标记匹配且有效位=1,则Cache命中,访问块内地址为001110的单元。
③若未命中或有效位=0,则正常访问主存
3.5.3 Cache替换算法
(1)RAND算法
随机算法(RAND,Random):若Cache已满,则随机选择一块替换。
(2)FIFO先进先出算法
先进先出算法(FIFO,First In First Out):若Cache已满,则替换最先被调入Cache 的块
抖动现象:频紧的换入换出现象(刚被替换的块很快又被调入)
(3)LRU最近最少使用算法
近期最少使用算法(LRU, Least Recently Used):为每一个Cache块设置一个**“计数器”**
用于记录每个Cache块已经有多久没被访问了,当Cache满后替换“计数器”最大的。
(4)LFU最不经常使用算法
最不经常使用算法(LFU, Least Frequently Used):为每一个Cache块设置一个“计数器”,
用于记录每个Cache块被访问过几次。当Cache满后替换“计数器”最小的
3.5.4 Cache写策略
3.5.4.1 写命中
(1)写回法
写回法(write-back):当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存
(2)全写法
全写法(写直通法,write-through):当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般使用写缓冲(write buffer)
3.5.4.2 写不命中
(1)写分配法
写分配法(write-allocate):当CPU对Cache写不命中时,把主存中的块调入Cache,在Cache中修改。通常搭配写回法使用。
(2)非写分配法
非写分配法(not-write-allocate):当CPU对Cache写不命中时只写入主存,不调入Cache。搭配全写法使用。