一.存储器基本概念
一.分类
二.性能指标
三.存储器的层次化结构
二.存储器与CPU协同工作
一.存储器的简单模型及寻址的概念
一.存储器的简单模型
片选线:电路的开关,有两种控制模式。
- 高电平有效:当这条线接收到高电平,理解为接收到1这个信号,表示电路是开的。如果接收到低电平,就是0信号,表示电路是关闭的。
- 低电平有效:当这条线接收到高电平,理解为接收到1这个信号,表示电路是关闭的。如果接收到低电平,就是0信号,表示电路是开的。
读控制线:用于控制该次操作什么时候读。
写控制线:用于控制该次操作什么时候写。
译码器:把二进制形式的地址映射成能够对应的信号
二.寻址
二.主存与CPU的连接
一.存储芯片的基本结构
1.存储矩阵:由大量相同的位存储单元阵列构成。
2.译码驱动:将来自地址总线的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对被选中单元的读/写操作。
3.读写电路:包括读出放大器和写入电路,用来完成读/写操作。
4.读/写控制线:决定芯片进行读/写操作。
5.片选线:确定哪个存储芯片被选中。可用于容量扩充。
6.地址线:是单向输入的,其位数与存储字的个数有关。
7.数据线:是双向的,其位数与读出或写入的数据位数有关。
数据线数和地址线数共同反映存储芯片容量的大小。如地址线10根,数据线8根,则芯片容量=2^10 × 8=8K位。
二.主存容量拓展-位拓展
三.主存容量拓展-字拓展
1.线选法
地址空间不连续:因为用于选片的两个信号,如A13、A14只能是01或10状态,不能存在00、11这个两个状态,所以这两个状态下的地址空间就没有被使用到。
2.译码选片法
三.主存容量拓展-译码器字拓展
"使能"不是100就不能正常工作,如001、010、000、011、101、110、111
四.主存容量拓展-字位同时拓展
五.主存与CPU连接例子
三.双口RAM和多模块存储器
一.双口RAM
二.多模块存储器
三.多体并行存储器
补充:可以并行工作如总线宽度为mW时,可以同时取出长度为mW的数据
四.流水线
三.高速缓冲存储器
一.局部性原理
二.性能分析
三.Cache-地址映射
1.全相联映射
2.直接映射
3.组相联映射
四.替换算法
Cache满了怎么替换?
1.随机算法(RAND):随机地确定替换的Cache块。它的实现比较简单,但没有依据程序访问的局部性原理,故可能命中率较低。
2.先进先出算法(FIFO):选择最早调入的行进行替换。它比较容易实现,但也没有依据程序访问的局部性原理,可能会把一些需要经常使用的程序块(如循环程序)也作为最早进入Cache的块替换掉。
3.近期最少使用算法(LRU):依据程序访问的局部性原理选择近期内长久未访问过的存储行作为替换的行,平均命中率要比FIFO要高,是堆栈类算法。
LRU算法对每行设置一个计数器,Cache每命中一次,命中行计数器清0,而其他各行计数器均加1,需要替换时比较各特定行的计数值,将计数值最大的行换出。
4.最不经常使用算法(LFU):将一段时间内被访问次数最少的存储行换出。每行也设置一个计数器,新行建立后从0开始计数,每访问一次,被访问的行计数器加1,需要替换时比较各特定行的计数值,将计数值最小的行换出。
一.例子
1.全相联映射
2.直接映射
3.组相联映射-二路组
五.Cache工作原理
1.写策略-命中
多级Cache
这些Cache离CPU越近速度越快,越远容量越大
1.写策略-未命中
六.Cache例题
1.全相联映射
2.直接映射
3.二路组相联
七.Cache容量
四.虚拟存储器
1.概念
2.页式虚拟存储器
2.段式虚拟存储器
3.段页式虚拟存储器
把程序按逻辑结构分段,每段再划分为固定大小的页,主存空间也划分为大小相等的页,程序对主存的调入、调出仍以页为基本传送单位。每个程序对应一个段表,每段对应一个页表。
虚拟地址:段号+段内页号+页内地址
4.快表TLB、慢表Page
5.例子
三.半导体存储器
一.半导体随机存取器
一.主存储器DRAM的刷新