微機原理課件 - 馬洪兵(清華)-微機原理06_第1頁
微機原理課件 - 馬洪兵(清華)-微機原理06_第2頁
微機原理課件 - 馬洪兵(清華)-微機原理06_第3頁
微機原理課件 - 馬洪兵(清華)-微機原理06_第4頁
微機原理課件 - 馬洪兵(清華)-微機原理06_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2.4 保護模式軟件體系結構3.8 保護模式的系統(tǒng)控制指令4.5 保護模式匯編語言程序設計保護模式1保護模式概述描述符與描述符表保護模式的寄存器模型保護模式的存儲器尋址虛擬8086模式2.4 保護模式軟件體系結構保護模式軟件體系結構2保護模式軟件體系結構保護模式概述32條地址線全部有效,可尋址4GB物理地址空間擴充的存儲器分段管理機制和可選的存儲器分頁管理機制,為實現虛擬存儲器提供了硬件支持支持多任務,能夠快速地進行任務切換和保護任務環(huán)境4個特權級和完善的特權檢查機制,既能實現資源共享又能保證代碼和數據的安全和保密以及任務的隔離支持虛擬8086方式3保護模式軟件體系結構保護模式概述虛擬存儲器的

2、概念虛擬存儲器是一種軟硬件結合的技術,用于提供比在計算機系統(tǒng)中實際可以使用的物理內存大得多的存儲空間。虛擬存儲器的地址稱為邏輯地址或虛擬地址,全部邏輯地址的集合稱為虛擬地址空間。Pentium支持的虛擬地址空間可達64TB。只有物理內存中的程序才能運行,只有物理內存中的數據才能被訪問,所以虛擬地址空間必須映射到物理地址空間。Pentium通過擴充的存儲器分段管理機制和可選的存儲器分頁管理機制實現虛擬地址到物理地址的轉換。4保護模式軟件體系結構保護模式概述保護機制為了支持多任務,Pentium處理器要對存放在存儲器中的代碼及數據的保護與共享提供支持。任務(進程):程序在執(zhí)行時的一種情況,是一個動

3、態(tài)的概念。樂譜與演奏Pentium的保護機制能有效地實現不同任務之間的保護和同一任務內的保護。5保護模式軟件體系結構保護模式概述保護機制不同任務之間的保護任務A和任務B并存,那么任務A和任務B必須隔離,以免相互影響。把每個任務放置在不同的虛擬地址空間可以實現任務與任務的隔離。兩個不同任務的虛擬地址轉換為不同的物理地址。僅由一個任務占有的虛擬地址空間部分,稱為局部地址空間。局部地址空間包含的代碼和數據,是任務私有的,需要與系統(tǒng)中的其它任務相隔離。另一方面,任務A和任務B可能要共享部分代碼和數據,如對操作系統(tǒng)的共享。各個任務公用的虛擬地址空間部分,稱為全局地址空間。對全局地址空間中同一虛擬地址的訪

4、問,在所有任務中都轉換為同樣的物理地址,從而支持公共的代碼及數據的共享。6保護模式軟件體系結構保護模式概述保護機制同一任務內的保護在一個任務之內,定義有四種執(zhí)行特權級(PL, Privilege Level) ,用于限制對任務中不同的存儲器段進行訪問。Pentium為每個任務提供了4種特權級,0級最高,3級最低應用程序常規(guī)擴展系統(tǒng)服務內核級別0級別1級別2級別37保護模式軟件體系結構保護模式概述保護機制同一任務內的保護每個存儲器段都與一個特權級別相聯系。在任何時候,一個任務總是在四個特權級之一下運行,任務在特定時刻的特權級稱為當前特權級 (Current Privilege level),標記

5、為CPL,即當前運行程序的特權級。每當一個程序試圖訪問一個段時,就把CPL與要訪問的段的特權級進行比較,以決定是否允許這一訪問。Windows 操作系統(tǒng)只使用了0級和3級8描述符(Descriptor):描述符是一個8字節(jié)的數據結構。 Pentium采用描述符來描述存儲器段的位置、大小和使用情況。包括段描述符、系統(tǒng)段描述符和門描述符三種類型。保護模式軟件體系結構描述符與描述符表9段描述符:用于描述代碼、數據和堆棧段(用戶段)01234567段界限015位段基址023位訪問權限字節(jié)段界限1619位段基址2431位DG0AVL保護模式軟件體系結構段基址為段的起始地址,長32位段界限長20 位段內最

