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...