第三章存儲(chǔ)系統(tǒng)4-4課件_第1頁(yè)
第三章存儲(chǔ)系統(tǒng)4-4課件_第2頁(yè)
第三章存儲(chǔ)系統(tǒng)4-4課件_第3頁(yè)
第三章存儲(chǔ)系統(tǒng)4-4課件_第4頁(yè)
第三章存儲(chǔ)系統(tǒng)4-4課件_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、13.4.2 多模塊交叉存儲(chǔ)器 1. 1.存儲(chǔ)器的模塊化組織存儲(chǔ)器的模塊化組織 一個(gè)由若干模塊組成的主存儲(chǔ)器是線性編址。地址在各模塊安排方式有兩種方式: 順序方式和交叉方式順序方式和交叉方式。 在常規(guī)主存儲(chǔ)器設(shè)計(jì)中,訪問地址采用順序方式,圖3.17(a)所示。2設(shè)存儲(chǔ)器容量為32字,分M0-M3四個(gè)模塊,每個(gè)模塊存儲(chǔ)8個(gè)字。訪問地址按順序分配給一個(gè)模塊后,接著又按順序?yàn)橄乱粋€(gè)模塊分配訪問地址.存儲(chǔ)器的32個(gè)字可由5位地址寄存器指示,高2位選擇4個(gè)模塊中的一個(gè),低3位選擇每個(gè)模塊中的8個(gè)字。在順序方式中某個(gè)模塊進(jìn)行存取時(shí),其他模塊不工作。而某一模塊出現(xiàn)故障時(shí),其他模塊可以照常工作,另外通過增添模

2、塊來擴(kuò)充存儲(chǔ)器容量也比較方便。缺點(diǎn)缺點(diǎn):是各模塊一個(gè)接一個(gè)串行工作,因此存儲(chǔ)器 的帶寬受到了限制。3圖3.17(b)表示采用交叉方式尋址的存儲(chǔ)器模塊化組織示意圖。存儲(chǔ)器容量也是32個(gè)字,也分成4個(gè)模塊,每個(gè)模塊8個(gè)字。但地址的分配方法與順序方式不同:將4個(gè)線性地址0,1,2,3依次分給M0,M1,M2,M3模塊,再將線性地址4,5,6,7依次分配給M0,M1,M2,M3直到全部線性地址分配完畢為止。當(dāng)存儲(chǔ)器尋址時(shí),用地址寄存器的低2位選擇4個(gè)模塊中的一個(gè),用高3位選擇模塊中的8個(gè)字。4用地址碼的低位字段經(jīng)過譯碼選擇不同的模塊,高位字段指向相應(yīng)模塊內(nèi)的存儲(chǔ)字. 連續(xù)地址分布在相鄰的不同模塊內(nèi),同

3、一個(gè)模塊內(nèi)的地址都是不連續(xù)。 對(duì)連續(xù)字的成塊傳送,交叉方式的存儲(chǔ)器可以實(shí)現(xiàn)多模塊流水式并行存取,大大提高存儲(chǔ)器的帶寬。 CPU的速度比主存快,同時(shí)從主存取出n條指令,必然會(huì)提高機(jī)器的運(yùn)行速度。5 2.多模塊交叉存儲(chǔ)器的基本結(jié)構(gòu) 圖3.18示出了四模塊交叉存儲(chǔ)器結(jié)構(gòu)框圖。主存被分成4個(gè)相互獨(dú)立、容量相同的模塊M0,M1,M2,M3,每個(gè)模塊都有自己的讀寫控制電路、地址寄存器和數(shù)據(jù)寄存器,各自以等同的方式與CPU傳送信息.如果程序段或數(shù)據(jù)塊都是連續(xù)地在主存中存取,將大大提高主存的訪問速度。6CPU同時(shí)訪問四個(gè)模塊,由存儲(chǔ)器控制部件控制它們分時(shí)使用數(shù)據(jù)總線進(jìn)行信息傳遞。 對(duì)每一個(gè)存儲(chǔ)模塊來說,從CP

4、U給出訪存命令直到信息仍然使用了一個(gè)存取周期時(shí)間,而對(duì)CPU來說,它可以在一個(gè)存取周期內(nèi)連續(xù)訪問四個(gè)模塊。 各模塊的讀寫過程將重疊進(jìn)行,多模塊交叉存儲(chǔ)器是一種并行存儲(chǔ)器結(jié)構(gòu)。7 下面作定量分析下面作定量分析。設(shè)模塊字長(zhǎng)等于數(shù)據(jù)總線寬度,設(shè)模塊存取一個(gè)字的存儲(chǔ)周期為T,總線傳送周期為r,存儲(chǔ)器的交叉模塊數(shù)為m,為了實(shí)現(xiàn)流水線方式存取應(yīng)當(dāng)滿足:T=mr 成塊傳送可按r間隔流水方式進(jìn)行,也就是每經(jīng)r時(shí)間延遲后啟動(dòng)下一個(gè)模塊。圖3.31示出了m=4的流水線方式存取示意圖。8 m=T/r 稱為交叉存取度。交叉存儲(chǔ)器要求其模塊數(shù)必須大于或等于m以保證啟動(dòng)某模塊后經(jīng)mr時(shí)間再次啟動(dòng)該模塊時(shí),它的上次存取操作

