一. 存储器概述
分类
按存储介质
- 磁表面存储器(磁盘,磁带)
- 磁芯存储器
- 半导体存储器(MOS型,双极型)
- 光存储器(光盘)
按功能层次
- 主存储器
- 辅助存储器
- 高速缓冲存储器cache
数据交换:
- 主存与Cache:硬件自动完成,对所有程序员透明。
- 主存与辅存:硬件+操作系统,对应用程序员透明。
按存取方式
随机存储器(RAM)
- 任何存储单元均可随机存取,存取时间与存储单元物理位置无关。
- 读写方便,灵活。
- 主要用作主存,Cache。【分为SRAM(静态随机存储器),DRAM(动态随机存储器)两种】
只读存储器(ROM)
- 信息一旦写入就不可变,也是 随机存取。【派生出的ROM可以重写,但是V 写入 < < V 读取 V写入<<V读取V写入<<V读取】
- 断点也不会丢失内容【非易失性存储器】
- 可与RAM共同组成主存部件
【例如:系统安装在硬盘上,引导程序BIOS固化在ROM上】
串行访问存储器
- 读/写操作需要按物理位置先后顺序寻址。
顺序存取 存储器
- 只能按某种顺序存取,T 存取 T存取T存取与物理位置有关。存取速度慢
- 如:磁带。
直接存取 存储器
- 介于 随机存取 与 顺序存取 之间。先寻找存储器中小区域【如磁道】,再在小区域顺序查找。
- 如:磁盘,光盘(CD)等。
按信息保存性
- 易失性存储器:断电则信息消失,如:RAM。【组成主存,cache】
- 非易失性存储器:断电信息不消失,如:ROM,磁表面存储器,光存储器。
- 破坏性读出:读出后原始存储信息被破坏,需要紧接再生操作回复信息。
如:DRAM【使用栅极电容存储电信号作为存储比特位1,读出需要放电】。
- 非破坏性读出:读出后原始存储信息不被破坏。
如:SRAM【使用双稳态触发器(六晶体管MOS)记忆信息,见下节】
性能指标
存储容量
存储容量 = 存储字数 ✖字长(如:1M×8位)
- 存储字数:存储器地址空间大小
- 字长:一次存取操作的数据量
单位成本
每位成本 = 总成本 / 总容量
存储速度
数据传输速率(b/s)= 数据宽度 / 存取周期
- 存取时间(Ta):启动存储器操作 到 完成该操作 用时。【分为 读出时间 ,写入时间】
- 存取周期(Tm):进行一次完整 读/写操作用时。
即连续两次独立访存(读或写操作)之间最小时间间隔。
- 主存带宽 (Bm):即数据传输速率(word/s,B/S,b/s)
多级层次存储系统
CPU | 速度最快 | 容量最小 | 价格最高 |
寄存器 | |||
Cache | |||
主存 | |||
磁盘 | |||
磁带 ;光盘 | 最慢 | 最大 | 最便宜 |
二. 主存储器
- 存储元:存放一个二进制位的物理器件。存储器最基本构件。
- 存储单元 :多个地址码相同的存储元构成。
- 存储体:若干存储单元的集合。
SRAM芯片与DRAM芯片
半导体存储器:
- 随机存储器(RAM):易失性。
- 只读存储器(ROM):非易失性。
SRAM
静态随机存储器(Static Random Memory):Cache主要部件。
- 工作原理:使用双稳态触发器(六晶体管MOS)记忆信息。非破坏性读出,不需要再生。
- 特点:存取速度快,集成度低,功耗大,价格贵。一般用于高速缓存存储器Cache。
双稳态:
0:A高B低; 1:A低B高
DRAM
动态随机存储器(Dynamic Random Memory):主存储器主要部件。
- 工作原理:使用存储电路中栅极电容的电荷来存储信息。通常只用一个晶体管,集成度高。破坏性读出,需要充电再生。
- 特点:集成度高,价格低,功耗低。存取速度慢,必须定时刷新再生。一般用于大容量主存系统。
刷新与再生:
- 刷新:以行为单位,逐行恢复所有数据。
- 再生:仅仅恢复读出单元的数据。
DRAM刷新
需要刷新的存储芯片:DRAM类型。如:SDRAM芯片。
原理:DRAM电容的点和一般只能维持1~2ms,即使不断电也会消失。
特点:
- 不依赖外部访问,刷新对CPU透明。
- 刷新单位:行。【芯片内部自行生成行地址】
- 不需要选片。【即所有芯片同时刷新】
刷新周期:对同一行相邻两次刷新的时间间隔,通常取2ms.
刷新方式:
- 1)集中刷新:在一个刷新周期内,利用固定时间对所有行逐一再生。期间停止对存储器的读/写操
作,死时间(访问死区)
- 2)分散刷新:
将存储器的工作周期分为两部分
- 前半部分:正常读写操作
- 后半部分:刷新
- 特点:增加了系统存取周期;没有死区。
- 3)异步刷新
一个刷新周期内,一行只刷新一次。
相邻两行的刷新间隔 t = 刷新周期 / 行数。分散了“死时间”的分布,避免CPU等待过长。
SRAM与DRAM对比
注意:DRAM芯片地址线复用,需要的地址线数比正常减半。
【第一次送存储单元的行地址,然后送列地址(或相反)】