微機(jī)原理 操作模式_第1頁(yè)
微機(jī)原理 操作模式_第2頁(yè)
微機(jī)原理 操作模式_第3頁(yè)
微機(jī)原理 操作模式_第4頁(yè)
微機(jī)原理 操作模式_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第11章操作模式 主講:董毅 11.1 實(shí)模式綜述(回顧) n實(shí)模式下的存儲(chǔ)器地址由16位的段寄存器與16位 的偏移量寄存器配對(duì)組成,兩者結(jié)合起來(lái)構(gòu)成邏 輯地址。 q【問(wèn)題】段寄存器的最大值與偏移量寄存器的最大值都 可為0FFFFH,此時(shí)的物理地址為(0FFFFH16) 0FFFFH=10FFEFH100001111111111101111B, 使 得第21條地址線A20為1,但8086只有20位地址,說(shuō)明 已經(jīng)超出了8086的可尋址空間范圍。 【解決辦法】 n在8086中就存在著所謂地址環(huán)繞的問(wèn)題,超出20位 地址的進(jìn)位“1”將被忽略,因此10FFEFH實(shí)際的物理 地址將被定位到存儲(chǔ)器的0F

2、FEFH處。 n80286的地址線有24位,80386/80486/奔騰系列等微 處理器的地址線至少有32位,因此地址100000H及其 隨后的大量空間都是實(shí)際存在的,不會(huì)環(huán)繞到 00000H處,但它超出了1MB的空間限制,進(jìn)入了擴(kuò) 展存儲(chǔ)器的空間。為了嚴(yán)格兼容8086實(shí)模式, 80286/80386/ 80486/奔騰系列都采取了一種附加閘 門(mén)控制的辦法,通過(guò)專門(mén)的電路設(shè)計(jì)對(duì)A20地址線進(jìn) 行控制,稱為“A20 gate”。當(dāng)閘門(mén)電路保持A20線為 0電平時(shí),系統(tǒng)就能仿真8086的地址環(huán)繞。 MS DOS的內(nèi)存管理 n可使用1MB空間,分成兩段: q00000H9FFFFH為基本內(nèi)存或稱常規(guī)

3、內(nèi)存,容量640KB, DOS與用戶程序只能存放在這個(gè)區(qū)段。 q0A0000H0FFFFFH為保留內(nèi)存區(qū),共384KB,保留給基本 輸入輸出系統(tǒng)(BIOS)與系統(tǒng)總線功能擴(kuò)展接口卡上的存儲(chǔ)器 使用,例如顯示卡上的視頻BIOS、顯示緩沖區(qū)以及系統(tǒng)啟動(dòng) 網(wǎng)卡上的啟動(dòng)ROM等。 n1MB以外的區(qū)間是擴(kuò)展內(nèi)存區(qū)XMS(Extended Memory Specification),屬保護(hù)模式存儲(chǔ)器尋址 (Protected Mode Memory Addressing) 的空間,MS DOS無(wú)法直接管理,僅可用作RAM一類的虛擬磁盤(pán) 等,這是實(shí)模式的致命缺陷。 MS DOS的內(nèi)存管理 n對(duì)于80286以

4、后的微型計(jì)算機(jī),在擴(kuò)展內(nèi)存管理程序 HIMEM.SYS的驅(qū)動(dòng)控制下,當(dāng)邏輯地址處在 0FFFF:0010H0FFFF:FFFFH范圍內(nèi),亦即物理地 址在1MB之外的100000H10FFEFH空間段時(shí),MS DOS系統(tǒng)能真正訪問(wèn)到擴(kuò)展內(nèi)存的這個(gè)區(qū)間。于是原 來(lái)1MB的空間限制就被突破而增加了64KB。這個(gè)區(qū) 間就稱高端內(nèi)存區(qū)(High Memory Area,HMA) q它可以存放DOS的常駐程序,從而使基本內(nèi)存區(qū)中原駐這些 程序的空間釋放出來(lái),用戶程序區(qū)就增加了幾十KB可貴的空 間。為了達(dá)到這一目的,MS DOS系統(tǒng)配置文件 CONFIG.SYS中必須有以下兩條語(yǔ)句: HMA配置 nDEVI