5、已經(jīng)完成。連續(xù)讀取m個(gè)字所需的時(shí)間為:t1=T+(m-1)r順序方式存儲(chǔ)器連續(xù)讀取 m個(gè)字所需時(shí)間為t2=mT從以定量分析可知,由于t1t2,交叉存儲(chǔ)器的帶寬確實(shí)大大提高了。9(例(例4 4)設(shè)存儲(chǔ)器容量為)設(shè)存儲(chǔ)器容量為3232字,字長(zhǎng)字,字長(zhǎng)6464位,模塊數(shù)位,模塊數(shù) m=4m=4,分別用,分別用順序方式和交叉方式進(jìn)行組織。存儲(chǔ)周期順序方式和交叉方式進(jìn)行組織。存儲(chǔ)周期 T=200nsT=200ns,數(shù)據(jù)總,數(shù)據(jù)總線寬度為線寬度為6464位,總線傳送周期位,總線傳送周期 r=50ns r=50ns 問順序存儲(chǔ)器的交叉問順序存儲(chǔ)器的交叉存儲(chǔ)器的帶寬各是多少?存儲(chǔ)器的帶寬各是多少? 解:順序存

6、儲(chǔ)器和交叉存儲(chǔ)器連續(xù)讀出m=4個(gè)字的信息總量都是: q=64位4256位順序存儲(chǔ)器和交叉存儲(chǔ)器連續(xù)讀出4個(gè)字所需的時(shí)間分別是: t2=mT=4 200 ns= 800 ns=8 10-7 s t1=T+(m-1)r=200ns+3 50ns=350ns=3.5 10-7 s 順序存儲(chǔ)器和交叉存儲(chǔ)器的帶寬分別是:W2=q/t2=256/(8 10-7 )=32 10-7 位/s W1=q/t1=256/(3.5 10-7 )=73 10-7 位/s103.二模塊交叉存儲(chǔ)器舉例 下圖,每個(gè)模塊的容量為256K32位,有8片256 K4位的DRAM芯片組成。存儲(chǔ)器的總?cè)萘繛?MB(512K32位).

7、數(shù)據(jù)總線寬度為32位,地址總線寬度為24位。11DRAM存儲(chǔ)器有讀周期、寫周期和刷新周期.存儲(chǔ)器讀/寫周期時(shí),在行選信號(hào)RAS有效下輸入行地址,在列選通信號(hào)CAS有效下輸入列地址,于是芯片中行列矩陣中的某一位組被選中。如果是讀周期,此位組內(nèi)容被讀出;如果是寫周期,將總線上數(shù)據(jù)寫入此位組。刷新周期是在RAS有效下輸入刷新地址,此地址指示的一行所有存儲(chǔ)元全部被再生。刷新周期比讀/寫周期有高的優(yōu)行權(quán),當(dāng)對(duì)同一行進(jìn)行讀/寫與刷新操作時(shí),存儲(chǔ)控制器對(duì)讀/寫請(qǐng)求予以暫存,延遲此行刷新結(jié)束后再進(jìn)行。1224位的存儲(chǔ)器物理地址指定的系統(tǒng)主存總?cè)萘靠蛇_(dá)16MB,按“存儲(chǔ)體塊字”進(jìn)行尋址。其中高3位用于存儲(chǔ)體選擇

8、,全系統(tǒng)有8個(gè)2MB存儲(chǔ)體A20A3的18位地址用于模塊中256K個(gè)存儲(chǔ)字的選擇。讀/寫周期時(shí),它們分為行、列地址兩部分送至芯片的9位地址引腳。一個(gè)塊內(nèi)所有芯片的RAS引腳連接到一起,模塊0由RAS0驅(qū)動(dòng),模塊1由RAS1驅(qū)動(dòng)。在讀/寫周期時(shí),A2 用于模塊選擇,連續(xù)的存儲(chǔ)字(32位,雙字)交錯(cuò)分存在兩個(gè)模塊上,偶地址在模塊0,奇地址在模塊1。CPU給出的主存地址中沒有A1、A0位。替代的是4個(gè)字節(jié)允許信號(hào)BE3-BE0,允許對(duì)A23-A2指定的存儲(chǔ)字(雙字)中的字節(jié)或字完成讀/寫訪問。當(dāng)BE3-BE0全有效時(shí),完成雙字存取。13 DRAM存儲(chǔ)器需要逐行定時(shí)刷新,防止存儲(chǔ)信息的電容漏電而造成信

