本章知识框架:
一、概述
1. 存储器分类
按存储介质分类:
-
半导体存储器 :分为TTL、MOS
(断电信息易失)
-
磁表面存储器:磁头、载磁体
(非易失)
-
磁芯存储器:硬磁材料、环状元件
(非易失)
-
光盘存储器:激光、磁光材料
(非易失)
实际上是三类:半导体、磁、光
按存取方式分类:
- 随机存储器(RAM) (在程序的执行过程中可读可写)
存取时间与物理地址无关(随机访问)
- 只读存储器(ROM) (在程序的执行过程中只读)
(随机访问)
- 顺序存取存储器:磁带
存取时间与物理地址有关(串行访问)
- 直接存取存储器(DMA):磁盘
(串行访问)
按在计算机中的作用分类:
存 储 器 { 主 存 储 器 { R A M { 静 态 R A M 动 态 R A M R O M { M R O M P R O M E P R O M E E P R O M F l a s h M e m o r y 高 速 缓 存 存 储 器 辅 助 存 储 器 磁 盘 、 磁 带 、 光 盘 \color{maroon}存储器 \begin{cases} 主存储器&\begin{cases} RAM&\begin{cases} 静态RAM\\ \\ 动态RAM\\ \end{cases} \\\\ ROM&\begin{cases} MROM\\ PROM\\ EPROM\\ EEPROM\\ \end{cases} \\ \end{cases} \\ Flash Memory\\ \\ 高速缓存存储器\\ \\ 辅助存储器& 磁盘、磁带、光盘 \end{cases} 存储器⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧主存储器FlashMemory高速缓存存储器辅助存储器⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧RAMROM⎩⎪⎨⎪⎧静态RAM动态RAM⎩⎪⎪⎪⎨⎪⎪⎪⎧MROMPROMEPROMEEPROM磁盘、磁带、光盘
2. 存储器的层次结构
对存储器的要求是容量大、速度快、成本低,但是在一个存储器中要同时兼顾这三个方面是困难的。为了解决这方面的矛盾,目前在计算机系统中,通常采用多级存储器体系结构,即使用高速缓冲存储器CACHE、主存储器和辅助存储器三级结构,如图所示。其中磁盘、磁带、光盘为辅助存储器。
主存-辅存层次:为了解决容量问题
缓存-主存层次:为了解决速度问题
主存-辅存:虚拟存储器,地址空间为虚地址(即逻辑地址)
缓存-主存:主存储器,(实际上缓存是按内容查找)用到的地址为实地址(即物理地址)
二、主存储器
1. 概述
1.1 主存的组成
主存的基本组成有存储体、MAR、MDR、译码驱动电路、读写控制电路
现在的存储芯片没有MAR、MDR;MAR、MDR放在了CPU里
1.2 主存中存储单元地址分配
不同的机器存储字长不同,为了满足字符处理的需要,常用8位进制数表示一个字节,因此存取字长都取8的倍数
大端模式
小端模式
1.3 主存的技术指标
-
存储容量
-
存储速度 存取周期 > 存取时间 (因为存取周期还包括恢复时间)
-
存储器带宽:单位时间内写入存储器或者从存储器读出信息的最大数量
存 储 带 宽 = 存 储 字 长 存 取 周 期 存储带宽=\frac {存储字长}{存取周期} 存储带宽=存取周期存储字长提高存储器带宽的措施: (1)缩短存取周期 (2)增加存储字长 (3)增加存储体
2. 半导体存储芯片
2.1 半导体存储芯片基本结构
如图所示,并加上电源线和地线:
2.2 半导体存储芯片的译码驱动方式
-
线选法:
地址译码器只有一个,其输出叫字选择线,选择某个字的所有位。
结构简单,只适用于容量不大的存储芯片。 -
重合法
地址译码器分为X和Y两个译码器。
适用于容量较大的存储芯片。
3. 随机存储器RAM
3.1 静态RAM (SRAM)
静态RAM(SRAM)基本电路:
静态RAM芯片举例:
Intel 2114 容量:1k×4 内部存储矩阵:64×64
3.2 动态RAM (DRAM)
常见的动态RAM基本单元电路有三管式和单管式两种,图中左边为三管式,右边为单管式
动态RAM芯片举例:
三管动态RAM Intel 1103 容量:1k×1 内部存储矩阵:32×32
单管动态RAM 4116 容量:16k×1 内部存储矩阵:128×128
因为动态RAM靠电容存储电荷的原理来寄存信息,电容上有电荷表示1,无电荷表示0。 而电容上的电荷一般只能维持1-2ms,所以即使电源不掉点,信息也会自动消失,因此必须在2ms内对其所有存储单元恢复一次原状态,这个过程叫再生或刷新。
3.3 动态RAM的刷新
刷新过程的实质是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程。在一定时间内,对动态RAM的全部基本单元电路作一次刷新,这个时间叫做刷新周期(再生周期)。
-
集中刷新:在规定的刷新周期内,对全部存储单元集中一段时间 逐行 进行刷新。
缺点:这种刷新方式存在“死区”。
-
分散刷新:把对每行的刷新分散在每个读写周期内完成。
缺点:刷新过于频繁;虽然不存在死区,但是存取周期时间变长(分散刷新里的一个存取周期包含一个读写周期和刷新一行所用的时间),不能提高工作效率
-
异步刷新:分散刷新与集中刷新相结合,既克服出现“死区”,又充分利用最大刷新间隔为2ms的特点
集中刷新和异步刷新的刷新周期都是2ms,
分散刷新的刷新周期是:行数 × (读写周期+刷新一行所需时间)
3.4 静态RAM和动态RAM的比较
4. 只读存储器(ROM)
-
掩模ROM (MROM):行列选择线交叉处有MOS管为“1”,无MOS管为“0”。
MROM制成后不可能改变原行、列交叉处的MOS管是否存在,用户无法改变原始状态,所以只能读不能写
-
PROM (一次性编程):熔丝断为“0”,未断为“1”。
已断的熔丝无法恢复,所以这种ROM只能实现一次性编程,不能多次修改
-
EPROM (多次性编程 ) :价格便宜 、集成度高
-
EEPROM (多次性编程 ) :电可擦写、局部擦写、全部擦写
-
Flash Memory (闪速型存储器) :价格便宜 、集成度高,电可擦写,具备RAM功能
5. 存储容量的扩展
5.1 位扩展(扩展字长)
位扩展增加了存储字长,要求存储器字数与芯片上的字数相同
5.2 字扩展(扩展字数)
字扩展增加了存储单元的个数,只在字的方向上进行扩充,而位数不变。
字扩展采用简单译码器或专用译码器进行扩展,常用的专用译码器有:
2:4线译码器74139、3:8线译码器74138、4:16线译码器4067 等
5.3 字位全扩展
先进行位扩展,再进行字扩展
5.4 CPU与存储器的连接
CPU与存储器的连接要注意:
- 地址线的连接:CPU地址线的低位与存储芯片的地址线相连,CPU地址线的高位做扩充,如做片选信号
- 数据线的连接:分为字扩展和位扩展两种情况
- 读/写命令线的连接
- 片选线的连接
- 合理的选择芯片:通常选用ROM存放系统程序,选用RAM存放用户程序
CPU与存储器连接习题的答题步骤:
- 第一步,先将十六进制地址范围写成二进制地址码,并确定其总容量
- 第二步,根据地址范围的容量以及该范围在计算机系统中的作用,确定芯片的数量及类型
- 第三步,分配地址线
- 第四步,确定片选信号
例题:
6. 提高访存速度的措施
随着计算机领域的不断扩大,处理的信息越来越多,对存储器的工作速度和容量要求就越来越高。此外,CPU的功能不断增强,I/O设备的数量不断增多,导致主存的存取速度成为计算机系统的瓶颈,因此,提高访存速度已经成为迫不及待的任务。
- 采用高速元件
- 采用层次结构:Cache-主存
- 调整主存结构
本节讲 调整主存结构
6.1 单体多字系统
单体多字系统:增加存储器的带宽
特点:由于程序和数据在存储体内是连续存放的,因此CPU访存取出的信息也是连续的,在一个存取周期内可按地址读出4×W位的指令或数据,使主存带宽提高到4倍。但是采用这种办法的前提是:指令和数据在主存内必须是连续存放的,一旦遇到转移指令,或者操作数不能连续存放,这种办法的效果不太明显。
6.2 多体并行系统
多体并行系统就是采用多体模块组成的存储器。每个模块有相同的容量和存取速度,各模块各自都有独立的地址寄存器、数据寄存器、地址译码器、驱动电路和读写电路,它们能并行工作也能交叉工作。并行工作即同时访问N个模块,同时启动,同进读出,完全并行的工作(不过,同时读出的N个字在总线上需分时传送)。
多体并行系统里的两种编址方式:
- 高位交叉 顺序编址
- 低位交叉 轮流编址
高位交叉 顺序编址:各个体之间并行工作
采用这种编址方式,只要合理调动,就可以提高存储器的带宽。例如,当第一个体用以执行程序的时候,另一个体用来供外部设备进行访问。
低位交叉 轮流编址:
低位交叉的特点:采用流水方式存取
虽然对每个体而言,存取周期均未缩短,但由于CPU交叉访问各体、最终在一个存取周期的时间内,实际上向CPU提供了4个存储字。
如果每模块存储字长为32位,则在一个存取周期内,存储器向CPU提供了32×4=128位二进制代码,大大加宽了存储器的带宽。
设四体低位交叉存储器,存取周期为T,总线传输周期为τ,为实现流水线方式存取,应满足:
T
=
4
τ
T = 4\tau
T=4τ
连续读取 4 个字所需的时间为:
T
+
(
4
-
1
)
τ
T+(4 -1)τ
T+(4-1)τ
三、高速缓冲存储器
缓存是为了解决CPU和主存之间的速度不匹配问题。
1. 概述
1.1 Cache的工作原理
CPU读主存时,便把地址同时送给Cache和主存,Cache控制逻辑依据地址判断此字是否在Cache中,若在此字立即传送给CPU ,否则,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。
- CPU与Cache/主存之间的数据传送是以字为单位
- 主存与Cache之间的数据传送是以块为单位
1.2 Cache的设计依据
Cache的设计依据是程序访问的局部性原理
通过大量典型程序的分析,发现CPU从主存取指令或取数据,在一定时间内,只是对主存局部地址区域的访问。这是由于指令和数据在主存内都是连续存放的,并且有些指令和数据往往会被多次调用,即指令和数据在主存的地址分布不是随机的,而是相对的簇聚,使得CPU在执行程序时,访存具有相对的局部性,这就称为程序访问的局部性。
1.3 命中与未命中
因为 主存的块数 >> 缓存的块数,所以存在命中与未命中的情况。
- 命中:主存块调入缓存,与缓存块建立了对应关系
- 未命中:主存块未调入缓存,与缓存块未建立对应关系
命中率:指CPU要访问的信息已经在Cache内的比率
h
=
N
c
N
c
+
N
m
h = \frac{N_c}{N_c+N_m}
h=Nc+NmNc
设命中率为h,访问Cache命中的次数为Nc ,访问主存的次数为Nm ,命中率h约等于1但不可能等于1
平均访问时间:
t
a
=
h
t
c
+
(
1
−
h
)
t
m
t_a = ht_c + (1-h)t_m
ta=htc+(1−h)tm
设 tc 为命中时的Cache访问时间,tm 为未命中时的主存访问时间,1-h表示未命中率
访问效率:
e
=
t
c
t
a
×
100
%
=
t
c
h
t
c
+
(
1
−
h
)
t
m
×
100
%
e = \frac{t_c}{t_a} \times 100\% = \frac{t_c}{ht_c + (1-h)t_m} \times 100\%
e=tatc×100%=htc+(1−h)tmtc×100%
1.4 Cache的基本结构
1.5 Cache的读/写操作
读操作:
写操作:
- 写直达法(全写法):写数据时既写入Cache又写入主存
- 写回法:只把数据写入Cache不写入主存,当Cache数据被替换出去时才写回主存
1.6 Cache的改进
- 增加Cache的级数
- 统一缓存与分立缓存
2. Cache-主存地址的映射
2.1 地址映射与变换
- 地址映射:把主存块按照某种规则装入或定位到Cache中过程称为地址映射
- 地址变换:信息按这种映像关系装入Cache后,在执行程序时,将主存地址变换成Cache地址的过程称为地址变换
- 地址映射和变换密切相关
- 地址映射方式有直接方式、全相联方式、组相联方式三种
2.2 直接映射
直接映射是一种多对一的映射关系,但一个主存块只能映射到Cache的一个特定块位置上去。
Cache的第 i 块和主存的第 j 块有如下函数关系:
i = j mod m (m为Cache的总块数)
优点:硬件实现简单,成本低。只需利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中。
缺点:不灵活,存在Cache有空行而不能存数据块的问题,即造成替换频繁,效率下降,降低了命中率。
直接映射适合需要大容量Cache的场合(更多的行数可以减少冲突的机会)。
2.3 全相联映射
全相联映射中主存的各字块可映象到Cache的任一个字块
全相联映射只是一个理想的方案,原因有二:
- 标记位数从i位增加到n位,使Cache标记容量加大
- 访问Cache时,需要和Cache的全部标记进行“比较”后才能判断出所访主存地址单元的内容是否已在Cache中 。而Cache速度要求高,实际上需要采用各种措施来减少所需比较的地址数目。
优点:灵活,Cache的命中率高。
缺点:与直接映射相比,Cache标记的位数增多、比较的次数也增多。速度较慢,成本较高(比较器电路难以设计和实现)。
全相联映射适用于小容量的Cache。
2.4 组相联映射
主存和Cache都分组,主存中一个组内的块数与Cache中的分组数相同。组间采用直接映射,组内采用全相联映射。
组相联映射的特点:
- 具有块在组中存放的灵活性——冲突少;
- 比较器电路不太复杂。
n路组相联:
主存中的一块能对应到Cache中的一个特定组中的任意一块上。若组中有n个块,则称其为n路组相联
直接映射和全相联映射都是组相联的特例
直接映射是:1路组相联
直接映射是:m路组相联
3.替换算法
当新的主存字块需要调入Cache,而Cache中可用位置又被占满时,就产生替换算法问题。
- 先进先出(FIFO)算法:实现简单,但不能正确反映程序的局部性,因为最先进入的字块也可能是经常访问的字块,所以采用这种算法可能产生较大的失效率
- 近期最少使用(LRU)算法
- 随机法(RAND)
直接映射方式不存在替换算法,因为每个主存块的映射位置都是固定的。替换算法主要是针对全相联映射和组相联映射。
四、辅助存储器
辅助存储器的特点:
- 容量大
- 成本低
- 在断电后能保存信息(其中大部分存储介质还能脱机保存信息)
辅助存储器主要有: 磁表面存储器和光盘存储器
1. 磁表面存储器
磁表面存储器是利用某些磁性材料来存储信息。磁盘存储器、磁带存储器均属于磁表面存储器。
1.1 特点
- 存储密度高,记录容量大,价格低;
- 记录介质可以重复使用;
- 记录信息可长时间保存而不致丢失;
- 非破坏性读出,读出时不需再生信息;
- 存取速度较低,机械结构复杂,对工作环境要求较严。
1.2 磁记录原理
读写原理:
- 写入原理:写“1”和写“0”时分别在读写线圈中通以不同方向的电流,当磁头相对磁层运动时就在磁层的表面留下不同方向的磁化单元,分别代表“1”和“0”。
- 读出原理:当磁头相对磁层运动时,磁层表面不同方式的磁化单元在读写线圈中感应出不同方向的电势,分别记为“1”和“0”。
磁层上被磁化的小区域,称为磁化单元。
信息的记录方式:
是一种编码方法,把待写入的二进制信息按照某种规律变成对应的脉冲序列,这种写入电流波形的组成方式称为记录方式
常见的记录方式
:归零制(RZ)、不归零制(NRZ)、见1就翻的不归零制(NRZ1)、调相制(PM)、调频制(FM)、改进调频制(MFM)
信息的还原:
无论采用哪一种磁记录方式,从读出线圈读出的信号都需要经过一些变换、选通才能还原成写进去的信息
1.3 硬盘存储器
根据磁盘的盘体材料可分为硬磁盘和软磁盘,本节将介绍硬磁盘存储器。
硬磁盘存储器的分类:
- 根据磁头运动与否可分为:固定磁头磁盘、活动磁头磁盘
- 根据盘片是否可更换可分为:可换盘片磁盘、固定盘片磁盘
- 根据磁头是否与盘面接触可分为:接触式磁头(结构简单、价格低廉,多用于软盘)、浮动式磁头(主要应用于各类硬盘)
温彻斯特磁盘:
温彻斯特磁盘简称温盘,是一种可移动磁头固定盘片
的磁盘存储器。是目前应用最广最具代表性的硬磁盘存储器。
它是一种密封组合式的硬磁盘,即磁头、盘片、电机等驱动部件乃至读写电路等组装成一个不可随意拆卸的整体,叫“头盘组合体”。工作时,高速旋转在盘面上形成的气垫将磁头平稳浮起。优点是防尘性能好,可靠性高,对使用环境要求不高。
1.4 硬盘的信息分布
在硬盘中信息分布是按记录面、圆柱面、磁道、扇区层次安排的。
基本概念:
- 记录面:磁盘片的表面称为记录面(上下两个面都是记录面)
- 磁道:记录面上一系列的同心圆称为磁道
- 柱面:所有记录面上半径相等的磁道构成的集合称为圆柱面(所以圆柱面数 = 磁道数)
- 扇区:将每一个磁道分成若干段,每段称为一个扇区
磁道和扇区的编址:
- 磁道的编址是从外向内依次编号。最里面的一个同心圆叫n磁道,该磁道并不用来记录信息。
- 扇区可连续(交叉因子=1)或不连续编号。因为读一个扇区需一定时间,当读完1号扇区并处理完后,磁头已经滑过2号扇区,需等盘片转一圈才能找到2号扇区,降低传输速率。所以可采用不连续编号。
硬盘的地址格式
驱动器号 | 磁道号(圆柱面号) | 记录面号(磁头号) | 扇区号 |
---|
当存放信息存放不下时先改变记录面号再改变磁道号,因为改变磁道号需要移动磁头,磁头的机械运动会给存取速度带来影响
1.5 磁盘存储器的技术指标
存储密度:磁盘单位面积能记录的二进制信息量
- 道密度:沿磁盘半径方向单位长度上的磁道数
道密度 = 磁道数/存储区域的长度
- 位密度:磁道单位长度上可以记录的二进制代码数(一般位密度指内圈的位密度)
位密度 = 磁道容量/内圈的周长
- 面密度:以上两个的乘积
存储容量:磁表面存储器可以存储的总字节数 非格式化容量 > 格式化容量
- 格式化容量:按特定的记录格式所能存储的信息总量
格式化容量 = 记录面数 × 每面的磁道数 × 扇区数 × 记录块的字节数
- 非格式化容量:磁记录表面可以利用的磁化单元的总数
非格式化容量 = 记录面数 × 每面的磁道数 × 磁道容量
平均寻址时间 = 平均寻道时间 + 平均等待时间
数据传输率:磁表面存储器在单位时间内向主机传送数据的字节数。设磁盘的旋转速度为每秒n转,每条磁道的容量为N个字节,则 数据传输率Dr = nN (B/s)
2. 光盘存储器
光盘存储器是利用激光束在记录表面上存储信息的。和硬盘、软盘相比,光盘具有如下优点:
- 存储密度高:光盘的线密度一般为1000bit/mm,道密度是600~700道/mm
- 数据传输率高:一般数据传输的速度可达每秒几兆至几十兆字节
- 数据保存时间长:光盘的记录介质是封在两层保护膜中的,并且激光存取过程是非接触式的,因此寿命长,数据保存时间一般在10年以上
- 信息位价格低:由于光盘存储密度高,每100Mb信息的成本是1美分
但是到目前为止,光盘的工作速度还低于硬盘,可擦除重写的光盘价格仍较高
光盘分类:
- 只读型光盘(CD-ROM)
- 只写一次型光盘(WORM)
- 可擦写型光盘
光盘中数据存放的形式:光道
信息记录的轨迹称为光道。光道上划分出一个个扇区,它是光盘的最小可寻址单位。扇区的结构如图所示。
ID区的MD为模式控制。用于控制数据区和校验区的使用。共有三种模式:
模式0规定数据区和校验区的全部2336个字节都是0,这种扇区不用于记录数据;
模式1规定288个字节的校验区为4字节的检测码、8字节的保留域和276字节的纠错码。这种扇区有2048字节的数据并有很强的检测和纠错能力,适合于计算机程序和数据。
模式2规定288字节的校验区也用于存放数据,用于保存声音、图像等对误码率要求不高的数据。