計(jì)算機(jī)結(jié)構(gòu)之精華要素課件_第1頁
計(jì)算機(jī)結(jié)構(gòu)之精華要素課件_第2頁
計(jì)算機(jī)結(jié)構(gòu)之精華要素課件_第3頁
計(jì)算機(jī)結(jié)構(gòu)之精華要素課件_第4頁
計(jì)算機(jī)結(jié)構(gòu)之精華要素課件_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第 11 章虛擬記憶體技術(shù)和虛擬定址1虛擬記憶體虛擬記憶體隱藏實(shí)體記憶體的底層細(xì)節(jié),提供另外一種更方便規(guī)劃的記憶環(huán)境。虛擬記憶體建造虛擬的空間圖像虛擬記憶體涵蓋各種不同的技術(shù)和方法。 2虛擬範(fàn)例:位元組定址 還記得:在字組定址的實(shí)體記憶體上,把字組定址轉(zhuǎn)譯成位元組定址,正是虛擬位址的映射觀念。智慧型控制器會負(fù)責(zé)把字組定址轉(zhuǎn)譯成位元組定址。3虛擬術(shù)語 MMU(記憶體管理單元)記憶體的智慧型控制器MMU接受處理器所送出的虛擬位址,再轉(zhuǎn)換成實(shí)體位址(轉(zhuǎn)換細(xì)節(jié)通常隱藏在MMU背後)。4虛擬術(shù)語(Cont.)虛擬位址虛擬位址非實(shí)體(或稱真實(shí))位址目前大部分的處理器使用的位址是虛擬位址,而非實(shí)體位址。虛擬

2、空間虛擬空間意指所有虛擬位址的集合可以大於或小於實(shí)體空間5多重實(shí)體記憶介面 許多電腦可以把多個(gè)實(shí)體記憶體整合到單一虛擬空間。MMU可以延伸出更複雜的記憶體組織比如:整合SRAM和DRAM兩種不同的實(shí)體記憶體:(SRAM一個(gè)字組四個(gè)位元組)(DRAM一個(gè)字組八個(gè)位元組)可以使用相同的指令,來存取位元組。 6涵蓋雙實(shí)體記憶介面的虛擬系統(tǒng)7虛擬定址如何提供虛擬空間?比如:記憶體1的位址 0到 999記憶體2的位址1000到1999只要根據(jù)位址編號,MMU就可以知道目標(biāo)是哪一個(gè)實(shí)體記憶體,和所使用的存取策略。 8雙實(shí)體記憶介面的虛擬位址9位址映射 位址映射由MMU負(fù)責(zé),又稱為位址轉(zhuǎn)譯。如同之前範(fàn)例:記

3、憶體1的虛擬位址與實(shí)體位址相同,因此直接轉(zhuǎn)送這些虛擬位址給記憶體1;記憶體2的虛擬位址從1000開始,因此MMU必須在轉(zhuǎn)送給記憶體2之前,就先把虛擬位址轉(zhuǎn)譯到真實(shí)位址。10執(zhí)行位址轉(zhuǎn)譯的執(zhí)行步驟11避開計(jì)算 數(shù)學(xué)計(jì)算成本昂貴盡量避開數(shù)學(xué)計(jì)算解決的方法應(yīng)該是:謹(jǐn)慎地使用2的冪次位元,以最簡單的虛擬位址分割方式,完成必要的位址轉(zhuǎn)譯。122的冪次範(fàn)例1000個(gè)位元組不是2的冪次方實(shí)體記憶體應(yīng)該改成210=1024位元組最好改成位址 0到1023給記憶體1位址1024到2047給記憶體213二進(jìn)位位址範(fàn)例以十進(jìn)位的眼光來看,這些數(shù)值似乎不怎麼相似!改以二進(jìn)位元排列,發(fā)現(xiàn)低階位元排列幾乎相同,唯一不同的

