3.6 cache 存储器【计算机组成原理】
- 前言
- 说明
- 推荐
- 3.6 cache 存储器
- 3.6.1 cache基本原理
- 3.6.2 主存与cache的地址映射
- 1.全相联映射方式
- 2.直接映射方式
- 3.组相联映射方式
- 3.6.3 cache的替换策略
- 3.6.4 cache的写操作策略
- 3.6.5 Pentium 4的cache 组织
- 3.6.6 使用多级 cache 减少缺失损失
- 例题
- 1.全相联映射方式
- 2.直接映射方式
- 3.组相联映射方式
- 总结
- 最后
前言
2022/10/27
以下内容源自计算机组成原理
仅供学习交流使用
说明
本文先做图片说明
文字部分以后补充
推荐
计算机组成原理 第六版
3.6 cache 存储器
3.6.1 cache基本原理
3.6.2 主存与cache的地址映射
1.全相联映射方式
2.直接映射方式
3.组相联映射方式
3.6.3 cache的替换策略
3.6.4 cache的写操作策略
3.6.5 Pentium 4的cache 组织
3.6.6 使用多级 cache 减少缺失损失
例题
1.全相联映射方式
① 01H 56
② 07H 7E
③未命中
④FFH 2E
2.直接映射方式
①命中 l0 01 53
②命中 l1 03 28
③没命中 B17 39
3.组相联映射方式
①S0 01 65
②S1 03 81
③B37 54
总结
以下根据我自己理解所总结,可能有不对的地方。
书中笔记隐含以下总结,只不过单独写出来更明显
例如部分是在同一条件下的
10根地址线,块大小为4,模为8,组大小为2
0. 分析,地址线,数据行
1. 例如10根地址线,就有1024个数据行
1. 首先,需要看一个数据块里有多少个数据行,块大小
1. 例如:一个块里包含4个行,这样只需低**两**位作为块内偏移地址即可,为A1A0
2. 数据行/块大小=块的数量 例如:1024/4=256块 数据块号(B0~ B255)
2. 再看,题目的映射方式是是什么
1. 全相联映射方式
1. 缓存中:
1. tag与高位相同,A9A8A7A6A5A4A3A2
2. 块内偏移就是低两位,A1A0
2. 主存中
1. 块号与高位相同,A9A8A7A6A5A4A3A2
2. 块内偏移就是低两位 ,A1A0
2. 直接映射方式
0. 确认模多少:8,数据块号(0~ 255)模8的结果是0~7,
只需**三**位作为行号即可,为A4A3A2
1. 缓存中:
1. 先比较行号,A4A3A2 与l~0-7~
2. tag与高位相同,A9A8A7A6A5
3. 块内偏移就是低两位,A1A0
2. 主存中
1. 块号与高位相同,A9A8A7A6A5A4A3A2
2. 块内偏移就是低两位 ,A1A0
3. 组相联映射方式
0. 确认组数:4,每组行数:2 ,8=4X2,数据块号(0~ 255)模4的结果是0~3,
只需**两位**位作为组号即可,为A3A2
1. 缓存中:
1. 先比较组号,A3A2 与S~0-3~
2. tag与高位相同,A9A8A7A6A5A4
3. 块内偏移就是低两位,A1A0
2. 主存中
1. 块号与高位相同,A9A8A7A6A5A4A3A2
2. 块内偏移就是低两位 ,A1A0
3. 可变参数(说明下面有两个例子以分号左右区别)
0.数据行--依赖--地址线
例如10根数据线,1024行数据;
例如20根数据线,2^20^行数据
1.块内偏移位数--依赖--块大小
例如:块大小为4个,块内偏移位数为2位,A1A0;
tag与A9...A2比较
例如:块大小为8个,块内偏移位数为3位,A2A1A0
tag与A19...A3比较
2.行号--依赖--模大小
例如:模大小为8,行号范围L0~L7,只需与3位地址A4A3A2比较;
tag与A9...A5比较
例如:模大小为16,行号范围L0~L15,只需与4位地址A6A5A4A3比较;
tag与A19...A7比较
3.组号--依赖--组大小
例如:组大小为4,组号范围S0~S3,只需与2位地址A3A2比较;
tag与A9...A4比较
例如:组大小为8,组号范围S0~S7,只需与3位地址A5A4A3比较;
tag与A19...A6比较
最后
这篇博客能写好的原因是:站在巨人的肩膀上
这篇博客要写好的目的是:做别人的肩膀
开源:为爱发电
学习:为我而行