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

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

https://img3.mukewang.com/5b864bf6000178db05520333.jpg

扬帆大鱼
浏览 1491回答 1
1回答

茅侃侃

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

相关分类

MySQL