首页 新闻 会员 周边

全相联映射方式是如何实现的

0
悬赏园豆:100 [已解决问题] 解决于 2018-03-27 05:37

举一个实际的例子,比如内存大小为1GB,cache大小为8MB,那么cache内肯定只能存储一部分数据,那么全相连又是如何实现的呢?若每一页是512KB,则内存可分为2048页,即2^11,需要11位表示。cache可以分为16页,所以也只能将主存中16页的数据放进来,命中率是16/2048(数学不好,如果错了见谅,大概就是这个意思),为什么使用全相连映射,命中就提高了呢?

TimeIsChoice的主页 TimeIsChoice | 初学一级 | 园豆:5
提问于:2018-03-24 17:33
< >
分享
最佳答案
0

1.利用程序的局部性原理(时间局部性:循环结构之类的、空间局部性:存储地址的连续性导致)
2.地址映射后冲突更少,相对于直接映射而言,直接映射会有多个组的统一标号的元素映射到cache的统一页号内,冲突概率大大增加,并且只能映射到固定的页号。而全相连不存在这个问题,因为它可以随机存储到任意一个页号。
3.利用率更高,对于同一时间或者内存空间需要使用的数据而言,由于数据冲突更少,所以有关联的数据会有更大的可能性同时调入cache,而直接映射很可能会产生冲突,以至于不停地替换,命中地下,所以从这方面来讲,避免了低命中也就是实现了高命中。

TimeIsChoice | 初学一级 |园豆:5 | 2018-03-27 05:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册