文章目录
计算机组成原理学习笔记——三、存储系统
3.1 存储器的层次结构
顺序存取(SAM,如磁带)< 直接存取(DAM,如磁盘)< 随机存取(RAM,如RAM、ROM),其中顺序存取与直接存取称为串行访问存储器,ROM写入速度比读取慢很多
存储容量=存储字数*字长(存储字数表示存储器地址空间大小,字长表示一次存取操作的数据量)
例题
存取周期=存取时间+恢复时间,表示存储器进行连续读或写操作所允许的最短时间间隔;
数据传输率=数据的宽度/存储周期
相联存储器按照内容或地址进行寻址,一般用来制作TLB/相联Cache等。
操作系统在硬盘上,则其内存储器应该采用RAM和ROM。
3.2 存储器的层次化结构
主存和Cache之间的数据调动是由硬件自动完成的
3.3 半导体随机存储器
基本结构
DRAM刷新
例题
引脚线包含:地址线+数据线+片选线+读/写控制线(0-1根)
分散刷新不存在死时间;
Cache用高速SRAM做;
U盘属于只读存储器类型的存储器;随机存取与随机存取存储器不同,只读存储器ROM也是随机存取的,支持随机存取的存储器不一定是随机存取存储器。
显示适配器的刷新带宽:W1=分辨率像素点颜色深度刷新速率
3.4 主存储器与CPU的连接
3.5 双口RAM和多模块存储器
双端口RAM同时存取存储器同一地址单元时,会因数据冲突造成数据存储或读取错误。
交叉存储器实际上是一种模块式存储器,它能并行执行多个独立的读/写操作。
例题
3.6 高速缓冲存储器(Cache)
工作原理:
映射方式:
Log2(主存容量/Cache容量)= 主存字块标记位数
Log2(Cache容量)= 字块内地址位数
Log2(Cache容量)= Cache字块内地址位数
Log2(Cache容量)= Cache字块内地址位数
Log2(Cache行数/路数=组数)= Cache组地址位数
Cache的总容量包括:存储容量+标记阵列容量(有效位、标记位(一致性维护位与Cache数据一次性维护方式有关,替换算法控制位和替换算法有关))
如下图,Cache行的存储容量(Cache行长64B,则6位块内地址,三位行号,剩余28-6-3=19位为标记字段,此处不考虑一次性维护与替换控制位):
多级Cache:
级别越大,距离CPU越远,访问速度越慢,容量越大。指令Cache和数据Cache分离在L1级,写分配与写回法合用。
例题
CPU与Cache(或主存)间信息交互的单位是字,Cache与主存间信息交换的单位是块。当CPU访问的某个字不在Cache中时,将该字所在的主存块调入Cache。
第8题的Cache地址指的是(包括Cache字块地址和字块内地址)
第10题地址映射表就是标记阵列 =(主存标记项+有效位)* 64
CPU访存时,先发出主存物理地址查看该主存地址是否在Cache中。
页式存储逻辑与物理地址
3.7 虚拟存储器
虚拟存储器包括主存与辅存,统一编址,对于应用程序员透明,对系统程序员不透明(Cache对所有程序员透明,全由硬件实现)。
页式
页表:虚页号与实页号的对照表,保存在内存中;
页表基址寄存器存放当前运行程序的页表起始地址;
起始地址+虚页号=页表项地址(页表项包含虚页号、实页号、装入位等信息)
段式
页长固定,段长可变
段页式
虚拟地址=段号+段内页号+页内地址
TLB快表:
TLB高速缓冲器构成,使用相联存储器;相应的,主存中的页表称为慢表(Page)
Cache、TLB、Page之间的关系:
构成
由操作系统完成地址映射;
慢表在主存,慢表在哪?
例题
本章小结:
Cache-主存(硬件实现)对CPU访存起加速作用,主存-辅存(虚拟存储技术)起扩容作用;
存取周期=存取时间+恢复时间;
页面太小->页表太大;页面太大,调入调出时间较长