Cache與主存位址映像知識點及例題分析

2021-05-10 13:52:54 字數 2550 閱讀 5319

cache與主存位址映像知識點及例題分析

容量為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

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

三、 組相連映像

組相連映像是前兩種方式的折衷。主存按cache 容量分割槽,每個區分為若干組,每組包含若干塊。cache 也進行同樣的分組和分塊。主存中乙個組內的塊數與cache 中乙個組內的塊數相等。組間採用直接方式,組內採用全相連方式。組的容量=1 時,即直接映像,組的容量=整個cache 的容量時,即全相連映像。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與dram訪問的一致性 在cpu與主存之間增加了cache之後,便存在資料在cpu和cache及主存之間如何訪問的問題。讀寫各有2種方式。貫穿讀出式 look through 該方式將cache隔在cpu與主存之間,cpu對主存的所有資料請求都首先送到cache,由cache自行在自身查詢...

主存與cache的位址對映

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

主存與cache的位址對映 習題

有乙個處理器,主存容量1mb,字長1b,cache容量16kb,塊大小32b。1.採用全相連對映方式,寫出記憶體的位址格式。2.採用直接對映方式,請寫出記憶體的位址格式 3.採用組相連對映方式 每組有4行 請寫出記憶體的位址格式 4.設cache初態為空,cpu依次從記憶體第1000,1001,10...