4、只有最高階位元。 14重點(diǎn)選擇2的冪次虛擬位址可以避開麻煩的算術(shù)計(jì)算,只要使用最簡單的位元分割,就可以讓MMU選擇到正確的實(shí)體記憶體,並執(zhí)行必要的位址轉(zhuǎn)譯。 15非連續(xù)位址 連續(xù)位址虛擬位址從零開始到最大位址,連續(xù)不斷。每一個(gè)虛擬位址總是對應(yīng)一個(gè)等效的實(shí)體位置。非連續(xù)位址實(shí)體記憶體都會有其映射的虛擬空間使用者有權(quán)選擇記憶體的數(shù)量,或省略某些實(shí)體記憶體,這表示部分的虛擬位址將無法使用。組合實(shí)體位址可能會出現(xiàn)非連續(xù)位址造成虛擬空間出現(xiàn)漏洞16非連續(xù)位址圖一旦處理器存取到漏洞,將出現(xiàn)錯(cuò)誤17程式設(shè)計(jì)師受到的影響虛擬空間可能是連續(xù)位址,每個(gè)位址會映射到一個(gè)實(shí)體記憶體的位置;另外,虛擬空間也可能非連續(xù),

5、造成虛擬空間出現(xiàn)一個(gè)或多個(gè)空洞,一旦處理器嘗試讀寫這些空洞,將因?yàn)檎也坏降刃У膶?shí)體記憶體,而出現(xiàn)錯(cuò)誤。 18虛擬記憶體的動機(jī) 硬體整合同質(zhì)性程式規(guī)劃便利性支援多重程式程式和資料保護(hù)19 多重虛擬空間和多重程式執(zhí)行 目標(biāo):多重程式執(zhí)行早期因?yàn)橛洃涹w資源的衝突問題,多重程式執(zhí)行是不可行的。因此,必須有能力防止程式之間彼此的衝突與干擾。技巧:提供各個(gè)程式擁有自己的虛擬位址空間,各自獨(dú)力互不干擾。20一個(gè)實(shí)體四個(gè)虛擬空間範(fàn)例21多階層虛擬化 MMU可以把多重虛擬位址轉(zhuǎn)譯到單一實(shí)體記憶體。MMU硬體還可以執(zhí)行其它不同的虛擬化映射,比如:映射到多個(gè)實(shí)體記憶體把位元組位址轉(zhuǎn)譯到字組位址。 22動態(tài)虛擬空間的

6、建立技術(shù) 基底-界線暫存器區(qū)段分頁請求23基底-界限暫存器 使用兩個(gè)暫存器:基底暫存器和界限暫存器,來界定出虛擬空間的位置。在致能MMU之前,必須先載入數(shù)值到這兩個(gè)暫存器:基底暫存器儲存實(shí)體記憶體的位址,剛好指向虛擬空間的開頭。界限暫存器則儲存整個(gè)虛擬空間的大小。 24使用基底-界限暫存器的虛擬機(jī)制25界限的保護(hù) 為什麼要多一個(gè)界限暫存器呢?答案就是:保護(hù)!界限暫存器用來保證:程式不會超過其管轄範(fàn)圍。為了實(shí)現(xiàn)這種保護(hù)功能,MMU必須檢查每一個(gè)記憶體參考,一旦存取的記憶體位址跳出M,就會發(fā)生錯(cuò)誤。26保護(hù)觀念支援多重程式執(zhí)行的虛擬記憶體必須能夠提供保護(hù),防止程式讀取或改變其它程式所座落的記憶體內(nèi)

7、容。 27區(qū)段 基底-界限的虛擬技術(shù)稱為粗粒映射。另一種稱為細(xì)粒映射。典型來看,電腦結(jié)構(gòu)師發(fā)現(xiàn):應(yīng)用程式內(nèi)部包含某些程序和呼叫流程,如果整個(gè)載入到記憶體時(shí),會佔(zhàn)據(jù)許多空間。大部分的應(yīng)用程式在某個(gè)時(shí)間點(diǎn),可能只有一個(gè)程序正在執(zhí)行,顯然載入整個(gè)程式,有些浪費(fèi)!28區(qū)段問題細(xì)粒映射只有需要這些區(qū)塊時(shí),才載入記憶體,不必載入全部程式到記憶體。程式片段可以先放在外部儲存裝置有需求時(shí)再載入到記憶體這種策略就是所謂的區(qū)段化,而這些程式片段就是區(qū)段。區(qū)段問題:作業(yè)系統(tǒng)移動資料進(jìn)出時(shí),會受到不同區(qū)段大小的影響,容易造成記憶體的碎裂化。29區(qū)段結(jié)論區(qū)段是一種虛擬記憶體策略,通常意指:程式被分割成不同大小的區(qū)塊,只

