0
点赞
收藏
分享

微信扫一扫

3.6 cache 存储器【计算机组成原理】


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 cache 存储器【计算机组成原理】_数据


3.6 cache 存储器【计算机组成原理】_数据_02

3.6.2 主存与cache的地址映射

1.全相联映射方式

3.6 cache 存储器【计算机组成原理】_组相联映射_03

2.直接映射方式

3.6 cache 存储器【计算机组成原理】_计算机组成原理_04

3.6 cache 存储器【计算机组成原理】_组相联映射_05

3.组相联映射方式

3.6 cache 存储器【计算机组成原理】_计算机组成原理_06

3.6 cache 存储器【计算机组成原理】_数据_07

3.6 cache 存储器【计算机组成原理】_组相联映射_08

3.6.3 cache的替换策略

3.6 cache 存储器【计算机组成原理】_组相联映射_09

3.6.4 cache的写操作策略

3.6 cache 存储器【计算机组成原理】_组相联映射_10

3.6.5 Pentium 4的cache 组织

3.6 cache 存储器【计算机组成原理】_计算机组成原理_11

3.6.6 使用多级 cache 减少缺失损失

3.6 cache 存储器【计算机组成原理】_计算机组成原理_12

例题

1.全相联映射方式

3.6 cache 存储器【计算机组成原理】_数据_13

① 01H 56
② 07H 7E
③未命中
④FFH 2E

2.直接映射方式

3.6 cache 存储器【计算机组成原理】_组相联映射_14

①命中  l0 01 53
②命中 l1 03 28
③没命中 B17 39

3.组相联映射方式

3.6 cache 存储器【计算机组成原理】_直接映射_15

①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比较

最后

这篇博客能写好的原因是:站在巨人的肩膀上

这篇博客要写好的目的是:做别人的肩膀

开源:为爱发电

学习:为我而行


举报

相关推荐

0 条评论