存储系统
一、主存简单模型及寻址的基本概念
- 多个存储元构成存储单元
- 多个存储单元构成存储体
- 从一个存储单元读出数据叫存储字,字的长度由该存储单元单元有多少个存储元决定——存储字长
- 片选线(高电平/低电平有效):控制电路开关
存储器芯片的基本结构
寻址
二、半导体存储器
-
基本结构
-
RAM随机存储器——易失性存储器
-
DRAM的刷新
-
SRAM的读周期
-
-
ROM
-
存放一些固定使用,不能丢失的数据信息
-
三、基本概念
功能:存放二进制信息
-
分类
-
层次
- 高速缓冲存储器(cache)——cpu调用,离Cpu最近
- 主存储器(主存,内存)——cpu调用
- 辅助存储器(辅存,外存)——通过IO设备
-
材料
- 磁表面存储器(磁盘——直接存取:定位到一个小区域后顺序存取,磁带——顺序存取)
- 磁芯存储器
- 半导体存储器——随机存取:存取时间与存储单元位置无关
- 光存储器
-
-
性能指标
-
层次化结构
四、主存与CPU的连接
-
主存容量扩展
-
位扩展
-
字扩展
- 线选法
-
译码器
-
字位同时扩展
-
五、双口RAM与多模块存储器
提高存储器的工作速度
利用存取周期中的恢复时间
-
双端口RAM
-
多模块存储器
-
多体并行存储器
-
流水线
m太小:m0还处于恢复时间
m太大:其他存储体还在启动时间,不能立刻启动m0
补充:可以并行工作时,如果总线宽度为mW时,可以同时取出长度为m W的数据
-
-
六、高速缓冲存储区
一、局部性原理及性能分析
空间局部性:在最近的未来要用到的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的
时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息
命中率H:Cpu欲访问的信息已在Cache中的比率
缺失率M:1-H
以块为单位放入Cache
二、地址映射方式
-
主存中的块放在Cache的哪个位置
-
空位随意放:全相连映射
-
对号入座:直接映射
-
按号分组,组内随意放:组相连映射
-
-
满了/对应位置被占用了如何处理
-
随机(RAND)算法
-
先进先出(FIFO)算法
可能会把需要经常使用的程序块作为最早进入Cache替换掉
-
近期最少使用(LRU)算法
堆栈类算法
每行设置计数器,每次命中清零
-
最不经常使用(LFU)算法
每行设置计数器,每次命中+1
全相连映射时:
相联存储器:并行比较标记,若标记与当前将要访问的地址的标志相同,且有效位为1,则命中
直接映射时:
相联存储器:根据映射到的Cache块号比较标记,若标记为相同且有效位为1,则命中,若不同,直接替换
二路组相连时:
相联存储器:根据映射到的Cache块号比较标记,若标记为相同且有效位为1,则命中,若不同,而有效位为1,根据替换策略替换
LFU——见操作系统
-
-
修改Cache中的内容后,如何保持主存中相应内容的一致性
命中
-
全写法(write-through)
写命中时,必须把数据同时写入Cache和主存中,一般使用写缓冲(会溢出)
-
写回法(write-back)
脏位:标记是否被修改
当Cpu对Cahce写命中时,只修改Cache的内容,不立刻写入主存,只有当此块被换出时才写回主存
未命中
-
写分配法(write-allocate)
把主存中的块调入Cache,在Cache中修改。配合写回法使用
-
非写分配法(not-write-allocate)
只写入主存,不调入Cache。配合全写法使用
多级Cache
三、Cache容量计算
-
七、虚拟存储器——逻辑模型
提高存储系统的容量
-
地址转换
-
页式虚拟存储器
-
段式虚拟存储器
-
段页式虚拟存储器
-
-
虚拟存储器的访问过程
TLB缺失:快表未命中——有效位为0
快表为慢表的副本,慢表有可能命中,查询慢表,若慢表未命中,辅存调用更新