8、有需要這些區(qū)塊時(shí),才會將區(qū)塊放到記憶體內(nèi),然而目前比較少用區(qū)段觀念,因?yàn)閰^(qū)段容易導(dǎo)致記憶體的碎裂。 30分頁請求 相對區(qū)段而言,另一種比較成功的分頁請求技術(shù)。分頁請求把所有的程式分割成固定大小的區(qū)塊,稱為分頁。分頁大小早期,選擇512 B或1 KB分頁大小。近年,Pentium使用4KB分頁。 31分頁請求具備的兩個(gè)技術(shù) 分頁硬體,用來映射位址和偵測分頁錯(cuò)誤。分頁軟體,用來交換外部儲存裝置和實(shí)體記憶體之間的分頁。 32分頁硬體分頁硬體讓軟體(通常是作業(yè)系統(tǒng))可以請求相關(guān)的分頁事宜,包含:指定分頁位址、使用虛擬位址執(zhí)行應(yīng)用程式、等。硬體會轉(zhuǎn)譯記憶體位址,但是如果硬體存取不到分頁所指定的位址,就會

9、發(fā)生分頁錯(cuò)誤。分頁錯(cuò)誤可能遺失分頁硬體的責(zé)任會通知作業(yè)系統(tǒng)有個(gè)錯(cuò)誤發(fā)生了,讓軟體決定並解決問題。 33分頁軟體分頁軟體必須決定那些分頁放在記憶體,哪些放在外部儲存裝置。一旦需要分頁時(shí),軟體會負(fù)責(zé)請求動作。硬體報(bào)告分頁錯(cuò)誤後,分頁軟體必須接手。分頁軟體必須讀取必要的分頁到記憶體。 分頁硬體和分頁軟體必須一起工作分頁錯(cuò)誤發(fā)生後,硬體必須儲存當(dāng)時(shí)的狀態(tài)。軟體必須瞭解如何規(guī)劃MMU的細(xì)節(jié)動作。 34分頁置換 一開始虛擬記憶體會把分頁搬到記憶體內(nèi)部如果記憶體滿載,應(yīng)用程式繼續(xù)要求新的分頁,則系統(tǒng)必須回收現(xiàn)有的分頁,讓出空間給新的分頁,稱為分頁置換。分頁置換與效能有相當(dāng)?shù)年P(guān)聯(lián)分頁在外部儲存裝置和記憶體之間

10、的轉(zhuǎn)移動作,非常耗時(shí)。35分頁術(shù)語 分頁:一個(gè)固定大小的程式區(qū)塊框架:剛好容納分頁的實(shí)體記憶位置常駐狀態(tài):分頁已經(jīng)置放在記憶體框架內(nèi)部,稱該分頁進(jìn)入常駐狀態(tài)。常駐集合:所有常駐於記憶體的分頁36分頁資料結(jié)構(gòu) 整個(gè)分頁請求的資料結(jié)構(gòu),就是所謂的分頁表。最簡單的分頁表就是:儲存分頁號碼的一維陣列索引。索引依序標(biāo)示為0、1、等。每個(gè)分頁表項(xiàng)目不是null指標(biāo),就是分頁的實(shí)體位址。 37分頁表38分頁位址轉(zhuǎn)譯 為了瞭解分頁硬體,可把整個(gè)位址空間分割成固定大小的分頁。 39分頁位址轉(zhuǎn)譯(Cont.)假設(shè)分頁大小為固定的K位元組把虛擬位址V轉(zhuǎn)譯到實(shí)體位址P,需要以下步驟:先決定虛擬位址V的分頁號碼把分頁號

