举一个实际的例子,比如内存大小为1GB,cache大小为8MB,那么cache内肯定只能存储一部分数据,那么全相连又是如何实现的呢?若每一页是512KB,则内存可分为2048页,即2^11,需要11位表示。cache可以分为16页,所以也只能将主存中16页的数据放进来,命中率是16/2048(数学不好,如果错了见谅,大概就是这个意思),为什么使用全相连映射,命中就提高了呢?
1 回答
茅侃侃
TA贡献1842条经验 获得超21个赞
1.利用程序的局部性原理(时间局部性:循环结构之类的、空间局部性:存储地址的连续性导致)
2.地址映射后冲突更少,相对于直接映射而言,直接映射会有多个组的统一标号的元素映射到cache的统一页号内,冲突概率大大增加,并且只能映射到固定的页号。而全相连不存在这个问题,因为它可以随机存储到任意一个页号。
3.利用率更高,对于同一时间或者内存空间需要使用的数据而言,由于数据冲突更少,所以有关联的数据会有更大的可能性同时调入cache,而直接映射很可能会产生冲突,以至于不停地替换,命中地下,所以从这方面来讲,避免了低命中也就是实现了高命中。
添加回答
举报
0/150
提交
取消