5、CE=C:DOSHIMEM.SYS 裝載擴(kuò)展內(nèi)存驅(qū)動(dòng)程序 nDOS=HIGH 讓DOS使用高端內(nèi)存區(qū) 圖11.1 80286/386/486/Pentium系列內(nèi)存配置示意圖 10FFF0 10FFEF 100000 FFFFF A0000 9FFFF 00000 0 擴(kuò) 展 內(nèi) 存 高 端 內(nèi) 存 區(qū) 保 留 內(nèi) 存 常 規(guī) 內(nèi) 存 實(shí) 模 式 下 尋 址 的 存 儲(chǔ) 器 保 護(hù) 模 式 下 可 尋 址 的 存 儲(chǔ) 器 n例例11.1 A20地址線由92H端口的bit 1控制, 該位為0時(shí)A20地址線關(guān)閉而產(chǎn)生地址環(huán)繞, 系統(tǒng)操作于實(shí)模式為1時(shí)打開(kāi)A20地址線可 訪問(wèn)到1MB以上的空間,系統(tǒng)

6、操作于保護(hù)模式。 編寫(xiě)打開(kāi)與關(guān)閉A20地址線的宏指令。 1.打開(kāi)A20地址線 2.EnableA20 MACRO 3. PUSH AX 4. IN AL,92H 5. OR AL,00000010B 6. OUT 92H,AL 7. POP AX 8. ENDM 9.關(guān)閉A20地址線 10.DisableA20 MACRO 11. PUSH AX 12. IN AL,92H 13. AND AL,11111101B 14. OUT 92H,AL 15. POP AX 16. ENDM 11.2 保護(hù)模式下的存儲(chǔ)器分段管理 n通俗地講,所謂“保護(hù)”就是在充分利用微處 理器資源的基礎(chǔ)上,保護(hù)各類程

7、序既高效率又 高可靠地運(yùn)行。 q例如Windows操作系統(tǒng)就必須而且只能在保護(hù)模式 下運(yùn)行。 微處理器的保護(hù) 1.存儲(chǔ)器的區(qū)域保護(hù)功能存儲(chǔ)器的區(qū)域保護(hù)功能 對(duì)存儲(chǔ)器實(shí)施分段管理,盡量禁止對(duì)存儲(chǔ)器進(jìn)行非 法訪問(wèn),或者程序失控時(shí)產(chǎn)生異常中斷以便采取必 要的補(bǔ)救措施等。在多任務(wù)系統(tǒng)中,通過(guò)局部描述 符表LDT為各任務(wù)定義不同的虛擬空間,使任務(wù)之 間在區(qū)域上進(jìn)行隔離,互不干擾,即使某一任務(wù)出 錯(cuò)也不致于影響其他任務(wù)的執(zhí)行等。 2.特權(quán)級(jí)保護(hù)功能特權(quán)級(jí)保護(hù)功能 為各種類型的存儲(chǔ)器段附加一個(gè)訪問(wèn)權(quán)級(jí)別,為程 序賦予不同的級(jí)別,例如定義操作系統(tǒng)的特權(quán)級(jí)別 最高,而用戶應(yīng)用程序級(jí)別最低,使操作系統(tǒng)不會(huì) 轉(zhuǎn)移到

8、可靠性差的用戶程序模塊中去,而用戶程序 則絕對(duì)不能隨意修改操作系統(tǒng)的數(shù)據(jù),這樣就保障 了操作系統(tǒng)的安全。 11.2.1 控制寄存器與存儲(chǔ)器管理寄存器 nCR0CR4 共5個(gè)控制寄存器 1.CR0實(shí)際上在80286 CPU中就已經(jīng)開(kāi)發(fā),但當(dāng)時(shí)只使用了 它的低位部份作為機(jī)器狀態(tài)字MSW,在32位微處理器中它 有許多重要的新的定義。 2.CR1 由80386/80486定義,但至今一直未使用,這是為今 后開(kāi)發(fā)更新的產(chǎn)品所保留的資源,這樣的設(shè)計(jì)考慮就為產(chǎn)品 的兼容性創(chuàng)造了條件。 3.CR2是頁(yè)故障線性地址寄存器,80386/80486即使用了該寄 存器。 4.CR3的高位字用作存儲(chǔ)器分頁(yè)管理時(shí)頁(yè)目錄基

9、地址寄存器, 低位字只使用了兩位,80386/80486即使用了該寄存器。 5.CR4則是奔騰新增加的控制寄存器。主要用于存儲(chǔ)器的分頁(yè) 管理與虛擬中斷等一些增強(qiáng)功能。 表11.1 CR0CR4控制寄存器中各位的定義 表11.1 CR0CR4控制寄存器中各位的定義 存儲(chǔ)器管理寄存器(Memory management registers) n全局描述表寄存器GDTR n中斷描述表寄存器IDTR n局部描述表寄存器LDTR n任務(wù)寄存器TR n【說(shuō)明】 qGDTR與IDTR在系統(tǒng)中是唯一的,由CPU內(nèi)部寄存器來(lái)實(shí)現(xiàn), 它們分別用于存放全局描述符表和中斷描述符表的表格基地 址與段界即表格大小。 qL