6、大有1M個可尋址單位10段描述符:G位(粒度位):G=0, 段的長度以字節(jié)為單位段長最大1M字節(jié)G=1,段的長度以頁(4K字節(jié))為單位段長最大1M4K=4G字節(jié)D位:D=0, 16位指令方式(代碼段) 段的上界為64K(數據段) 使用16位堆棧指針SP(堆棧段) D=1, 32位指令方式(代碼段) 段的上界為4G(數據段) 使用32位堆棧指針ESP(堆棧段) AVL位:軟件可用位。未作規(guī)定保護模式軟件體系結構11R W段描述符:訪問權限字節(jié)01234567APDPLSEED CP位:P=0,段不在內存中 P=1,段在內存中DPL:取值03,確定段的 特權級S位:S=1,段描述符A位:A=0,段

7、尚未被訪問 A=1,段已被訪問保護模式軟件體系結構12W R段描述符:訪問權限字節(jié)01234567APDPLSEED C13位表示段的類型E=0,為數據段ED=0,段向上擴展 為數據段ED=1,段向下擴展 為堆棧段W=0,數據段只讀W=1,數據段可寫E=1,為代碼段C=0,忽略描述符特權級C=1,遵循描述符特權級R=0,代碼段不可讀 即只執(zhí)行R=1,代碼段可讀保護模式軟件體系結構13系統(tǒng)段描述符:格式與段描述符基本相同,主要差別訪問權限字節(jié)01234567PDPLS TYPE S=0,系統(tǒng)段描述符TYPE為4位,共有16種類型。其中:2,LDT9,TSS,非忙B,TSS,忙5,任務門C,調用門

8、E,中斷門F,陷阱門 D位無定義(D=0)保護模式軟件體系結構14門描述符:偏移量:相對于段基地址的偏移 量,為目標代碼的入口點 選擇符:用于確定段基地址字計數:從調用者堆棧中復制到被 調用者堆棧中的參數個數屬于系統(tǒng)段描述符門提供了將程序控制轉給服務程序入口的手段。有任務門、調用門、中斷門、陷阱門4種類型保護模式軟件體系結構15門描述符:訪問權限字節(jié)格式與系統(tǒng)段描述符相同DPL為任務允許訪問該門的最低特權級保護模式軟件體系結構16例:判斷描述符所描述的段的性質01234567S=0,為系統(tǒng)段描述符TYPE=2,為DLTP=1,DPL=2因此為一個特權級為2的LDT,已經在內存中該LDT的基址為

9、00200000H,界限為00300HG=0,段的長度以字節(jié)為單位保護模式軟件體系結構17描述符表一個任務會涉及多個存儲器段,每個段需要一個描述符來描述,Pentium把描述符按順序組織成線性表,稱為描述符表描述符表占內存一定的區(qū)域,由系統(tǒng)地址寄存器(GDTR、IDTR、LDTR)指示其在物理存儲器中的位置和大小描述符表有三種:全局描述符表GDT中斷描述符表IDT局部描述符表LDT保護模式軟件體系結構18全局描述符表(GDT)表中包含可能被所有任務所共享的段的描述符包括操作系統(tǒng)用的數據段、代碼段、堆棧段,各種任務的任務狀態(tài)段(TSS),所有的LDT段,中斷服務程序段等。整個系統(tǒng)只有一個描述符表

10、保護模式軟件體系結構19描述符表保護模式軟件體系結構中斷描述符表(IDT)共有256個描述符,一般由中斷門組成,每個門只包含中斷的選擇符和偏移量,基地址通過查GDT得到整個系統(tǒng)只有一個20描述符表保護模式軟件體系結構局部描述符表(LDT)該描述符表包含該任務使用的數據段、代碼段、堆棧段的描述符。通常每個任務一個21描述符表保護模式軟件體系結構通過LDT可以使各個任務私有的各個段與其它任務相隔離,從而達到受保護的目的。通過GDT可以使各任務都需要使用的段能夠被共享。22保護模式的寄存器模型保護模式軟件體系結構230151631015015163178ALBLCLDLAXBXCXDXAHBHCHD