9、息丟失。 DRAM芯片的讀出是一種破壞性讀出,在讀取之后要立即按讀出信息予以充電再生。若CPU先后兩次讀取的存儲(chǔ)字使用同一RAS選通信號(hào),CPU在接收到第一個(gè)存儲(chǔ)字之后必須插入等待狀態(tài),直至前一存儲(chǔ)字再生完畢才開始第二個(gè)存儲(chǔ)字的讀取。圖3.33是無等待狀態(tài)成塊存取示意圖。由于采用m=2的交叉存取度的成塊傳遞,兩個(gè)連續(xù)地址字的讀取之間不必插入等待狀態(tài),稱為零等待存取。14153.4.3 相聯(lián)存儲(chǔ)器1.相聯(lián)存儲(chǔ)器的基本原理 相聯(lián)存儲(chǔ)器是按內(nèi)容訪問的存儲(chǔ)器。 相聯(lián)存儲(chǔ)器 指其中任一存儲(chǔ)項(xiàng)內(nèi)容作為地址來存取的存儲(chǔ)器用來尋址存儲(chǔ)器的子段叫做關(guān)鍵字關(guān)鍵字,簡(jiǎn)稱為鍵鍵。16 相聯(lián)存儲(chǔ)器的基本原理 把存儲(chǔ)單元

10、所存內(nèi)容的某一部分作為檢索項(xiàng)(關(guān)鍵字),去檢索該存儲(chǔ)器,并將存儲(chǔ)器中與該檢索項(xiàng)符合的存儲(chǔ)單元內(nèi)容進(jìn)行讀出或?qū)懭搿?72.相聯(lián)存儲(chǔ)器的組成相聯(lián)存儲(chǔ)器 存儲(chǔ)體 檢索寄存器 屏蔽寄存器 符合寄存器 比較線路 代碼寄存器 控制線路18(1)檢索寄存器檢索寄存器檢索寄存器:用來存放檢索字。檢索寄存器的位數(shù)和相聯(lián)存儲(chǔ)器的存儲(chǔ)單元位數(shù)相等(n位),每次檢索時(shí),取檢索寄存儲(chǔ)器中若干位為檢索項(xiàng)。19(2)屏蔽寄存器:屏蔽寄存器用來存放屏蔽碼。屏蔽寄存器的位數(shù)和檢索寄存器位數(shù)相同。20(3)符合寄存器 符合寄存器用來存放按檢索項(xiàng)內(nèi)容檢索存儲(chǔ)體中與之符合的單元地址。 (4)比較線路 比較線路是把檢索項(xiàng)和從存儲(chǔ)體中讀

11、出的所有單元內(nèi)容的相應(yīng)位進(jìn)行比較,如果有某個(gè)存儲(chǔ)單元和檢索符合,就把符合寄存器的相應(yīng)位置“1”,表示該字已被檢索。(5)代碼寄存器 代碼寄存器用來存放存儲(chǔ)體中讀出的代碼,或者存放向存儲(chǔ)體中寫入的代碼。21(6)存儲(chǔ)體 用高速半導(dǎo)體存儲(chǔ)器構(gòu)成,以求快速存取。 相聯(lián)存儲(chǔ)器作用 用于虛擬存儲(chǔ)器中存放分段表、頁(yè)表和快表; 在高速緩沖存儲(chǔ)器中,相聯(lián)存儲(chǔ)器作為存放cache的行地址之用。223.5 Cache存儲(chǔ)器 3.5.1 Cache基本功能與原理1. Cache1. Cache的功能的功能解決CPU和主存之間速度不匹配速度不匹配采用的一項(xiàng)重要技術(shù)。主存的緩沖存儲(chǔ)器,由高速的SRAM組成。23242.

12、Cache的基本原理圖3.36 Cache 原理圖253.5.2 主存與cache的地址映射地址映射: 為了把主存塊放到cache中, 采用某種方法把主存地址定位到cache中. 地址映射方式全相聯(lián)方式全相聯(lián)方式: :一對(duì)多一對(duì)多直接方式:多對(duì)一直接方式:多對(duì)一組相聯(lián)方式:組對(duì)應(yīng),組內(nèi)行任意組相聯(lián)方式:組對(duì)應(yīng),組內(nèi)行任意261.全相聯(lián)映射方式(一對(duì)多)一對(duì)多)主存的數(shù)據(jù)塊大小稱為塊cache的數(shù)據(jù)塊大小稱為行將主存中一個(gè)塊的地址(塊號(hào))與塊的內(nèi)容(字)一起存于cache的行中,塊地址存于cache行的標(biāo)記部分中。全部標(biāo)記用一個(gè)相聯(lián)存儲(chǔ)器保存全部數(shù)據(jù)用一個(gè)普通RAM保存27全相聯(lián)映射 主 存 c