10、DTR與TR在系統(tǒng)中同局部任務(wù)相匹配,不是唯一的,每個(gè) 任務(wù)有各自的LDTR和TR,因此由內(nèi)部高速緩沖存儲(chǔ)器來(lái)實(shí) 現(xiàn),用于存放各個(gè)任務(wù)的局部表格參數(shù)。 11.2.2 虛擬存儲(chǔ)器 n保護(hù)模式與實(shí)模式的尋址方法有實(shí)質(zhì)性的不同。 邏 輯 地 址 15 0 15 0 20 位基地址 虛 擬 地 址 15 0 31 0 32 位基地址 段基址 左移 4 位 偏移量 20 位物理地址 段選擇器 段管理部件 偏移量 32 位線性地址 虛擬存儲(chǔ)器 n虛擬存儲(chǔ)器是指磁盤(pán)等外部存儲(chǔ)體,“虛擬” 作為主存儲(chǔ)器使用。在保護(hù)模式下的虛擬地址 空間可以達(dá)到246=64TB。 q假設(shè)有以下傳送指令: MOV ES:ABC_

11、OFF, EAX 同實(shí)模式相比,該指令在保護(hù)模式下有以下明顯差 別 n偏移量ABC_OFF可以是16位/32位,依16位/32位指令而 定 n段寄存器ES中裝載的已不是段基地址,而是段選擇器。 11.2.3 描述符表的概念 n描述符描述符 在保護(hù)模式下,將虛擬存儲(chǔ)器分成許 多大小不等的存儲(chǔ)“段”,每個(gè)段都由一個(gè)8 字節(jié)長(zhǎng)的描述符來(lái)描述,說(shuō)明該段所處的基地 址位置,該段的大小,該段存放的內(nèi)容是數(shù)據(jù) 還是指令代碼?以及讀/寫(xiě)等其他一些屬性。 n描述符表描述符表 系統(tǒng)再將這些段描述符有機(jī)地組織 成線性表,這種表就稱為描述符表。描述符表 分全局描述符表(Global Descriptor Table,

12、GDT) 與局部描述符表(Local Descriptor Table,LDT) 兩類。 描述符表的概念 n全局描述符表全局描述符表GDT 該表是面向系統(tǒng)全局的, 為系統(tǒng)中的各個(gè)任務(wù)共享,對(duì)應(yīng)的存儲(chǔ)器空間 一般處理公共數(shù)據(jù)、公用過(guò)程調(diào)用與中斷過(guò)程 以及裝載操作系統(tǒng)等。此外,該描述符表還包 括對(duì)各個(gè)局部描述符表的描述。在一個(gè)系統(tǒng)中 只有唯一的1個(gè)全局描述符表,因此GDT只需 有表格基地址和表格的大小就能在主存儲(chǔ)器中 定位了。 描述符表的概念 n局部描述符表局部描述符表LDT 該表是面向具體任務(wù)的, 每個(gè)任務(wù)擁有一個(gè)獨(dú)立的局部描述符表。同該 表對(duì)應(yīng)的存儲(chǔ)器空間存放著各自的代碼與數(shù)據(jù), 達(dá)到各個(gè)任務(wù)

13、在區(qū)域上實(shí)現(xiàn)隔離的目的。局部 描述符表不是唯一的,系統(tǒng)中有多少個(gè)任務(wù)就 有多少個(gè)局部描述符表,所以要完整地表征 LDT還要附加選擇器,用它來(lái)表示當(dāng)前選擇的 是哪一個(gè)局部描述符表。 描述符表的概念 n描述符表寄存器描述符表寄存器 CPU內(nèi)部擁有全局描述符表 寄存器GDTR,用它存放全局描述符表的表格 首地址與段界限大小,使GDT定位,通常情況 下都不會(huì)再改變它的位置。 q由于局部描述符表寄存器LDTR依系統(tǒng)中的具體任 務(wù)而定,不是唯一的,任務(wù)改變時(shí)當(dāng)前LDT隨之變 化,所以它們是通過(guò)段寄存器與描述符Cache寄存 器來(lái)實(shí)現(xiàn)的。段寄存器中存放當(dāng)前LDT的選擇器, 描述符Cache寄存器中則存放它的