11、HEAXEBXECXEDXIPCSDSSSESFSGSSPBPSIDIESPEBPESIEDIFLAGSCR0實模式的寄存器模型保護模式軟件體系結構24全局描述符表寄存器GDTR在物理存儲器地址空間中定義全局描述符表GDTBASE指示GDT在物理存儲器中開始的位置LIMIT規(guī)定GDT的界限LIMIT有16位,從而GDT最大65536個字節(jié),能夠容納65536/8=8192個描述符保護模式軟件體系結構0151647GDTRBASELIMIT存放GDT的基址和界限25GDTRGDTBASELIMIT保護模式軟件體系結構全局描述符表寄存器GDTR26例:(GDTR)=001000000FFFH,求G

12、DT在物理存儲器中的起始地址,結束地址,表的大小,表中可以存放多少個描述符?全局描述符表寄存器GDTR解:GDT的起始地址為00100000H結束地址為00100000H+0FFFH=00100FFFH表的大小為0FFFH+1=4096字節(jié)表中可以存放4096/8=512個描述符保護模式軟件體系結構27中斷描述符表寄存器IDTR在物理存儲器地址空間中定義中斷描述符表IDT由于Pentium只能支持256個中斷和異常,因此LIMIT最大為0FFFHIDT中的描述符類型為中斷門保護模式軟件體系結構0151647IDTRBASELIMIT存放IDT的基址和界限28局部描述符表寄存器LDTR16位的L

13、DTR并不直接定義LDT,它只是一個指向GDT中LDT描述符的選擇符,指出當前任務的LDT描述符在GDT中的位置。在任務切換時,系統(tǒng)將當前任務的LDT選擇符的值裝入LDTR寄存器內。如果LDTR中裝入了一個LDT選擇符,相應的描述符將從GDT中讀出并裝入局部描述符表高速緩沖寄存器。將該描述符裝入高速緩沖寄存器就為當前任務創(chuàng)建了一個LDT保護模式軟件體系結構015LDTR選擇符29保護模式匯編語言程序設計GDTLDT描述符LDTRLDT基址界限32位16位LDT描述符高速緩沖寄存器(不可見)選擇符局部描述符表寄存器LDTR30段選擇符寄存器保護模式下CS、DS、SS、ES、FS、GS寄存器稱為段

14、選擇符寄存器,其值不再是基址而是選擇符,它選擇一個定義存儲器段大小和屬性的描述符RPL: 申請?zhí)貦嗉?3TI: 表指示符0使用全局描述符表1使用局部描述符表索引:選擇描述符表入口保護模式軟件體系結構段選擇符02315索引CS/DS/./GSTIRPL215位共14位用于段選擇,因而一個任務最多可以有16384個段,其中8192個全局段,8192個局部段31段選擇符寄存器例:設LDT的基址為00120000H,GDT的基址為00100000H,(CS)=1007H,那么:請求的特權級是多少段描述符位于GDT中還是LDT中段描述符的地址是什么解:(CS)=1007H=0001 0000 0000

15、0111B RPL=3,申請的特權級為3TI=1,描述符位于LDT中描述符相對于LDT基址的偏移量為0001000000000B8=512 8=4096=1000H段描述符的地址為00120000H+1000H=00121000H保護模式軟件體系結構32控制寄存器CR4CR3CR2CR1CR0頁目錄基址頁故障線性地址保留保留31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0VMEPVITSDDEMCE0PSEPCDPWTPGCDNWAMWPNEETTSEMMPPE000000

16、0000000000000000000保護模式軟件體系結構33控制寄存器CR0的低5位組成機器狀態(tài)字(MSW):PE:0實模式;1保護模式MP:1(系統(tǒng)有數學協處理器)EM:0 浮點指令的執(zhí)行是用軟件模擬(1),還是由 硬件執(zhí)行(0)。TS:任務切換,切換任務時處理器自動將TS置1ET:1(協處理器的類型)CR0保留保留PGCDNWAMWPNEETTSEMMPPE31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0保護模式軟件體系結構34存儲器分頁機制:CR0中的PG位設置為1

17、,表示允許分頁CR3包含頁目錄基址,指向頁目錄的開頭如果發(fā)生缺頁,則將發(fā)生缺頁的地址保存在CR2中控制寄存器CR3CR2CR1CR0頁目錄基址頁故障線性地址31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0PCDPWTPG保護模式軟件體系結構35任務寄存器TR存放16位的選擇符,指示全局描述符表中任務狀態(tài)段(TSS)描述符的位置當選擇符裝入TR時,相應的TSS描述符自動從存儲器中讀出并裝入任務描述符緩沖寄存器。該描述符定義了一個稱為任務狀態(tài)段(TSS)的存儲塊。每個任務都有T

