文章目录
1 存储系统概述
1.1 层次结构
速度由快到满,容量由小到大:
C P U 内 部 通 用 寄 存 器 ↓ C a c h e ↓ 主 存 储 器 ↓ 联 机 磁 盘 存 储 器 ↓ 脱 机 磁 盘 、 磁 带 存 储 器 CPU内部通用寄存器\\ \downarrow\\ Cache \\ \downarrow\\ 主存储器\\ \downarrow\\ 联机磁盘存储器\\ \downarrow\\ 脱机磁盘、磁带存储器 CPU内部通用寄存器↓Cache↓主存储器↓联机磁盘存储器↓脱机磁盘、磁带存储器
一般计算机系统中主要有两种存储体系:
Cache存储体系:由Cache和主存储器构成;主要目的是提高存储器速度。
虚拟存储体系:由主存储器和在线磁盘存储器构成;主要目的是扩大存储器容量。
1.2 存储器分类
内存:主存储器(RAM随机读写存储器+ROM只读存储器)+Cache
RAM=静态存储器SRAM+动态存储器DRAM
其它存储器:多端口存储器、多体交叉存储器、相联存储器。
1.3 性能指标
容量,速度,可靠性,功耗,价格。
b:bit位
B:Byte字节
存取时间:又称访问时间,对数据进行一次存(取)所需的时间。
存取周期:又称访问时间,对数据进行一次存(取)所需的周期。
可维修器件的可靠性用平均故障间隔时间MTBF来描述,不可维修器件的可靠性用平均故障前时间MTTF来描述。
存储器带宽 B m B_m Bm:单位时间里存储器可以读出(或写入)的字节数,即每次可读写字节数/存取周期。
2 内部存储器(主存储器)
2.1 RAM
RAM=静态存储器SRAM+动态存储器DRAM
常规RAM芯片外部有地址引线、数据引线和控制信号引线。
内部译码结构:一维译码;二维译码。
SRAM:每单元6个晶体管。
DRAM:每单元1个晶体管+1个电容。
单元 | 集成度 | 功耗 | 刷新 | 速度 | 价格 | 用途 | |
---|---|---|---|---|---|---|---|
SRAM | 大/复杂 | 低 | 大 | √ \surd √ | 高 | 高 | Cache |
DRAM | 小/简单 | 高 | 小 | X | 低 | 低 | 内存 |
2.1.1 SRAM
2.1.2 DRAM
2.2 ROM
3 高速缓冲存储器
3.1 工作原理
两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件、或软件与硬件相结合的方法连接起来成为一个存储系统。
局部性原理: CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。
时间局部性(Temporal Locality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。
空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。
在CPU和主存之间设置Cache的目的是提高CPU的程序执行速度。
Cache主要包括替换/更新管理模块,地址映射与变换模块,以及小容量高速缓存Cache。
若在地址映射表中检索到要读写的信息在高速Cache中,则通过地址映射表将地址转换为Cache地址,CPU从Cache中读出信息,这种情况称为命中。
Q1:主存中的块如何放到Cache中?地址映射
Q2:CPU如何找到Cache中的数据?地址变换
Q3:如何替换Cache中的块?替换算法
Q4:如何保持Cache块与主存块一致?写策略
3.2 地址映射
三种:全相联,直接映射,组相联
全相联
映射规则:主存的任意一块可以映象到Cache中的任意一块。
特点:
块冲突概率低,Cache空间利用率高。
相联目录表容量大→成本高、查表速度慢。
直接映射
映射规则:主存的每一块只能映象到Cache的一个特定的块中。n整个Cache地址与主存地址的低位部分完全相同。
- 优点:
硬件简单,不需要相联存储器,只要
容量较小的按地址访问的区号标志表存储器;
少量外比较电路。
访问速度快(无需地址变换)。
- 缺点:
Cache块冲突概率高;
Cache
空间利用率很低。
组相联
目的:减小相联目录表的容量,降低成本,提高地址变换速度。
映射规则:将主存和Cache都机械等分成相同大小的块,并将主存空间按照Cache大小等分成区,再将Cache和主存空间中的每一区都等分成大小相同的组,让主存各区中的某组中的任何一块均可直接映象装入到Cache中对应组的任何一块上。
从主存的组到Cache的组之间采用直接映射方式,在两个对应的组内部采用全相联映射方式 ——
组间直接映射,组内全相联。
- 优点:
块的冲突概率比较低;
块的利用率大幅度提高;
块的失效率明显降低。
- 缺点:
实现难度和造价比直接映射方式高。
例题1 全相联方式,Cache容量4KB,分为4块,主存容量1MB。
(1) 地址变换表与Cache一样,有4个存储单元,每个存储单元包括2位。
(2)若地址变换表如图4.65所示,根据主存地址确定Cache地址。
主存地址88888H,Cache地址:488H
解:主存1MB即
2
10
2^{10}
210块,占10为;一块为
2
10
2^{10}
210字节,即10位。所以主存地址一共20位。88888H前10位为222H,对应图中第01B块。后10位为00 1000 1000 。所以Cache地址为01 00 1000 1000
例题2 4.2.2
解:
(1)主存分为
2^{7}
个
区
,
占
7
位
。
每
区
两
组
,
占
1
位
。
每
组
4
块
,
占
2
位
。
每
块
2
10
个区,占7位。每区两组,占1位。每组4块,占2位。每块 2^{10}
个区,占7位。每区两组,占1位。每组4块,占2位。每块210字节,占10位。所以主存地址一共20位。
(2)1010 101 1 11 00 1101 1110
第8位为组号,指向Cache第1组,取出作为Cache地址第1位。区&块:1010 101 11,即157H,在Cache中第1组第10B块,取出10。剩下的位即00 1101 1110
。答案1 10 00 1101 1110
例题3 字节编址,组相联,Cache分2组,每组4块,块大小512B,主存容量1MB.问构成Cache缓存地址变换表的相联存储器容量多少bit。每次参与比较的存储单元数位多少个。
解:区 1MB=512B/块*8块*2^8,占8位。
块占2位。
Cache分2组,所以2个相联存储器每个4单元,容量8*10bit,每次比4个单元。
3.3 替换算法
3.4 主存与cache内容的一致性问题
3.5 Cache性能分析
假设Cache的访问周期为