引言
分类
按在计算机中的层次分类
- 主存储器:存放计算机运行时所需的大量程序和数据,CPU可直接对其进行访问
- 辅助存储器: 存放当前暂时不用的程序和数据,CPU不能直接访问
- 高速缓冲存储器:主存和CPU之间,cache的存取速度可以与CPU匹配,通常制作在CPU中
按存取方式分类
- 随机存取器(RAM):存取器的任何一个单元都可以随机存取,存取时间与存储单元的物理位置无关用作主存和cache,分为SRAM和DRAM
- 只读存储器(ROM)。只能随机读出不能写入,即使断电内容也不会丢失,与随机存储器一起作为主存的一部分
- 串行访问存储器。对储存单元进行读写操作时,需按其物理地址的先后顺序进行寻址
SRAM和DRAM
SRAM的工作原理
静态随机存储器的存储单元是六管MOS来记忆信息,因此即使信息被读出后,它仍然保持其状态而不需要在生(非破坏性读出),但是只要电源被切断,原来保存的信息就会消失,做cache
DRAM的工作原理
引
动态随机存储器是利用存储元电路中的栅极电容上的电荷来存储信息的,常见DRAM的基本存储电路通常分为三管式和单管式。DRAM采用地址复用技术,地址线是原来的1/2且地址信号分行,列两次传送。
刷新
DRAM保存的信息会自动消失,为此,每隔一段时间必须刷新,三种刷新方式
- 集中刷新: 在一个刷新周期内,利用一段固定的时间,依次对存储器的所用行进行逐一再生,再此期间停止对存储器的读写操作(死时间,死区),系统的存取速度较高
- 分散刷新:把每行的刷新分散到各个工作周期中,这样一个存储器的系统工作周期分为两个部分(前部分用于正常读,写或保持,后半部分用于刷新某一行)增加了系统的存取周期 无死区
- 异步刷新:将刷新周期除以行数,得到两次刷新操作的时间间隔T,利用逻辑电路每隔时间T产生一次刷新操作
比较
| 特点 | SRAM | DRAM |
|---|---|---|
| 存储信息 | 触发器 | 电容 |
| 破坏性读出 | 非 | 是 |
| 需要刷新 | 不要 | 需要 |
| 送行列地址 | 一次 | 分两次 |
| 运行速度 | 快 | 慢 |
| 集成度 | 低 | 高 |
| 发热量 | 大 | 小 |
| 存储成本 | 高 | 低 |
| 主要用途 | 高度缓冲 | 主机内存 |
cache
引
- 提:在主存和CPU之间插入一级或多级SRAM组成的高速缓冲存储器。
- 作用: 解决CPU和主存速度不匹配问题
- 特性:具有空间局部性和时间局部性
- 组成: SRAM和控制逻辑。如果cache在CPU外,他的控制逻辑一般和主存控制逻辑合成在一起称为主存/cache控制器,若在CPU内,则由CPU提供他的控制逻辑
- CPU和cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位组成,一个块是由若干字节组成(定长)
- cache的命中率:为了使主存的平均读出时间尽可能接近cache的读出时间,cache命中率应接近1
地址映射
为了把主存块放到cache中,必须应用某种方法把主存地址定位到cache中,称为地址映射
- 全相联映射:主存的一个子块能够映像到整个cache的任何一个子块
- cache 利用率高
- 地址转换速度慢
- 采用某种置换算法将页面调入调出,实现起来系统开销大
- 直接相联映射:主存的一个子块仅仅能映像到cache的一个准确确定的子块中
- 方式直接,利用率低
- 成本低,命中率低,效率低
- 组相联映射:
替换算法
先进先出
- 把最早调入cache的字块进行替换,他不需要记录各字块的使用情况
- 未根据访存的局部性原理,故不能提高cache的命中率,因为最早调入的信息以后可能还要用到
近期最早使用LRU
- 将近期内长时间未被访问过的行换出。每行设置一个计数器,cache每命中一次,命中行计数器清零,其他行计数器加1
- 可提高cache的命中率
最不经常使用LFU
- 将一段时间内被访问次数最少的那行数据换出,每行设置一个计数器,新调入行的数据从0开始技术,每访问一次计数器加一
- 无法严格反映近期访问情况
虚拟存储器
含义
给用户提供一个存储容量比实际主存大得多得存储器,用户无需考虑所编程序在主存中是否放得下或放在什么位置。称这种存储器为虚拟存储器
术语
- 实地址:计算机物理内存访问的地址,对应的存储空间:逻辑地址空间
- 虚地址:用户编制程序时使用的地址(由编译程序生成),对应的存储空间:物理地址空间
- 程序从虚地址到实地址的转换过程称为程序的重定位
- chache主要接近主存和cpu速度不匹配问题,虚存主要解决存储容量问题
虚拟存储器
- 页式虚拟存储器
- 段式虚拟存储器
- 段页式虚拟存储器