14、表格首地址、段 界限大小與屬性等。不過(guò)對(duì)于用戶而言一般不必?fù)?dān) 心這些差別,系統(tǒng)會(huì)自動(dòng)配置。 11.2.4 特權(quán)級(jí)及其保護(hù) n所謂特權(quán)級(jí)是給存儲(chǔ)器的每個(gè)段都附加了一個(gè) 訪問(wèn)權(quán)限屬性,系統(tǒng)共分4個(gè)特權(quán)級(jí),各個(gè)段 必須歸屬于這4個(gè)級(jí)別中的其中一個(gè): q0級(jí)是訪問(wèn)權(quán)最高的特權(quán)級(jí) q3級(jí)是訪問(wèn)權(quán)最低的特權(quán)級(jí) q1級(jí)與2級(jí)的訪問(wèn)權(quán)介于0級(jí)與3級(jí)之間。 圖11.3 奔騰系列的4級(jí)特權(quán) 應(yīng)用程序 PL=3 OS 擴(kuò)展 PL=2 驅(qū)動(dòng) PL=1 內(nèi)核 PL=0 閘 門(mén) 閘 門(mén) 閘 門(mén) 閘 門(mén) 閘 門(mén) 閘 門(mén) 特權(quán)級(jí)保護(hù)機(jī)制的原則性規(guī)定 1.特權(quán)級(jí)高的代碼段不能向特權(quán)級(jí)低的代碼段 轉(zhuǎn)移。 n例如,操作系統(tǒng)的代碼段

15、不能轉(zhuǎn)移到用戶應(yīng)用程 序,因?yàn)橛脩魬?yīng)用程序的安全性較操作系統(tǒng)差, 有可能導(dǎo)致系統(tǒng)崩潰。 2.特權(quán)級(jí)低的代碼段不能訪問(wèn)特權(quán)高的數(shù)據(jù)段。 n例如不能讓用戶應(yīng)用程序訪問(wèn)操作系統(tǒng)的內(nèi)部數(shù) 據(jù),因?yàn)閼?yīng)用程序?qū)Σ僮飨到y(tǒng)數(shù)據(jù)的修改是極其 危險(xiǎn)的。 特權(quán)級(jí)保護(hù)機(jī)制的原則性規(guī)定 3.特權(quán)級(jí)低的代碼段可以訪問(wèn)特權(quán)高的代碼段, 但必須經(jīng)過(guò)閘門(mén)檢查。 n例如用戶程序可以調(diào)用操作系統(tǒng)內(nèi)部的過(guò)程。這里 要特別指出的是,應(yīng)用程序與操作系統(tǒng)不能使用同 一個(gè)堆棧,否則有可能在堆棧剩余空間不多時(shí)調(diào)用 內(nèi)部過(guò)程而使堆棧溢出。因此它們都擁有各自的堆 棧段,而且堆棧段的特權(quán)級(jí)往往與執(zhí)行程序的代碼 段特權(quán)級(jí)相同,當(dāng)代碼段的特權(quán)級(jí)發(fā)生變化

16、時(shí),堆 棧段的特權(quán)級(jí)也隨之變化。 特權(quán)級(jí)保護(hù)機(jī)制的原則性規(guī)定 4.特權(quán)級(jí)高的程序代碼段應(yīng)能訪問(wèn)特權(quán)低的用 戶數(shù)據(jù)段,以便提供數(shù)據(jù)交流。 n例如操作系統(tǒng)應(yīng)能訪問(wèn)用戶程序中的數(shù)據(jù),由于 是用戶數(shù)據(jù)段而不是用戶程序段,因而對(duì)操作系 統(tǒng)的安全性不會(huì)造成嚴(yán)重的影響。 特權(quán)級(jí)保護(hù)機(jī)制的原則性規(guī)定 5.所有的應(yīng)用程序都使用最低的特權(quán)級(jí),它們 只使用計(jì)算機(jī)而不是控制計(jì)算機(jī)。 6.閘門(mén)又稱控制門(mén),它是通過(guò)執(zhí)行轉(zhuǎn)移指令、 調(diào)用指令和中斷來(lái)實(shí)現(xiàn)的,從而產(chǎn)生了相應(yīng) 的轉(zhuǎn)移門(mén)、調(diào)用門(mén)和中斷門(mén)等概念。執(zhí)行這 類指令時(shí),系統(tǒng)會(huì)進(jìn)行一系列的保護(hù)性檢查 與判斷,確保安全轉(zhuǎn)移。 11.2.5 段選擇器與段描述符的結(jié)構(gòu) n保護(hù)模式

