Cache计算的再总结

您所在的位置:网站首页 cache的地址格式 Cache计算的再总结

Cache计算的再总结

#Cache计算的再总结| 来源: 网络整理| 查看: 265

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

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

假设脑海中是一个宏观的印象,那么需要抓住的核心是:定位主存块号。 核心的过程是将主存块映射到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 ,得出高位主存块的标记是12位。 由PS中的补充知道,只需要再加一位基本的:有效位即可。 因此,一个Cache快需要13bits进行标识。 总共是64块,得出64 * 13bits的答案。

看一道主存地址已知的习题。

有一主存-Cache层次的存储器,其主存容量为1MB,Cache容量为16KB.每字块有8个字,每字32位。采用直接映射存储,若主存地址是35301H,且CPU访问Cache命中,则在Cache的第152字块中。(Cache字块起始是第0字块)

推导:既然有主存地址,且是易于化成二进制的16进制形式,毫不犹豫的拿来化成二进制再说: 35301H=0011,0101,0011,0000,0001B 在看一个块内寻址用多少位: 8∗32bits=25B ,这里没说按什么寻址,默认为按B寻址,因此字内寻址用掉5位。 Cache总共有多少块呢? 16KB/8∗32bits=29块。

因此,将主存地址去掉低5位,再往上数9位: 0,1,0011,000B=152D 即为所求的Cache块号。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3