第3章 華東理工大學計算機系統結構 計141阿金_第1頁
第3章 華東理工大學計算機系統結構 計141阿金_第2頁
第3章 華東理工大學計算機系統結構 計141阿金_第3頁
第3章 華東理工大學計算機系統結構 計141阿金_第4頁
第3章 華東理工大學計算機系統結構 計141阿金_第5頁
已閱讀5頁,還剩130頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、現代計算機系統以存儲器為中心現代計算機系統以存儲器為中心 3.1 存儲系統原理存儲系統原理 3.2 虛擬存儲器虛擬存儲器 3.3 高速緩沖存儲器高速緩沖存儲器(Cache) 3.4 三級存儲系統三級存儲系統第第3章章 存儲系統存儲系統 3.1 3.1 存儲系統原理存儲系統原理3.1.1 存儲系統的定義存儲系統的定義3.1.2 存儲系統的層次結構存儲系統的層次結構3.1.3 存儲系統的頻帶平衡存儲系統的頻帶平衡3.1.4 并行訪問存儲器并行訪問存儲器 3.1.5 交叉訪問存儲器交叉訪問存儲器 3.1.6 無沖突訪問存儲器無沖突訪問存儲器3.1.1 3.1.1 存儲系統的定義存儲系統的定義 在一臺

2、計算機中,通常有多種存儲器在一臺計算機中,通常有多種存儲器種類:種類:主存儲器、主存儲器、Cache、通用寄存器、緩沖、通用寄存器、緩沖存儲器、磁盤存儲器、磁帶存儲器、光盤存存儲器、磁盤存儲器、磁帶存儲器、光盤存儲器等儲器等材料工藝:材料工藝:ECL、TTL、MOS、磁表面、激、磁表面、激光,光,SRAM,DRAM訪問方式:訪問方式:隨機訪問、直接譯碼、先進先出、隨機訪問、直接譯碼、先進先出、 相聯訪問、相聯訪問、 塊傳送、文件組塊傳送、文件組 存儲器的主要性能:存儲器的主要性能:速度、容量、價格速度、容量、價格 速度速度用存儲器的訪問周期、讀出時間、頻帶寬度等表示。 容量容量用字節B、千字節

3、KB、兆字節MB和千兆字節GB等單位表示。 價格價格用單位容量的價格表示,例如:$C/bit。 組成存儲系統的關鍵:組成存儲系統的關鍵:把速度、容量和價格把速度、容量和價格不同的多個物理存儲器組織成一個存儲器,這不同的多個物理存儲器組織成一個存儲器,這個存儲器的速度最快,存儲容量最大,單位容個存儲器的速度最快,存儲容量最大,單位容量的價格最便宜。量的價格最便宜。1. 1. 存儲系統的定義存儲系統的定義 兩個或兩個以上速度、容量和價格各不相同的兩個或兩個以上速度、容量和價格各不相同的存儲器用硬件、軟件、或軟件與硬件相結合的方法存儲器用硬件、軟件、或軟件與硬件相結合的方法連接起來成為一個存儲系統。

4、這個存儲系統對應用連接起來成為一個存儲系統。這個存儲系統對應用程序員是透明的,并且,從應用程序員看,它是一程序員是透明的,并且,從應用程序員看,它是一個存儲器,這個存儲器的速度接近速度最快的那個個存儲器,這個存儲器的速度接近速度最快的那個存儲器,存儲容量與容量最大的那個存儲器相等,存儲器,存儲容量與容量最大的那個存儲器相等,單位容量的價格接近最便宜的那個存儲器。單位容量的價格接近最便宜的那個存儲器。虛擬存儲器系統:對應用程序員透明虛擬存儲器系統:對應用程序員透明Cache存儲系統:對系統程序員以上均透明存儲系統:對系統程序員以上均透明 從從外外部部看看 T Tm mi in n(T T1 1,

5、T T2 2,T Tn n) ,用用存存儲儲周周期期表表示示 S Sm ma ax x(S S1 1,S S2 2,S Sn n) ,用用M MB B或或G GB B表表示示 C Cm mi in n(C C1 1,C C2 2,C Cn n) ,用用每每位位的的價價格格表表示示1 1( (T T1 1, ,S S1 1, ,C C1 1) )2 2( (T T2 2, ,S S2 2, ,C C2 2) )n n( (T Tn n, ,S Sn n, ,C Cn n) )由多個存儲器構成的存儲系統由多個存儲器構成的存儲系統 系系 統統 程程 序序 員員 看看 : 速速 度度 接接 近近 C

6、Ca ac ch he e 的的 速速 度度 , 存存 儲儲 容容 量量 是是 主主 存存 的的 容容 量量 , 每每 位位 價價 格格 接接 近近 主主 存存 儲儲 器器 。C Ca ac ch he e 存存 儲儲 系系 統統C Ca ac ch he e主主 存存 儲儲 器器 在一般計算機系統中,有兩種存儲系統:在一般計算機系統中,有兩種存儲系統:CacheCache存儲系統:由存儲系統:由CacheCache和主存儲器構成和主存儲器構成 主要目的:提高存儲器速度主要目的:提高存儲器速度 應應用用程程序序員員看看: 速速度度接接近近主主存存儲儲器器的的速速度度, 存存儲儲容容量量是是虛虛