17、下段寄存器是一個(gè)16位的段選擇器, 而不是一個(gè)段基地址。 qbit15bit3共13位作為在全局描述符表GDT或局部 描述符表LDT中搜索描述符的索引值。 qbit2是描述符表指示器TI,表示當(dāng)前指向何種表格, 為0指向GDT,為1則指向LDT, (可見(jiàn)這高14位都具有存儲(chǔ)器地址屬性。) q最低的2位bit1bit0表征當(dāng)前的請(qǐng)求特權(quán)級(jí)RPL。 15 3 2 1 0 Index TI RPL 段描述符 n定義存儲(chǔ)器段的基地址、段的大小以及段的屬 性,每個(gè)段描述符都是由8個(gè)字節(jié)共64位組成 。 全局描述表與局部描述符表中的描述符格式是 一致的 。 第 76 字節(jié) 第 54 字節(jié) 31 24 23

18、 22 21 20 19 16 15 14 13 12 11 8 7 0 基址 3124 G D res avl 段界 1916 P DPL DT Type 基址2316 第 32 字節(jié) 第 10 字節(jié) 31 16 15 0 基址 150 段界 150 段描述符說(shuō)明 n段基址是被描述段的起始地址,由最高位字節(jié)、 第4字節(jié)、第3字節(jié)與第2字節(jié)組成32位起始地 址,尋址空間達(dá)4G字節(jié)。 n段界限表示該段存儲(chǔ)器空間的最大偏移量地址, 由第6字節(jié)的低半個(gè)字節(jié)與最低的兩個(gè)字節(jié)組 成,共20位,說(shuō)明段界的最大值為1M。(但 它要與屬性中的粒度G結(jié)合才能準(zhǔn)確描述該段 的存儲(chǔ)器空間容量。) 圖11.6 由段描

19、述符描述的存儲(chǔ)段位置和大小 段描述符 存儲(chǔ)器 Base+Limit 被描述的段 Limit Base Limit Base Base Base 段描述符說(shuō)明 n段屬性控制對(duì)該段存儲(chǔ)區(qū)的訪問(wèn),系統(tǒng)對(duì)該段 的訪問(wèn)操作要根據(jù)段屬性進(jìn)行合法性檢查,當(dāng) 訪問(wèn)操作不符合段屬性的要求時(shí)就會(huì)發(fā)生系統(tǒng) 異常中斷。 q占第6的高半字節(jié)與第5字節(jié)共12位。段屬性各位的 意義見(jiàn)表11.2。 表11.2 段屬性的定義 特權(quán)級(jí)的進(jìn)一步說(shuō)明 nDPL(Descriptor Privilege Level)表示被描述段 的特權(quán)級(jí)。 n請(qǐng)求特權(quán)級(jí)RPL(Requested Privilege Level),它是要求對(duì)該段進(jìn)行修

20、改的特權(quán)級(jí) 值。 n當(dāng)前特權(quán)級(jí)CPL(Current Privilege Level)的概 念,它是當(dāng)前正在執(zhí)行的代碼段的特權(quán)級(jí),也 就是CS寄存器中段選擇器的最低2位bit1與bit0 之值。 q在多數(shù)情況下,CPL都等于RPL。 特權(quán)級(jí)的進(jìn)一步說(shuō)明 n在修改數(shù)據(jù)段寄存器時(shí)應(yīng)該滿足條件 DPLCPL。這就是說(shuō),被訪問(wèn)的數(shù)據(jù)段的特 權(quán)級(jí)必須低于(包括等于)當(dāng)前代碼段的特權(quán)級(jí)。 q例如當(dāng)前代碼段的特權(quán)級(jí)CPL1,那么此時(shí)只能 訪問(wèn)DPL1,2或3的數(shù)據(jù)段,而不能訪問(wèn)DPL0 的數(shù)據(jù)段。 段界限的進(jìn)一步說(shuō)明 n段界限(Limit)并不能完整地反映被描述段空 間的實(shí)際大小,它必須與粒度G結(jié)合才能表征 一個(gè)段的實(shí)際空間。 q當(dāng)粒度G=1選頁(yè)時(shí),一個(gè)段的最大空間可達(dá)1 M(最 大段界限)4096(頁(yè)尺寸)=4 GB; q如果粒度G=0選字節(jié),則一個(gè)段的最大空間僅為1 MB。 n可見(jiàn)僅從存儲(chǔ)器管理的原理上講,段的最小空 間可以是1個(gè)字節(jié),只是沒(méi)有多少實(shí)用意義而 已。 段界限的進(jìn)一步說(shuō)明 n當(dāng)段界限以4K字節(jié)為單位時(shí),實(shí)際的段界限 LIMIT可通過(guò)下面的公式從20 位段界限Limit計(jì) 算出來(lái): LIMIT=limit*4K+0FFFH=(Limit SHL 12)+0FFFH 例例11.2 設(shè)段基地址為10000

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論