Cache和主存位址對映關係

2021-07-25 03:32:14 字數 2193 閱讀 4701

cache的位址映像方式中,發生塊衝突次數最小的是( ) 。

a.全相聯映像  

b.組相聯映像  

c.直接映像   

d.無法確定的

全相聯映像塊衝突最小,其次為組相聯映像,直接映像塊衝突最大。

容量為64塊的cache採用組相聯方式映像,字塊大小為128位元組,每4塊為一組,若主容量為4096塊,且以字編址,那麼主存位址為(19)位,主存區號為(6)位。

這是一道cache與主存位址映像的問題,即主存以什麼規則裝入cache。它是計算機系統結構中儲存體系的一部分內容。好了,覺得還是先把相關的知識點寫一下先的好,不然只看答案可能有點難懂。

cache和主存都被分成若干個大小相等的塊,每塊由若干個位元組組成,主存和cache的資料交換是以塊為單位,需要考慮二者位址的邏輯關係。

一、全相連映像

主存中任何乙個塊均可以映像裝入到cache中的任何乙個塊的位置上。主存位址分為塊號和塊內位址兩部分,cache位址也分為塊號和塊內位址。cache的塊內位址部分直接取自主存位址的塊內位址段。主存塊號和cache塊號不相同,cache塊號根據主存塊號從塊表中查詢。cache儲存的各資料塊互不相關,cache必須對每個塊和塊自身的位址加以儲存。當請求資料時,cache控制器要把請求位址同所有的位址加以比較,進行確認。

特點:靈活,塊衝突率低,只有在cache中的塊全部裝滿後才會出現衝突,cache利用率高。但位址變換機構複雜,位址變換速度慢,成本高。

公式:主存位址位數=塊號+塊內位址;

cache位址位數=塊號+塊內位址。

二、直接映像

把主存分成若干區,每區與cache大小相同。區內分塊,主存每個區中塊的大小和cache中塊的大小相等,主存中每個區包含的塊的個數與cache中塊的個數相等。任意乙個主存塊只能映像到cache中唯一指定的塊中,即相同塊號的位置。主存位址分為三部分:區號、塊號和塊內位址,cache位址分為:塊號和塊內位址。直接映像方式下,資料塊只能映像到cache中唯一指定的位置,故不存在替換演算法的問題。它不同於全相連cache,位址僅需比較一次。

特點:位址變換簡單、速度快,可直接由主存位址提取出cache位址。但不靈活,塊衝突率較高,cache空間得不到充分利用。

公式:主存位址位數=區號+區內分塊號+塊內位址;

cache位址位數=塊號+塊內位址。

三、組相連映像

組相連映像是前兩種方式的折衷。主存按cache容量分割槽,每個區分為若干組,每組包含若干塊。cache也進行同樣的分組和分塊。主存中乙個組內的塊數與cache中乙個組內的塊數相等。組間採用直接方式,組內採用全相連方式。組的容量=1時,即直接映像,組的容量=整個cache的容量時,即全相連映像。cache的存在對於程式設計師透明,cache的位址變換和資料塊的替換演算法都採用硬體實現。

公式:主存位址位數=區號+組號+主存塊號+塊內位址;

cache位址位數=組號+組內塊號+塊內位址。

主存位址的位數a由主存容量n決定

a=log2n=區號位數+塊號位數+塊內位址位數

cache位址的位數b由cache容量h決定

b=log2h=塊號位數+塊內位址位數

區號根據cache容量劃分,區號長度=主存位址位數-cache位址位數

主存的塊號和cache塊號的長度相同,位數k取決於cache中能容納的個數

j,k=log2j

主存的塊內位址和cache的塊內位址長度相同,位數m取決於塊的容量 q , m=log2q   

例題解析:

方法一:

分割槽數=主存容量/cache容量=4096/64=64;

區內分組數=64/4=16;

組內分塊數=4塊/組;

塊內位址=128位元組;

所以根據公式:

主存位址位數=6+4+2+7=19;

主存區號=6位。

方法二:

主存位址的位數a由主存容量n決定

a=log2n=區號位數+塊號位數+塊內位址位數

所以:a=log2n=log2(4096*128)=log2(2^12*2^7)=log2(2^19)

=19;

cache位址的位數b由cache容量h決定

b=log2h=塊號位數+塊內位址位數

所以:b=log2(64*128)=13.

區號的計算方法同上!

方法三:

主存位址=主存塊位址+塊內位址=12+7=19;

主存區號位址=主存塊位址-cache塊位址=12-6=6.



主存和cache的位址對映

cache是一種高速緩衝暫存器,是為解決cpu和主存之間速度不匹配而採用的一項重要技術。主存與cache的位址對映方式有全相聯方式 直接方式和組相聯方式三種。多對一的對映關係,但乙個主存塊只能拷貝到cache的乙個特定行位置上去。cache的行號i和主存的塊號j有如下函式關係 i j mod m m...

主存cache的位址對映

cpu對儲存器的訪問,通常是一次讀寫乙個字單元。當 cpu訪 cache 不命中時,需將儲存在主存中的字單元連同其後若干個字一同調入 cache 中,之所以這樣做,是為了使其後的訪存能在 cache 中命中。因此,主存和 cache 之間一次交換的資料單位應該是乙個資料塊。資料塊的大小是固定的,由若...

主存與cache的位址對映

1.cache是一種高速緩衝儲存器,是為了解決cpu和主存之間速度不匹配而採用的一項重要技術。其原理基於程式執行中具有空間區域性性和時間區域性性特徵。cache是介於cpu和主存之間的小容量儲存器,由高速的sram組成。2.個人感覺需要在這裡提一下的知識。1 儲存單元的編址方式 字編址方式 位元組編...