13、 a c h e圖3 - 2 3 全 相 聯(lián) 映 象第0 塊第1 塊第0 塊第1 塊第N - 1 塊第M N - 1 塊28全相聯(lián)映射 特點(diǎn): (一對(duì)多)主存的一個(gè)塊直接拷備到中cache任意一行。 缺點(diǎn): 比較器電路難于設(shè)計(jì)和實(shí)現(xiàn)。全相聯(lián)映射:只適合于小容量cache采用。29不相等塊失效 塊表 0 1 -1主存地址塊內(nèi)地址cache地址主存塊號(hào)塊內(nèi)地址比較塊號(hào)相聯(lián)查找cache塊號(hào)主存塊號(hào)標(biāo)志302.直接映射方式 (多對(duì)一)是一種多對(duì)一的映射關(guān)系,一個(gè)主存塊只能拷貝到cache的一個(gè)特定行位置上去。Cache的行號(hào)I和主存的塊號(hào)j有如下函數(shù)關(guān)系: I=j mod m 主 存 c a c h

14、 e第0 塊第1 塊第0 塊第1 塊第N - 1 塊第 ( M - 1 ) N塊第N - 1 塊第 ( M - 1 ) N - 1 塊第M N - 1 塊第0 區(qū)第M - 1 區(qū)圖3 - 2 0 c a c h e 的 直 接 相 聯(lián) 映 象31不相等塊失效圖 3-21 直接映象的地址變換方法塊內(nèi)地址主存地址cache地址塊表0按塊號(hào)查找N-1主存區(qū)號(hào)標(biāo)志訪問cache主存塊號(hào)區(qū)號(hào)塊內(nèi)地址比較塊號(hào)323.組相聯(lián)映射方式 組相聯(lián)映射方式是全相聯(lián)映射和直接映射兩種方式的折衷方案。組對(duì)應(yīng),組內(nèi)行任意組對(duì)應(yīng),組內(nèi)行任意 主 存 c ac he圖 3- 26 組 相 聯(lián) 映 象第 0 塊第 0 組第 0

15、 區(qū)第 0 組第 1 組第 1 組第 0 組第 M -1 區(qū)第 1 組第 0 塊第 N-1 塊第 (M -1)N 塊第 N-1 塊第 M N -1 塊33不相等塊失效 塊表 0 N-1圖3-27 組相聯(lián)映象的地址變換方法主存地址塊內(nèi)地址cache地址組號(hào)塊內(nèi)地址比較組內(nèi)相聯(lián)查找cache塊號(hào)主存塊號(hào)標(biāo)志區(qū)號(hào)標(biāo)志塊號(hào)區(qū)號(hào)組號(hào)主存塊號(hào)343.5.3 替換策略及更新策略 常用替換算法:最不經(jīng)常使用(LFU)算法近期最少使用(LRU)算法隨機(jī)替換FIFO算法(先進(jìn)先出)351.最不經(jīng)常使用(LFU)算法原理:原理:將一段時(shí)間內(nèi)被訪問次數(shù)最少的那行數(shù)據(jù)換出。實(shí)現(xiàn)過程:實(shí)現(xiàn)過程:每行設(shè)置一個(gè)計(jì)數(shù)器。新行建

16、立后從0開始計(jì)數(shù),每訪問一次,被訪問的計(jì)數(shù)器增1。當(dāng)需要替換時(shí),對(duì)這些特定行的計(jì)數(shù)值進(jìn)行比較,將計(jì)數(shù)值最小的行換出,同時(shí)將計(jì)數(shù)器清零。缺點(diǎn):缺點(diǎn):這種算法將計(jì)數(shù)周期限定在對(duì)這些特定行兩次替換之間的間隔時(shí)間內(nèi),不能嚴(yán)格反映近期訪問情況。362. 近期最少使用(LRU)算法原理:原理:將近期內(nèi)長(zhǎng)久未被訪問過的行換出。實(shí)現(xiàn)過程:實(shí)現(xiàn)過程:每行設(shè)置一個(gè)計(jì)數(shù)器,但是Cache每命中一次,命中行計(jì)數(shù)器清零,其它各行計(jì)數(shù)器增1。當(dāng)需要替換時(shí),比較各特定行的計(jì)數(shù)器,將計(jì)數(shù)值最大的行換出,這種算法保護(hù)了剛進(jìn)入cache中的新數(shù)據(jù)行。特點(diǎn):特點(diǎn):符合cache工作原理,使cache有較高的命中率。373. 隨機(jī)替

17、換 原理: 從特定行位置中隨機(jī)地選取一行換出即可。 實(shí)現(xiàn)過程: 從特定行中隨機(jī)地選取一行。 特點(diǎn): 在硬件上容易實(shí)現(xiàn),速度也比前兩種策略快。 但隨意換出的數(shù)據(jù)很可能馬上以要使用, 從而降低命中率和cache工作效率。384. FIFO算法 原理:選擇最早裝入cache中的頁(yè)作為被替換的頁(yè)。 實(shí)現(xiàn)過程每一個(gè)頁(yè)都與一個(gè)“裝入順序數(shù)”相聯(lián)系,每當(dāng)一個(gè)頁(yè)送入cache或從cache中取出時(shí),更新“裝入順序數(shù)”。檢查這些數(shù),就可以決定最先進(jìn)入的頁(yè) 特點(diǎn):在硬件上容易實(shí)現(xiàn),但經(jīng)常使用的頁(yè)也有可能由于它是最早的頁(yè)而被替換。393.5.4 Cache的寫操作策略三種寫操作策略:寫回法 當(dāng)CPU寫cache命中

