3.1 存储系统概述
3.1.1 存储系统的层次结构
计算机存储系统采用分级存储结构,核心目标:平衡速度、容量、成本三者的矛盾。
速度:Cache > 主存 > 辅存
容量:Cache < 主存 < 辅存
单位价格:Cache最贵,辅存最便宜
分层结构:
1. Cache(高速缓存):紧贴CPU,速度最快,容量很小,存放CPU近期大概率访问的数据、指令。
2. 主存(内存):CPU可以直接寻址访问,存放当前正在运行的程序和数据。
3. 辅存(外存:硬盘、U盘等):容量极大,速度慢,用来长期持久保存信息,CPU不能直接访问,数据必须调入主存才能被CPU处理。
分层存储的理论基础:局部性原理
- 时间局部性:刚被访问过的数据,短时间内很可能再次访问(循环语句就是典型)。
- 空间局部性:访问某个存储单元,它相邻地址单元的数据很快也会被访问。
3.1.2 存储器的分类
课本从多个维度对存储器分类:
1. 按存储介质:半导体存储器(主存)、磁表面存储器(磁盘)、光存储器(光盘)
2. 按读写方式:随机存取存储器RAM(可读可写,断电丢失)、只读存储器ROM(正常工作只能读,断电信息保留)
3. 按信息可保存性:易失性存储器(RAM,断电数据消失)、非易失性存储器(ROM、磁盘、闪存,断电数据保留)
4. 按存取方式:随机存取、顺序存取、直接存取
3.1.3 存储器的编址和端模式
- 编址:存储器的每个存储单元分配唯一地址。常见有按字节编址(最常用)、按字编址。
- 端模式(大小端):多字节数据在内存中的存放顺序
大端模式:数据高字节存放在低地址,符合人的阅读习惯;
小端模式:数据低字节存放在低地址,CPU(x86架构)默认使用小端模式。
3.1.4 存储器的技术指标
1. 存储容量:存储器能存放二进制信息总量,单位:位bit、字节B,常用KB、MB、GB。
公式:容量 = 存储单元个数 × 每个单元位数
2. 存取时间:从发起读/写请求,到完成操作、数据稳定的时间,衡量速度。
3. 存取周期:连续两次独立存取操作之间需要的最小间隔,存取周期 ≥ 存取时间。
4. 带宽(数据传输率):单位时间内存储器传输的数据量。
5. 可靠性、功耗:工程上常用指标。
3.2 静态随机存取存储器(SRAM)
3.2.1 基本的静态存储元阵列
SRAM的存储元依靠双稳态触发器保存0和1。一个触发器保存1bit信息,不需要刷新,只要不断电,数据就能稳定保存。
存储元排成矩阵形式,分为行线(字线)、列线(位线),字线选中一行,位线负责读出、写入信号。
3.2.2 基本的SRAM逻辑结构
一块SRAM芯片由5部分组成:
- 存储元阵列:核心存储矩阵
- 地址译码器:接收地址,译码后选中对应字线;分为行译码、列译码
- 驱动电路
- 读写控制电路:WE读写控制信号、CS片选信号
- 数据缓冲器:输入输出数据线
片选CS:CS有效,芯片才工作;CS无效,芯片数据线高阻,不参与总线。
3.2.3 SRAM读/写时序
- 读时序:地址先有效 → 片选CS有效 → 读信号有效 → 存储单元数据送到数据线上,读出数据。
- 写时序:地址有效 → 片选有效 → 待写入数据放到数据线 → 写使能WE有效,把数据写入触发器。
时序要求:地址、控制信号、数据信号满足建立时间、保持时间,保证读写稳定。
3.2.4 存储器容量的扩充(大题重点!)
当单块芯片容量不够,需要多片组合扩充,分三种方式:
1. 位扩展(扩字长):芯片字数够,但是位数不够。地址线并联,片选并联,数据线分开。
2. 字扩展(扩字数):芯片位数够,但是存储单元数量不够。数据线并联,地址高位译码用来产生不同芯片的片选信号。
3. 字位同时扩展:字、位都不够,上面两种方法结合,是考试最常考题型。
3.3 动态随机存取存储器(DRAM)
3.3.1 DRAM存储元的工作原理
DRAM存储元依靠电容存储电荷来记录信息:电容有电荷代表1,无电荷代表0。
对比SRAM:
SRAM:触发器,6管,不需要刷新,速度快,功耗高,集成度低;
DRAM:电容,单管结构,集成度高、成本低、功耗小,电容会漏电,必须定期刷新,否则数据丢失。
3.3.2 DRAM芯片的逻辑结构
DRAM地址线分为行地址、列地址,地址线复用,分两次送入芯片:先送行地址,RAS行地址选通;再送列地址,CAS列地址选通。
好处:芯片引脚数量变少,降低封装成本。
结构:存储矩阵、行地址锁存、列地址锁存、读写控制电路。
3.3.3 DRAM读/写时序
- 读操作:先发送行地址,RAS有效锁存行地址;再发送列地址,CAS有效锁存列地址,选中单元,电容信息读出。
- 写操作:RAS、CAS依次锁存行列地址,WE写信号有效,把数据写入电容。
读出是破坏性读出:电容电荷在读出过程会被破坏,所以读出之后必须回写(再生)。
3.3.4 DRAM的刷新操作(高频考点)
电容漏电,电荷慢慢流失,必须每隔一段时间(一般2ms)刷新一遍所有行,补充电荷。
刷新只按行操作,一行内所有存储元同时刷新,不需要列地址。
三种刷新方式:
1. 集中刷新:在2ms周期内,集中一段时间一次性刷新全部行。存在“死区”,这段时间不能读写。
2. 分散刷新:把每一行的刷新分散安排到每个存取周期里,无死区,但是速度变慢。
3. 异步刷新(最常用):结合上面两种,每隔固定时间刷新一行,无长时间死区,兼顾速度和稳定性。
3.3.5 突发传输模式
一次给出首地址,后续连续地址单元自动顺序读出,不需要反复发送地址,适合连续大块数据传输,提升传输效率。
3.3.6 同步DRAM(SDRAM)
SDRAM是同步动态存储器,时钟信号同步工作,所有输入信号都和系统时钟对齐,不再是异步信号。支持突发长度可编程,相比传统异步DRAM速度大幅提升。
3.3.7 双倍数据率SDRAM(DDR SDRAM)
DDR:在时钟上升沿 + 下降沿都传输一次数据,一个时钟周期传输2次数据,带宽翻倍。
后续DDR2、DDR3、DDR4、DDR5都是在这个基础上继续优化预取、频率、电压。
3.3.8 DRAM读/写校验
增加校验位,检测存储读出的数据是否出错,常用奇偶校验,提升可靠性。
3.3.9 CDRAM
CDRAM(高速缓存DRAM):在DRAM芯片内部集成一小块SRA为片内Cache,用来缓存连续块数据,减少对存储阵列的访问,提升速度。
小结
SRAM靠触发器,无需刷新,速度快,适合做Cache;DRAM靠电容,需要刷新,集成度高、便宜,我们电脑的内存条就是DRAM(DDR系列)。