第三章 存储系统
存储系统基本概念
存储器的层次化结构
各层存储器的速度与价格
存储器的分类–层次
存储器的分类–存储介质
存储器的分类–存取方式
- CAM是按照内容进行检索存储位置
- RAM SAM DAM是按地址进行访问
存储器的分类–信息的可更改性
存储器的分类–信息的可保存性
存储器的性能指标
知识点小结
主存储器的基本组成
基本的半导体远见及原理
- 一个存储体有多个存储单元构成,一个存储单元有多个存储元,一个存储元可以存储一位二进制数
- MOS管相当于开关,给高电平可以导通电路;
- 电容可以存储电荷,导通MOS管以后,可以读出电容里的电荷,也可以给电容高电平存储电荷
- 多个存储元合理的连接以后,可以同时读出或写入多个二进制数据
- 图中,一根红线控制一行的MOS管,绿线可以读取电容电荷,这样可以一次性读取一整行的存储元信息
- 这就是为什么存储体一次只能读或写一个存储字,因为一次控制一个字的存储元,因为他们的MOS共同连通
- 区别存储字和字节,一个字节8比特,一个存储字有多少字节看实际情况
存储器芯片的基本原理
- MAR发来n位二进制地址后,译码器可以对应2的n次方根字选线,每个字选线对应一个存储单元(存储字)
- 读取一个存储元的数据后,经过数据线(位线),有MDR保存,再由数据总线由CPU读取
存储器芯片的基本原理–进一步完善
- 增加控制电路
- 控制电路可以稳定MAR输出的地址信息,译码器才可以打开开关;同理MAR输出信号也需要控制电路进行稳定
- 片选线用来控制当前的存储芯片是否有效,低电平有效,因为实际情况会有多个存储芯片
- 读/控制线,用来控制当前是读还是写;分别用两根控制,则低电平表示允许读或允许写,若一根控制,则用高低电平表示读和写
存储器芯片的基本原理–整体上看
- 译码驱动包含了译码器和驱动器,驱动器用来确保译码器输出的电信号稳定可靠
- 一个内存条可能包含多块存储芯片,片选线用来决定哪块芯片在工作
- 每块存储芯片都会对外暴露金属引脚,
- 考试常考,已知存储芯片的某些参数信息,让判断存储芯片的引脚数目至少多少
- 常见的存储芯片容量的描述,几乘几位,第一个数是存储单元个数,第二个数是每个存储字的位数
寻址
- 图中,总容量1KB,地址线10根,2的10次方个地址刚好满足1KB的寻址
- 图中表示一个存储字为4字节
- 现代计算机都按字节进行编址,并且可以实现按字节,字,半字,双字寻址,
- 因此需要实现按字节,字,半字,双字寻址的转化
- 已知字节地址,求这里的存储字地址,除以4,也就是将字节地址二进制数算数左移两位;半字,双字同理
SRAM和DRAM
高频考点:二者对比
DRAM芯片
- 上节课介绍的就是DRAM芯片
- DRAM和SRAM核心区别,存储元不一样
栅极电容和双稳态触发器
- 触发器具体原理参考《数字电路》
- 为什么叫双稳态触发器,因为他可以呈现出两种稳定的状态,A高B低对应1,A低B高对应0,需要两根数据线读出当前状态
- 当红线打开开关后,BL和BLX哪边出现低电平,则读出的就是哪边的数据
- 需要写入时,给左边BL低电平,右边BLX高电平,则写入0,反之同理
- 栅极电容读信息是破坏性读出,读出后还需要重写操作,再生,
- 双稳态读出数据后,非破坏性,无需重写,因此双稳态读写速度更快
- 栅极电容存储更节省元器件,节省空间,存储密度可以更高,功耗更低
- 二者断电都会丢失信息,易失和破坏性读出要区分开
刷新
- 栅极电容存储电荷会慢慢消失,需要定期刷新,给电容充电
- 双稳态不用,只要通电,状态不会改变
DRAM刷新
- 译码器将n位地址转换为选通线2的n次方个,连接每个存储单元,这样不容易实现
- 改成行和列的地址译码器,存储单元编程矩阵排布,行列地址译码器分别对应n/2位地址,分别对应2的n/2次方个选通线
- 每个选通线对应一行或一列存储单元,行选通线和列选通线共同确定出一个存储单元
- 每次刷新一行存储单元,指的就是行地址译码器对应的一行
- SRAM也有行列地址线,只不过不需要刷新
如何刷新,什么时候刷新
- 分散刷新和集中刷新不可取,应该采用异步刷新,异步刷新也可以利用CPU不需要访问存储器的时候进行刷新
- 考试如果没有明确给出刷新周期,就默认为2ms
- 刷新由存储器独立完成,不需要CPU控制
DRAM的地址线复用技术
- n位地址,在传信息给行列地址译码器之前可以使用n/2跟地址线,先分别传过来行地址和列地址,分别存储到地址行列缓冲器中
- 然后再分别发送给地址译码器,这样使得DRAM对外的引脚更少,因为对外的只有n/2个地址线
- DRAM因为存储密度大,存储容量大,地址线多,所以可以采用这样的方法分别送地址
- SRAM因为集成度低,存储容量小,地址线少,用n跟地址线直接传送信息即可
- 考试时如果计算DRAM引脚数量问题,需要考虑到地址引脚减半的情况
- DRAM已经过时了,目前采用SDRAM(DDR3 DDR4)
知识点小结
只读存储器ROM
各种ROM
- 结合英文全称记忆各种ROM的名称,各种ROM的名称和作用可能做选择题考察
- 虽然闪存芯片可擦除重写,但是还是叫他ROM
计算机内的重要ROM
- 开机时主存里还没有数据,CPU需要从主板上的BIOS芯片(ROM芯片)读取自举装入程序,根据这段程序的指引,读取辅存中的操作系统的相关数据给主存,引导开机
- 逻辑上,BIOS芯片也看做主存的一部分,二者统一编址,
知识点小结
主存储器与CPU的连接
单块存储芯片与CPU的连接
- 扩展主存的字数,字扩展
- 尽可能让数据总线的宽度不被浪费
- 现在的计算机通常把MAR和MDR集成在CPU内部了,存储芯片中的寄存器只是普通的寄存器
- 且现在的计算机内存通常也是由多块存储芯片组成
存储器芯片的输入输出信号
- 注意看命名的缩写,带横线的是低电平有效
增加主存的存储字长–位扩展
- 假设8K*1位,则对应2的13次方个1位的存储单元,需要13个地址线
- 8个1位存储芯片,每个芯片连接数据总线的1位,对外看起来就像一个8K*8位的存储器一样
- CPU发出的地址信息A0-A12都会同时发给8个芯片
增加主存的存储字数–字扩展
- 假设一块存储芯片是8K*8位,CPU也是数据总线8位,因此不需要位扩展
- 但是CPU地址总线比存储芯片的地址线数量多,可以结合片选线进行存储芯片的字扩展
- 为了不让存储芯片之间相互干扰,一次只能控制一根片选线对应一个存储器
- 如果一根专门的地址线对应一个存储器,n条多余的地址线只能对应n个选片信号,浪费资源
- 可以对A13加非门,这样1根地址线可以控制2个存储芯片,这个扩展电路设计可以理解为增加了一个1-2译码器
- 进一步优化,对CPU多余地址线连接译码器,n条线可以对应2的n次方个选片信号
主存容量扩展–字扩展
- 注意,图中的A0-A12应该是分别连接到存储芯片的,这里是为了不让图片太乱,连接了起来
- 有小圆的一端表示低电平有效
- 两根多余的地址线A13 A14可以对应4个存储芯片,且地址A0-A13可以充分利用,合法地址都是连续的
- 也可以将A13-A15连接成3-8译码器,对应8个存储芯片
考试出题可能会这样考
- A13和A15连接译码器,A14随便
- 图中的第一个存储芯片给的四行地址意思是(容易迷惑人,不是只代表四行),A13-A15片选线部分为000时,地址部分A0-A12可以取全0到全1,A13-A15部分为0