舉一個實際的例子,比如內存大小為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
提交
取消