18、時(shí),只修改Cache的內(nèi)容,而不立即寫入主存。只有當(dāng)此行被換出時(shí)寫回主存。全寫法 當(dāng)寫cache命中時(shí)cache與主存同時(shí)發(fā)生寫修改。寫一次法 寫命中與寫未命中的處理方法與寫回法基本相同只是第一次寫命中時(shí)要同時(shí)寫入主存。40 3.5.5 奔騰PC機(jī)的Cache 奔騰PC機(jī)是一單CPU系統(tǒng),它采用兩級(jí)cache結(jié)構(gòu)安裝在主板上的2級(jí)cache(L2),其容量是512KB采用2路組相聯(lián)映射方式,每行可以是32B,64或128B集成在CPU內(nèi)的1級(jí)cache(L1),其容量是16KB,采用的也是2路組相聯(lián)映射方式,每行是32B。 CPU中的L1分設(shè)成各8KB的指令cache和數(shù)據(jù)Cache這種體系結(jié)

19、構(gòu)有利于CPU高速執(zhí)行程序41 CPU與外部數(shù)據(jù)交換時(shí)存儲(chǔ)器讀寫總線周期主要有兩類: 一類是256位狡發(fā)式傳送,用于L1的行填入和行寫出。 另一類是不經(jīng)L1的64位(或32位,16位,8位)傳送,此時(shí)CHACE#為高電平,稱為非超高速緩存式傳送。42圖3.42 奔騰兩極Cache 工作環(huán)境43 L2級(jí)cache采用的是寫回法, L1級(jí)數(shù)據(jù)cache采用的是寫一次法。 為了維護(hù)cache的一致性,L1和L2均采用MESI協(xié)議。44 3.6 3.6 虛擬存儲(chǔ)器虛擬存儲(chǔ)器 3.6.1 基本概念 虛擬存儲(chǔ)器:虛擬存儲(chǔ)器:只是一個(gè)存儲(chǔ)器的邏輯模型而不是任何實(shí)際的物理存儲(chǔ)器,它借助于磁盤等輔助存儲(chǔ)器來擴(kuò)大

20、主存容量,使之為更大的程序所使用。 虛擬地址虛擬地址:程序的邏輯地址。 虛擬地址空間虛擬地址空間:程序的邏輯地址空間。 物理地址物理地址:由CPU引腳送出,它用于訪問主存的地址。 主存主存- -外存的基本信息傳送單位:外存的基本信息傳送單位:有段,頁(yè)或段頁(yè)三種。451.段式管理:把主存按段分配的存儲(chǔ)管理方式。 優(yōu)點(diǎn)優(yōu)點(diǎn): 1.段的分界與程序的自然分界對(duì)應(yīng)。 2.段的邏輯獨(dú)立性使它易于編譯,管理,修改保 護(hù),也便于多道程序共享。 3.某些類型的段(堆棧,隊(duì)列)具有動(dòng)態(tài)可變長(zhǎng) 度,允許自由調(diào)度以便有效利用主存空間 缺點(diǎn):缺點(diǎn): 1.由于段的長(zhǎng)度各不相同,段的起點(diǎn)和終點(diǎn)不 定,給主存空間分配帶來麻煩

21、。 2. 產(chǎn)生碎片,造成浪費(fèi)。462.2.頁(yè)式管理頁(yè)式管理 :傳送信息的基本是頁(yè)。 優(yōu)點(diǎn)優(yōu)點(diǎn):1.頁(yè)面的起點(diǎn)和終點(diǎn)地址固定2.產(chǎn)生碎片小,造成浪費(fèi)少。 缺點(diǎn):缺點(diǎn):由于頁(yè)不是邏輯上獨(dú)立的實(shí)體,所以處理,保護(hù)和共享都不及段式來得方便。3.3.段頁(yè)式管理:段頁(yè)式管理:采用分段,分頁(yè)管理。特點(diǎn)特點(diǎn):程序按模塊分段,段內(nèi)再分頁(yè),進(jìn)入主存仍以頁(yè)以為基本信息傳送單位,用段表各頁(yè)表進(jìn)行兩級(jí)定位管理。473.6.2 頁(yè)式虛擬存儲(chǔ)器 邏輯頁(yè)邏輯頁(yè):在頁(yè)式虛擬存儲(chǔ)系統(tǒng)中, 把虛擬空間分成頁(yè)。 物理頁(yè)物理頁(yè):在主存空間也分成同樣大小的頁(yè)。 虛存地址:虛存地址:48虛存地址與物理存儲(chǔ)之間關(guān)系主 存 頁(yè) 號(hào) 主 存 地

