計(jì)算機(jī)組成與結(jié)構(gòu)課件 第6章 存儲(chǔ)器系統(tǒng)_第1頁
計(jì)算機(jī)組成與結(jié)構(gòu)課件 第6章 存儲(chǔ)器系統(tǒng)_第2頁
計(jì)算機(jī)組成與結(jié)構(gòu)課件 第6章 存儲(chǔ)器系統(tǒng)_第3頁
計(jì)算機(jī)組成與結(jié)構(gòu)課件 第6章 存儲(chǔ)器系統(tǒng)_第4頁
計(jì)算機(jī)組成與結(jié)構(gòu)課件 第6章 存儲(chǔ)器系統(tǒng)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第6章存儲(chǔ)器系統(tǒng)主要內(nèi)容:6.1存儲(chǔ)器系統(tǒng)概述6.2并行主存儲(chǔ)器系統(tǒng)6.3高速緩沖存儲(chǔ)器Cache6.4虛擬存儲(chǔ)器(略)6.5輔助存儲(chǔ)器(略)第6章存儲(chǔ)器的結(jié)構(gòu)6.1存儲(chǔ)器系統(tǒng)概述6.1.1存儲(chǔ)器器分類1.按功能劃分:可分為主存儲(chǔ)器、輔助存儲(chǔ)器和高速緩存2.按存儲(chǔ)介質(zhì)劃分:分為半導(dǎo)體存儲(chǔ)器、磁表面存儲(chǔ)器和光盤存儲(chǔ)器等。3.按系統(tǒng)組織劃分:分為物理存儲(chǔ)器和虛擬存儲(chǔ)器其中,虛擬存儲(chǔ)器是依靠操作系統(tǒng)提供的存儲(chǔ)器管理功能的支持而實(shí)現(xiàn)的。通常,把提供給用戶編程的存儲(chǔ)器,即在軟件編程上使用的存儲(chǔ)器稱為虛擬存儲(chǔ)器。它的存儲(chǔ)容量即虛擬存儲(chǔ)空間被稱為虛擬空間,而面向虛擬存儲(chǔ)器的編程地址稱為虛擬地址,也稱為邏輯地址;在物理上存在的主存儲(chǔ)器被稱為物理存儲(chǔ)器,其地址稱為物理地址。6.1.2存儲(chǔ)系統(tǒng)的分層結(jié)構(gòu)工作特點(diǎn):1、采用多級(jí)存儲(chǔ)技術(shù),減輕存儲(chǔ)器帶寬對(duì)系統(tǒng)性能影響。本質(zhì)上把瓶頸部件分為多個(gè)流水線部件,加大操作時(shí)間的重疊、提高速度,從而減緩固定瓶頸。2、在CPU內(nèi)部設(shè)置各種Cache,以減輕對(duì)存儲(chǔ)器存取的壓力。增加CPU中寄存器的數(shù)量,也可大大緩解對(duì)存儲(chǔ)器的壓力。其本質(zhì)是緩沖技術(shù),用于減緩暫時(shí)性瓶頸6.2并行主存儲(chǔ)器系統(tǒng)1.單體多字并行主存系統(tǒng)2.多體交叉存取方式的并行主存系統(tǒng)1.單體多字并行主存系統(tǒng)多個(gè)并行的存儲(chǔ)體共用一套地址寄存器,按同一地址碼并行地訪問各自的對(duì)應(yīng)單元。優(yōu)點(diǎn):特別適合矩形運(yùn)算。2.多體交叉存取方式的并行主存系統(tǒng)各存儲(chǔ)體采用交叉編址。一段連續(xù)的程序或數(shù)據(jù),將交叉地存放在各個(gè)存儲(chǔ)體中。各存儲(chǔ)體采用分時(shí)訪問,由存儲(chǔ)控制部件按優(yōu)先級(jí)排除確定各設(shè)備的訪問請(qǐng)求。6.3高速緩沖存儲(chǔ)器Cache6.3.1Cache的分級(jí)結(jié)構(gòu)6.3.2Cache的工作原理6.3.3Cache與主存儲(chǔ)器的地址映像6.3.4Cache的替換策略6.3.5Cache的寫回策略6.3.6Cache的性能指標(biāo)6.3.1Cache的分級(jí)結(jié)構(gòu)L1Cache,包括數(shù)據(jù)緩存和指令緩存,內(nèi)置于CPU,其容量和結(jié)構(gòu)對(duì)CPU的性能影響較大,其容量通常在32~256KB之間。L2Cache,分內(nèi)置和外置。內(nèi)置二級(jí)緩存運(yùn)行速度與主頻相同,而外部的二級(jí)緩存則只有主頻的一半。L2高速緩存容量一般為幾兆字節(jié)。L3Cache,分為外置和內(nèi)置。L3緩存最早應(yīng)用于AMD發(fā)布的K6-III處理器,當(dāng)時(shí)的L3緩存受限于制造工藝,并沒有被集成到芯片內(nèi)部,而是集成在主板上,稱為外置緩存。之后Intel把L3緩存集成到了服務(wù)器級(jí)的Itanium處理器之中。L3緩存的應(yīng)用可以進(jìn)一步降低內(nèi)存延遲,同時(shí)提升大數(shù)據(jù)量計(jì)算時(shí)處理器的性能。6.3.2Cache的工作原理1.香農(nóng),1968年,局部性原理:計(jì)算機(jī)程序在執(zhí)行時(shí),對(duì)存儲(chǔ)器的訪問具有明顯的局部性特征,包括:(1)時(shí)間局部性是指:當(dāng)一個(gè)數(shù)據(jù)被訪問時(shí),在近期內(nèi)它很可能再次被訪問。例如,在循環(huán)結(jié)構(gòu)中,一些數(shù)據(jù)會(huì)被反復(fù)使用,這就體現(xiàn)了時(shí)間局部性。(2)空間局部性是指:當(dāng)一個(gè)存儲(chǔ)單元被訪問時(shí),其附近的存儲(chǔ)單元也很快會(huì)被訪問。例如,在一個(gè)數(shù)組或結(jié)構(gòu)體中,訪問其中一個(gè)元素時(shí),往往會(huì)同時(shí)訪問其周圍的元素,這就體現(xiàn)了空間局部性。局部性原理揭示了程序在訪問存儲(chǔ)器時(shí)的規(guī)律性,使得計(jì)算機(jī)系統(tǒng)可以更好地預(yù)測和優(yōu)化程序的執(zhí)行,為計(jì)算機(jī)系統(tǒng)的優(yōu)化提供了重要的理論依據(jù)。2.Cache硬件結(jié)構(gòu)及緩存原理6.3.3Cache與主存儲(chǔ)器的地址映像1.全相聯(lián)映像案例分析【例6.1】已知主存容量為64KB,Cache為4KB,假設(shè)一個(gè)存儲(chǔ)塊的大小是1KB,若主存為第9塊的內(nèi)容已通過預(yù)取裝入Cache中的第2塊,現(xiàn)在希望訪問偏移量為800的地址單元,請(qǐng)使用十六進(jìn)制分別指出該單元在主存和Cache中的地址編號(hào)。解:根據(jù)已知,主存單元地址需要16位二進(jìn)制數(shù)表示,Cache單元地址需要12位二進(jìn)制數(shù)表示。存儲(chǔ)塊為1KB,塊內(nèi)地址為0~1023,需要10位二進(jìn)制數(shù)表示。主存的地址位數(shù)=6位塊號(hào)+10位塊內(nèi)地址=16位,即被劃分為64塊。Cache的地址位數(shù)=2位塊號(hào)+10位塊內(nèi)地址=12位,即被劃分為4塊。內(nèi)存第9塊且偏移量800的單元地址=1000(塊號(hào))+1100100000(偏移量)=8320HCache第2塊且偏移量800的地址=01(塊號(hào))+1100100000(偏移量)=1320H2.直接映像案例分析【例6.2】采用直接映像方式,一個(gè)具有4KB的Cache的32位微處理器,主存的容量為16MB,假定Cache塊的大小為4個(gè)32位的字(設(shè)地址單元以字節(jié)為單位編址)。(1)分別指出塊內(nèi)地址、Cache塊號(hào)以及主存塊號(hào)的位數(shù);(2)求主存地址為ABCDEFH的單元在Cache中的什么位置?解:(1)主存塊的大小=Cache塊的大小=4個(gè)32位的字=16字節(jié),塊內(nèi)地址的位數(shù)=4位;Cache塊的個(gè)數(shù)=4KB÷16字節(jié)=256(個(gè));因256=28,故Cache塊號(hào)的位數(shù)=8位;主存塊的個(gè)數(shù)=16MB÷16字節(jié)=1M(個(gè));因1M=220,故主存塊號(hào)的位數(shù)=20位:(2)主存地址位數(shù)=主存塊號(hào)+塊內(nèi)地址=24位;Cache地址位數(shù)=Cache塊號(hào)+塊內(nèi)地址=12位。主存地址=ABCDEFH=101010111100110111101111塊內(nèi)地址=1111,主存塊號(hào)=10101011110011011110。Cache塊號(hào)=主存塊號(hào)modCache塊的個(gè)數(shù)=10101011110011011110mod256=11011110因此,主存地址ABCDEFH在Cache中的位置是:塊號(hào)11011110,塊內(nèi)地址11113.組相連映像案例分析【例6.3】容量為64塊的Cache采用組相聯(lián)方式映像,字塊大小為128字節(jié),每4塊為一組,若主容量為4096塊,且以字節(jié)編址,那么主存地址為多少位,主存區(qū)號(hào)為多少位?分區(qū)數(shù)=主存容量/Cache容量=4096/64=64;區(qū)內(nèi)分組數(shù)=64/4=16;組內(nèi)分塊數(shù)=4塊/組;塊內(nèi)地址=128字節(jié);主存地址位數(shù)=6+4+2+7=19;主存區(qū)號(hào)=6位。分區(qū)區(qū)內(nèi)分組組內(nèi)分塊塊內(nèi)地址解:根據(jù)題意,主存地址格式:6.3.4Cache的替換策略策略:隨機(jī),F(xiàn)IFO,LRU等。LRU的基本思想:當(dāng)Cache已全部分配時(shí)若需要調(diào)入新內(nèi)存塊,則選擇最近最少使用的緩存塊進(jìn)行替換。具體實(shí)現(xiàn):方法1:計(jì)數(shù)器法(略)方法2:寄存器棧法(重點(diǎn))方法3:比較對(duì)法(略)先進(jìn)先出法(FIFO法)FIFO是一種常見的Cache替換策略,它的思想是將最早進(jìn)入Cache存的數(shù)據(jù)塊替換出去。FIFO策略的原理很簡單,當(dāng)Cache滿時(shí),待替換的數(shù)據(jù)塊是最早進(jìn)入Cache的那個(gè)。緩存維護(hù)一個(gè)隊(duì)列,每次有數(shù)據(jù)塊進(jìn)入Cache時(shí),將其加入隊(duì)列的末尾;每次需要替換數(shù)據(jù)塊時(shí),將隊(duì)列的頭部的數(shù)據(jù)塊替換出去?!纠?.4】假設(shè)Cache分為3塊,初始狀態(tài)為空,某程序訪問6塊信息,所訪問的塊地址流依次為:1、2、3、2、3、4、1、2、4、5、3、6、5、4、2。如果采用全相聯(lián)映像,請(qǐng)分析采用FIFO策略的訪問過程并計(jì)算命中率。最近最少使用法(LRU法)LRU(LeastRecentlyUsed)的思想:在一段時(shí)間內(nèi),如果數(shù)據(jù)沒有被訪問到,那么在未來一段時(shí)間內(nèi)也很可能不會(huì)被訪問到,進(jìn)而選擇替換最長時(shí)間未被訪問的數(shù)據(jù)。優(yōu)點(diǎn):(1)實(shí)現(xiàn)簡單,容易理解;

