码迷,mamicode.com
首页 > 其他好文 > 详细

计算机组成原理——主存与cache的映射关系

时间:2014-06-10 18:16:22      阅读:6466      评论:0      收藏:0      [点我收藏+]

标签:算法   cache   内存   

全相联映像:

特点:指主存的一个字块可以映像到整个Cache的任何一个字块中。这种映射方法比较灵活,cache的利用率高,但地址转换速度慢,且需要采用某种置换算法将cache中的内容调入调出,实现起来系统开销大。 
                  bubuko.com,布布扣

直接相联映像:

特点:指主存的一个字块只能映像到Cache的一个准确确定的字块中,主存的字块只可以和固定的Cache字块对应,方式直接,利用率低。成本低,命中率低,效率较低。
bubuko.com,布布扣bubuko.com,布布扣

组相联映像:

         对全相联和直接映像的一种折中的处理方案。既不在主存和Cache之间实现字块的完全随意对应,也不在主存和Cache之间实现字块的多对一的硬性对应,而是实现一种有限度的随意对应。
         特点:折中方案。组间全相联,组内直接映像。集中了两个方式的优点。成本也不太高。最常见的Cache映像方式。
                                   bubuko.com,布布扣

总结:

三种映射规则可以简单认为是对取模运算和取商运算的组合;
假设:内存=30块,cache=5块,1块=10个字,所以内存=300个字,cache=50个字;内存包含的字数为memsize,块包含的字数为blocksize,cache包含的字数为cachesize,每个区包含的块数为regionblocknum,每个组包含的块数为groupblocknum,区内块号(区内偏移量)为regionblockoffset;
直接映射:memsize MOD blocksize获得的是字在块内的偏移量,memsize / blocksize获得的是块的标号作为标记。
全相联映射:regionblocknum取cache中的块的数量,所以cahce总是与内存中的一个区大小相同。memsize blocksize)获得所有的块数,然后再对块进行分区,分区操作是memsize blocksize)/regionblocknum获得所有的区数,
memsize blocksize)MOD  regionblocknum获得区内块号(区内偏移量)。区内偏移量做索引,区号做标记。
组相联映射:regionblockoffset=memsize blocksize)MOD  regionblocknum,regionblockoffset / groupblocknum获得组内偏移量,regionblockoffset MOD  groupblocknum获得组号。

计算机组成原理——主存与cache的映射关系,布布扣,bubuko.com

计算机组成原理——主存与cache的映射关系

标签:算法   cache   内存   

原文地址:http://blog.csdn.net/aigoogle/article/details/29812479

(1)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!