詳細見《計算機組成與原理》 王愛英 p243
1.直接映像
- 主存與Cache的劃分:
將主存根據Cache的大小分成若干分區,Cache也分成若干個相等的塊,主存的每個分區也分成與Cache相等的塊。
- 主存與Cache的映像:
主存中的每一個分區由於大小相同,可以與整個Cache相像,其中的每一塊正好配對。編號不一致的塊是不能相互映像的。
- 特點:
優點:地址變換簡單。缺點:每塊相互對應,不夠靈活。
- 主存與Cache的地址組成:
主存:區號+塊號+塊內地址
Cache:塊號+塊內地址
2.全相聯映像
- 主存與Cache的劃分:
將主存與Cache劃分成若干個大小相等的塊。
- 主存與Cache的映像:
主存中每一塊都可以調到Cache中的每一塊。
- 特點:
優點:訪問靈活,衝突率低,只有Cache滿時纔會出現在衝突。缺點:地址變換比較複雜,速度相對慢。
- 主存與Cache的地址組成:
主存:塊號+塊內地址
Cache:塊號+塊內地址
3.組相聯映像
- 主存與Cache的劃分:
主存:主存根據Cache大小劃分成若干個區,每個區內劃分成若干個組,每個組再劃分成若干個塊。
Cache:劃分成若干個組,每個組劃分成若干個塊。
- 主存與Cache的映像:
主存的每個分區與Cache採用直接映像,主存的每個組之內採用全相聯映像。
- 特點:
融合了直接映像與全相聯映像兩種映像方式,結合了兩者的優據點。具體實現容易,命中率與全相聯映像接近。
- 主存與Cache的地址組成:
主存:區號+組號+塊號+塊內地址
Cache:組號+塊號+塊內地址
實例分析:
1.容量爲64塊的Cache採用組相聯方式映像,字塊大小爲128字節,每4塊爲一組,若主容量爲4096塊,且以字編址,那麼主存地址爲(____)位,主存區號爲(____)位。
解:
組相聯的地址構成爲:區號+組號+塊號+塊內地址。
主存的每個分區大小與整個Cache大小相等,故此主存需要分的區數爲:4096/64=64,因爲26=64,因此需要6位來表示區號。
每4塊爲一組,故共有組數 64/4 = 16 ,因爲24=16,因此需要4位表示組號。
每組4塊,故表示塊號需要2位。
塊內地址共128字節,27=128,所以塊內地需要7位表示。
所以:主存地址的位數=6+4+2+7 = 19
主存區號的位數=6
2.某 32 位計算機的 cache 容量爲 16KB,cache 塊的大小爲 16B,若主存與 cache 的地址映射採用直接映射方式,則主存地址爲 1234E8F8(十六進制)的單元裝入的 cache 地址爲____。
A. 00 0100 0100 1101 (二進制)
B. 01 0010 0011 0100 (二進制)
C. 10 1000 1111 1000 (二進制)
D. 11 0100 1110 1000 (二進制)
解:Cache大小爲16KB,塊大小爲16B,所以Cache被分成16KB/16B=1024塊,因210=1024故需要10位來表示塊數。24=16故塊內地址需要4位來表示。所以Cache的地址線位置爲14位。由於採用直接映像的方式,所以主存的後14位就是要裝入的到Cache中的位置。故選 C.