7、擬擬地地址址空空間間, 每每位位價價格格接接近近磁磁盤盤存存儲儲器器。虛虛擬擬存存儲儲系系統統主主存存儲儲器器磁磁盤盤存存儲儲器器虛擬存儲系統:由主存儲器和硬盤構成虛擬存儲系統:由主存儲器和硬盤構成 主要目的:擴大存儲器容量主要目的:擴大存儲器容量2.2.存儲系統的容量存儲系統的容量要求:要求:提供盡可能大的地址空間提供盡可能大的地址空間能夠隨機訪問能夠隨機訪問方法有兩種:方法有兩種:只對系統中存儲容量最大的那個存儲器進行編址,其他存儲器只在內部編址或不編址 CacheCache存儲系統存儲系統另外設計一個容量很大的邏輯地址空間,把相關存儲器都映射這個地址空間中 虛擬存儲系統虛擬存儲系統3.3

8、.存儲系統的價格存儲系統的價格計算公式:當S2S1時,CC2 S2與S1不能相差太大 (S S,C C,T T)由由兩兩個個存存儲儲器器構構成成的的存存儲儲系系統統M1(S1,C1,T1)M2(S2,C2,T2)CC SC SSS1122124. 4. 存儲系統的速度存儲系統的速度表示方法:表示方法:訪問周期、存取周期、存儲周期、存取時間等命中率定義:命中率定義:在在M1存儲器中訪問到的概率存儲器中訪問到的概率 其中:N1是對M1存儲器的訪問次數 N2是對M2存儲器的訪問次數訪問周期與命中率的關系:訪問周期與命中率的關系: THT1(1H)T2 當命中率H1時,TT1HNNN112存儲系統的訪

