按存储介质分类:
半导体存储器 :分为TTL、MOS (断电信息易失)
磁表面存储器:磁头、载磁体 (非易失)
磁芯存储器:硬磁材料、环状元件 (非易失)
光盘存储器:激光、磁光材料 (非易失)
实际上是三类:半导体、磁、光
按存取方式分类:
存取时间与物理地址无关(随机访问)
(随机访问)
存取时间与物理地址有关(串行访问)
(串行访问)
按在计算机中的作用分类:
存 储 器 { 主 存 储 器 { 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磁盘、磁带、光盘
对存储器的要求是容量大、速度快、成本低,但是在一个存储器中要同时兼顾这三个方面是困难的。为了解决这方面的矛盾,目前在计算机系统中,通常采用多级存储器体系结构,即使用高速缓冲存储器CACHE、主存储器和辅助存储器三级结构,如图所示。其中磁盘、磁带、光盘为辅助存储器。
主存-辅存层次:为了解决容量问题
缓存-主存层次:为了解决速度问题
主存-辅存:虚拟存储器,地址空间为虚地址(即逻辑地址)
缓存-主存:主存储器,(实际上缓存是按内容查找)用到的地址为实地址(即物理地址)
主存的基本组成有存储体、MAR、MDR、译码驱动电路、读写控制电路
现在的存储芯片没有MAR、MDR;MAR、MDR放在了CPU里
不同的机器存储字长不同,为了满足字符处理的需要,常用8位进制数表示一个字节,因此存取字长都取8的倍数
大端模式
小端模式
存储容量
存储速度 存取周期 > 存取时间 (因为存取周期还包括恢复时间)
存储器带宽:单位时间内写入存储器或者从存储器读出信息的最大数量
存 储 带 宽 = 存 储 字 长 存 取 周 期 存储带宽=\frac {存储字长}{存取周期} 存储带宽=存取周期存储字长
提高存储器带宽的措施: (1)缩短存取周期 (2)增加存储字长 (3)增加存储体
线选法:
地址译码器只有一个,其输出叫字选择线,选择某个字的所有位。
结构简单,只适用于容量不大的存储芯片。
重合法
地址译码器分为X和Y两个译码器。
适用于容量较大的存储芯片。
静态RAM芯片举例:
Intel 2114 容量:1k×4 内部存储矩阵:64×64
常见的动态RAM基本单元电路有三管式和单管式两种,图中左边为三管式,右边为单管式
动态RAM芯片举例:
三管动态RAM Intel 1103 容量:1k×1 内部存储矩阵:32×32
单管动态RAM 4116 容量:16k×1 内部存储矩阵:128×128
因为动态RAM靠电容存储电荷的原理来寄存信息,电容上有电荷表示1,无电荷表示0。 而电容上的电荷一般只能维持1-2ms,所以即使电源不掉点,信息也会自动消失,因此必须在2ms内对其所有存储单元恢复一次原状态,这个过程叫再生或刷新。
刷新过程的实质是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程。在一定时间内,对动态RAM的全部基本单元电路作一次刷新,这个时间叫做刷新周期(再生周期)。
集中刷新:在规定的刷新周期内,对全部存储单元集中一段时间 逐行 进行刷新。
缺点:这种刷新方式存在“死区”。
分散刷新:把对每行的刷新分散在每个读写周期内完成。
缺点:刷新过于频繁;虽然不存在死区,但是存取周期时间变长(分散刷新里的一个存取周期包含一个读写周期和刷新一行所用的时间),不能提高工作效率
异步刷新:分散刷新与集中刷新相结合,既克服出现“死区”,又充分利用最大刷新间隔为2ms的特点
集中刷新和异步刷新的刷新周期都是2ms,
分散刷新的刷新周期是:行数 × (读写周期+刷新一行所需时间)
掩模ROM (MROM):行列选择线交叉处有MOS管为“1”,无MOS管为“0”。
MROM制成后不可能改变原行、列交叉处的MOS管是否存在,用户无法改变原始状态,所以只能读不能写
PROM (一次性编程):熔丝断为“0”,未断为“1”。
已断的熔丝无法恢复,所以这种ROM只能实现一次性编程,不能多次修改
EPROM (多次性编程 ) :价格便宜 、集成度高
EEPROM (多次性编程 ) :电可擦写、局部擦写、全部擦写
Flash Memory (闪速型存储器) :价格便宜 、集成度高,电可擦写,具备RAM功能
字扩展增加了存储单元的个数,只在字的方向上进行扩充,而位数不变。
字扩展采用简单译码器或专用译码器进行扩展,常用的专用译码器有:
2:4线译码器74139、3:8线译码器74138、4:16线译码器4067 等
CPU与存储器的连接要注意:
CPU与存储器连接习题的答题步骤:
随着计算机领域的不断扩大,处理的信息越来越多,对存储器的工作速度和容量要求就越来越高。此外,CPU的功能不断增强,I/O设备的数量不断增多,导致主存的存取速度成为计算机系统的瓶颈,因此,提高访存速度已经成为迫不及待的任务。
本节讲 调整主存结构
单体多字系统:增加存储器的带宽
特点:由于程序和数据在存储体内是连续存放的,因此CPU访存取出的信息也是连续的,在一个存取周期内可按地址读出4×W位的指令或数据,使主存带宽提高到4倍。但是采用这种办法的前提是:指令和数据在主存内必须是连续存放的,一旦遇到转移指令,或者操作数不能连续存放,这种办法的效果不太明显。
多体并行系统就是采用多体模块组成的存储器。每个模块有相同的容量和存取速度,各模块各自都有独立的地址寄存器、数据寄存器、地址译码器、驱动电路和读写电路,它们能并行工作也能交叉工作。并行工作即同时访问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和主存之间的速度不匹配问题。
CPU读主存时,便把地址同时送给Cache和主存,Cache控制逻辑依据地址判断此字是否在Cache中,若在此字立即传送给CPU ,否则,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。
Cache的设计依据是程序访问的局部性原理
通过大量典型程序的分析,发现CPU从主存取指令或取数据,在一定时间内,只是对主存局部地址区域的访问。这是由于指令和数据在主存内都是连续存放的,并且有些指令和数据往往会被多次调用,即指令和数据在主存的地址分布不是随机的,而是相对的簇聚,使得CPU在执行程序时,访存具有相对的局部性,这就称为程序访问的局部性。
因为 主存的块数 >> 缓存的块数,所以存在命中与未命中的情况。
命中率:指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%
写操作:
- 增加Cache的级数
- 统一缓存与分立缓存
直接映射是一种多对一的映射关系,但一个主存块只能映射到Cache的一个特定块位置上去。
Cache的第 i 块和主存的第 j 块有如下函数关系:
i = j mod m (m为Cache的总块数)
优点:硬件实现简单,成本低。只需利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中。
缺点:不灵活,存在Cache有空行而不能存数据块的问题,即造成替换频繁,效率下降,降低了命中率。
直接映射适合需要大容量Cache的场合(更多的行数可以减少冲突的机会)。
全相联映射只是一个理想的方案,原因有二:
优点:灵活,Cache的命中率高。
缺点:与直接映射相比,Cache标记的位数增多、比较的次数也增多。速度较慢,成本较高(比较器电路难以设计和实现)。
全相联映射适用于小容量的Cache。
主存和Cache都分组,主存中一个组内的块数与Cache中的分组数相同。组间采用直接映射,组内采用全相联映射。
组相联映射的特点:
n路组相联:
主存中的一块能对应到Cache中的一个特定组中的任意一块上。若组中有n个块,则称其为n路组相联
直接映射和全相联映射都是组相联的特例
直接映射是:1路组相联
直接映射是:m路组相联
当新的主存字块需要调入Cache,而Cache中可用位置又被占满时,就产生替换算法问题。
直接映射方式不存在替换算法,因为每个主存块的映射位置都是固定的。替换算法主要是针对全相联映射和组相联映射。
辅助存储器的特点:
辅助存储器主要有: 磁表面存储器和光盘存储器
磁表面存储器是利用某些磁性材料来存储信息。磁盘存储器、磁带存储器均属于磁表面存储器。
读写原理:
磁层上被磁化的小区域,称为磁化单元。
信息的记录方式:
是一种编码方法,把待写入的二进制信息按照某种规律变成对应的脉冲序列,这种写入电流波形的组成方式称为记录方式
常见的记录方式
:归零制(RZ)、不归零制(NRZ)、见1就翻的不归零制(NRZ1)、调相制(PM)、调频制(FM)、改进调频制(MFM)
信息的还原:
无论采用哪一种磁记录方式,从读出线圈读出的信号都需要经过一些变换、选通才能还原成写进去的信息
根据磁盘的盘体材料可分为硬磁盘和软磁盘,本节将介绍硬磁盘存储器。
硬磁盘存储器的分类:
- 根据磁头是否与盘面接触可分为:接触式磁头(结构简单、价格低廉,多用于软盘)、浮动式磁头(主要应用于各类硬盘)
温彻斯特磁盘:
温彻斯特磁盘简称温盘,是一种可移动磁头固定盘片
的磁盘存储器。是目前应用最广最具代表性的硬磁盘存储器。
它是一种密封组合式的硬磁盘,即磁头、盘片、电机等驱动部件乃至读写电路等组装成一个不可随意拆卸的整体,叫“头盘组合体”。工作时,高速旋转在盘面上形成的气垫将磁头平稳浮起。优点是防尘性能好,可靠性高,对使用环境要求不高。
在硬盘中信息分布是按记录面、圆柱面、磁道、扇区层次安排的。
基本概念:
磁道和扇区的编址:
硬盘的地址格式
驱动器号 | 磁道号(圆柱面号) | 记录面号(磁头号) | 扇区号 |
---|
当存放信息存放不下时先改变记录面号再改变磁道号,因为改变磁道号需要移动磁头,磁头的机械运动会给存取速度带来影响
存储密度:磁盘单位面积能记录的二进制信息量
道密度 = 磁道数/存储区域的长度
位密度 = 磁道容量/内圈的周长
存储容量:磁表面存储器可以存储的总字节数 非格式化容量 > 格式化容量
格式化容量 = 记录面数 × 每面的磁道数 × 扇区数 × 记录块的字节数
非格式化容量 = 记录面数 × 每面的磁道数 × 磁道容量
平均寻址时间 = 平均寻道时间 + 平均等待时间
数据传输率:磁表面存储器在单位时间内向主机传送数据的字节数。设磁盘的旋转速度为每秒n转,每条磁道的容量为N个字节,则 数据传输率Dr = nN (B/s)
光盘存储器是利用激光束在记录表面上存储信息的。和硬盘、软盘相比,光盘具有如下优点:
但是到目前为止,光盘的工作速度还低于硬盘,可擦除重写的光盘价格仍较高
光盘分类:
光盘中数据存放的形式:光道
信息记录的轨迹称为光道。光道上划分出一个个扇区,它是光盘的最小可寻址单位。扇区的结构如图所示。
ID区的MD为模式控制。用于控制数据区和校验区的使用。共有三种模式:
模式0规定数据区和校验区的全部2336个字节都是0,这种扇区不用于记录数据;
模式1规定288个字节的校验区为4字节的检测码、8字节的保留域和276字节的纠错码。这种扇区有2048字节的数据并有很强的检测和纠错能力,适合于计算机程序和数据。
模式2规定288字节的校验区也用于存放数据,用于保存声音、图像等对误码率要求不高的数据。