主存與Cache的地址映像
主存地址=主存塊號+塊內地址。
主存分為2n塊,則主存塊號為n位。
1。直接映像(Direct Mapping) :只比較一次。主存地址被理解為標記(區號)、塊號(對應的cache中的塊號)、塊內地址。主存塊號被分解為標記和塊號(位數由cache的塊數決定)。
采用直接映像時(shí),Cache的某一塊只能和固定的一些主存塊建立映像關(guān)系,主存的某一塊只能對應一個(gè)Cache塊。
采用直接映像時(shí),Cache的某一塊只能和固定的一些主存塊建立映像關(guān)系,主存的某一塊只能對應一個(gè)Cache塊。
2。全相聯(lián)映像(Associative Mapping) :與cache中的所有塊比較。主存地址被理解為由兩部分組成:標記(主存塊號)和塊內地址。 主存塊號全部就是標記。
采用全相聯(lián)映像時(shí),Cache的某一塊可以和任一主存塊建立映像關(guān)系,而主存中某一塊也可以映像到cache中任一塊位置上,由于Cache的某一塊可以和任一主存塊建立映像關(guān)系,所以 Cache的標記部分必須記錄主存塊塊地址的全部信息。例如,主存分為2n塊,塊的地址為n位,標記也應為n位。
為了判斷是否命中,主存地址的標記部分需要和Cache的所有塊的標記進(jìn)行比較。為了縮短比較的時(shí)間,將主存地址的標記部分和Cache的所有塊的標記同時(shí)進(jìn)行比較。如果命中,則按塊內地址訪(fǎng)問(wèn)Cache中的命中塊(其標記與主存地址給出的標記相同);如果未命中,則訪(fǎng)問(wèn)主存。
全相聯(lián)映像的優(yōu)點(diǎn)是靈活,Cache利用率高。缺點(diǎn)有兩個(gè):一是標記位數增加了(需要記錄主存塊塊地址的全部信息),使得Cache的電路規模變大,成本變高;二是比較器難于設計和實(shí)現(通常采用“按內容尋址的”相聯(lián)存儲器)。因此,只有小容量Cache才采用這種映像方式。
3。組相聯(lián)映像(Set Associative Mapping) :與cache一個(gè)組中的所有塊。主存地址被理解為由三部分組成:標記、組號和塊內地址。主存塊號由標記和組號分割了,組號占主存塊號的低位(位數由cache的組熟決定)。
組相聯(lián)映像方式是介于直接映像和全相聯(lián)映像之間的一種折中方案。設Cache中共有 m個(gè)塊,在采用組相聯(lián)映像方式時(shí),將m個(gè)Cache塊分成u組(set),每組k個(gè)塊(即m=u×k),組間直接映像,而組內全相聯(lián)映像(如圖3.42所示)。所謂組間直接映像,是指某組中的Cache塊只能與固定的一些主存塊建立映像關(guān)系。
所謂組內全相聯(lián)映像,是指和某Cache組相對應的主存塊可以和該組內的任意一個(gè)Cache塊建立映像關(guān)系。
例子:
高速緩存Cache 與主存間采用全相聯(lián)地址映像方式,高速緩存的容量為4MB,分為4 塊,每塊1MB,主存容量為256MB。 若主存讀寫(xiě)時(shí)間為30ns,高速緩存的讀寫(xiě)時(shí)間為3ns,平均讀寫(xiě)時(shí)間為3.27ns,則該高速緩存的命中率為_(kāi)__(3)___%。若地址變換表如下所示,則主存地址為8888888H時(shí),高速緩存地址為_(kāi)__(4)___H。
例子:
高速緩存Cache 與主存間采用全相聯(lián)地址映像方式,高速緩存的容量為4MB,分為4 塊,每塊1MB,主存容量為256MB。 若主存讀寫(xiě)時(shí)間為30ns,高速緩存的讀寫(xiě)時(shí)間為3ns,平均讀寫(xiě)時(shí)間為3.27ns,則該高速緩存的命中率為_(kāi)__(3)___%。若地址變換表如下所示,則主存地址為8888888H時(shí),高速緩存地址為_(kāi)__(4)___H。
地址變換表
|
(3)A. 90 B. 95 C. 97 D. 99
(4)A. 488888 B. 388888 C. 288888 D.188888
主存容量為 256MB表示由28個(gè)二進(jìn)制數地址也對應由7個(gè)十六進(jìn)制數8888888H ,每塊 IMB說(shuō)明塊內地址是20位二進(jìn)制數也就是5位十六進(jìn)制數88888,剩下的2位十六進(jìn)制數88H代表塊地址(全相聯(lián)映射)。
1、容量為64塊的Cache采用組相聯(lián)方式映像,字塊大小為128個(gè)字,每4塊為一組。若主存容量為4096塊,且以字編址,那么主存地址應該為_(kāi)_(7)__位,主存區號為_(kāi)_(8)__位。 (7)A.16 B.17 C.18 D.19
(8)A.5 B.6 C.7 D.
解析:本題目涉及到Cache的工作存儲原理知識,Cache作為主存局部區域的副本,用來(lái)存放當前活躍的程序和數據。將局部范圍的內容從主存復制到Cache中,使CPU高速的從Cache中讀取數據,速度比訪(fǎng)問(wèn)主存快很多。Cache有三種映像方式。
這里,由于主存容量為4096塊(或“頁(yè)”),且每塊為128個(gè)字,所以,主存地址為4096*128=2^n;n=19
主存可以劃分為4096/64=64組,所以主存區號為2^n=64;n=6.
答案選擇(7)D (8)B
|
評論