18、SS,TSS包含啟動任務所必需的信息。TSS最大64K字節(jié)保護模式軟件體系結構36GDTTSS描述符TR基址界限32位16位TSSTSS描述符高速緩沖寄存器(不可見)保護模式軟件體系結構任務寄存器TR37標志寄存器EFLAGSVM: 虛擬8086模式標志保護模式軟件體系結構38保護模式下存儲器尋址實模式存儲器尋址保護模式軟件體系結構39保護模式下存儲器尋址保護模式的存儲器管理單元使用48位存儲器指針:16位選擇符,32位偏移量選擇符放在段選擇符寄存器中偏移量放在其他用戶可訪問的32位寄存器中偏移量32位,因此段的大小可以達到4G字節(jié)48位存儲器指針稱為虛擬地址(邏輯地址)16位選擇符中有14位

19、用于存儲器段選擇,虛擬空間中可容納16384個段,每段最大4GB,因而虛擬地址空間最大64TB保護模式軟件體系結構40保護模式下存儲器尋址保護模式軟件體系結構虛擬地址(邏輯地址)必須轉換成物理地址后才能訪問物理存儲器。Pentium分兩步實現虛擬地址空間到物理地址空間的映射,其中第二步是可選的。分段機制把邏輯地址轉換成線性地址;分頁機制把線性地址轉換成物理地址。41分段管理機制實現邏輯地址向線性地址的轉換在程序指令中使用的邏輯地址格式段內偏移選擇符16位 32位把邏輯地址中的選段符裝入段選擇符寄存器中,把段內偏址通用寄存器中,經過分段機制的轉換后成為32位線性地址42分段管理機制邏輯地址GDT

20、/LDT選擇符偏移量段描述符段描述符高速緩沖寄存器(不可見)數據段操作數DSEAX保護模式軟件體系結構43CSDSSSESFSGS程序員可見訪問權限基址界限01920515263段描述符高速緩沖寄存器(不可見)保護模式軟件體系結構分段管理機制44例:假設虛擬地址為0100:00000200H,禁止分頁。如果描述符中讀出的段基址為00030000H,那么操作數的物理地址是什么?解:將此虛擬地址轉換成物理地址為基地址+偏移量=00030000H+00002000H=00032000H保護模式軟件體系結構分段管理機制45分頁機制分頁機制將內存劃分成大小相同的存儲塊,稱為物理頁面,每個物理頁面大小為4

21、K字節(jié)。內存最大4GB的空間可以分為1M(1048576)個頁面保護模式軟件體系結構頁0頁1頁10485754KB4KB4KB物理地址空間4GB46如果不允許分頁,那么分段機制確定的32位線性地址即為物理地址;如果允許分頁,32位線性地址由3個域組成:分頁機制通過兩級表格結構將線性地址轉換成物理地址,第一級是頁目錄,第二級是頁表保護模式軟件體系結構分頁機制頁目錄頁表頁內偏移量31 22 21 12 11 0線性地址格式10位 10位 12位47頁目錄長4KB,包含最多1024個頁目錄項,每個頁目錄項4字節(jié)(32位)765432100DA00U/SR/WP頁表指針03位0頁表指針411位頁表指針

22、1219位0123保護模式軟件體系結構分頁機制AVL4820位的頁表指針是某一個頁表起始地址的高20位,該地址的低12位總為0,保證了頁表在物理地址空間總是按頁面對齊的,即頁表總是位于4K頁面的地址邊界上。保護模式軟件體系結構分頁機制頁表指針AVL 0 0 D A 0 0 U/S R/W P31 12 11 10 9 8 7 6 5 4 3 2 1 0 AVL供操作系統(tǒng)使用D修改位,D=1表示該頁表已被修改過A訪問位,A=1表示頁表已被訪問過,49保護模式軟件體系結構分頁機制頁表指針AVL 0 0 D A 0 0 U/S R/W P31 12 11 10 9 8 7 6 5 4 3 2 1 0