11、碼當(dāng)作分頁表索引,找到該分頁的第一個(gè)位元組位址。決定V離第一個(gè)位元組位址的距離,然後移動到該記憶體框架同樣距離的位址。40分頁位址轉(zhuǎn)譯的數(shù)學(xué)觀點(diǎn)假設(shè)分頁號碼為N,如下:偏移位址O,如下:O = V modulo K虛擬位址V可以使用分頁表N和偏移位址O,轉(zhuǎn)譯成對應(yīng)的實(shí)體位址P,如下:P = 分頁表N + O41使用2的冪次 算術(shù)運(yùn)算成本昂貴分頁系統(tǒng)使用2的冪次方即每一個(gè)分頁可以容納2q個(gè)位元組,分頁表改由位元萃取,取出記憶體位址MMU執(zhí)行運(yùn)算,把虛擬位址V轉(zhuǎn)譯成實(shí)體位址P:P=分頁表高階位元(V) or 低階位元(V)42MMU的硬體轉(zhuǎn)譯工作圖43出現(xiàn)、使用、修改位元 分頁表最常使用的控制位元

12、,協(xié)調(diào)分頁軟硬體的相關(guān)運(yùn)作。44分頁表儲存 哪麼分頁表要放在哪裡?某些系統(tǒng)會把分頁表儲存在MMU晶片。有些處理器把分頁表放在記憶體!45儲存在實(shí)體記憶體的分頁表46分頁效率 記憶體是電腦系統(tǒng)中,重複使用最頻繁的資源。想把分頁表放在記憶體必須有足夠的效率避免成為瓶頸 47TLB TLB(轉(zhuǎn)換後備緩衝器)是一種特殊高速硬體,可以用來進(jìn)行分頁表的查閱動作,最佳化分頁請求的效能。TLB是一種CAM(內(nèi)容定址記憶體),每當(dāng)MMU轉(zhuǎn)譯位址時(shí),總會在TLB上置放一份拷貝,讓系統(tǒng)進(jìn)行高速查閱。如果在TLB內(nèi)找不到相關(guān)的資訊,則會繼續(xù)進(jìn)行標(biāo)一般準(zhǔn)的位址轉(zhuǎn)譯動作。 48TLB的效能為什麼TLB可以改善效能呢?處理

13、器傾向連續(xù)擷取記憶體指令這種連續(xù)擷取意味:直接運(yùn)用下一個(gè)指令的機(jī)率很高不必再次索引分頁表,節(jié)省轉(zhuǎn)譯時(shí)間。運(yùn)用TLB的效能改善相當(dāng)明顯。 49TLB的重要性TLB特殊高速硬體設(shè)備常用來最佳化分頁系統(tǒng)的效能表現(xiàn),沒有 TLB的虛擬記憶體速度顯然太慢! 50對程式設(shè)計(jì)師的影響 經(jīng)驗(yàn)顯示:分頁請求對大部分的電腦程式而言,運(yùn)作良好!因此,程式設(shè)計(jì)師傾向把整個(gè)程序碼放到單一分頁資料物件盡量集中在連續(xù)的記憶體位置愈多次的存取動作愈能提昇執(zhí)行的效能某些編譯器也將資料項(xiàng)目填入分頁,來最佳化效能。 51陣列存取陣列存取可能會影響虛擬記憶體的效能問題陣列在記憶體的排列方式通常有兩種:列排序行排序52列排序二維的位元組陣列Ai,j的位置如下:位置(A) + iQ + j其中,Q是每一列的位元組數(shù)目。53最佳化的列排序程式設(shè)計(jì)師可以控制程式的迴圈,重複地處理陣列,字元陣列AN,M以列排序地儲存在記憶體上,下列迴圈指令:for i = 1 to N for j = 1 to MAi,j=0;54未最佳化的列排序如果改以行來儲存記憶體,則迴圈處理可能需要較少的執(zhí)行時(shí)間:for j = 1 to M for i = 1 to NAi,j=0;55結(jié)論 虛擬記憶體系統(tǒng)提供

溫馨提示

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

評論

0/150

提交評論