9、問效率:存儲系統的訪問效率:訪問效率主要與命中率和兩級存儲器的速度之訪問效率主要與命中率和兩級存儲器的速度之比有關比有關例例3.13.1:假設T2T,在命中率H為0.9和0.99兩種情況下,分別計算存儲系統的訪問效率。解:解:eTTTH TH THHf HTTTT11111122121()()(,)當當H H0.90.9時,時,e e1 11 1(0.9(0.95(15(10.9)0.9)0.720.72當當H H0.990.99時,時,e e2 21 1(0.99(0.995(15(10.99)0.99)0.960.96提高存儲系統速度的兩條途徑:提高存儲系統速度的兩條途徑:一是提高命中率一

10、是提高命中率H H,二是兩個存儲器的速度不要相差太大二是兩個存儲器的速度不要相差太大其中:第二條有時做不到(如虛擬存儲器),這時,只能依靠提高命中率依靠提高命中率例例3.23.2:在虛擬存儲系統中,兩個存儲器的速度相差特別懸殊,例如:T2105 T。如果要使訪問效率到達e0.9,問需要有多高的命中率?解:解:0.9H90000(1-H)189999.1 H89999計算得:計算得: H0.999998888877777 0.9999990 9111 05.()HH5. 采用預取技術提高命中率采用預取技術提高命中率 方法:方法:不命中時,把不命中時,把M2存儲器中相鄰多個單存儲器中相鄰多個單元組

11、成的一個數據塊取出來送入元組成的一個數據塊取出來送入M1存儲器中。存儲器中。 計算公式:計算公式: 其中:H是采用預取技術之后的命中率 H是原來的命中率 n為數據塊大小與數據重復使用次數的乘積HHnn1例例3.33.3:在一個Cache存儲系統中,當Cache的塊大小為一個字時,命中率H0.8;假設數據的重復利用率為5,T25T1。計算塊大小為個字時,Cache存儲系統的命中率?并分別計算訪問效率。99. 0201208 . 01 2nnHH0.558 .1/10.8)5(1(0.81e10.8H:Cache訪問效率為:,塊大小為一個字時當0.9604. 1/10.99)5(1(0.991e2

12、 0.99H:4Cache2訪問效率為:,個字時塊大小為當解:解:n4520, 采用預取技術之后,命中率提高到:3.1.2 3.1.2 存儲系統的層次結構存儲系統的層次結構多個層次的存儲器多個層次的存儲器: 第第1層:層:Register Files(寄存器堆寄存器堆) 第第2層:層: Buffers(Lookahead)(先行緩沖站先行緩沖站) 第第3層:層: Cache(高速緩沖存儲器高速緩沖存儲器) 第第4層:層: Main Memory(主存儲器主存儲器) 第第5層:層: Online Storage(聯機存儲器聯機存儲器) 第第6層:層: Off-line Storage(脫機存儲器

13、脫機存儲器)用用i表示層數,表示層數,則有:工作周期工作周期TiTi+1, 存儲容量:存儲容量:SiSi+1,單位單位價格:價格:CiCi+1 第第 1 層層 第第 2 層層 第第 3 層層 第第 4 層層 第第 5 層層 第第 6 層層CPU內內部部通通用用寄寄存存器器堆堆聯聯機機外外部部存存儲儲器器(磁磁盤盤存存儲儲器器等等)脫脫機機外外部部存存儲儲器器(磁磁帶帶,光光盤盤存存儲儲器器等等)指指令令和和數數據據緩緩沖沖棧棧C Ca ac ch he e(靜靜態態隨隨機機存存儲儲器器)SRAM)主主存存儲儲器器(動動態態隨隨機機存存儲儲器器 DRAM)存存儲儲容容量量越越來來越越大大每每位位

14、的的價價格格越越來來越越便便宜宜訪訪問問速速度度越越來來越越快快各級存儲器的主要主要性能特性各級存儲器的主要主要性能特性 CPUCPU與主存儲器的速度差距越來越大與主存儲器的速度差距越來越大 目前相差目前相差兩個數量級 今后今后CPUCPU與主存儲器的速度差距會更大與主存儲器的速度差距會更大存存儲儲器器層層次次 通通用用寄寄存存器器 緩緩沖沖棧棧 C Ca ac ch he e 主主存存儲儲器器 磁磁盤盤存存儲儲器器 脫脫機機存存儲儲器器 存存儲儲周周期期 1 10 0n ns s 1 10 0n ns s 1 10 06 60 0n ns s 6 60 03 30 00 0n ns s 1

15、10 03 30 0m ms s 2 22 20 0m mi in n 存存儲儲容容量量 5 51 12 2B B 20002000字字 頁面大小應該為頁面大小應該為2K2K字。字。10P034 . 01H15Pn時時間間t t1 12 23 34 45 56 67 78 89 91 10 0實實際際頁頁地地址址流流P P1 1P P2 2P P1 1P P5 5P P4 4P P1 1P P3 3P P4 4P P2 2P P4 4命命中中次次數數1 11 11 11 1* *4 44 44 4* *4 4* *2 22 2先先進進先先出出算算法法2 22 22 22 2* *1 11 11

16、 11 1* *4 4(F FI IF FO O 算算法法)5 55 55 5* *3 33 33 33 3* *調調入入 調調入入 命命中中 調調入入 替替換換 替替換換 替替換換 命命中中 替替換換 替替換換2 2 次次1 11 11 11 11 11 11 11 1* *2 22 2最最久久沒沒有有使使用用算算法法2 22 22 2* *4 44 44 4* *4 44 44 4(L LR RU U 算算法法)5 55 5* *5 5* *3 33 33 3* *3 3* *調調入入 調調入入 命命中中 調調入入 替替換換 命命中中 替替換換 命命中中 替替換換 命命中中4 4 次次1

17、11 11 11 11 11 1* *3 3* *3 3* *3 33 3最最優優替替換換算算法法2 22 22 22 2* *2 22 22 22 22 2(O OP PT T 算算法法)5 5* *4 44 44 44 44 44 4調調入入 調調入入 命命中中 調調入入 替替換換 命命中中 替替換換 命命中中 命命中中 命命中中5 5 次次三三種種頁頁面面替替換換算算法法對對同同一一個個頁頁地地址址流流的的調調度度過過程程例例3.10:一個循環程序,依次使用P1,P2,P3, P4頁面,分配給它的主存頁面數只有3個。在 FIFO和LRU算法中,發生“顛簸顛簸”現象。時時間間 t t1 1

18、2 23 34 45 56 67 78 8實實際際頁頁地地址址流流P P1 1P P2 2P P3 3P P4 4P P1 1P P2 2P P3 3P P4 4命命中中次次數數1 11 11 1* *4 44 44 4* *3 33 3先先進進先先出出算算法法2 22 22 2* *1 11 11 1* *4 4(F FI IF FO O 算算法法)3 33 33 3* *2 22 22 2* *調調入入調調入入調調入入替替換換替替換換替替換換替替換換替替換換0 0 次次1 11 11 1* *4 44 44 4* *3 33 3最最久久沒沒有有使使用用算算法法2 22 22 2* *1 1

19、1 11 1* *4 4(L LR RU U 算算法法)3 33 33 3* *2 22 22 2* *調調入入調調入入調調入入替替換換替替換換替替換換替替換換替替換換0 0 次次1 11 11 11 11 1* *1 11 11 1最最優優替替換換算算法法2 22 22 22 22 2* *3 3* *3 3(O OP PT T 算算法法)3 3* *4 4* *4 44 44 44 4* *調調入入調調入入調調入入替替換換命命中中命命中中替替換換命命中中3 3 次次5. 5. 堆棧型替換算法堆棧型替換算法 定義:定義:對任意一個程序的頁地址流作兩次主對任意一個程序的頁地址流作兩次主存頁面數

20、分配,分別分配存頁面數分配,分別分配 m 個主存頁面和個主存頁面和 n 個個主存頁面,并且有主存頁面,并且有 mn。如果在任何時刻。如果在任何時刻 t,主存頁面數集合主存頁面數集合 Bt 都滿足關系:都滿足關系: Bt(m) Bt(n),),則這類算法稱為堆棧型替換算法。則這類算法稱為堆棧型替換算法。 堆棧型算法的基本特點是:堆棧型算法的基本特點是: 隨著分配給程序的主存頁面數增加,主存的隨著分配給程序的主存頁面數增加,主存的命中率也提高,至少不下降。命中率也提高,至少不下降。時時間間t t1 12 23 34 45 56 67 78 89 91 10 01 11 11 12 2實實際際頁頁地

21、地址址流流P P1 1P P2 2P P3 3P P4 4P P1 1P P2 2P P5 5P P1 1P P2 2P P3 3P P4 4P P5 5命命中中次次數數1 11 11 1* *4 44 44 4* *5 55 55 55 55 5* *5 5* *主主存存頁頁面面數數2 22 22 2* *1 11 11 1* *1 1* *1 1* *3 33 33 3N N3 33 33 33 3* *2 22 22 22 22 2* *4 44 4調調入入調調入入調調入入替替換換替替換換替替換換替替換換命命中中命命中中替替換換替替換換命命中中3 3次次1 11 11 11 11 1*

22、*1 1* *5 55 55 55 5* *4 44 4主主存存頁頁面面數數2 22 22 22 22 2* *2 2* *1 11 11 11 1* *5 5N N4 43 33 33 33 33 33 3* *2 22 22 22 2* *4 44 44 44 44 44 4* *3 33 33 3調調入入調調入入調調入入調調入入命命中中命命中中替替換換替替換換替替換換替替換換替替換換替替換換2 2次次F FI IF FO O算算法法在在主主存存頁頁面面數數增增加加時時命命中中率率反反而而下下降降3.2.5 3.2.5 提高主存命中率的方法提高主存命中率的方法影響主存命中率的主要因素:影響

23、主存命中率的主要因素:(1)程序在執行過程中的頁地址流分布情況。(2)(2)所采用的頁面替換算法。所采用的頁面替換算法。(3)(3)頁面大小。頁面大小。(4)(4)主存儲器的容量主存儲器的容量(5)(5)所采用的頁面調度算法所采用的頁面調度算法 以下,對后三個因素進行分析。以下,對后三個因素進行分析。1.1.頁面大小與命中率的關系頁面大小與命中率的關系 頁面大小為某個值時,命中率達到最大。頁面大小為某個值時,命中率達到最大。頁面大小與命中率關系的解釋:頁面大小與命中率關系的解釋: 假設At和At+1是相鄰兩次訪問主存的邏輯地址, dAtAt+1。如果如果SpSp,隨著,隨著SpSp增大,增大,

24、A At 和和 A At+1在同一頁在同一頁面的可能性增加,即隨著面的可能性增加,即隨著SpSp的增大而提高。的增大而提高。如果如果SpSp,A At和和A At+1一定不在同一個頁面內。一定不在同一個頁面內。隨著隨著SpSp增大,主存頁面數減少,頁面替換更增大,主存頁面數減少,頁面替換更加頻繁。隨著加頻繁。隨著SpSp的增大而降低。的增大而降低。當Sp比較小的時候,前一種情況是主要的,隨著Sp的增大而提高。當Sp達到某一個最大值之后,后一種情況成為主要的,隨著Sp的增大而降低。當頁面增大時,造 成的浪費也要增加當頁面減小時,頁 表和頁面表在主存 儲器中所占的比例 將增加頁面大小頁面大小 SP

25、命中率命中率1S2 S2. 2. 主存容量與命中率的關系主存容量與命中率的關系 主存命中率主存命中率H H隨著分配給該程序的主存容量隨著分配給該程序的主存容量S S的增加而單調上升。的增加而單調上升。 在S比較小的時候,H提高得非常快。隨著S的逐漸增加,H提高的速度逐漸降低。當S增加到某一個值之后,H幾乎不再提高。1.0命命中中率率H 主存容量 S3. 3. 頁面調度方式與命中率的關系頁面調度方式與命中率的關系 請求式:請求式:當使用到的時候,再調入主存 預取式:預取式:在程序重新開始運行之前,把上次在程序重新開始運行之前,把上次 停止運行前一段時間內用到的頁面先調入到停止運行前一段時間內用到

26、的頁面先調入到 主存儲器,然后才開始運行程序。主存儲器,然后才開始運行程序。 預取式的主要優點:預取式的主要優點: 可以避免在程序開始運行時,頻繁發生頁面 失效的情況。 預取式的主要缺點:預取式的主要缺點: 如果調入的頁面用不上,浪費了調入的時間, 占用了主存的資源。3.3 3.3 高速緩沖存儲器高速緩沖存儲器3.3.1 基本工作原理基本工作原理3.3.2 地址映象與變換方法地址映象與變換方法3.3.3 Cache替換算法及其實現替換算法及其實現3.3.4 Cache存儲系統的加速比存儲系統的加速比3.3.5 Cache的一致性問題的一致性問題3.3.6 Cache的預取算法的預取算法Cach

27、e 存儲系統與虛擬存儲系統的比較存儲系統與虛擬存儲系統的比較 存儲系統存儲系統 Cache 存儲系統存儲系統 虛擬存儲虛擬存儲系統系統 要達到的目標要達到的目標 提高速度提高速度 擴大容量擴大容量 實現方法實現方法 全部硬件全部硬件 軟件為主軟件為主, 硬件為輔硬件為輔 兩級存儲器速度比兩級存儲器速度比 310 倍倍 105倍倍 頁(塊)大小頁(塊)大小 116 字字 1KB16KB 等效存儲容量等效存儲容量 主存儲器主存儲器 虛擬存儲器虛擬存儲器 透明性透明性 對系統和應用程序員對系統和應用程序員 僅對應用程序員僅對應用程序員 不命中時處理方式不命中時處理方式 等待主存儲器等待主存儲器 任務

28、切換任務切換 主存儲器地址(來自主存儲器地址(來自 CPU) 塊號塊號 B 塊內地址塊內地址 W 主存地址主存地址 未命中未命中 主存主存Cache 地址變換地址變換 命中命中 已滿已滿 未滿未滿 塊號塊號 b 塊內地址塊內地址 w Cache地址地址 Cache 替換策略替換策略 替換塊替換塊 裝入塊裝入塊 Cache 數據送數據送 CPU(一個字)(一個字) 主存儲器 3.3.1 3.3.1 基本工作原理基本工作原理3.3.2 3.3.2 地址映象與變換方法地址映象與變換方法 地址映象:地址映象: 把主存中的程序按照某種規則裝入到把主存中的程序按照某種規則裝入到Cache中,并中,并建立主

29、存地址與建立主存地址與Cache地址之間的對應關系。地址之間的對應關系。 地址變換:地址變換: 當程序已經裝入到當程序已經裝入到Cache之后,在程序運行過程中,之后,在程序運行過程中,把主存地址變換成把主存地址變換成Cache地址。地址。在選取地址映象方法要考慮的主要因素:在選取地址映象方法要考慮的主要因素: 地址變換的硬件實現容易、速度要快,地址變換的硬件實現容易、速度要快, 主存空間利用率要高,主存空間利用率要高, 發生塊沖突的概率要小。發生塊沖突的概率要小。1. 1. 全相聯映象及其變換全相聯映象及其變換 映象規則:映象規則:主存的任意主存的任意 一塊可以映象到一塊可以映象到Cache

30、 中的任意一塊。中的任意一塊。(映象關系有CbMb種)塊塊 0塊塊 1塊塊 0塊塊 1塊塊 i塊塊 Cb-1Cache塊塊 Mb-1主主存存儲儲器器 地址變換規則地址變換規則 用硬件實現非常復雜用硬件實現非常復雜 塊塊號號 B 塊塊內內地地址址W 主主存存地地址址 Cache 地地址址 塊塊號號 b 塊塊內內地地址址 w 相相聯聯比比較較 命命中中 B b 主主存存塊塊號號 B Cache 塊塊號號 b 有有效效位位 目目錄錄表表(由由相相聯聯存存儲儲器器構構成成,共共 Cb個個字字) 2. 2. 直接映象及其變換直接映象及其變換 映象規則:映象規則: 主存儲器中一塊只能映象到主存儲器中一塊只

31、能映象到Cache的一個特的一個特定的塊中。定的塊中。 Cache地址的計算公式:地址的計算公式: bB mod Cb 其中:b為Cache塊號, B是主存塊號, Cb是Cache塊數。 實際上,Cache地址與主存儲器地址的低位部地址與主存儲器地址的低位部分完全相同。分完全相同。 直接映象方式的地址映象規則直接映象方式的地址映象規則 塊塊 0 塊塊 1 區區 0 塊塊 Cb-1 塊塊 0 塊塊 Cb 塊塊 1 塊塊 Cb+1 區區 1 塊塊 Cb-1 塊塊 2Cb-1 Cache 塊塊 Mb-Cb 塊塊 Mb-Cb+1 區區 Me-1 塊塊 Mb-1 主主存存儲儲器器 直接映象方式的地址變換

32、過程:直接映象方式的地址變換過程:用主存地址中的塊號用主存地址中的塊號B去訪問區號存儲器,把去訪問區號存儲器,把讀出來的區號與主存地址中的區號讀出來的區號與主存地址中的區號E進行比進行比較:較:比較結果相等,有效位為1,則Cache命中,否則該塊已經作廢。比較結果不相等,有效位為1,Cache中的該塊是有用的,否則該塊是空的。 主主存存地地址址 區區號號 E 塊塊號號 B 塊塊內內地地址址W Cache 地地址址 塊塊號號 b 塊塊內內地地址址 w 塊塊失失效效 相相等等比比較較 比比較較相相等等且且有有效效為為 1 E 1 訪訪問問 Cache 區區號號 E(按按地地址址訪訪問問) 有有效效

33、位位 區區表表存存儲儲器器 直接映象方式的地址變換規則直接映象方式的地址變換規則 提高提高Cache速度的一種方法:速度的一種方法: 把區號存儲器與把區號存儲器與Cache合并成一個存儲器合并成一個存儲器 區區號號 E 塊塊號號 B 塊塊內內地地址址W Cache 地地址址 塊塊號號 b 塊塊內內地地址址 w 送送 CPU 訪訪問問主主存存 相相等等比比較較 相相等等 1/w 選選擇擇 1 E D0 D1 Dw-1 有有效效位位 區區號號 E 數數據據 D0 數數據據 D1 數數據據 Dw-1 按按地地址址訪訪問問的的 Cache 2. 2. 直接映象及其變換的優缺點直接映象及其變換的優缺點

34、主要優點:主要優點: 硬件實現很簡單,不需要相聯訪問存儲器硬件實現很簡單,不需要相聯訪問存儲器 訪問速度也比較快,實際上不需要進行地訪問速度也比較快,實際上不需要進行地址變換址變換 主要缺點:主要缺點: 塊的沖突率比較高。塊的沖突率比較高。3. 3. 組相聯映象及其變換組相聯映象及其變換 映象規則:映象規則: 主存和主存和Cache按同樣大小劃分成塊和組。按同樣大小劃分成塊和組。 主存和主存和Cache的組之間采用直接映象方式。的組之間采用直接映象方式。 在兩個對應的組內部采用全相聯映象方式。在兩個對應的組內部采用全相聯映象方式。 組相聯映象方式的優點:組相聯映象方式的優點: 塊的沖突概率比較

35、低,塊的沖突概率比較低, 塊的利用率大幅度提高,塊的利用率大幅度提高, 塊失效率明顯降低。塊失效率明顯降低。 組相聯映象方式的缺點:組相聯映象方式的缺點: 實現難度和造價要比直接映象方式高。實現難度和造價要比直接映象方式高。 塊塊 0 組組 0 Gb-1 Gb 組組 1 2Gb-1 區區 0 塊塊 0 GbCg-Gb 組組 0 組組 Cg-1 Gb-1 Cb-1=GbCg-1 Gb 1 2Gb-1 GbCg(Me-1) Cg(Me-1) GbCg(Me-1)+Gb-1 Cb-Gb=CgGb-Gb GbCg(Me-1)+Gb Cg-1 CgMe-Cg+1 Cb-1=CgGb-1 GbCg(Me-

36、1)+2Gb-1 塊塊 2( Cb-1) Me-1 Cache Me-Gb=GbCgMe-Gb CgMe-1 Mb-1=GbCgMe-1 主主 存存 儲儲 器器 組組 相相 聯聯 映映 象象 方方 式式 組相聯映象的地址變換過程:組相聯映象的地址變換過程:用主存地址中的組號用主存地址中的組號G按地址訪問塊表存儲器。按地址訪問塊表存儲器。 把讀出來的一組區號和塊號與主存地址中的把讀出來的一組區號和塊號與主存地址中的區號和塊號進行區號和塊號進行相聯比較相聯比較。如果有相等的,表示Cache命中;如果全部不相等,表示Cache沒有命中。 區區號號 E 組組號號 G 組組內內塊塊號號 B 塊塊內內地地

37、址址 W 主主存存地地址址 組組號號 g 組組內內塊塊號號 b 塊塊內內地地址址 w Cache 地地址址 不不等等 相相聯聯比比較較 相相等等 相相聯聯比比較較(Gb個個塊塊) 區區號號 E,組組內內塊塊號號 B 組組內內塊塊號號 b 塊塊 表表 組相聯映象的地址變換組相聯映象的地址變換 提高提高Cache訪問速度的一種方法:訪問速度的一種方法: 用多個相等比較器來代替相聯訪問用多個相等比較器來代替相聯訪問區區號號 E區區內內組組號號 G組組內內塊塊號號 B塊塊內內地地址址 W 主主存存地地址址 塊塊失失效效組組號號 g組組內內塊塊號號 b塊塊內內地地址址 w 與與Cache 地地址址或或相

38、相等等比比較較相相等等比比較較相相等等比比較較E, B beE, BbE, B be 塊塊表表(按按地地址址訪訪問問,讀讀出出的的多多個個字字段段進進行行相相聯聯比比較較,e 為為有有效效位位)4. 4. 位選擇組相聯映象及其變換位選擇組相聯映象及其變換地址映象規則:地址映象規則:主存和主存和Cache都按同樣大小分塊,都按同樣大小分塊,Cache在分塊的基礎上再分組,在分塊的基礎上再分組,主存按照主存按照Cache的組容量分區。的組容量分區。主存的塊與主存的塊與Cache的組之間采用直接映象方式,的組之間采用直接映象方式,主存中的塊與主存中的塊與Cache中組內部的各個塊之間采中組內部的各個

39、塊之間采用全相聯映象方式。用全相聯映象方式。與組相聯映象方式比較:與組相聯映象方式比較: 映象關系明顯簡單,實現起來容易。映象關系明顯簡單,實現起來容易。 在塊表中存放和參與相聯比較的只有區號在塊表中存放和參與相聯比較的只有區號E 位選擇組相聯的地址映象規則位選擇組相聯的地址映象規則 塊塊 0 1 區區 0 塊塊 0 組組 0 Cg-1 Gb-1 Cg Gb Cg+1 組組 1 區區 1 2Gb-1 2Cg-1 Cb-Gb=CgGb-Gb Cg-1 Cg(Mb-1) Cb-1=CgGb-1 Cg(Mb-1)+1 Cache 區區 Me-1 Mb-1=CgMe-1 主主存存儲儲器器 區區號號 E

40、區區內內塊塊號號 B塊塊內內地地址址 W 主主存存地地址址 塊塊失失效效組組號號 g組組內內塊塊號號 b塊塊內內 w 與與Cache 地地址址或或相相等等比比較較相相等等比比較較 相相等等比比較較 E b E b E b區區號號E塊塊號號be區區號號E塊塊號號be區區號號E塊塊號號be塊塊表表(按按地地址址訪訪問問,讀讀出出的的多多個個區區號號進進行行相相聯聯比比較較,e 是是有有效效位位) 位選擇組相聯的地址變換規則位選擇組相聯的地址變換規則5. 5. 段相聯映象及其變換段相聯映象及其變換映象規則:映象規則: 主存和主存和Cache都按同樣大小分塊和段都按同樣大小分塊和段 段之間采用全相聯映

41、象方式段之間采用全相聯映象方式 段內部的塊之間采用直接映象方式段內部的塊之間采用直接映象方式地址變換過程:地址變換過程:用主存地址中的段號與段表中的主存段號進行用主存地址中的段號與段表中的主存段號進行相聯比較相聯比較如果有相等的,用主存地址的段內塊號按地址如果有相等的,用主存地址的段內塊號按地址訪問訪問Cache的段號部分。的段號部分。把讀出的段號s與主存地址的段內塊號b及塊內地址w拼接起來得到Cache地址; 段相聯映象地址映象規則段相聯映象地址映象規則 塊塊 0 段段 0 Sb-1 塊塊 0 Sb 段段 0 段段 1 Sb-1 2Sb-1 Sb 段段 1 2Sb-1 Cb-Sb=Sb(Cs

42、-1) Cs-1 Cb-1=SbCs-1 Cache Mb-Sb=Sb(Ms-1) Ms-1 Mb-1=SbMs-1 主主 存存 儲儲 器器 主主 存存 地地 址址段段 號號 S段段 內內 塊塊 號號 B塊塊 內內 地地 址址 W段段 號號 s段段 內內 塊塊 號號 b塊塊 內內 地地 址址 wC ache 地地 址址相相 聯聯 比比 較較 段段 0 S 按按 地地 址址 訪訪 問問 段段 1s1 主主 存存 段段 號號 SC ache 段段 號號 s有有 效效 位位 Ms-1 段段 表表 ( 按按 地地 址址 和和 相相 聯聯 兩兩 種種 訪訪 問問 方方 式式 )段段相相聯聯映映象象地地址

43、址變變換換過過程程段相聯映象方式的優缺點段相聯映象方式的優缺點主要優點:主要優點: 段表比較簡單,實現的成本低。段表比較簡單,實現的成本低。 例如:例如:一個容量為256KB的Cache,分成8個段,每段2048塊,每塊16B。 在段表存儲器中只需要存8個主存地址的段號, 而在塊表中要存儲8204816384個區號, 兩者相差2000多倍。主要缺點:主要缺點: 當發生段失效時,要把本段內已經建立起來的所有映象關系全部撤消。3.3.3 Cache3.3.3 Cache替換算法及其實現替換算法及其實現使用的場合:使用的場合: 直接映象方式實際上不需要替換算法直接映象方式實際上不需要替換算法 全相聯

44、映象方式的替換算法最復雜全相聯映象方式的替換算法最復雜 主要用于主要用于組相聯組相聯、段相聯等映象方式中、段相聯等映象方式中要解決的問題:要解決的問題:記錄每次訪問記錄每次訪問Cache的塊號的塊號在訪問過程中,對記錄的塊號進行管理在訪問過程中,對記錄的塊號進行管理根據記錄和管理結果,找出替換的塊號根據記錄和管理結果,找出替換的塊號主要特點:主要特點:全部用硬件實現全部用硬件實現1. 1. 輪換法及其實現輪換法及其實現 用于組相聯映象方式中,有兩種實現方法。方法一:每塊一個計數器方法一:每塊一個計數器在塊表內增加一個替換計數器字段,在塊表內增加一個替換計數器字段, 計數器的長度與Cache地址

45、中的組內塊號字段的長度相同。替換方法及計數器的管理規則:替換方法及計數器的管理規則:新裝入或替換的塊,它的計數器清新裝入或替換的塊,它的計數器清0,同組其,同組其它塊的計數器都加它塊的計數器都加“1”。在同組中選擇計數器的值最大的塊作為被替換在同組中選擇計數器的值最大的塊作為被替換的塊。的塊。方法二:每組一個計數器方法二:每組一個計數器替換規則和計數器的管理:替換規則和計數器的管理: 本組有替換時,計數器加本組有替換時,計數器加“1”, 計數器的值就是要被替換出去的塊號。計數器的值就是要被替換出去的塊號。輪換法的優點:輪換法的優點:實現比較簡單,能夠利用歷史實現比較簡單,能夠利用歷史上的塊地址

46、流情況上的塊地址流情況輪換法的缺點:輪換法的缺點:沒有利用程序的局部性特點沒有利用程序的局部性特點2. LRU2. LRU算法及其實現算法及其實現為每一塊設置一個計數器為每一塊設置一個計數器 計數器的長度與塊號字段的長度相同計數器的使用及管理規則:計數器的使用及管理規則:新裝入或替換的塊,計數器清新裝入或替換的塊,計數器清0,同組中其它,同組中其它塊的計數器加塊的計數器加1。命中塊的計數器清命中塊的計數器清0,同組的其它計數器中,同組的其它計數器中,凡計數器的值小于命中塊計數器原來值的加凡計數器的值小于命中塊計數器原來值的加1,其余計數器不變。,其余計數器不變。需要替換時,在同組的所有計數器中

47、選擇計數需要替換時,在同組的所有計數器中選擇計數值最大的計數器,它所對應的塊被替換。值最大的計數器,它所對應的塊被替換。LRU算法的優缺點算法的優缺點主要優點:主要優點: (1)命中率比較高,命中率比較高, (2)能夠比較正確地利用程序的局部性特點,能夠比較正確地利用程序的局部性特點, (3)充分地利用歷史上塊地址流的分布情況,充分地利用歷史上塊地址流的分布情況, (4)是一種堆棧型算法,隨著組內塊數增加,是一種堆棧型算法,隨著組內塊數增加,命中率單調上升。命中率單調上升。主要缺點:主要缺點: 控制邏輯復雜,控制邏輯復雜,因為增加了判斷和處理是否命中的情況。 3. 3. 堆棧法堆棧法堆棧法的管

48、理規則:堆棧法的管理規則:把本次訪問的塊號與堆棧中保存的所有塊號進把本次訪問的塊號與堆棧中保存的所有塊號進行相聯比較。行相聯比較。如果有相等的,則如果有相等的,則Cache命中。把本次訪問塊號命中。把本次訪問塊號從棧頂壓入,堆棧內各單元中的塊號依次往從棧頂壓入,堆棧內各單元中的塊號依次往下移,直至與本次訪問的塊號相等的那個單下移,直至與本次訪問的塊號相等的那個單元為止,再往下的單元直止棧底都不變。元為止,再往下的單元直止棧底都不變。如果沒有相等的,則Cache塊失效。本次訪問的塊號從棧頂壓入,堆棧內各單元的塊號依次往下移,直至棧底,棧底單元中的塊號被移出堆棧,它就是要被替換的塊號。 本本次次訪

49、訪問問的的塊塊號號 棧棧頂頂 最最近近訪訪問問過過的的塊塊 壓壓入入過過程程到到此此為為止止 與與本本次次訪訪問問的的塊塊號號相相等等 棧棧底底 最最久久沒沒有有被被訪訪問問過過的的塊塊 堆棧法的主要優點:堆棧法的主要優點: 塊失效率比較低,因為它采用了塊失效率比較低,因為它采用了LRU算法。算法。 硬件實現相對比較簡單。硬件實現相對比較簡單。堆棧法的主要缺點:堆棧法的主要缺點: 速度比較低,因為它需要進行相聯比較。速度比較低,因為它需要進行相聯比較。堆棧法與比較對法所用觸發器的比例:堆棧法與比較對法所用觸發器的比例: 其中,Gb是Cache每一組的塊數。當Gb大于8時,堆棧法所用的器件明顯少

50、于比較對法。GGGGbbbb()log122:3.3.4 Cache3.3.4 Cache存儲系統的加速比存儲系統的加速比1. 1. 加速比與命中率的關系加速比與命中率的關系Cache存儲系統的加速比SP為: 其中:Tm為主存儲器的訪問周期, Tc為Cache的訪問周期, T為Cache存儲系統的等效訪問周期, H為命中率。提高加速比的最好途徑是提高命中率提高加速比的最好途徑是提高命中率STTTH TH THHTTf HTTpmmcmcmmc()()(,)111 加速比加速比 SP 能夠接近于期望值是能夠接近于期望值是: 加速比加速比SP與命中率與命中率H的關系的關系SP期望值期望值1命中率命

51、中率 HSP max=TmTcTTmc2. Cache2. Cache命中率與容量的關系命中率與容量的關系 Cache的命中率隨它的容量的增加而提高。的命中率隨它的容量的增加而提高。 關系曲線可以近似地表示為:容量容量 S命中率命中率 H1SH113. Cache3. Cache命中率與塊大小的關系命中率與塊大小的關系 在組相聯方式中在組相聯方式中, 塊大小對命中率非常敏感塊大小對命中率非常敏感 塊很小時,命中率很低。 隨著塊大小增加命中率也增加, 有一個極大值有一個極大值 當塊非常大時, 進入Cache中的數據可能無用 當塊大小等于Cache容量時, 命中率將趨近零4. Cache4. Ca

52、che命中率與組數的關系命中率與組數的關系 在組相聯方式中在組相聯方式中, 組數對命中率的影響很明顯組數對命中率的影響很明顯 隨著組數的增加,Cache的命中率要降低。 當組數不太大時(小于512), 命中率的降低很少 當組數超過一定數量時, 命中率的下降非常快 Cache命中率與塊大小的關系命中率與塊大小的關系塊大小命中率 H1初始 最 佳3.3.5 Cache3.3.5 Cache的一致性的一致性造成造成Cache與主存的不一致的原因:與主存的不一致的原因: (1) 由于CPU寫Cache,沒有立即寫主存 (2) 由于IO處理機或IO設備寫主存CPUI/OCPUI/OCacheXCache

53、X主主存存儲儲器器X主主存存儲儲器器X(a) CPU寫寫Cache (b) I/O寫寫主主存存Cache的更新算法的更新算法 (1)寫直達法,寫直達法,寫通過法,寫通過法,WT(Write-through) CPU的數據寫入Cache時,同時也寫入主存 (2) 寫回法,寫回法,抵觸修改法,抵觸修改法,WB(Write-Back) CPU的數據只寫入Cache,不寫入主存,僅當替換時,才把修改過的Cache塊寫回主存寫回法寫回法與與寫直達法寫直達法的優缺點比較:的優缺點比較: (1)可靠性,寫直達法優于寫回法。可靠性,寫直達法優于寫回法。寫直達法能夠始終保證Cache是主存的副本。如果Cache

54、發生錯誤,可以從主存得到糾正。 (2)與主存的通信量,寫回法少于寫直達法。與主存的通信量,寫回法少于寫直達法。對于寫回法: 大多數操作只需要寫Cache,不需要寫主存; 當發生塊失效時,可能要寫一個塊到主存; 即使是讀操作,也可能要寫一個塊到主存。對于寫直達法: 每次寫操作,必須寫、且只寫一個字到主存。實際上: 寫直達法的寫次數很多、每次只寫一個字; 寫回法是的寫次數很少、每次要寫一個塊。舉例說明: (3)控制的復雜性控制的復雜性, 寫直達法比寫回法簡單。寫直達法比寫回法簡單。對于寫回法: 要為每塊設置一個修改位,而且要對修改位進行管理; 為了保證Cache的正確性,通常要采用比較復雜的校驗方

55、式或校正方式。對于寫直達法: 不需要設置修改位; 只需要采用簡單的奇偶校驗即可。由于Cache始終是主存的副本,Cache一旦有錯誤可以從主存得到糾正。 (4)硬件實現的代價硬件實現的代價, 寫回法要比寫直達法好。寫回法要比寫直達法好。對于寫直達法: 為了縮短寫Cache流水段的時間,通常要設置一個小容量的高速寄存器堆(后行寫數緩沖站),每個存儲單元要有數據、地址和控制狀態等3部分組成。 每次寫主存時,首先把寫主存的數據和地址寫到高速寄存器堆中。 每次讀主存時,要首先判斷所讀數據是否在這個高速寄存器堆中。寫回法不需要設置高速緩沖寄存器堆。 寫寫Cache的兩種方法:的兩種方法: (1)不按寫分

56、配法:不按寫分配法: 在寫Cache不命中時,只把所要寫的字寫入主存。 (2)按寫分配法:按寫分配法: 在寫Cache不命中時,還把一個塊從主存讀入Cache。 目前,在寫回法中采用按寫分配法,在寫回法中采用按寫分配法, 在寫直達法中采用不按寫分配法。在寫直達法中采用不按寫分配法。解決解決Cache與主存不一致的主要方法:與主存不一致的主要方法: (1)共享共享Cache法。法。能根本解決Cache不一致, 共享Cache可能成為訪問的瓶頸,硬件復雜 (2)作廢法。作廢法。當某一處理機寫局部Cache時, 同時作廢其他處理機的局部Cache。 (3)播寫法。播寫法。把寫Cache的內容和地址放

57、到公共總線上,各局部Cache隨時監聽公共總線 (4)目錄表法。目錄表法。在目錄表中存放Cache一致性的全部信息。 (5)禁止共享信息放在局部禁止共享信息放在局部Cache中。中。 Cache對系統程序員不透明。3.3.6 Cache3.3.6 Cache的預取算法的預取算法預取算法有如下幾種:預取算法有如下幾種: (1)按需取。按需取。當出現Cache不命中時,才把需要的一個塊取到Cache中。 (2)恒預取。恒預取。無論Cache是否命中,都把下一塊取到Cache中。 (3)不命中預取。不命中預取。當出現Cache不命中,把本塊和下一塊都取到Cache中。主要考慮因素:主要考慮因素: 命中率是否提高,命中率是否提高,Cache與主存間通信量。與主存間通信量。 恒預取能使Cache不命中率降低7585 不命中預

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論