




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、現(xiàn)代計(jì)算機(jī)系統(tǒng)以存儲(chǔ)器為中心 3.1 存儲(chǔ)系統(tǒng)原理 3.2 虛擬存儲(chǔ)器 3.3 高速緩沖存儲(chǔ)器(Cache) 3.4 三級(jí)存儲(chǔ)系統(tǒng)第3章 存儲(chǔ)系統(tǒng) 3.1 存儲(chǔ)系統(tǒng)原理3.1.1 存儲(chǔ)系統(tǒng)的定義3.1.2 存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)3.1.3 存儲(chǔ)系統(tǒng)的頻帶平衡3.1.4 并行訪問存儲(chǔ)器 3.1.5 交叉訪問存儲(chǔ)器 3.1.6 無沖突訪問存儲(chǔ)器3.1.1 存儲(chǔ)系統(tǒng)的定義在一臺(tái)計(jì)算機(jī)中,通常有多種存儲(chǔ)器種類:主存儲(chǔ)器、Cache、通用寄存器、緩沖存儲(chǔ)器、磁盤存儲(chǔ)器、磁帶存儲(chǔ)器、光盤存儲(chǔ)器等材料工藝:ECL、TTL、MOS、磁表面、激光,SRAM,DRAM訪問方式:隨機(jī)訪問、直接譯碼、先進(jìn)先出、 相聯(lián)訪問
2、、 塊傳送、文件組存儲(chǔ)器的主要性能:速度、容量、價(jià)格 速度:用存儲(chǔ)器的存儲(chǔ)周期TM、訪問時(shí)間TA 、頻帶寬度BM等表示。TM是指連續(xù)完成兩次R/W所需的時(shí)間間隔,TA是存儲(chǔ)器接到訪存申請(qǐng),完成一次R/W所需的時(shí)間,一般有TM TA ;BM是指存儲(chǔ)器在單位時(shí)間內(nèi)傳送的信息量,表示為: 容量:用字節(jié)B、千字節(jié)KB、兆字節(jié)MB和千兆字節(jié)GB等單位表示其中w為存儲(chǔ)器的字長(zhǎng),l為存儲(chǔ)器的體長(zhǎng)(字?jǐn)?shù)),m為并行工作的存儲(chǔ)體的個(gè)數(shù)(或稱為模數(shù))。存儲(chǔ)器的主要性能:速度、容量、價(jià)格價(jià)格:用單位容量的價(jià)格表示,例如:$C/bit。主觀上,希望存儲(chǔ)器的容量越大越好,速度越快越好,而價(jià)格越便宜越好。實(shí)際上,這三個(gè)指
3、標(biāo)的提高總是相互矛盾的。如何解決這個(gè)矛盾呢?組成存儲(chǔ)系統(tǒng)的關(guān)鍵:把速度、容量和價(jià)格不同的多個(gè)物理存儲(chǔ)器組織成一個(gè)存儲(chǔ)器,這個(gè)存儲(chǔ)器的速度最快,存儲(chǔ)容量最大,單位容量的價(jià)格最便宜。1. 存儲(chǔ)系統(tǒng)的定義 兩個(gè)或兩個(gè)以上速度、容量和價(jià)格各不相同的存儲(chǔ)器用硬件、軟件、或軟件與硬件相結(jié)合的方法連接起來成為一個(gè)存儲(chǔ)系統(tǒng)。 這個(gè)存儲(chǔ)系統(tǒng)對(duì)應(yīng)用程序員是透明的,并且,從應(yīng)用程序員看,它是一個(gè)存儲(chǔ)器,這個(gè)存儲(chǔ)器的速度接近速度最快的那個(gè)存儲(chǔ)器,存儲(chǔ)容量與容量最大的那個(gè)存儲(chǔ)器相等,單位容量的價(jià)格接近最便宜的那個(gè)存儲(chǔ)器?,F(xiàn)代計(jì)算機(jī)系統(tǒng)的兩種典型存儲(chǔ)系統(tǒng):虛擬存儲(chǔ)器系統(tǒng):對(duì)應(yīng)用程序員透明Cache存儲(chǔ)系統(tǒng):對(duì)系統(tǒng)程序員以
4、上均透明由多個(gè)存儲(chǔ)器構(gòu)成的存儲(chǔ)系統(tǒng)在一般計(jì)算機(jī)系統(tǒng)中,有兩種存儲(chǔ)系統(tǒng):Cache存儲(chǔ)系統(tǒng):由Cache和主存儲(chǔ)器構(gòu)成主要目的:提高存儲(chǔ)器速度虛擬存儲(chǔ)系統(tǒng):由主存儲(chǔ)器和硬盤構(gòu)成 主要目的:擴(kuò)大存儲(chǔ)器容量2.存儲(chǔ)系統(tǒng)的容量要求: 提供盡可能大的地址空間 能夠隨機(jī)訪問兩種不同的編址方法:Cache存儲(chǔ)系統(tǒng) 只對(duì)系統(tǒng)中存儲(chǔ)容量最大的那個(gè)存儲(chǔ)器進(jìn)行編址,其他存儲(chǔ)器只在內(nèi)部編址或不編址虛擬存儲(chǔ)系統(tǒng) 另外設(shè)計(jì)一個(gè)容量很大的邏輯地址空間,把相關(guān)存儲(chǔ)器都映射這個(gè)地址空間中3.存儲(chǔ)系統(tǒng)的價(jià)格計(jì)算公式:當(dāng)S2S1時(shí),CC2 S2與S1不能相差太大4. 存儲(chǔ)系統(tǒng)的速度表示方法:訪問周期、存取周期、存儲(chǔ)周期、存取時(shí)間等
5、命中率定義:在M1存儲(chǔ)器中訪問到的概率 其中:N1是對(duì)M1存儲(chǔ)器的訪問次數(shù) N2是對(duì)M2存儲(chǔ)器的訪問次數(shù)訪問周期與命中率的關(guān)系: THT1(1H)T2當(dāng)命中率H1時(shí),TT1存儲(chǔ)系統(tǒng)的訪問效率:訪問效率與命中率和兩級(jí)存儲(chǔ)器的速度之比有關(guān)例3.1:假設(shè)T2T,在命中率H為0.9和0.99兩種情況下,分別計(jì)算存儲(chǔ)系統(tǒng)的訪問效率。解:當(dāng)H0.9時(shí),e11(0.95(10.9)0.72當(dāng)H0.99時(shí),e21(0.995(10.99)0.96提高存儲(chǔ)系統(tǒng)速度的兩條途徑:提高命中率H,兩個(gè)存儲(chǔ)器的速度不要相差太大其中:第二條有時(shí)做不到(如虛擬存儲(chǔ)器),這時(shí),只能依靠提高命中率例3.2:在虛擬存儲(chǔ)系統(tǒng)中,兩個(gè)
6、存儲(chǔ)器的速度相差特別懸殊,例如:T2105 T。如果要使訪問效率到達(dá)e0.9,問需要有多高的命中率?解:0.9H90000(1-H)189999.1 H89999計(jì)算得: H0.999998888877777 0.9999995. 采用預(yù)取技術(shù)提高命中率 方法:不命中時(shí),把M2存儲(chǔ)器中相鄰多個(gè)單元組成的一個(gè)數(shù)據(jù)塊取出來送入M1存儲(chǔ)器中。 計(jì)算公式: 其中:H是采用預(yù)取技術(shù)之后的命中率 H是原來的命中率 n為數(shù)據(jù)塊大小與數(shù)據(jù)重復(fù)使用次數(shù)的乘積例3.3:在一個(gè)Cache存儲(chǔ)系統(tǒng)中,當(dāng)Cache的塊大小為一個(gè)字時(shí),命中率H0.8;假設(shè)數(shù)據(jù)的重復(fù)利用率為5,T25T1。計(jì)算塊大小為個(gè)字時(shí),Cache存
7、儲(chǔ)系統(tǒng)的命中率?并分別計(jì)算訪問效率。解:n4520, 采用預(yù)取技術(shù)之后,命中率提高到:例3.4:在一個(gè)虛擬存儲(chǔ)系統(tǒng)中,T2105 T,原來的命中率只有0.8,如果訪問磁盤存儲(chǔ)器的數(shù)據(jù)塊大小為4K字,并要求訪問效率不低于0.9,計(jì)算數(shù)據(jù)在主存儲(chǔ)器中的重復(fù)利用率至少為多少?解:假設(shè)數(shù)據(jù)在主存儲(chǔ)器中的重復(fù)利用率為m,根據(jù)題目給出的關(guān)系,有如下方程組:解:由方程(1)得到:0.9H H=1 證明方法一: 采用預(yù)取技術(shù)之后, 不命中率(1-H)降低倍: 證明方法二: 在原有命中率的計(jì)算公式中,把訪問次數(shù)擴(kuò)大到n倍。由于采用了預(yù)取技術(shù),命中次數(shù)為:nN1(n-1)N2,不命中次數(shù)仍為N2,因此新的命中率為
8、:3.1.2 存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)多個(gè)層次的存儲(chǔ)器:第1層:Register Files(寄存器堆) 第2層:Buffers(Lookahead)(先行緩沖站) 第3層: Cache(高速緩沖存儲(chǔ)器) 第4層: Main Memory(主存儲(chǔ)器) 第5層: Online Storage(聯(lián)機(jī)存儲(chǔ)器) 第6層: Off-line Storage(脫機(jī)存儲(chǔ)器)用i表示層數(shù),則有:工作周期TiTi+1, 存儲(chǔ)容量:SiSi+1,單位價(jià)格:CiCi+1各級(jí)存儲(chǔ)器的主要主要性能特性 CPU與主存儲(chǔ)器的速度差距越來越大 目前相差兩個(gè)數(shù)量級(jí) 今后CPU與主存儲(chǔ)器的速度差距會(huì)更大3.1.3 存儲(chǔ)系統(tǒng)的頻帶平衡例
9、3.5:Pentium4的指令執(zhí)行速度為8GIPS,CPU取指令8GW/s,訪問數(shù)據(jù)16GW/s,各種輸入輸出設(shè)備訪問存儲(chǔ)器1GW/s,三項(xiàng)相加,要求存儲(chǔ)器的頻帶寬度不低于25GW/s。如果采用PC133內(nèi)存,主存與CPU速度差188倍如果采用PC266內(nèi)存,主存與CPU速度差94倍解決存儲(chǔ)器頻帶平衡方法 (1)多個(gè)存儲(chǔ)器并行工作(本節(jié)下面介紹) (2)設(shè)置各種緩沖存儲(chǔ)器(第五章介紹) (3)采用存儲(chǔ)系統(tǒng)(本章第二、第三節(jié)介紹)3.1.4 并行訪問存儲(chǔ)器方法:把m字w位的存儲(chǔ)器改變成為m/n字nw位的存儲(chǔ)器(由多個(gè)存儲(chǔ)芯片構(gòu)成)邏輯實(shí)現(xiàn):把地址碼分成兩個(gè)部分,一部分作為存儲(chǔ)器的地址;另一部分負(fù)
10、責(zé)選擇數(shù)據(jù)主要缺點(diǎn):訪問沖突大 (1)取指令沖突:轉(zhuǎn)移成功時(shí); (2)讀操作數(shù)沖突:一次讀出n個(gè)數(shù)未必都有用; (3)寫數(shù)據(jù)沖突:寫一個(gè)字時(shí)必須先讀后寫; (4)讀寫沖突:讀一個(gè)字和寫一個(gè)字在同一存儲(chǔ)字中時(shí),無法在一個(gè)時(shí)鐘周期完成。并行訪問存儲(chǔ)器結(jié)構(gòu)框圖1. 高位交叉訪問存儲(chǔ)器主要目的:擴(kuò)大存儲(chǔ)器容量實(shí)現(xiàn)方法:用地址碼的高位部分區(qū)分存儲(chǔ)體號(hào)參數(shù)計(jì)算方法: m:每個(gè)存儲(chǔ)體的容量, n:總共的存儲(chǔ)體個(gè)數(shù), j:存儲(chǔ)體的體內(nèi)地址,j0,1,2,m-1 k:存儲(chǔ)體的體號(hào),k0,1,2,n-1 存儲(chǔ)器的地址:Amkj 存儲(chǔ)器的體內(nèi)地址:AjA mod m。 存儲(chǔ)器的體號(hào):Ak 3.1.5 交叉訪問存儲(chǔ)器
11、高位交叉訪問存儲(chǔ)器結(jié)構(gòu)框圖地址編碼方向例3.6:用4M字4位的存儲(chǔ)芯片組成16M32位的主存儲(chǔ)器。共用存儲(chǔ)芯片:用最高2位地址經(jīng)譯碼后產(chǎn)生的信號(hào),控制各組(共4組)存儲(chǔ)芯片CS。每組中的32根數(shù)據(jù)線分別對(duì)應(yīng)直接相連,稱為“線或”方式。2. 低位交叉訪問存儲(chǔ)器 主要目的:提高存儲(chǔ)器訪問速度 實(shí)現(xiàn)方法:用地址碼的低位部分區(qū)分存儲(chǔ)體號(hào) 參數(shù)計(jì)算: m:每個(gè)存儲(chǔ)體的容量, n:總共的存儲(chǔ)體個(gè)數(shù), j:存儲(chǔ)體的體內(nèi)地址,j0,1,2,m-1 k:存儲(chǔ)體的體號(hào),k0,1,2,n-1 存儲(chǔ)器地址A的計(jì)算公式為:Anjk 存儲(chǔ)器的體內(nèi)地址:Aj 存儲(chǔ)器的體號(hào):AkA mod n低位交叉訪問存儲(chǔ)器結(jié)構(gòu)框圖地址編
12、碼方向地址的編碼方法: 由8個(gè)存儲(chǔ)體構(gòu)成的低位交叉編址方式 n個(gè)存儲(chǔ)體分時(shí)啟動(dòng) 一種采用流水線方式工作的并行存儲(chǔ)器 每存儲(chǔ)體的啟動(dòng)間隔為:t 其中: Tm為每個(gè)存儲(chǔ)體的訪問周期, n為存儲(chǔ)體個(gè)數(shù)。訪問沖突:由n個(gè)存儲(chǔ)體構(gòu)成的主存儲(chǔ)器加速比 2000字頁面大小應(yīng)該為2K字。例3.10:一個(gè)循環(huán)程序,依次使用P1,P2,P3,P4頁面,分配給它的主存頁面數(shù)只有2個(gè)。在FIFO和LRU算法中,發(fā)生“顛簸”現(xiàn)象。5. 堆棧型替換算法 定義:對(duì)任意一個(gè)程序的頁地址流作兩次主存頁面數(shù)分配,分別分配 m 個(gè)主存頁面和 n 個(gè)主存頁面,并且有 mn。如果在任何時(shí)刻 t,主存頁面數(shù)集合 Bt 都滿足關(guān)系: Bt
13、(m) Bt(n),則這類算法稱為堆棧型替換算法。 堆棧型算法的基本特點(diǎn)是: 隨著分配給程序的主存頁面數(shù)增加,主存的命中率也提高,至少不下降。如LFU、LRU和OPT是堆棧型算法,但FIFO不是。3.2.5 提高主存命中率的方法影響主存命中率的主要因素: (1)程序在執(zhí)行過程中的頁地址流分布情況。 (2)所采用的頁面替換算法。 (3)頁面大小。 (4)主存儲(chǔ)器的容量 (5)所采用的頁面調(diào)度算法下面對(duì)后三個(gè)因素進(jìn)行分析:1.頁面大小與命中率的關(guān)系 頁面大小為某個(gè)值時(shí),命中率達(dá)到最大。頁面大小與命中率關(guān)系的解釋: 假設(shè)At和At+1是相鄰兩次訪問主存的邏輯地址, dAtAt+1。如果Sp(頁面大小
14、),隨著Sp增大,At 和 At+1在同一頁面的可能性增加,即隨著Sp的增大而提高。如果Sp,At和At+1一定不在同一個(gè)頁面內(nèi)。隨著Sp增大,主存頁面數(shù)減少,頁面替換更加頻繁。隨著Sp的增大而降低。當(dāng)Sp比較小的時(shí)候,前一種情況是主要的,隨著Sp的增大而提高。當(dāng)Sp達(dá)到某一個(gè)最大值之后,后一種情況成為主要的,隨著Sp的增大而降低。當(dāng)頁面增大時(shí),造 成的浪費(fèi)也要增加當(dāng)頁面減小時(shí),頁 表和頁面表在主存 儲(chǔ)器中所占的比例 將增加2. 主存容量與命中率的關(guān)系 主存命中率H隨著分配給該程序的主存容量S的增加而單調(diào)上升。 在S比較小的時(shí)候,H提高得非???。隨著S的逐漸增加,H提高的速度逐漸降低。當(dāng)S增加
15、到某一個(gè)值之后,H幾乎不再提高。3. 頁面調(diào)度方式與命中率的關(guān)系 請(qǐng)求式:當(dāng)使用到的時(shí)候,再調(diào)入主存 預(yù)取式:在程序重新開始運(yùn)行之前,把上次 停止運(yùn)行前一段時(shí)間內(nèi)用到的頁面先調(diào)入到 主存儲(chǔ)器,然后才開始運(yùn)行程序。 預(yù)取式的主要優(yōu)點(diǎn): 可以避免在程序開始運(yùn)行時(shí),頻繁發(fā)生頁面 失效的情況。 預(yù)取式的主要缺點(diǎn): 如果調(diào)入的頁面用不上,浪費(fèi)了調(diào)入的時(shí)間,占用了主存的資源。3.3 高速緩沖存儲(chǔ)器3.3.1 基本工作原理3.3.2 地址映象與變換方法3.3.3 Cache替換算法及其實(shí)現(xiàn)3.3.4 Cache存儲(chǔ)系統(tǒng)的加速比3.3.5 Cache的一致性問題3.3.6 Cache的預(yù)取算法3.3.1 基本
16、工作原理3.3.2 地址映象與變換方法 地址映象: 把主存中的程序按照某種規(guī)則裝入到Cache中,并建立主存地址與Cache地址之間的對(duì)應(yīng)關(guān)系。 地址變換: 當(dāng)程序已經(jīng)裝入到Cache之后,在程序運(yùn)行過程中,把主存地址變換成Cache地址。在選取地址映象方法要考慮的主要因素: (1)地址變換的硬件實(shí)現(xiàn)容易、速度要快, (2)主存空間利用率要高, (3)發(fā)生塊沖突的概率要小。1. 全相聯(lián)映象及其變換 映象規(guī)則:主存的任意 一塊可以映象到Cache中的任意一塊。(映象關(guān)系有CbMb種)地址映象用目錄表記錄,目錄表共Cb個(gè)字。 地址變換規(guī)則:用硬件實(shí)現(xiàn)非常復(fù)雜2. 直接映象及其變換 映象規(guī)則: 主存
17、儲(chǔ)器中一塊只能映象到Cache的一個(gè)特定的塊中。Cache地址的計(jì)算公式: bB mod Cb其中:b為Cache塊號(hào), B是主存塊號(hào), Cb是Cache塊數(shù)。特點(diǎn):Cache地址與主存儲(chǔ)器地址的低位部分完全相同。地址映象規(guī)則示圖: 地址變換過程:用主存地址中的塊號(hào)B去訪問區(qū)號(hào)存儲(chǔ)器,把讀出來的區(qū)號(hào)與主存地址中的區(qū)號(hào)E進(jìn)行比較:比較結(jié)果相等且有效位為1,則Cache命中;否則該塊已經(jīng)作廢(有效位為0)。比較結(jié)果不相等且有效位為1,Cache中的該塊是有用的;否則該塊是空的(有效位為0 )。地址變換規(guī)則: 提高Cache速度的一種方法: 把區(qū)號(hào)存儲(chǔ)器與Cache合并成一個(gè)存儲(chǔ)器直接映象及其變換的
18、優(yōu)缺點(diǎn)主要優(yōu)點(diǎn): 硬件實(shí)現(xiàn)很簡(jiǎn)單(不需要相聯(lián)訪問存儲(chǔ)器); 訪問速度也比較快,實(shí)際上不需要進(jìn)行地址變換。主要缺點(diǎn): 塊的沖突率比較高。3. 組相聯(lián)映象及其變換映象規(guī)則: 主存和Cache按同樣大小劃分成塊和組。 主存和Cache的組之間采用直接映象方式。 在兩個(gè)對(duì)應(yīng)的組內(nèi)部采用全相聯(lián)映象方式。組相聯(lián)映象方式的優(yōu)點(diǎn): 塊的沖突概率比較低, 塊的利用率大幅度提高, 塊失效率明顯降低。組相聯(lián)映象方式的缺點(diǎn): 實(shí)現(xiàn)難度和造價(jià)要比直接映象方式高。地址映象規(guī)則示圖:地址變換過程:用主存地址中的組號(hào)G按地址訪問塊表存儲(chǔ)器。 把讀出來的一組區(qū)號(hào)和塊號(hào)與主存地址中的區(qū)號(hào)和塊號(hào)進(jìn)行相聯(lián)比較。 如果有相等的,表示C
19、ache命中; 如果全部不相等,表示Cache沒有命中。地址變換規(guī)則:提高Cache訪問速度的一種方法:用多個(gè)相等比較器來代替相聯(lián)訪問4. 位選擇組相聯(lián)映象及其變換地址映象規(guī)則: 主存和Cache都按同樣大小分塊,Cache在分塊的基礎(chǔ)上再分組,主存按照Cache的組容量分區(qū)。主存的塊與Cache的組之間采用直接映象方式,主存中的塊與Cache中組內(nèi)部的各個(gè)塊之間采用全相聯(lián)映象方式。與組相聯(lián)映象方式比較: 映象關(guān)系明顯簡(jiǎn)單,實(shí)現(xiàn)起來容易。 在塊表中存放和參與相聯(lián)比較的只有區(qū)號(hào)E地址映象規(guī)則示圖:地址變換規(guī)則:5. 段相聯(lián)映象及其變換映象規(guī)則: 主存和Cache都按同樣大小分塊和段 段之間采用全
20、相聯(lián)映象方式 段內(nèi)部的塊之間采用直接映象方式地址變換過程:用主存地址中的段號(hào)與段表中的主存段號(hào)進(jìn)行相聯(lián)比較如果有相等的,用主存地址的段內(nèi)塊號(hào)按地址訪問Cache的段號(hào)部分。把讀出的段號(hào)s與主存地址的段內(nèi)塊號(hào)b及塊內(nèi)地址w拼接起來得到Cache地址;地址映象規(guī)則示圖:地址變換過程:段相聯(lián)映象方式的優(yōu)缺點(diǎn)主要優(yōu)點(diǎn): 段表比較簡(jiǎn)單,實(shí)現(xiàn)的成本低。 例如:一個(gè)容量為256KB的Cache,分成8個(gè)段,每段2048塊,每塊16B。 在段表存儲(chǔ)器中只需要存8個(gè)主存地址的段號(hào), 而在塊表中要存儲(chǔ)8204816384個(gè)區(qū)號(hào), 兩者相差2000多倍。主要缺點(diǎn): 當(dāng)發(fā)生段失效時(shí),要把本段內(nèi)已經(jīng)建立起來的所有映象關(guān)
21、系全部撤消。3.3.3 Cache替換算法及其實(shí)現(xiàn)使用的場(chǎng)合: 直接映象方式實(shí)際上不需要替換算法 全相聯(lián)映象方式的替換算法最復(fù)雜 主要用于組相聯(lián)、段相聯(lián)等映象方式中要解決的問題: 記錄每次訪問Cache的塊號(hào) 在訪問過程中,對(duì)記錄的塊號(hào)進(jìn)行管理 根據(jù)記錄和管理結(jié)果,找出替換的塊號(hào)主要特點(diǎn):全部用硬件實(shí)現(xiàn)1. 輪換法及其實(shí)現(xiàn) 用于組相聯(lián)映象方式中,有兩種實(shí)現(xiàn)方法。方法一:每塊一個(gè)計(jì)數(shù)器在塊表內(nèi)增加一個(gè)替換計(jì)數(shù)器字段, 計(jì)數(shù)器的長(zhǎng)度與Cache地址中的組內(nèi)塊號(hào)字段的長(zhǎng)度相同。替換方法及計(jì)數(shù)器的管理規(guī)則:新裝入或替換的塊,它的計(jì)數(shù)器清0,同組其它塊的計(jì)數(shù)器都加“1”。在同組中選擇計(jì)數(shù)器的值最大的塊作
22、為被替換的塊。例3.11:Solar-16/65小型機(jī)的Cache采用位選擇組相聯(lián)映象方式。Cache每組的塊數(shù)為4,因此,每塊用一個(gè)2位的計(jì)數(shù)器。方法二:每組一個(gè)計(jì)數(shù)器替換規(guī)則和計(jì)數(shù)器的管理: 本組有替換時(shí),計(jì)數(shù)器加“1”, 計(jì)數(shù)器的值就是要被替換出去的塊號(hào)。例3.12:NOVA3機(jī)的Cache采用組相聯(lián)映象方式,Cache每組的塊數(shù)為8,每組設(shè)置一個(gè)3位計(jì)數(shù)器。在需要替換時(shí),計(jì)數(shù)器的值加“1”,用計(jì)數(shù)器的值直接作為被替換塊的塊號(hào)。輪換法的優(yōu)點(diǎn):實(shí)現(xiàn)比較簡(jiǎn)單,能夠利用歷史上的塊地址流情況輪換法的缺點(diǎn):沒有利用程序的局部性特點(diǎn)2. LRU算法及其實(shí)現(xiàn)為每一塊設(shè)置一個(gè)計(jì)數(shù)器 計(jì)數(shù)器的長(zhǎng)度與塊號(hào)字
23、段的長(zhǎng)度相同計(jì)數(shù)器的使用及管理規(guī)則:新裝入或替換的塊,計(jì)數(shù)器清0,同組中其它塊的計(jì)數(shù)器加1。命中塊的計(jì)數(shù)器清0,同組的其它計(jì)數(shù)器中,凡計(jì)數(shù)器的值小于命中塊計(jì)數(shù)器原來值的加1,其余計(jì)數(shù)器不變。需要替換時(shí),在同組的所有計(jì)數(shù)器中選擇計(jì)數(shù)值最大的計(jì)數(shù)器,它所對(duì)應(yīng)的塊被替換。LRU算法的優(yōu)缺點(diǎn)主要優(yōu)點(diǎn): (1)命中率比較高, (2)能夠比較正確地利用程序的局部性特點(diǎn), (3)充分地利用歷史上塊地址流的分布情況, (4)是一種堆棧型算法,隨著組內(nèi)塊數(shù)增加,命中率單調(diào)上升。主要缺點(diǎn): 控制邏輯復(fù)雜,因?yàn)樵黾恿伺袛嗪吞幚硎欠衩械那闆r。 例3.13:IBM 370/165機(jī)的Cache采用組相聯(lián)映象方式。每組
24、有4塊,為了實(shí)現(xiàn)LRU替換算法,在塊表中為每一塊設(shè)置一個(gè) 2 位的計(jì)數(shù)器。在訪問Cache的過程中,塊的裝入、替換及命中時(shí),計(jì)數(shù)器的工作情況如表:3. 比較對(duì)法 以三個(gè)塊為例,分別稱為塊A、塊B、塊C 表示方法:用TAB1表示 B塊比 A 塊更久沒有被訪問過。如果表示塊 C 最久沒有被訪問過: 每次訪問之后要改變觸發(fā)器的狀態(tài) 在訪問塊A之后:TAB1,TAC1 在訪問塊B之后:TAB0,TBC1 在訪問塊C之后:TAC0,TBC0 每組個(gè)塊的比較對(duì)法比較對(duì)法硬件需求量計(jì)算: 需要的觸發(fā)器個(gè)數(shù)為: 與門個(gè)數(shù)為Gb, 每個(gè)門的輸入端個(gè)數(shù)為Gb-1比較對(duì)法中每組塊數(shù)與所需硬件的關(guān)系當(dāng)每組的塊數(shù)比較多
25、時(shí), 采用分級(jí)辦法實(shí)現(xiàn) 實(shí)質(zhì)上是用降低速度來換取節(jié)省器件。例3.14:IBM 3033機(jī)的Cache,每組的塊數(shù)為16,分3級(jí)。從第1級(jí)到第3級(jí)分別為4、2、2。共需要觸發(fā)器個(gè)數(shù)為:64818。如果不分級(jí)則需要觸發(fā)器120個(gè)。4. 堆棧法堆棧法的管理規(guī)則:把本次訪問的塊號(hào)與堆棧中保存的所有塊號(hào)進(jìn)行相聯(lián)比較。如果有相等的,則Cache命中。把本次訪問塊號(hào)從棧頂壓入,堆棧內(nèi)各單元中的塊號(hào)依次往下移,直至與本次訪問的塊號(hào)相等的那個(gè)單元為止,再往下的單元直止棧底都不變。如果沒有相等的,則Cache塊失效。本次訪問的塊號(hào)從棧頂壓入,堆棧內(nèi)各單元的塊號(hào)依次往下移,直至棧底,棧底單元中的塊號(hào)被移出堆棧,它就
26、是要被替換的塊號(hào)。例如:每組為4塊,則堆棧有4個(gè)存儲(chǔ)單元, 每個(gè)單元2位。 每組4塊的堆棧法邏輯圖堆棧法的主要優(yōu)點(diǎn): 塊失效率比較低,因?yàn)樗捎昧薒RU算法。 硬件實(shí)現(xiàn)相對(duì)比較簡(jiǎn)單。堆棧法的主要缺點(diǎn): 速度比較低,因?yàn)樗枰M(jìn)行相聯(lián)比較。堆棧法與比較對(duì)法所用觸發(fā)器的比例: 其中,Gb是Cache每一組的塊數(shù)。當(dāng)Gb大于8時(shí),堆棧法所用的器件明顯少于比較對(duì)法。3.3.4 Cache存儲(chǔ)系統(tǒng)的加速比1. 加速比與命中率的關(guān)系Cache存儲(chǔ)系統(tǒng)的加速比SP為: 其中:Tm為主存儲(chǔ)器的訪問周期, Tc為Cache的訪問周期, T為Cache存儲(chǔ)系統(tǒng)的等效訪問周期, H為命中率。提高加速比的最好途徑是提
27、高命中率 加速比 SP 能夠接近于期望值是: 加速比SP與命中率H的關(guān)系2. Cache命中率與容量的關(guān)系 Cache的命中率隨它的容量的增加而提高。 關(guān)系曲線可以近似地表示為:3. Cache命中率與塊大小的關(guān)系 在組相聯(lián)方式中, 塊大小對(duì)命中率非常敏感: 塊很小時(shí),命中率很低; 隨著塊大小增加命中率也增加, 有一個(gè)極大值; 當(dāng)塊非常大時(shí), 進(jìn)入Cache中的數(shù)據(jù)可能無用; 當(dāng)塊大小等于Cache容量時(shí), 命中率將趨近零。4. Cache命中率與組數(shù)的關(guān)系 在組相聯(lián)方式中, 組數(shù)對(duì)命中率的影響很明顯: 隨著組數(shù)的增加,Cache的命中率要降低。 當(dāng)組數(shù)不太大時(shí)(512), 命中率的降低很少
28、當(dāng)組數(shù)超過一定數(shù)量時(shí), 命中率的下降非???Cache命中率與塊大小的關(guān)系3.3.5 Cache的一致性造成Cache與主存的不一致的原因: (1) 由于CPU寫Cache,沒有立即寫主存 (2) 由于IO處理機(jī)或IO設(shè)備寫主存Cache的更新算法 (1)寫直達(dá)法WT(Write-through),寫通過法 CPU的數(shù)據(jù)寫入Cache時(shí),同時(shí)也寫入主存 (2) 寫回法WB(Write-Back),抵觸修改法 CPU的數(shù)據(jù)只寫入Cache,不寫入主存,僅當(dāng)替換時(shí),才把修改過的Cache塊寫回主存寫回法與寫直達(dá)法的優(yōu)缺點(diǎn)比較: (1)可靠性,寫直達(dá)法優(yōu)于寫回法。 寫直達(dá)法能夠始終保證Cache是主
29、存的副本。 如果Cache發(fā)生錯(cuò)誤,可以從主存得到糾正。(2)與主存的通信量,寫回法少于寫直達(dá)法。寫回法:大多數(shù)操作只需要寫Cache,不需要寫主存;當(dāng)發(fā)生塊失效時(shí),可能要寫一個(gè)塊到主存;即使是讀操作,當(dāng)發(fā)生Cache失效時(shí),也可能要寫一個(gè)塊到主存。寫直達(dá)法:每次寫操作,必須寫、且只寫一個(gè)字到主存。實(shí)際上: 寫直達(dá)法的寫次數(shù)很多、每次只寫一個(gè)字; 寫回法是的寫次數(shù)很少、每次要寫一個(gè)塊。舉例說明:例3.15:寫操作占總訪存次數(shù)的20, Cache的命中率為99,每塊為4個(gè)字。當(dāng)Cache發(fā)生塊替換時(shí),有30塊需要寫回到主存,其余的塊因?yàn)闆]有被修改過而不必寫回主存。試比較寫回法與寫直達(dá)法的訪存通信
30、量。解: 寫直達(dá)法:寫主存次數(shù)占總訪存次數(shù)的20, 寫回法:(199)3041.2。因此,與主存的通信量,寫回法要比寫直達(dá)法少10多倍。(3)控制的復(fù)雜性, 寫直達(dá)法比寫回法簡(jiǎn)單。寫回法: (1)要為每塊設(shè)置一個(gè)修改位,而且要對(duì)修改位進(jìn)行管理; (2)為了保證Cache的正確性,通常要采用比較復(fù)雜的校驗(yàn)方式或校正方式。寫直達(dá)法: (1)不需要設(shè)置修改位; (2)只需要采用簡(jiǎn)單的奇偶校驗(yàn)即可。由于Cache始終是主存的副本,Cache一旦有錯(cuò)誤可以從主存得到糾正。(4)硬件實(shí)現(xiàn)的代價(jià), 寫回法要比寫直達(dá)法好。寫直達(dá)法: 為了縮短寫Cache流水段的時(shí)間,通常要設(shè)置一個(gè)小容量的高速寄存器堆(后行寫
31、數(shù)緩沖站),每個(gè)存儲(chǔ)單元要有數(shù)據(jù)、地址和控制狀態(tài)等3部分組成。 每次寫主存時(shí),首先把寫主存的數(shù)據(jù)和地址寫到高速寄存器堆中。 每次讀主存時(shí),要首先判斷所讀數(shù)據(jù)是否在這個(gè)高速寄存器堆中。寫回法不需要設(shè)置高速緩沖寄存器堆。寫Cache的兩種方法:(1)不按寫分配法: 在寫Cache不命中時(shí),只把所要寫的字寫入主存。(2)按寫分配法: 在寫Cache不命中時(shí),還把一個(gè)塊從主存讀入Cache。 目前,在寫回法中采用按寫分配法, 在寫直達(dá)法中采用不按寫分配法。解決Cache與主存不一致的主要方法: (1)共享Cache法。能根本解決Cache不一致, 共享Cache可能成為訪問的瓶頸,硬件復(fù)雜 (2)作廢
32、法。當(dāng)某一處理機(jī)寫局部Cache時(shí), 同時(shí)作廢其他處理機(jī)的局部Cache。 (3)播寫法。把寫Cache的內(nèi)容和地址放到公共總線上,各局部Cache隨時(shí)監(jiān)聽公共總線 (4)目錄表法。在目錄表中存放Cache一致性的全部信息。 (5)禁止共享信息放在局部Cache中。 Cache對(duì)系統(tǒng)程序員不透明。3.3.6 Cache的預(yù)取算法預(yù)取算法有如下幾種: (1)按需取。當(dāng)出現(xiàn)Cache不命中時(shí),才把需要的一個(gè)塊取到Cache中。 (2)恒預(yù)取。無論Cache是否命中,都把下一塊取到Cache中。 (3)不命中預(yù)取。當(dāng)出現(xiàn)Cache不命中,把本塊和下一塊都取到Cache中。主要考慮因素: 命中率是否提高,Cache與主存間通信量。 恒預(yù)取能使
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高校輔導(dǎo)員招聘考試的案例學(xué)習(xí)能力評(píng)估與試題及答案
- 色盲與文盲測(cè)試題及答案
- 植物生態(tài)與環(huán)境營(yíng)造的完美結(jié)合試題及答案
- 農(nóng)業(yè)安全知識(shí)2024年試題及答案
- 全國(guó)青島版初中信息技術(shù)第五冊(cè)第三單元第14課《善用二維草圖做宣傳牌》教學(xué)設(shè)計(jì)
- 上小學(xué)考試題目及答案
- 農(nóng)藝師考試臨場(chǎng)應(yīng)對(duì)技巧討論試題及答案
- 李晨搞笑面試題及答案
- “攜手同行共筑未來”教學(xué)設(shè)計(jì)-高一上學(xué)期迎新主題班會(huì)
- 招聘輔導(dǎo)員考試心理輔導(dǎo)方法與實(shí)施策略試題及答案
- 豬營(yíng)養(yǎng)體系課件
- 青少年模擬法庭劇本(敲詐勒索)
- 中考復(fù)習(xí)確定二次函數(shù)的解析式課件
- 音樂歌曲網(wǎng)上搜課件
- 萬用表校準(zhǔn)報(bào)告
- 地鐵盾構(gòu)法施工技術(shù)試題
- 直線導(dǎo)軌裝配文檔課件
- DBJ04∕T 253-2021 建筑工程施工安全管理標(biāo)準(zhǔn)
- 二元一次方程組(課堂PPT)
- Q∕GDW 12082-2021 輸變電設(shè)備物聯(lián)網(wǎng)無線傳感器通用技術(shù)規(guī)范
- 醫(yī)院藥房考試試題及答案
評(píng)論
0/150
提交評(píng)論