存储器
随机访问存储器
RAM(随机存储器)
SRAM
双稳态触发器,有电就保持不变,干扰消除后时会恢复到稳定值,晶体管多因此密集度低
DRAM
每个位存储为对一个电容的充电,对干扰敏感,漏电所以需要刷新
刷新:
- 集中刷新:产生“死区”
- 分散刷新:没有死区
- 异步刷新:结合
- 以行为单位,不需要“选片”,对CPU透明,一次刷新占用一个周期
SRAM & DRAM
都易失(关电后信息丢失)
ROM(只读存储器)(非易失性存储器)
- MROM(掩模式ROM):无法更改内容
- PROM(可编程ROM):熔丝,1次可编程
- EPROM(可擦写可编程ROM):1000次
- EEPROM(电子可擦除PROM):100000次
- Flash:“晶体管浮体”保存电荷
- 闪存:基于EEPROM和Flash技术,用MOS管的浮栅上有无电荷来存储信息
- SSD(固态硬盘):基于闪存技术,由存储单元(闪存芯片)和控制单元(闪存翻译层)组成
- U盘:基于闪存技术,只是不如SSD容量大性能好
G.P.T:未格式化的硬盘容量要大于格式化后的实际容量
串行访问存储器
- 顺序存取存储器:磁带
- 直接存取存储器:磁盘、光盘
磁盘
构造:
容量:
操作:
- 寻道时间:传动臂移动到模目标磁道
- 旋转时间:等待目标扇区的第一个位旋转到读/写头下
- 传送时间:读写的过程(与旋转速率、每条磁道的扇区数有关)
性能指标
存储器容量为32K X 16位,则地址线32K->15根,数据线16根
多模块存储器
单体多字存储器
指令和数据必须连续存放
多体并行存储器
高位交叉编址(顺序方式):总是先在一个模块内访问,仍是顺序存储器
低位交叉编址(交叉方式):流水线方式并行存取
存储器层次结构
缓存不命中:
- 冷不命中/强制性不命中:缓存是空的,短暂事件
- 冲突不命中(抖动):对象映射到同一个缓存块,一直不命中,反复加载和驱逐相同高速缓存块的组
- 容量不命中:缓存太小,不能处理这个工作集
主存与CPU的连接
通过存储器芯片拓展技术,将多个芯片集成在一个内存条
主存容量的拓展
- 位拓展法
8片8K X 1位的RAM芯片组成8K X 8位的存储器
每片的数据线依次作为CPU数据线的一位
每片连接地址线A0—A12的方式相同,地址线连在一起
某一时刻选中所有芯片,片选线CS连在一起
- 字拓展法
4片16K X 8位的RAM芯片组成64K X 8位的存储器
每片连接地址线和数据线的方式相同
数据线D0—D7连在一起,A15A14作为片选信号
同一时间只选中一个芯片
- 字位同时拓展法
片选和自选
片选:CPU要实现对存储单元的访问,首先要选择存储芯片
- 线选法:寻址时地址线只能一位有效
- 译码片选法:二进制编码
字选:为选中的芯片按地址码选择相应的存储单元,以进行数据的存取
局部性原理
时间局部性:不久,该内存位置本身再被引用
空间局部性:不久,附近的内存位置被引用
运用局部性的设计:
- 缓存系统:存储经常访问的数据,减少对主存储器的访问
- 虚拟内存系统:执行过程中只会使用部分内存页面,这些页面通常都是相邻的
- 磁盘调度算法:FIFO、最短寻道时间优先、电梯算法等,优先访问磁盘上相邻的数据块
- 分支预测技术:分支通常重复执行
Cache(高速缓存存储器)
由SRAM构成
CPU与Cache之间的数据交换以字为单位,Cache与主存之间的数据交换以Cache块为单位
高速缓存的描述:(S,E,B,m) ,容量C=S X E X B
m位物理地址被划分为1个有效位、t个标记位、s个组索引位、b个块偏移位
- 有效位:该行是否包含有意义的信息
- 标记位:唯一标识存储在这个行中的块
组选择、行匹配、字抽取
- 直接映射:E=1,每组仅一行
- 级相联:1<E<C/B
- 全相联:E=C/B,仅一组(虚拟内存系统的TLB)
写操作
- 直写:立即把w的cache块写到低一层
- 写回:要驱逐这个块时才写到低一层
写不命中
- 写分配:加载较低一层的块到cache,更新这个cache块
- 非写分配:直接写到较低一层