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 儲存單元的編址方式 字編址方式 位元組編...