(2)LRU算法在某些場景下能夠有效地減少Cache的替換次數(shù),降低了系統(tǒng)的訪問延遲。缺陷:(1)需要維護(hù)一個(gè)訪問時(shí)間的記錄,這需要較大的開銷來實(shí)現(xiàn);

(2)對(duì)于具有較差的局部性的工作負(fù)載,LRU算法可能導(dǎo)致較差的Cache命中率,從而降低系統(tǒng)性能案例分析【例6.5】如果采用組相聯(lián)映像,假設(shè)寄存器棧的容量為4,Cache分為2組,2塊/組,共4塊,初始狀態(tài)為空,某程序訪問6塊數(shù)據(jù)信息,訪問順序是:0、1、2、1、2、3、0、1、3、4、2、5、4、3、1。請(qǐng)分析使用LRU策略的寄存器棧法的訪問過程并計(jì)算命中率。解:小結(jié),LRU——寄存器棧法的替換規(guī)則1、設(shè)寄存器棧,以記錄存入Cache的主存塊號(hào);2、當(dāng)Cache未滿時(shí),如果未命中,則先將棧內(nèi)各單元依次下壓一個(gè)單元,再將新的內(nèi)存塊號(hào)壓入棧頂;3、當(dāng)Cache已滿時(shí),若命中,則把被命中的塊號(hào)升到棧頂,其他該下沉的下沉;若不命中,則先淘汰棧底,再把新的內(nèi)存塊號(hào)壓入堆棧。思考:寄存器棧的容量多大合適?課堂練習(xí)【考研真題】假設(shè)某計(jì)算機(jī)按字編址,Cache有4個(gè)行,Cache和主存之間交換的塊大小為1個(gè)字。若Cache的內(nèi)容初始為空,采用2路組相聯(lián)映射方式和LRU替換算法,當(dāng)訪問的主存地址依次為0,4,8,2,0,6,8,6,4,8時(shí),命中Cache的次數(shù)為多少?分別發(fā)生在何時(shí)?6.3.5Cache的寫入策略1.寫回法(WriteBack):指將寫操作先更新到緩存中,而不立即寫回到主存。只有當(dāng)緩存被替換或某個(gè)緩存塊被修改時(shí),才將該塊數(shù)據(jù)寫回到主存。2.全寫法(WriteThrough):是指每次寫操作都會(huì)立即將數(shù)據(jù)寫回到主存或下一級(jí)緩存。3.寫一次法(WriteOnce):將寫回法和全寫法相結(jié)合,寫命中與寫未命中的處理方法與寫回法基本相同,只是第一次寫命中時(shí)要同時(shí)寫入主存。6.3.6Cache的性能指標(biāo)1.Cache命令率:Cache訪問中的命中率是衡量Cache效率的重要指標(biāo)。命中率越高,正確獲取數(shù)據(jù)的機(jī)會(huì)就越大。2.Cache的容量(略)思考:如何提高Cahce的命中率?6.4虛擬存儲(chǔ)器(略)1.虛擬存儲(chǔ)器的概念由于主機(jī)的實(shí)際可尋址空間為2n(n為地址總線數(shù)),遠(yuǎn)遠(yuǎn)大于物理存儲(chǔ)空間,因此可以將超出物理存儲(chǔ)空間之外的可尋址空間稱為虛擬存儲(chǔ)空間,簡稱虛地址。實(shí)際應(yīng)用中,為了提高內(nèi)存的效率,OS把當(dāng)前暫時(shí)不使用的數(shù)據(jù)存儲(chǔ)到特定磁盤文件中,當(dāng)需要時(shí)再調(diào)入內(nèi)存。若把該文件看作虛擬存儲(chǔ)器,且OS提供了自動(dòng)虛/實(shí)地址轉(zhuǎn)換和數(shù)據(jù)調(diào)度管理,則編程時(shí)可直接地址訪問。2.虛擬存儲(chǔ)器的工作機(jī)制在采用虛擬存儲(chǔ)器技術(shù)后S1:把物理地址空間和虛擬地址空間統(tǒng)一編址(統(tǒng)稱邏輯地址)。S2:程序員按邏輯地址進(jìn)行編程,最終由OS實(shí)現(xiàn)虛/實(shí)地址轉(zhuǎn)換和數(shù)據(jù)調(diào)度管理。S3:CPU執(zhí)行程序時(shí),按程序提供的邏輯地址訪問存儲(chǔ)器。存儲(chǔ)管理硬件先判斷該地址是否在主存中,以決定是否直接訪問主存。S4:如果數(shù)據(jù)不在主存中,則通過缺頁中斷處理程序,把數(shù)據(jù)先調(diào)入主存再進(jìn)行訪問。3.頁式虛擬存儲(chǔ)器(1)分頁:將虛存和主存空間都劃分若干個(gè)大小相同的頁。用戶程序按頁訪問存儲(chǔ)地址。(2)建立頁表頁號(hào)控制位修改位替換控制位讀/寫保護(hù)位實(shí)頁號(hào)表示虛頁在磁盤中的位置虛頁是否已調(diào)入內(nèi)存表示相應(yīng)的主存頁是否修改表示相應(yīng)的主存頁是否需要替換表示讀/寫權(quán)限控制表示虛頁在主存中的位置頁表的起始地址保存到頁表基址寄存器中(3)虛實(shí)地址轉(zhuǎn)換過程首先將虛頁號(hào)與頁表起始地址合并,形成訪問頁表對(duì)應(yīng)的地址。然后查頁表并根據(jù)裝入位判斷該虛頁是否在主存中。如果是,則將實(shí)頁號(hào)與頁內(nèi)地址拼接,形成有效的主存實(shí)地址。(4)缺頁中斷與淘汰算法當(dāng)虛頁不在主存中時(shí),系統(tǒng)產(chǎn)生缺頁中斷,通過中斷方式進(jìn)行預(yù)調(diào)或請(qǐng)調(diào);若主存已滿,可按淘汰算法先把可替換的內(nèi)容轉(zhuǎn)入虛存再把所需頁調(diào)入主存。(5)頁式虛擬存儲(chǔ)器的優(yōu)點(diǎn)與不足優(yōu)點(diǎn):根據(jù)存儲(chǔ)器自身的物理結(jié)構(gòu)分頁,有利于存儲(chǔ)空間的利用與整體處理。不足:頁的劃分不能反映程序的邏輯結(jié)構(gòu),給程序的執(zhí)行、保護(hù)與共享帶來困難思考:有哪些淘汰算法?P2374.段式虛擬存儲(chǔ)器(1)分段:先將用戶按模塊結(jié)構(gòu)分段,再對(duì)虛存和主存空間進(jìn)行動(dòng)態(tài)分段。(2)建立段表段號(hào)裝入位段起點(diǎn)段長其他控制位表示是否已經(jīng)調(diào)入主存在主存中的起始地址表示數(shù)據(jù)或程序的長度段表起始地址保存在段表基址寄存器中。

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論