为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

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

查看完整回答
反对 回复 2018-08-29
  • 1 回答
  • 0 关注
  • 1553 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信