1. 存储器的基本组成
主机:运算器+控制器+主存储器、 IO:输入+输出
存储器:主存(主机)+辅存(IO)
2. 存储器的层次结构:
外存、辅存、内存、高速缓冲存储器(Cache)、寄存器(操作数的存储)
(1)主存-辅存(硬件+操作系统,虚拟存储系统):解决主存容量不够的问题,辅存的数据需要调入内存才能被CPU访问
(2)Cache-主存:解决了主存与CPU速度不匹配的问题
3. 存储器的分类
(1)存储介质:半导体、磁性材料、光介质
(2)存取方式:RAM(随机存取存储器,如内存条)、SAM(顺序存取存储器,如磁带)、DAM(直接存取存储器、磁盘)【都是按照地址访问,DAM具有随机存取和顺序存取的双重特性】CAM(相联存取存储器,按照内容检索,如快表)
(3)信息的可更改性:读写存储器、只读存储器(蓝光光碟、ROM)
(4)信息的可更改性:易失性存储器(主存、cache)、非易失性存储器、破坏性读出(DRAM、读出数据要进行重写)、非破坏性读出
4.存储器的性能指标
(1)存储容量
(2)单位成本
(3)存储速度:数据传输率(数据的宽度(存储字长)/存取周期(存取时间+恢复时间))
4. 主存储器的基本组成
(1)存储元(MOS)与存储体(存储元矩阵)
a. 存储元:MOS管(达到一定的电压才通电、造就半导体的特性)+电容
充电:MOS管和电路都接通5V的电压,即为充
放电/读取:MOS管接通5V,电路接0V,更具电路的电流情况,判断电容的电位
b. 存储字由8个(存储字长)存储元构成
c. 存储体:存储元矩阵
(2)利用地址寄存器在存储体中取数据「见存储芯片构造图」
a. MAR->译码器->某条字选线接通
b. 8位存储元的信息通过8条数据线(位线)流入MDR,或从MDR流出
c. 控制电路(优化):保证电信号稳定,才进行MAR、译码器、MDR的数据读出、读写控制线、片选线(芯片使能\选择信号(CE'\CS'))
d. 以上操作完成了一次数据的存取
e. 片选线的作用:一个内存条有多个存储芯片
(3)存储芯片的构造、大小、寻址
a. 存储芯片的引脚:
地址线、数据线、片选线(使能)、读写线、供电引脚、接地引脚
b. 存储芯片大小的描述:n*8位的存储芯片,n = 8k(2^13)\64(2^16)k(存储单元数量)
c. 寻址:若字长位4B,按字节\字\半字\双字寻址,每个单元分别为1B\4B\2B\8B
5. SRAM 和 DRAM
S:静态,D:动态;DRAM用于主存,SRAM用于Cache
RAM:Random Access Memory随机存取存储器(存取时间与地址无关,区别于SAM)
(1)元件区别(栅级电容、双稳态触发器)
(2)对比
(3)DRAM的刷新(电容的电荷只能维持2ms,由元件特性决定)、采用行列地址(减少选通线):分散刷新、集中刷新、异步刷新
6. ROM芯片
(1)区别RAM与ROM(是否具有易失性)
(2) ROM的分类:MROM(定制不可重写)->PROM(不可重写)->EPROM(可擦除UV-、E-)->Flash Memory(闪速存储器,SD、U盘)->SSD(固态硬盘)
(3)BIOS芯片(安装操作系统):统一编址
(4)ROM总结
7. 主存与CPU的连接
(1)MAR与MDR通常集成在CPU内部
(2)支持位扩展和字扩展
(3)复习存储芯片的基本构造
(4)位扩展与字扩展(线选法(CE都为使能)、译码片选法)、字位同时扩展
![]()
![]()
(5)译码器:接受CPU的使能信号,保证稳定,即决定地址有效时间(RAM的读周期不等于地址有效时间段),74ls138芯片
8. 双端口RAM和多模块存储器
问题:DRAM的恢复时间较长(存取周期 = 存取时间+恢复时间)
改进策略:双口RAM、多模态存储器,实际应用:’双通道内存‘
(1) 双端口RAM
两套数据线、地址线、控制线,遇到冲突时(有cpu写)置忙并关闭一个端口
(2)多体并行存储器(低位交叉编址的多体存储器)将连续的地址放在m根内存条中,当存储周期T/存取时间(总线传输周期)r <= 模块数m时,最大程度发挥了存取的效率
(3)多体并行存储器 和 单体多字存储器(位扩展)都能提高存取的效率
9.磁盘存储器
(1)外存储器,主要使用磁表面存储器
(2)磁盘的存储区域:1.磁头数 2.柱面数 3.扇区数
(3)磁盘驱动器、磁盘控制器
(4)性能指标:
1. 格式化容量(非格式化容量)
2. 道密度、位密度(每条磁道的存储容量相同,越靠里的磁道越高)面密度(道密度*位密度)
3. 平均存储时间(寻道+旋转延迟(默认半圈)+传输时间+磁盘控制器延迟)
4. 数据传输率:磁盘存储器在单位时间内向主机传输的字节数(D = rN)
(5)磁盘编址:驱动器号、柱面号、盘面号、扇区号
(6)磁盘冗余阵列:RAID0(多体并行存储器)、RAID1(完全copy)、RAID2(多体并行存储器+3位海明校验码)
![]()
(5)
10.固态硬盘SSD (重点为读写性能特性:块、页???、磨损均衡技术 )
11. 重点:Cache
(1)Cache的基本概念与原理
a. 解决内存与CPU速度不匹配的问题:改DRAM为SRAM
b. Cache被集成在CPU里(只有几MB大小)
c. 局部性原理:指令和数据有具有空间局部性、时间局部性(循环结构);代码的空间局部性也有差别
d. 主存与Cache之间以‘块’(页\页框\行\Cache行)为单位进行数据交换,比如下图交换8个块,交换策略(映射关系、保证一致性)*
e. 引入Cache命中率的概念(分为同时访问Cache和主存、不同时访问)
(2)Cache与主存的三种映射关系(全相联映射’随意放‘、直接映射、组相联映射)
a. 全相联映射:任意块能存放在任意地方
直接映射:Cache块号 = 主存块号 % Cache块数
优缺点:灵活性变差,有效位*可以减少3位(以Cache块数=8计算)
组相联映射:Cache组块号 = 主存块号 % Cache组数,(同组随机挑一个)
折中方法:即命中率(自由度) 与对比速度的平衡
b. 有效位与标记:只有有效位为1内容才有效,标记:记录映射的主存块号
c. CPU如何取数据(如何判断Cache是否命中):1⃣️先用地址中的块号(即计算出来的地址前n位)与cache的有效位进行对比且有效位为1,则命中。2⃣️若不命中则正常走主存。
(3)Cache替换算法
直接映射不用考虑替换算法:如果对应位置非空,直接替换即可,组相联映射和全相联映射可使用以下四种替换算法:
先进先出算法(FIFO):容易出现抖动现象,只管何时进入、不关心进入后的使用情况
最近最少使用算法:LRU(实际最好,也可能出现抖动):关键在于巧妙设计的计数器,范围为Cache行数,刚命中\取出的Cache块置为0,其余Cache块则为1,2,3……递增且不重复
最不经常使用算法LFU算法(实际没有LRU算法好):打视频完相关指令难以清除(计数器很大)
(4)Cache写策略
CPU修改了Cache中的数据副本,如何确保主存中的数据母本一致性
a. 写命中-写回法:当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有换回的时候才写回,用脏位记录是否被修改过,但是存在数据不一致的隐患
b. 写命中-全写发(写直通法):对Cache与主存(写缓冲,SRAM实现的FIFO队列)同时写(对于主存有一个写缓冲,CPU做其他事情时再缓慢写入主存);
CPU的写速度很快,但可能会出现写缓冲饱和而发生阻塞。
c. 写不命中-写分配法:1.调入Cache而不修改 2.配合写回法
d. 写不命中-非写分配法:1. 不放回Cache直接在内存中修改(只有读才会调入Cache)2. 配合全写法
多级Cache实例:多级Cache之间使用全写发与非写分配法,Cache与主存之间使用写回法与写分配法。
12. 虚拟存储器
(1)页式存储器
a. 为了提高存储效率,使得进程可以离散的存储,因此将进程拆分为多个页面(页和块的大小相同)。
b. 何为逻辑地址(逻辑页号+页内地址),逻辑地址与物理地址的关系映射表——页表(页表存放在主存中,没进行一次地址转换都要进行一次访存操作,每一行叫做页表项)
c. 地址转换过程——页表(访存操作):按照页表基地址寻找到页表,再将逻辑页号转化为物理页号。
d. (优化)由于页表的查询是访存操作,耗费时间大,结合局部性原理,因此定义了块表(Cache),加快了逻辑页号的转化
(2)虚拟存储器(只做简单的了解,主要的内容在操作系统)
辅存与主存之间 与 主存与Cache之间 相似
如:
访问位为页面替换提供依据(等同于Cache中的‘计数器’,记录LRU算法中最近访问的时间间隔);
有效位即为数据是否存在于主存中,存在即直接利用主存块号访问该地址,不存在则利用外存块号访问外存,也可能调入主存(等同于Cache的‘有效位’,表示‘标记’中记录的物理地址是否存在于Cache中,如果没有则不命中);
脏位也等同于Cache中的脏位;
不同的是Cache不存在类似页表的结构,而是直接标记Cache行,而内存中的页表则直接将信息汇总
块表TLB命中则Cache一定命中吗
(3)段式虚拟存储器与页式虚拟存储器、段页式虚拟存储器(重点在操作系统里)
段式虚拟存储器 与 页式虚拟存储器 的不同在于 不进行固定大小的页面拆分,而是按照进程的功能模块拆分,段表(对应页表)中记录的是段首址和段长(对应)
段页式虚拟存储器:将程序块又按页大小分为不同的页(详情见操作系统)