计算机组成原理第四章
description
Transcript of 计算机组成原理第四章
![Page 1: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/1.jpg)
计算机组成原理第四章
知识点三:高速缓存存储系统
主讲教师:吴非
![Page 2: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/2.jpg)
问题引入如何解决 CPU 和主存性能不平衡的问题? 学习建议
系统观:与计算机的系统组织联系在一起,理解运算器、控制器、存储器的数据传输机制,计算机性能除了与CPU 有关外, 更多的需要考虑 CPU 和主存之间带宽平衡问题。
构造观:理解 cache 存储系统的原理和几种实现方式的异同,对性能的影响。
![Page 3: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/3.jpg)
1. 解决 CPU 与主存带宽不平衡的方法 主存采用更高速的材料,缩短读写时间; 增加字长,在每个存储周期中存取多个字; 采用双端口存储器; 将主存划分为多个模块,多模块并行; 在 CPU 和主存间插入高速缓冲存储器
(Cache) 。
![Page 4: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/4.jpg)
2. 多体交叉存储器
高位交叉, 扩展容量 低位交叉, 提高速度
![Page 5: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/5.jpg)
3. Cache 基本思想和组织方式 程序局部性原理例 . 以下程序 A 和 B 中,哪一个对数组 A[2048][2048] 访问
的空间局部性更好?时间局部性呢?
![Page 6: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/6.jpg)
数组 A :访问顺序为 A[0][0], …,
A[0][2047]; 与存放顺序一致,故空间局部性好!但每个 A[i][j] 只被访问一次,故时间局部性差!
![Page 7: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/7.jpg)
数组 A :访问顺序为 A[0][0] - A[2047]
[0]; 与存放顺序不一致,每次跳过2048 个单元,若主存与 Cache 之间交换信息的块小于 2KB ,则没有空间局部性!
(每个数组变量只被访问一次,没有时间局部性,同程序 A )
![Page 8: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/8.jpg)
3. Cache 基本思想和组织方式 Cache 的结构
数据存储体 标记存储体 有效位
有效位( valid
)
标记存储体
数据存储体
Cache的行
块
![Page 9: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/9.jpg)
3. Cache 基本思想和组织方式 应用于 cache 的主存地址格式
块地址(标记,索引) + 块内偏移 索引是作为 Cache 存储体的地址指示器 标记作为判断 CPU 要访问的内容是否在 Cache
中的依据
块
主存块地址标记 索引 块内偏移地址
![Page 10: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/10.jpg)
3. Cache 基本思想和组织方式 Cache 的组织和访问
交换单位: cache 和主存(块), cache 和 CPU (字) 命中:数据在 cache ,反之,不命中 不命中, 页面替换调度
块
相联存储器
快存
地址总线
Cache
数据总线
CPU 主存命中 未命中
管理逻辑
![Page 11: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/11.jpg)
3. Cache 基本思想和组织方式 采用相联存储器
按内容进行访问的存储器 采用( Key , Value )检索方法 相联存储器构成 存储体、检索寄存器、屏蔽寄存器、符合寄存器、
比较线路、代码寄存器、控制线路
![Page 12: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/12.jpg)
4.Cache 与主存地址映射方法 地址映射的概念 地址映射方法
全相联 (fully-associated) 直接相联 (direct mapped) 组相联 (set-associated)
![Page 13: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/13.jpg)
4.Cache 与主存地址映射方法 全相联映射方式 主存分块, Cache 分行 算法:主存的每一块可以映射
到 Cache 的任意一行 举例: 设每块 4 个字,其中
第 3DH 个字的主存地址为: 00001111 01 (块号 块内
地址) 则将 00001111 填入
Cache 某行的标记,该块的4 个字填入该行的 Cache 存储体
主存
![Page 14: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/14.jpg)
全相联映射的检索例: CPU 要读内存地址
为:
00001111 10
判断是否发生命中
4.Cache 与主存地址映射方法
![Page 15: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/15.jpg)
4.Cache 与主存地址映射方法 直接相连映射方式 主存分区,区内分块; Cache 分
行, 算法: i =j mod n(i 是
Cache 行号, j是主存块号, n是 cache包含的块数 )
举例: 设每块 4 个字,其中第3DH 个字的主存地址为: 00001 111 01 ( 在 1 区、 7 块中)
则将 00001 填入 Cache 的第 [111]2行的标记部分,该块的4 个字填入该行的 Cache 存储体
![Page 16: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/16.jpg)
4.Cache 与主存地址映射方法 直接相联映射检索 例: CPU 读内存地址
为:
00001 111
11
判断是否命中主存区号(标识)
区内块号(索引)
块内 偏移
![Page 17: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/17.jpg)
组相联映射方式 Cache 、主存分组;主存分块;
Cache 分行, 算法: i =j mod n(i 是
Cache 组号, j是主存块号, n是 cache包含的组数 ) ,
举例: 设每块 4 个字,其中第3DH 个字的主存地址为:
000011 11 01 则将 000011 填入 Cache 的
第 3 组某行的标记部分,该块的 4 个字填入该行的 Cache存储体
4.Cache 与主存地址映射方法
![Page 18: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/18.jpg)
组联映射的检索例: CPU 读内存地址: 000011 11 11
判断是否命中
K路组相联定义Cache 中每组包含的行数
4.Cache 与主存地址映射方法
区内块号(索引)
块内 偏移
主存区号(标识)
![Page 19: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/19.jpg)
5. 替换算法 替换策略
先进先出法
最近最不经常使用方法 ---LFU (程序局部性好)
近期最少使用法 --- LRU (程序局部性好)
随机替换法
![Page 20: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/20.jpg)
5. 替换算法—举例说明t
22 11 22 19 7 16 4 3
载入 载入 命中 载入 载入 替换 替换 替换
0
1
2
3
220 221
110
222
113
191
223
11
192
71
41
162
19
7370
160
22
161
72
193
111
22220 221
112
190
40
30
载入 载入 命中 载入 命中 载入 替换 替换命中
22 11 22 19 11 16 4 3 t
0
1
2
3
220 22
11
221
11
19
221
111
19
222
111
4
16
111
16
222
111
16
19
11
22221 221
11
19 4
3
2222
111
16
19
222
LRU
LFU
![Page 21: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/21.jpg)
6. Cache 一致性问题 几个概念
Cache脏位或修改位(Dirty bit) : 表示cache 数据是否被修改过
Cache 有效位 (Valid bit) : 判断 cache 数据与主存数据是否一致,如果是, 则有效
cache数据一致性问题
磁带,光盘磁盘
Cache 高速缓存主存
CPU 寄存器
![Page 22: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/22.jpg)
6. Cache 一致性问题 写策略
写回法 (write back) : 只写 cache 写穿法 (write through) : 写命中时,同时写
cache 和主存 写不命中处理方法 写分配( write-allocate ):写 cache 写不分配( not-write-allocate ) : 不写
cache
![Page 23: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/23.jpg)
7. Cache 性能评价方法 命中率
h=Nc /(Nc+Nm)
平均访问时间Ta=hTc +(1-h)Tm
Memory
( Tm,Nm,Sm,Cm)
Cache( Tc,Nc,Sc,Cc)
![Page 24: 计算机组成原理第四章](https://reader031.fdocument.pub/reader031/viewer/2022020111/5681407e550346895dac01b4/html5/thumbnails/24.jpg)
知识点三 回顾 cache 基本原理
相联存储器
三种地址映射方式
替换算法
写一致性问题解决方法
Cache 性能评价方法