23、 U/S用戶/系統(tǒng)訪問權限位,U/S=1表示用戶訪問級, U/S=0表示系統(tǒng)訪問級。W/R讀/寫保護位,W/R=1表示允許寫入和讀取, W/R=0表示不允許寫入,僅允許讀取。P 存在位,P=1表示該頁表在物理存儲器中50頁表長4KB,包含最多1024個頁面項,每項4字節(jié)頁表的表項與頁目錄的表項結構相同。保護模式軟件體系結構765432100DA00U/SR/WP頁面指針03位0頁面指針411位頁面指針1219位0123AVL分頁機制51整個存儲器有一個頁目錄,它最多有1024個頁目錄項,每個頁目錄項可含有1024個頁面項共有10241024=1M個頁面,每頁面4KB,存儲器大小正好4GB保護模

24、式軟件體系結構分頁機制52線性地址頁目錄目錄偏移量頁目錄項頁面操作數頁CR3頁表頁表項保護模式軟件體系結構分頁機制53例:對于線性地址00000000H00000FFFH,將選中頁目錄項0和頁表項0。若頁表項0包含的地址為00100000H,則線性地址00000000H00000FFFH對應的物理地址為00100000H00100FFFH保護模式軟件體系結構分頁機制線性地址頁目錄0000000000 0000000000 xxxxxxxxxxxx頁目錄項0頁面操作數頁表0頁表項0目錄項10位頁表項10位頁內偏移量12位54保護模式軟件體系結構分頁機制TLB轉換后援緩沖器TLB為一個Cache,

25、其中保存了32個最近使用的頁轉換地址。若訪問同樣的存儲區(qū)域,則不必再訪問頁目錄和頁表 ,可以加快程序的運行。使用TLB的命中率平均可達98%55虛擬8086模式保護模式的子模式在保護模式下,只要將EFLAGS寄存器的VM位置1,處理器便進入V86模式。將VM位清0,處理器便又退回保護模式當處理器處于V86模式時,段寄存器的使用與實模式相同。通過分頁操作,V86的1MB地址空間可以轉換到Pentium的4GB空間的任何地方保護模式軟件體系結構56虛擬8086模式保護模式軟件體系結構不同模式的相互轉換實模式保護模式虛擬8086模式RESETVM=0VM=1RESETPE=0PE=157保護模式的系

26、統(tǒng)控制指令SGDT指令存儲全局描述符表寄存器GDTREGDB 6 DUP(?).SGDT GDTREG將GDTR的內容復制到由GDTREG指定的內存中的6個字節(jié)中LGDT指令裝入全局描述符表寄存器GDTREGDW 001FH,0000H,0000H.LGDT GDTREG將由GDTREG指定的內存中的6字節(jié)操作數裝入GDTR中3.8 保護模式的系統(tǒng)控制指令58SIDT指令存儲中斷描述符表寄存器IDTREGDB 6 DUP(?).SGDT IDTREG將IDTR的內容復制到由IDTREG指定的內存中的6個字節(jié)中LIDT指令裝入中斷描述符表寄存器IDTREGDW 00FFH,0000H,0000H

27、.LIDT IDTREG將由IDTREG指定的內存中的6字節(jié)操作數裝入IDTR中保護模式的系統(tǒng)控制指令保護模式的系統(tǒng)控制指令59SLDT指令存儲局部描述符表寄存器SGDT OP復制LDTR到由OP指定的16位操作數中LLDT指令裝入局部描述符表寄存器LIDT OP將OP指定的16位內存操作數或16位寄存器操作數裝入LDTR中保護模式的系統(tǒng)控制指令保護模式的系統(tǒng)控制指令60保護模式匯編語言程序設計SMSW指令存儲機器狀態(tài)字SMSW OP將CR0中機器狀態(tài)字MSW復制到由OP指定的16位操作數中LMSW指令裝入機器狀態(tài)字LMSW OP用OP指定的16位內存操作數或16位寄存器操作數修改MSW保護模式的系統(tǒng)控制指令61保護模式匯編語言程序設計例:實模式保護模式實模式顯示存儲器簡介系統(tǒng)內存的部分地址空間指定為顯示存儲區(qū),在文本方式下,彩色圖形適配器顯示存儲區(qū)的地址空間為B800:00000FFF,向這一地址空間寫入信息將導致在顯示器上顯示出相應的字符。4.5 保護模式匯編語言程序設計62保護模式匯編

溫馨提示

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

評論

0/150

提交評論