第五章 存储器系统
1.存储器件的分类
- 按存储介质分:
- 半导体存储器(RAM,ROM)
- 磁介质存储器(磁带、软磁盘和硬盘)
- 光介质存储器(光盘)
- 按读写策略分:
- 数据访问传送方式分类:
- 并行存储器
- 串行存储器
- 数据存取顺序分类:
- 随机存取存储器
- 顺序存取存储器(先进先出)
- 堆栈存取存储器(先进后出)
- 数据访问传送方式分类:
2.半导体存储器的基本结构与性能指标
2.1 基本结构
习惯上,人们把易失性半导体存储器统称为随机存储器(RAM),把非易失性半导体存储器统称为只读存储器(ROM)。
- 随机存储器
- SRAM(静态随机访问存储器):由双稳态锁存器构成,双稳态锁存器有两个稳定状态,以此来存储一位二进制信息。
- DRAM(动态随机访问存储器):由一个NMOS管和一个电容构成,通过电容C存储电荷来保存信息。由于存在电荷泄漏,所以需要周期性的对电容充电,即”刷新“。
- 只读存储器(掉电不丢失,不可修改写入)
- 掩膜ROM(MROM)
- 一次性可编程ROM(OTP ROM)
- 可擦除可编程的ROM(EPROM)
- Flash:读写速度快且掉电不丢失。在功能上相当于RAM,在原理上属于ROM型存储器。
2.2 性能指标
- 存储容量
- 存取速度
- 功耗
- 可靠性
3.存储系统的层次结构
现代计算机系统通常把各种不同的存储容量、存取速度和价格的存储器按照一定的体系组成多层结构,并通过管理软件和辅助硬件有机合成统一的整体,使所存放的程序和数据按层次分布在各种存储器中,以解决存储容量、存取速度和价格之间的矛盾。
3.1 存储系统的分页管理
- 局部性
- 引用局部性:指的是程序会访问最近访问过的数据和指令
- 时间局部性:指的是访问一个数据之后,很可能在不久的将来再次访问该数据
- 映像规则
- 直接映像:每一块(页)只能被放到唯一的一个指定位置。
- 全相联映像:允许人一块(页)放在存储器的任意位置。
- 组相联映像:把块(页)分组,不同组的块(页)对应不同的映像位置,而同组的块(页)可以放在相应映射组内的任意位置。
- 查找规则:索引查找
- 替换规则
- 先进先出法(FIFO):替换最早调入的块
- 最近最少使用法(LRU):替换最久未访问块
- 随即替换算法(RAND):随机替换组内的一个块
- 更新规则
- 标志交换法:CPU向上层存储器写入,并加以标记注明,直到经过修改过的字块从上层存储器中被替换出来时采真正写回下层存储器。
- 写直达法:CPU发出的写信号同时送到相邻的两层,保证上下两层中的相同数据能同步更新。
- 回写法:数据写到上层存储器中并设置一个修改标志,当该数据需要再次被更改时才将原更新的数据写入下层存储器,然后再接受再次更新的数据。
3.2 虚拟存储器和地址映射
- 虚拟内存技术:早期计算机内存小价格贵,为了将较大的程序存入内存,程序员就把程序分成许多能装入内存的较小片段,即覆盖段。程序员的工作不仅是划分覆盖段,还需要决定覆盖段保存在外存的位置,并安排覆盖段在内存和外存之间的调度。而“虚拟内存”技术则可以将程序员从大量繁琐的管理工作中解放出来,使其自动执行覆盖过程。
“虚拟内存”技术的最终目的是利用次级存储器来扩展物理存储器的容量。该机制掩盖了下层存储器的物理细节,向上提供了一个克服物理存储器和物理寻址方案局限性的地址空间和存储器存取方案。 - 分层存储系统使用“虚拟内存”技术来实现相邻层之间的数据调度。其主要思想是将虚拟地址空间和物理地址空间分离,并通过存储器管理单元(MMU)使用地址映射表来完成两者之间的映射关系。
3.3 现代计算机的多层次存储体系
- 大多数现代计算机采用三级存储系统:cache+主存+辅存。这种结构主要由以下两部分组成:
- cache存储器系统(cache—主存层次)
一般来说,CPU与主存之间的速度相差一个数量级。为了弥补主存的不足,现代微机在两者之间设置一级或多级cache。这样一来,cache存储器系统存取速度接近cache的存取速度,而容量和每位存储的平均价格却接近主存。主要解决了高速度和低成本之间的矛盾。 - 虚拟存储器系统(主存—辅存层次)
辅存有价格低廉可长时间保持数据的特点。因此辅存一般用来放暂时不用的程序和数据,延续主存空间。这样一来,主存—辅存层次的存取速度接近主存的存取速度,而容量和每位存储的平均价格却接近辅存。主要解决了大容量和低成本之间的矛盾。
- cache存储器系统(cache—主存层次)
4.主存储器设计技术
(重点是译码电路的设计和地址的分配)
4.1 存储器地址分配原则
- 字扩展:把多组存储器芯片互连,挂接在同一总线上。
- 位扩展:把多个存储器芯片互连,挂接在不同的总线上。
4.2 译码电路设计方法
- 固定地址译码
- 全译码:所有未参与字选的高位地址全部参加译码,以形成片选信号
- 部分译码:只选用一部分高位地址线用于译码,产生片选信号
- 线译码:使用单独的地址信号线作为片选信号
- 可变地址译码:接口采用比较器或地址开关
4.3 存储器接口设计
- 存储总线
注意:存取速度、串行还是并行总线、总线负载和时序匹配 - 总线隔离
注意:驱动器和缓冲器实际上是同类器件,主要作用是在输出端增强驱动能力,在输入端减轻负载。