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