所謂地址映像方式是指如何確定Cache中的內(nèi)容是主存中的哪一部分的副本,即必須應(yīng)用某種函數(shù)把主存地址映像到Cache中定位。
信息按某種方式裝入Cache中后,執(zhí)行程序時,應(yīng)將主存地址變換為Cache地址,這個變換過程叫作地址變換。
地址映像方式通常采用直接映像、全相聯(lián)映像、組相聯(lián)映像三種:
1-直接映像
每個主存地址映像到Cache中的一個指定地址的方式,稱為直接映像方式。在直接映像方式下,主存中存儲單元的數(shù)據(jù)只可調(diào)入Cache中的一個位置,如果主存中另一個存儲單元的數(shù)據(jù)也要調(diào)入該位置則將發(fā)生沖突。
地址映像的方法一般是將主存空間按Cache的尺寸分區(qū),每區(qū)內(nèi)相同的塊號映像到Cache中相同的塊位置。一般地,Cache被分為2N塊,主存被分為大小為2MB的塊,主存與Cache中塊的對應(yīng)關(guān)系可用如下映像函數(shù)表示:j = i mod 2N。式中,j是Cache中的塊號;i是主存中的塊號。
直接映像是一種最簡單的地址映像方式,它的地址變換速度快,而且不涉及其他兩種映像方式中的替換策略問題。但是這種方式的塊沖突概率較高,當(dāng)程序往返訪問兩個相互沖突的塊中的數(shù)據(jù)時,Cache的命中率將急劇下降,因為這時即使Cache中有其他空閑塊,也因為固定的地址映像關(guān)系而無法應(yīng)用。
2-全相聯(lián)映像
主存中的每一個字塊可映像到Cache任何一個字塊位置上,這種方式稱為全相聯(lián)映像。這種方式只有當(dāng)Cache中的塊全部裝滿后才會出現(xiàn)塊沖突,所以塊沖突的概率低,可達到很高的Cache命中率,但它實現(xiàn)很復(fù)雜。
當(dāng)訪問一個塊中的數(shù)據(jù)時,塊地址要與Cache塊表中的所有地址標(biāo)記進行比較已確定是否命中。在數(shù)據(jù)塊調(diào)入時存在著一個比較復(fù)雜的替換問題,即決定將數(shù)據(jù)塊調(diào)入Cache中什么位置,將Cache中哪一塊數(shù)據(jù)調(diào)出主存。為了達到較高的速度,全部比較和替換都要用硬件實現(xiàn)。
3-組相聯(lián)映像
組相聯(lián)映像方式是直接映像和全相聯(lián)映像的一種折中方案。這種方法將存儲空間分為若干組,各組之間是直接映像,而組內(nèi)各塊之間則是全相聯(lián)映像。
它是上述兩種映像方式的一般形式,如果組的大小為1,即Cache空間分為2N組,就變?yōu)橹苯佑诚?;如果組的大小為Cache整個的尺寸,就變?yōu)槿嗦?lián)映像。組相聯(lián)方式在判斷塊命中及替換算法上都要比全相聯(lián)方式簡單,塊沖突的概率比直接映像低,其命中率也介于直接映像和全相聯(lián)映像方式之間。
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6756瀏覽量
88614 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
2944瀏覽量
73729 -
Cache
+關(guān)注
關(guān)注
0文章
129瀏覽量
28230
發(fā)布評論請先 登錄
相關(guān)推薦
評論