22、 址 空 間 虛 存 頁(yè) 號(hào) 程 序 地 址 空 間013240127491. 頁(yè)式虛擬存儲(chǔ)器的地址映象過程頁(yè)內(nèi)地址頁(yè)內(nèi)地址實(shí)頁(yè)號(hào)虛頁(yè)號(hào)基號(hào) 2 1 6 1(b) 地址映象方法主存頁(yè)號(hào) 裝入位 - 0 7 1 - 0 5頁(yè)表長(zhǎng)度 頁(yè)表基址虛地址實(shí)地址頁(yè)表頁(yè)基址表0502. 2. 虛擬地址到主存實(shí)地址的變換是由放在主存的頁(yè)表來實(shí)現(xiàn)頁(yè)表邏輯頁(yè)號(hào)物理頁(yè)號(hào)裝入位(有效位)修改位替換控制位保護(hù)位513. 快表和慢表實(shí)現(xiàn)內(nèi)部地址變換 快表 把頁(yè)表的活躍部分放在高速存儲(chǔ)器中組成快表,快表只是慢表的一個(gè)小小副本。 過程查表時(shí),由邏輯頁(yè)號(hào)同時(shí)去快表和慢表,當(dāng)在快表中有此邏輯頁(yè)號(hào)時(shí),就能很快地找到對(duì)應(yīng)的物理頁(yè)號(hào)送

23、入實(shí)主存儲(chǔ)地址寄存器,并使慢表的查找作廢,就能做到雖采用虛擬存儲(chǔ)器但訪問主存速度幾乎沒有下降。52如果在快表中查不到,那就要費(fèi)一個(gè)訪問主存時(shí)間查慢表,從中查到物理頁(yè)號(hào)送入實(shí)主存地址寄存器,并將此邏輯頁(yè)和對(duì)應(yīng)的物理頁(yè)號(hào)送入快表,替換快表中應(yīng)該移掉的內(nèi)容,要用替換算法。53 虛地址 快表 慢表 實(shí)地址 0 0 相 . 1 聯(lián) 查 N-1 2 找 實(shí)頁(yè)號(hào) 裝入位 用戶標(biāo)志 虛頁(yè)號(hào) 實(shí)頁(yè)號(hào) 圖3-43 用快表和慢表實(shí)現(xiàn)的內(nèi)部地址變換 頁(yè)內(nèi)地址 虛頁(yè)號(hào) 基號(hào) 543.6.3 段式虛擬存儲(chǔ)器 段頁(yè)式虛擬存儲(chǔ)器的作用:分隔地址空間;解決主存容量;程序的重定位; 段式虛擬存儲(chǔ)器地址結(jié)構(gòu):55段式虛擬存儲(chǔ)器的地

24、址變換過程 主存地址空間 程序地址空間 1000 3000 (a) 地址映象關(guān)系 0 0 . 1 N-1 2 段表長(zhǎng)度 段表基址 段基址 裝入位 段長(zhǎng) 訪問方式 (b) 地址映象方法 圖 3-44 段式虛擬存儲(chǔ)器 0 段 1 段 2 段 段內(nèi)地址 段號(hào) 基號(hào) - 0 1K 3000 1 2K 1000 1 1K 3 虛地址 實(shí)地址(相加形成) 段表 段基址表 563.6.4 段頁(yè)式虛擬存儲(chǔ)器 段頁(yè)式虛擬存儲(chǔ)器是段式虛擬存儲(chǔ)器段式虛擬存儲(chǔ)器和頁(yè)式虛頁(yè)式虛擬存儲(chǔ)器擬存儲(chǔ)器的結(jié)合。 在這種方式中,把程序按邏輯單位分段以后,把程序按邏輯單位分段以后,再把每段分成固定大小的頁(yè)。再把每段分成固定大小的頁(yè)。

