Cache计算的再总结

本文通过实例分析,深入探讨如何计算Cache地址映射,特别是从主存地址转换到Cache块号的过程。核心在于理解主存块号的定位,以及在不同进制下的计算方法。直接映射时,主要关注主存容量与Cache容量的关系,以及块大小对地址映射的影响。通过具体习题解析,进一步巩固了Cache计算的理解。
摘要由CSDN通过智能技术生成

这部分的知识,虽然考点很少,我也常常感觉自己能够非常熟练的演绎出访问过程,给出计算结果。但是每次遇到一个新的题,总会有一小会的卡顿,然后心情就紧张一下。

再分析两个题目,熟悉一下。

假设脑海中是一个宏观的印象,那么需要抓住的核心是:定位主存块号
核心的过程是将主存块映射到Cache块,其次才是策略的选择。
而定位主存块号的角度通常有:告诉你十进制的主存地址或16进制的主存地址,以及主存容量是Cache的倍数。

http://blog.csdn.net/u011240016/article/details/52690297

这篇文章中,假设了Cache有多个,总和容量等于主存。这样,可以虚拟的认为主存地址高位标记用的是哪一个Cache,收缩到一个Cache,那么就可以认为是第多少轮访问Cache。

所以,拿主存总容量除以Cache总容量,再求其2的指数幂,即为主存块的标记。

所以,这个感性认识可以有:高位标记的是主存块进入Cache是在第几轮的数目。

一般给定一个10进制的主存地址,需要根据块的大小,计算出这是主存的多少块,然后拿着这个块数去mod Cache块数。
这种状况下,针对十进制数字较为好算。

如果给的是一串16进制,理所当然的化为二进制。
然后用的思路还是一样,只是形式上,我们不再计较这是主存的多少块,要专注于二进制位的分配问题。虽然,本质是一样的,但是要专注问题。

看例题更容易解释:

某存储系统中,主存容量是Cache容量的4096倍,Cache被分为64个块。当主存地址采用直接映射时,地址映射表的大小应该是 64 * 13bit.
PS:b不考虑一致性维护位和替换算法位。

推导:主存是Cache的 4096=212

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值