舉一個實際的例子,比如內存大小為1GB,cache大小為8MB,那么cache內肯定只能存儲一部分數(shù)據(jù),那么全相連又是如何實現(xiàn)的呢?若每一頁是512KB,則內存可分為2048頁,即2^11,需要11位表示。cache可以分為16頁,所以也只能將主存中16頁的數(shù)據(jù)放進來,命中率是16/2048(數(shù)學不好,如果錯了見諒,大概就是這個意思),為什么使用全相連映射,命中就提高了呢?
1 回答

茅侃侃
TA貢獻1842條經驗 獲得超21個贊
1.利用程序的局部性原理(時間局部性:循環(huán)結構之類的、空間局部性:存儲地址的連續(xù)性導致)
2.地址映射后沖突更少,相對于直接映射而言,直接映射會有多個組的統(tǒng)一標號的元素映射到cache的統(tǒng)一頁號內,沖突概率大大增加,并且只能映射到固定的頁號。而全相連不存在這個問題,因為它可以隨機存儲到任意一個頁號。
3.利用率更高,對于同一時間或者內存空間需要使用的數(shù)據(jù)而言,由于數(shù)據(jù)沖突更少,所以有關聯(lián)的數(shù)據(jù)會有更大的可能性同時調入cache,而直接映射很可能會產生沖突,以至于不停地替換,命中地下,所以從這方面來講,避免了低命中也就是實現(xiàn)了高命中。
添加回答
舉報
0/150
提交
取消