存储系统
层次化存储结构
1 | 从上到下速度越来越慢,容量越来越大 |
局部性原理是层次化存储结构的支撑
- 时间局部性 刚被访问的内容,立即又被访问(如循环体)
- 空间局部性 刚被访问的内容,临近的内容很快会被访问(顺序执行)
存取方式
按内容存取
相联存储器(如Cache)
按地址存取
随机存取存储器(如内存)
顺序存取存储器(如磁带)
直接存取存储器(如磁盘)
工作方式
随机存取存储器RAM,掉电会丢失,如内存RAM
内存中用的是DRAM,
DRAM集成率相对较高,功耗高,需要动态刷新
SRAM集成率相对较低,功耗低,不需要动态刷新
只读存储器,掉电不会丢失,如BIOS
EEPROM在断电情况下仍能保持所存储的数据信息,数据删除以字节为单位
闪存是电子可擦除只读存储器(EEPROM)的变种,数据删除是以固定区块为单位的,比一般的EEPROM更新速度更快,通常被用来保存设置信息
内存
内存指的是计算机的主存储器,简称主存,主存通过控制芯片等与CPU相连,主要负责存储指令和数据。
分为两类
- 随机存储器 RAM
- 只读存储器 ROM
高速缓存Cache
由于CPU和内存之间的速度相差较大,两者之间还有一个高速缓存。
高速缓存地址映像方式
地址映像是将主存和cache的存储空间划分为若干大小相同的页或者块。
如 主存容量为1G,划分为2048页,每页512K,Cache容量为8M,划分为16页,每页512K
直接相联映像 硬件电路较简单,但冲突率最高。也就是在将主存划为2048/16 = 128个区域,每个区域为16页,主存的块与Cache块的对应关系是固定的
全相联映像 电路难于设计和实现,只适用于小容量的cache,冲突率较低。允许主存的任一块可以放到Cache任意页的位置,冲突率低
组相联映像 直接相联和全相联的折中,在直接相联的区的基础上又加入了组,组内可以全相联,组之间直接映射,降低了冲突率
主存和cache之间的地址映射由硬件直接完成
高速缓存的替换策略
- 随机算法
- 先进先出算法FIFO(使用队列)
- 最不经常使用算法LFU (需要额外空间记录使用频率)
- 最近最少使用算法LRU(一般使用双向链表实现)