25、 程序?qū)χ鞔娴恼{(diào)入調(diào)出調(diào)入調(diào)出是按頁(yè)面按頁(yè)面進(jìn)行的,但它又可以按段實(shí)現(xiàn)共享和保護(hù)按段實(shí)現(xiàn)共享和保護(hù)。 在段頁(yè)式虛擬存儲(chǔ)系統(tǒng)中,每道程序是通過一個(gè)段表和一組頁(yè)表來進(jìn)行定位的。57段頁(yè)式虛擬存儲(chǔ)器的地址變換過程:(a) 地址映象關(guān)系 段基址表 段表 頁(yè)表 0 0 0 . N-1 L-1 M-1 段表長(zhǎng)度 段表基址 裝入位 段長(zhǎng) 頁(yè)表地址(b) 地址映象方法頁(yè)內(nèi)地址頁(yè)內(nèi)地址頁(yè)號(hào)頁(yè)號(hào)段號(hào)基號(hào) 1 M 1 L主存地址空間程序地址空間A 段B 段虛地址實(shí)地址58例 :假設(shè)有三道程序(用戶標(biāo)志號(hào)為A,B,C)其段表指明該段頁(yè)表的起始地址為Sa,Sb,Sc,邏輯地址到物理地址的變換過程如下在主存中,每道程序都

26、有一張段表,A程序有4段,C程序有3段。每段應(yīng)有一張頁(yè)表,段表的每行就表示相應(yīng)頁(yè)表的起始位置而表內(nèi)的每行即為相應(yīng)的物理頁(yè)號(hào)。59 上圖地址變換過程如下:1. 根據(jù)基號(hào)C,執(zhí)行Sc(基址寄存器內(nèi)容)加1(段號(hào))操作,得到段表相應(yīng)行地址,其內(nèi)容為頁(yè)表的起始地址b.2. 執(zhí)行b(頁(yè)表起始地址)+2(頁(yè)號(hào)),得到物理頁(yè)號(hào)地址,其內(nèi)容即為物理頁(yè)10。3. 物理頁(yè)號(hào)與頁(yè)內(nèi)地址拼接即得物理地址。段頁(yè)式虛擬存儲(chǔ)系統(tǒng)由虛擬地址向?qū)嵵鞔娴刂返淖儞Q至少需要查兩次表(段表與頁(yè)表)。段頁(yè)表構(gòu)成表層次。表層次不只段頁(yè)式有,頁(yè)表也會(huì)有,因?yàn)檎麄€(gè)頁(yè)表是連續(xù),當(dāng)一上頁(yè)表的大小超 過一個(gè)頁(yè)面的大小時(shí),頁(yè)表就可能分成幾個(gè)頁(yè)。形成了

27、二級(jí)頁(yè)表層次。一個(gè)大的程序可能需要多級(jí)頁(yè)表層次。對(duì)于多級(jí)表層次,在程序 運(yùn)行時(shí),除了第一級(jí)頁(yè)表需駐留在主存這外,整個(gè)頁(yè)表中只需有一部分是在主存中,大部分可存于外存,需要時(shí)再由第一級(jí)頁(yè)表調(diào)入,可減小每道程序占用的主存空間。60 3.6.5 替換算法替換算法:替換算法: 當(dāng)產(chǎn)生缺頁(yè),而主存頁(yè)面已全部占滿,此時(shí)用什么規(guī)則來替換主存的哪一頁(yè),就是替換算法替換算法。虛擬存儲(chǔ)器中的頁(yè)面替換和緩沖中行替換策略 不同之處:缺頁(yè)至少要涉及前一次磁盤存取,因此缺頁(yè)使系統(tǒng)蒙受的損失要比緩沖未命中大得多。 頁(yè)面替換是由操作系統(tǒng)軟件實(shí)現(xiàn)的;頁(yè)面替換的選擇余地很大,屬于一個(gè)進(jìn)程的頁(yè)面都可替換。61 對(duì)于將被替換出去的頁(yè)面

28、進(jìn)行的處理:對(duì)于將被替換出去的頁(yè)面進(jìn)行的處理:由于在外存中留有副本,假如該頁(yè)調(diào)入主存后沒有被修改過,那么就不必進(jìn)行處理否則就應(yīng)把該頁(yè)面重新寫入外存,以保證外存中數(shù)據(jù)的正確性。為此在頁(yè)表的每一行可設(shè)置一修改位當(dāng)該頁(yè)剛調(diào)入主存時(shí),此位為0,當(dāng)對(duì)該頁(yè)面任一地址進(jìn)行寫入時(shí),就把該位改1。在該頁(yè)被替換時(shí),檢查其修改位,如為1,則先將該 頁(yè)內(nèi)容從主存寫入外存,然后再?gòu)耐獯娼痈男乱豁?yè) 在虛擬存儲(chǔ)器中,為了實(shí)現(xiàn)邏輯地址到物理地址在虛擬存儲(chǔ)器中,為了實(shí)現(xiàn)邏輯地址到物理地址的變換并在頁(yè)面失效時(shí)進(jìn)入操作系統(tǒng)環(huán)境的變換并在頁(yè)面失效時(shí)進(jìn)入操作系統(tǒng)環(huán)境,設(shè)置了由硬件實(shí)現(xiàn)的存儲(chǔ)管理部件MMU。62例:假設(shè)主存只有例:假設(shè)主

