新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 主存與Cache的地址映像

主存與Cache的地址映像

作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
主存容量相比,Cache的容量很小,它所保存的信息僅是主存信息的一個子集,且cache與主存的信息交換是以塊為單位。主存每個塊的大小和Cache中塊的大小相等,為了把信息放到Cache中,必須事先規(guī)定好主存與cache之間的地址映像方式,即某一個Cache塊可以作為哪些主存塊的副本(即映像)。映像方式一旦確定,就決定了訪問Cache時對主存地址的理解,因而也就決定了Cache的組織結(jié)構(gòu)。目前有三種地址映像方式:直接映像、全相聯(lián)映像和組相聯(lián)映像。
主存地址=主存塊號+塊內(nèi)地址。
主存分為2n塊,則主存塊號為n位。
1。直接映像(DirectMapping):只比較一次。主存地址被理解為標(biāo)記(區(qū)號)、塊號(對應(yīng)的cache中的塊號)、塊內(nèi)地址。主存塊號被分解為標(biāo)記和塊號(位數(shù)由cache的塊數(shù)決定)。
采用直接映像時,Cache的某一塊只能和固定的一些主存塊建立映像關(guān)系,主存的某一塊只能對應(yīng)一個Cache塊。
2。全相聯(lián)映像(AssociativeMapping) :與cache中的所有塊比較。主存地址被理解為由兩部分組成:標(biāo)記(主存塊號)和塊內(nèi)地址。主存塊號全部就是標(biāo)記。
采用全相聯(lián)映像時,Cache的某一塊可以和任一主存塊建立映像關(guān)系,而主存中某一塊也可以映像到cache中任一塊位置上,由于Cache的某一塊可以和任一主存塊建立映像關(guān)系,所以 Cache的標(biāo)記部分必須記錄主存塊塊地址的全部信息。例如,主存分為2n塊,塊的地址為n位,標(biāo)記也應(yīng)為n位。
為了判斷是否命中,主存地址的標(biāo)記部分需要和Cache的所有塊的標(biāo)記進(jìn)行比較。為了縮短比較的時間,將主存地址的標(biāo)記部分和Cache的所有塊的標(biāo)記同時進(jìn)行比較。如果命中,則按塊內(nèi)地址訪問Cache中的命中塊(其標(biāo)記與主存地址給出的標(biāo)記相同);如果未命中,則訪問主存。
全相聯(lián)映像的優(yōu)點是靈活,Cache利用率高。缺點有兩個:一是標(biāo)記位數(shù)增加了(需要記錄主存塊塊地址的全部信息),使得Cache的電路規(guī)模變大,成本變高;二是比較器難于設(shè)計和實現(xiàn)(通常采用“按內(nèi)容尋址的”相聯(lián)存儲器)。因此,只有小容量Cache才采用這種映像方式。
3。組相聯(lián)映像(SetAssociativeMapping):與cache一個組中的所有塊。主存地址被理解為由三部分組成:標(biāo)記、組號和塊內(nèi)地址。主存塊號由標(biāo)記和組號分割了,組號占主存塊號的低位(位數(shù)由cache的組熟決定)。
組相聯(lián)映像方式是介于直接映像和全相聯(lián)映像之間的一種折中方案。設(shè)Cache中共有 m個塊,在采用組相聯(lián)映像方式時,將m個Cache塊分成u組(set),每組k個塊(即m=u×k),組間直接映像,而組內(nèi)全相聯(lián)映像(如圖3.42所示)。所謂組間直接映像,是指某組中的Cache塊只能與固定的一些主存塊建立映像關(guān)系。
所謂組內(nèi)全相聯(lián)映像,是指和某Cache組相對應(yīng)的主存塊可以和該組內(nèi)的任意一個Cache塊建立映像關(guān)系。


例子:
高速緩存Cache 與主存間采用全相聯(lián)地址映像方式,高速緩存的容量為4MB,分為4 塊,每塊1MB,主存容量為256MB。 若主存讀寫時間為30ns,高速緩存的讀寫時間為3ns,平均讀寫時間為3.27ns,則該高速緩存的命中率為___(3)___%。若地址變換表如下所示,則主存地址為8888888H時,高速緩存地址為___(4)___H。
  地址變換表
38H
88H
59H
67H

  (3)A. 90      B. 95      C. 97      D. 99
  (4)A. 488888    B. 388888    C. 288888    D.188888
主存容量為 256MB表示由28個二進(jìn)制數(shù)地址也對應(yīng)由7個十六進(jìn)制數(shù)8888888H ,每塊 IMB說明塊內(nèi)地址是20位二進(jìn)制數(shù)也就是5位十六進(jìn)制數(shù)88888,剩下的2位十六進(jìn)制數(shù)88H代表塊地址(全相聯(lián)映射)。

本文引用地址:http://m.butianyuan.cn/article/201611/322196.htm

1、容量為64塊的Cache采用組相聯(lián)方式映像,字塊大小為128個字,每4塊為一組。若主存容量為4096塊,且以字編址,那么主存地址應(yīng)該為__(7)__位,主存區(qū)號為__(8)__位。 (7)A.16 B.17 C.18 D.19
(8)A.5 B.6 C.7 D.
解析:本題目涉及到Cache的工作存儲原理知識,Cache作為主存局部區(qū)域的副本,用來存放當(dāng)前活躍的程序和數(shù)據(jù)。將局部范圍的內(nèi)容從主存復(fù)制到Cache中,使CPU高速的從Cache中讀取數(shù)據(jù),速度比訪問主存快很多。Cache有三種映像方式。

這里,由于主存容量為4096塊(或“頁”),且每塊為128個字,所以,主存地址為4096*128=2^n;n=19
主存可以劃分為4096/64=64組,所以主存區(qū)號為2^n=64;n=6.
答案選擇(7)D (8)B

0
1
2
3



關(guān)鍵詞: 主存Cache地址映

評論


技術(shù)專區(qū)

關(guān)閉