cache地址映射-3

在这里插入图片描述

1.全相联映射方式
在这里插入图片描述

①主存中的任意一块都可以映射到缓存的任意一块。假如拿一个主存的地址给你,那么(1)拿主存地址的字块标记部分与cache所有行的标记同时放到比较器中进行比较;假如命中,那么到该行取数据,(2)否则就老老实实拿着刚才给你的主存地址到主存中去寻找内容。(ps:①因为cache的命中率很高,且cache速度相对主存来说极快,所以上面这样策略可以极大提高效率;②根据书上的求命中率的公式,感觉该段话中(1)(2)是同时进行的,哈哈,如果不钻的话,按照我上面说的去理解就行了)
②缓存容量:额,通过主存地址好像求不出来吧。

主存容量 = 主存存储单元个数 * 存储字长 = 2^m * 2^b *存储字长

2.直接映射方式
在这里插入图片描述

①假如给你一个主存地址,首先用c位表示的主存字块行号找到对应的cache行号,(因为每个主存块j只能和一个缓存块相对应,对应的cache行号 i = j mod (2^c) ),然后用地址中主存字块标记部分与cache 对应行的标记进行比较。假如命中,那么到该行取数据,否则就老老实实拿着刚才给你的主存地址到主存中去寻找内容。

②缓存容量 = 缓存存储单元个数 * 存储字长 = 2^c * 2^b * 存储字长

主存容量 = 主存存储单元个数 * 存储字长 = 2^m *2^b *存储字长 = 2^t *2^c *2^b *存储字长

3.组相联映射方式
在这里插入图片描述

①假如给你一个主存地址,首先用主存地址中的主存字块标记找到与之对应的cache组,然后用该主存字块标记与对应cache组中所有的字块的标记进行比较;假如命中,那么到该组的命中行取数据,否则就老老实实拿着刚才给你的主存地址到主存中去寻找内容。

②缓存容量 = 缓存存储单元个数 * 存储字长 = 2^q * 每组字块数 * 2^b * 存储字长

主存容量 = 主存存储单元个数 * 存储字长 = 2^m * 2^b *存储字长 = 2^s * 2^q * 2^b *存储字长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值