29、存只有a,b,ca,b,c三個(gè)頁(yè)框,組成三個(gè)頁(yè)框,組成a a進(jìn)進(jìn)c c出的出的FIFOFIFO隊(duì)列,隊(duì)列,進(jìn)程訪問頁(yè)面的序列是進(jìn)程訪問頁(yè)面的序列是0,1,2,4,2,3,0,2,1,3,20,1,2,4,2,3,0,2,1,3,2號(hào)。號(hào)。 若采用若采用1)FIFO1)FIFO算法,算法, 2) FIFO2) FIFO算法算法+LRU+LRU算法,用列表法分算法,用列表法分別求兩種替換策略情況下的命中率別求兩種替換策略情況下的命中率 解:求解表格如下。FIFO算法只是依序?qū)㈨?yè)面在隊(duì)列推進(jìn),先進(jìn)先出,最先進(jìn)入隊(duì)列的頁(yè)面由C頁(yè)框推出(被替換掉)。當(dāng)命中后不再保持隊(duì)列不變,而是將這個(gè)命中的頁(yè)面移到a頁(yè)

30、框。從表中看出命中2次故命中率為18.2%。 當(dāng)FIFO算法結(jié)合LRU算法時(shí),當(dāng)命中后不再保持隊(duì)列不變,而是將這個(gè)命中的頁(yè)面移到a頁(yè)框。從表中看出命中3次,使命中率提高到27.3%。63643.6.6 虛擬存儲(chǔ)器實(shí)例1.奔騰奔騰PCPC的虛地址模式的虛地址模式 奔騰PC的存儲(chǔ)管理部件MMU包括: 分段部件SU 分頁(yè)部件PU 1)1)分段不分頁(yè)模式分段不分頁(yè)模式虛擬地址(邏輯地址)由一個(gè)16位的段參照和一個(gè)32位的偏移組成。段參照的最低2 位與保護(hù)機(jī)構(gòu)打交道,高14位用于指定具體的段。一個(gè)進(jìn)程擁可有的最大虛擬地址空間是2=64TB。分段部件SU將二維的分段虛擬地址轉(zhuǎn)換成一維的32位紅性地址也就是

31、主存的物理地址。 優(yōu)點(diǎn)優(yōu)點(diǎn):無需訪問頁(yè)目錄和頁(yè)表地址,轉(zhuǎn)換速度快另外,對(duì)段提供的一些保護(hù)定義,可以一直貫通到段的單個(gè)字節(jié)級(jí)。652)2)分段分頁(yè)模式分段分頁(yè)模式 這是一種在分段基礎(chǔ)一增加分頁(yè)存儲(chǔ)管理的模式。將SU部件轉(zhuǎn)換后的32位線性地址看由頁(yè)目錄,頁(yè)表頁(yè)內(nèi)偏移三個(gè)字段組成,再由PU部件完成兩 級(jí)頁(yè)表的,將其轉(zhuǎn)換頁(yè)換成32位物理地址。 一個(gè)進(jìn)程可擁有的最大虛擬地址空間也是64TB。優(yōu)點(diǎn)優(yōu)點(diǎn):這種模式兼顧分段和分頁(yè)兩種方式的優(yōu)點(diǎn)。3)3)不分段分頁(yè)模式不分段分頁(yè)模式 這種模式下SU不工作,只是PU工作。程序也不提供段參照,寄存器提供的32位地址被看成是由頁(yè)目錄,頁(yè)表,頁(yè)內(nèi)偏移三個(gè)字段組成。由PU

32、完成虛擬地址到物理地址的轉(zhuǎn)換。進(jìn)程所擁有的最大虛擬地址空間是4GB。662.2.保護(hù)模式的分頁(yè)地址轉(zhuǎn)換保護(hù)模式的分頁(yè)地址轉(zhuǎn)換兩種分頁(yè)方式:一種有4KB的頁(yè),使用二級(jí)頁(yè)表(頁(yè)目錄,頁(yè)表)進(jìn)行地址轉(zhuǎn)換. 一種是新增加的方式,采用4MB的頁(yè),使用單級(jí)頁(yè)表進(jìn)行地址轉(zhuǎn)換。頁(yè)面(頁(yè)框)大小為4MB的分頁(yè)方式單級(jí)頁(yè)表,由于只進(jìn)行一次主存訪問,地址轉(zhuǎn)換過程加快了。674MB分頁(yè)方式,其地址轉(zhuǎn)換過程示如下:683.7 3.7 存儲(chǔ)保護(hù)存儲(chǔ)保護(hù) 當(dāng)多個(gè)用戶共享主存時(shí),就有多個(gè)用戶程序和系統(tǒng)軟件存于主存中。為使系統(tǒng)能正常工作,系統(tǒng)應(yīng)提供存儲(chǔ)保護(hù),防止由于一個(gè)用戶系統(tǒng)應(yīng)提供存儲(chǔ)保護(hù),防止由于一個(gè)用戶程序出錯(cuò)而踴壞其他用戶的程序和系統(tǒng)軟件,程序出錯(cuò)而踴壞其他用戶的程序和系統(tǒng)軟件,還要防止一個(gè)用戶程序不合法地訪問不是分配還要防止一個(gè)用戶程序不合法地訪問不是分配給它的主存區(qū)域。給它的主存區(qū)域。通常采用的方法是存儲(chǔ)區(qū)域保護(hù)存儲(chǔ)區(qū)域保護(hù)和訪問方訪

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論