80386微處理器資料課件_第1頁
80386微處理器資料課件_第2頁
80386微處理器資料課件_第3頁
80386微處理器資料課件_第4頁
80386微處理器資料課件_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

80386微處理器

(參考郁慧娣書第9章9.2、9.3、9.4和第3版教材第8章8.2)80386微處理器

(參考郁慧娣書第9章9.2、9.3、1

8.280386微處理器80386是一種與16位的80286相兼容的第一個高性能全32位微處理器,它代表了體系結(jié)構(gòu)的重要進(jìn)步——從16位體系結(jié)構(gòu)過渡到32位體系結(jié)構(gòu)。80386采用高速CHMOSⅢ1.5μm技術(shù),132條引出線用網(wǎng)格陣列式封裝在陶瓷片內(nèi),其耗散功率在1.5w到3.0w之間。

8.280386微處理器802一、80386的特點

1.80386芯片在硬件結(jié)構(gòu)上由6個邏輯單元組成。它們按流水線方式工作,運(yùn)行速度可達(dá)到4MIPS。

2.80386有三種方式:實方式、保護(hù)方式、V86方式

。3.硬件支持段式管理和頁式管理,易于實現(xiàn)虛擬存儲系統(tǒng)。

4.硬件支持多任務(wù),一條指令可以完成任務(wù)切換。

5.特權(quán)保護(hù)機(jī)制

4級特權(quán)級:0級最優(yōu)先,其次為1,2和3級。一、80386的特點1.80386芯片在硬件結(jié)構(gòu)上3二、80386的內(nèi)部結(jié)構(gòu)二、80386的內(nèi)部結(jié)構(gòu)41.

總線接口部件(BIU:BusInterfaceUnit)。2.

指令預(yù)取部件(CPU:CodePrefetchUnit)。3.

指令譯碼部件(IDU:InstructionDecodeUnit)。4.

執(zhí)行部件(EU:ExecutionUnit)。它可進(jìn)一步分為控制部件(ControlUnit),保護(hù)測試部件(ProtectionTestUnit)和數(shù)據(jù)處理部件(DataUnit)3部分。5.

段管理部件(SU:SegmentUnit)。6.頁管理部件(PU:PagingUnit)。1.總線接口部件(BIU:BusInterfaceU5三、80386的寄存器結(jié)構(gòu)

80386有7類寄存器: 通用寄存器、段寄存器、指令指針和標(biāo)志寄存器、控制寄存器、系統(tǒng)地址寄存器、調(diào)試寄存器以及測試寄存器。 三、80386的寄存器結(jié)構(gòu) 80386有7類寄存器:6(一)通用寄存器

80386有8個32位的通用寄存器,分別命名為EAX、EBX、ECX、EDX、ESI、EDI、EBP以及ESP。(一)通用寄存器80386有8個32位7(二)段寄存器和段描述符高速緩存器

80386增加了FS和GS兩個新的數(shù)據(jù)段寄存器。

段寄存器里存放的不再是段基址的高16位,而是選擇器(P288圖9.7)。b15b14…………b4b3b2b1b0索引(13位)TI(0:GDT;1:LDT)RPL(二)段寄存器和段描述符高速緩存器 80386增加了FS8 80386中有一個32位的指令指針(EIP)和一個32位的標(biāo)志寄存器(EFLAGS)。 80386工作在實模式時采用16位的指令指針I(yè)P。

EFLAGS的低12位與8086標(biāo)志寄存器FLAGS完全相同。高20位中設(shè)置了4個新的標(biāo)志。(三)指令指針和標(biāo)志寄存器圖9.8保護(hù)方式標(biāo)志寄存器(P288) 80386中有一個32位的指令指針(EIP)和一個329(四)系統(tǒng)地址寄存器和系統(tǒng)段寄存器

GDTR——

全局描述符表寄存器

IDTR——

中斷描述符表寄存器

LDTR——

局部描述符表寄存器

TR——任務(wù)寄存器(四)系統(tǒng)地址寄存器和系統(tǒng)段寄存器 GDTR——全局描10全局描述符表寄存器(GDTR)(圖9.2)全局描述符表寄存器(GDTR)(圖9.2)11例1.

如果GDTR的內(nèi)容為200000001FFFh,請給出GDT的起始地址、結(jié)束地址、表的長度。表中放了多少個描述符?最后一個描述符的地址范圍?解:GDT的起始地址

=20000000h

GDT的結(jié)束地址

=20000000h+1FFFh=20001FFFh

GDT表長

=1FFFh+1=2000h

表中描述符個數(shù)

=2000h÷8=400h=1024 最后一個描述符的地址范圍:20001FFFh-7=20001FF8h~20001FFFh

例1.如果GDTR的內(nèi)容為200000001FFFh,請給12中斷描述符表寄存器(IDTR)(圖9.3)中斷描述符表寄存器(IDTR)(圖9.3)13局部描述符表寄存器(LDTR)(圖9.4)局部描述符表寄存器(LDTR)(圖9.4)14例2.假設(shè)GDT的基地址為01002000h,LDTR=2108h,問LDT描述符的地址范圍?解:LDTR=0010000100001000

TI=0,LDT描述符在GDT中

索引

=0010000100001

LDT描述符的起始地址:GDT的基地址+索引×8=01002000h+0010000100001×8

=01004108h

LDT描述符的地址范圍(占8字節(jié)): 01004108h~0100410Fh例2.假設(shè)GDT的基地址為01002000h,LDTR=15任務(wù)寄存器(TR)(圖9.6)任務(wù)寄存器(TR)(圖9.6)16例3.假設(shè)GDT的基地址為00011000h,TR=3208h,問TSS描述符的地址范圍?解:TR=0011001000001000

TI=0,TSS描述符在GDT中

索引

=0011001000001

TSS描述符的起始地址:GDT的基地址+索引×8=00011000h+0011001000001×8

=00014208h

TSS描述符的地址范圍(占8字節(jié)): 00014208h~0001420Fh例3.假設(shè)GDT的基地址為00011000h,TR=3217(五)控制寄存器

80386中有3個32位的控制寄存器CR0、CR2和CR3,用于保存機(jī)器的各種全局性狀態(tài),這些狀態(tài)影響系統(tǒng)所有任務(wù)的運(yùn)行。

CR1未定義,留作備用。1.CR0——控制寄存器0 定義了6個控制和狀態(tài)標(biāo)志。(五)控制寄存器 80386中有3個32位的控制寄存器18PE(位0)和PG(位31)——保護(hù)控制位。TS——任務(wù)切換位每當(dāng)任務(wù)切換時,處理器將把TS置為1。MP——監(jiān)控協(xié)處理器位MP為1時,表示有協(xié)處理器在工作。EM——模擬協(xié)處理器控制位EM為1時,表示用軟件仿真協(xié)處理器。ET——協(xié)處理器擴(kuò)展類型

0:80287協(xié)處理器;1:80387協(xié)處理器;PE(位0)和PG(位31)——保護(hù)控制位。192.CR2——控制寄存器2CR2稱為頁面故障線性地址寄存器,用于發(fā)生頁面訪問異常時報告出錯信息。3.CR3——控制寄存器3CR3稱為頁組目錄基址寄存器,用于存放頁目錄表的物理基地址。如下圖所示。(分頁時用到)2.CR2——控制寄存器220四、80386的三種工作模式

80386有3種工作模式:

實地址模式(RealAddressMode),簡稱為實模式;

保護(hù)虛擬地址模式(ProtectedVirtualAddressMode),也叫保護(hù)模式;

虛擬8086模式(VirtualAddress8086Mode),簡稱為V86模式。四、80386的三種工作模式 80386有3種工作模式21實地址模式

當(dāng)80386在剛加電啟動或復(fù)位時,便由操作系統(tǒng)自動控制進(jìn)入實模式。

實模式主要是為80386進(jìn)行初始化用的,為80386保護(hù)模式所需要的數(shù)據(jù)結(jié)構(gòu)做好各種配置和準(zhǔn)備。 在實模式下,80386類似于8086的體系結(jié)構(gòu),與8086兼容。實地址模式 當(dāng)80386在剛加電啟動或復(fù)位時,便由操作系統(tǒng)22保護(hù)虛擬地址模式

保護(hù)模式是80386最常用的、也是最具特色的工作模式。通常在開機(jī)或復(fù)位后,機(jī)器先進(jìn)入實模式完成初始化,然后就立即切換到保護(hù)模式。 保護(hù)模式提供了多任務(wù)環(huán)境中的各種復(fù)雜功能以及對復(fù)雜存儲器組織的管理機(jī)制:

1)多用戶、多任務(wù);

2)虛擬存儲管理;

物理存儲空間:4GB;虛擬存儲空間:64TB

保護(hù)虛擬地址模式 保護(hù)模式是80386最23

所謂虛擬存儲空間是指程序所占有的存儲空間。80386系統(tǒng)中,由于內(nèi)存容量的限制,并不可能將所有的段都放在內(nèi)存中的,而必須將大部分段放在海量的外部磁盤上,待執(zhí)行到相關(guān)程序段時再調(diào)入內(nèi)存,將暫時不執(zhí)行的程序段調(diào)出內(nèi)存。 程序員編寫程序時,其程序存入磁盤。這樣,從程序員的角度來看,系統(tǒng)中似乎有一個容量很大、速度也相當(dāng)快的虛擬存儲器;當(dāng)然,它并不是真正的物理上的內(nèi)存。 3)保護(hù)機(jī)制; 特權(quán)保護(hù)機(jī)制、不同任務(wù)之間的隔離(不同的虛擬存儲空間) 所謂虛擬存儲空間是指程序所占有的存儲空間。8038624虛擬8086模式(1)使80386可以快速地執(zhí)行多個8086的應(yīng)用程序。(2)段寄存器的用法和實模式時相同。(3)存儲器尋址空間為1MB,可以使用分頁機(jī)制,支持多任務(wù)。在多任務(wù)系統(tǒng)中,80386可以使其中的一個或幾個任務(wù)使用虛擬8086模式。此時,可以使一個任務(wù)所用的全部頁面定位于某個物理地址空間,而另一個任務(wù)所用的頁面定位于其他物理地址空間,這樣,就把存儲器虛擬化了,虛擬8086模式的名稱即由此而來。(4)在虛擬8086模式中,程序是在最低特權(quán)級(3級)上運(yùn)行的,因此,80386指令系統(tǒng)中的一些特權(quán)指令是不能使用的。虛擬8086模式(1)使80386可以快速地執(zhí)行多個808625五、80386的存儲器管理

80386利用片內(nèi)的存儲管理單元(MemoryManagementUnit,簡稱MMU

)來實現(xiàn)對存儲器系統(tǒng)的兩級管理:分段管理(邏輯地址→線性地址)和分頁管理(線性地址→物理地址)

。 在兩級存儲管理中,段的大小可以選擇(可以字節(jié)或頁為單位),根據(jù)數(shù)據(jù)結(jié)構(gòu)和代碼模塊的大小而確定。 另外,對每個段還可以賦予屬性和保護(hù)信息,以有效防止在多任務(wù)環(huán)境下各個模塊對存儲器的越權(quán)訪問。五、80386的存儲器管理 80386利用片內(nèi)的存儲管26(一)實模式

80386的所有指令在實模式下都有效。其物理地址的形成與8086相同,可尋址的實地址空間只有1MB,所有的段最大容量為64KB。

中斷向量表仍設(shè)置在00000H~003FFH共計1K字節(jié)的存儲區(qū)內(nèi)。 系統(tǒng)初始化區(qū)在FFFFFFF0H~FFFFFFFFH存儲區(qū)內(nèi)。 (一)實模式 80386的所有指令在實模式下都有效。其物27(二)保護(hù)模式

保護(hù)模式下采用段頁式管理機(jī)構(gòu)。(二)保護(hù)模式 保護(hù)模式下采用段頁式管理機(jī)構(gòu)。28

保護(hù)模式下采用段頁式管理機(jī)構(gòu)。 注意區(qū)分邏輯地址、線性地址和物理地址這3者之間的關(guān)系。(二)保護(hù)模式 保護(hù)模式下采用段頁式管理機(jī)構(gòu)。(二)保護(hù)模式29邏輯地址:16位段選擇子+32位有效地址 有效地址=基址+變址×比例因子+位移量

線性地址

由存儲器段式管理機(jī)構(gòu)按下式來計算:

線性地址

=

段基地址+有效地址物理地址 頁式管理機(jī)構(gòu)不工作時,物理地址=線性地址;頁式管理機(jī)構(gòu)工作時,物理地址=F(線性地址)邏輯地址:16位段選擇子+32位有效地址30分段管理

為了實現(xiàn)分段管理,80386把有關(guān)段的信息存放在一個稱為段描述符(簡稱描述符)的8個字節(jié)長的數(shù)據(jù)結(jié)構(gòu)中,并把系統(tǒng)中所有的描述符編成一張表,以便硬件查找和識別。 80386共設(shè)置了3種描述符表,即全局描述符表GDT、局部描述符表LDT和中斷描述符表IDT。

分段管理 為了實現(xiàn)分段管理,80386把有關(guān)段的信息存放在31

段描述符包括:

段基地址(BaseAddress),規(guī)定了線性地址空間中段的起始地址。也可以把基地址看成是段內(nèi)偏移量為0的線性地址。

段的界限(Limit),表示在虛擬地址中,段內(nèi)可使用的最大偏移量。

段的屬性(Attributes),包括該段是否可讀出、寫入以及段的特權(quán)級等。 有兩種類型的段:非系統(tǒng)段、系統(tǒng)段;兩種段描述符:非系統(tǒng)段描述符、

系統(tǒng)段描述符。 段描述符包括:32非系統(tǒng)段描述符(P296圖9.20)

非系統(tǒng)段指一般的代碼段、數(shù)據(jù)段和堆棧段。(s=1)基地址(B0~B15)界限(L0~L15)屬性字節(jié)(訪問權(quán)字節(jié))(8位):B5基地址(32位):B7B4B3B2界限(20位):B6(低4位)B1B0非系統(tǒng)段描述符(P296圖9.20) 非系統(tǒng)段指一般3380386微處理器資料課件34例請分析下面的描述符:

6420

80

00

B2

0A

000003FF解:屬性字節(jié):B2h=10110010

可寫的數(shù)據(jù)段,DPL=1,在內(nèi)存,未訪問過。

數(shù)據(jù)段基址:800A0000h

界限:003FFh例請分析下面的描述符:8000B35

系統(tǒng)段描述符(P299圖9.23)

系統(tǒng)段描述符也稱為特殊段描述符(S位為0)。 系統(tǒng)段包括任務(wù)狀態(tài)段TSS和門,另外,局部描述符表LDT也作為一種系統(tǒng)段?;刂罚˙0~B15)界限(L0~L15)系統(tǒng)段描述符(P299圖9.23) 系統(tǒng)段描述符也稱3680386微處理器資料課件37例請分析下面的描述符:1、

642000

00

A2

10

000000FF解:屬性字節(jié):A2h=10100010386LDT描述符,有效,DPL=1。

LDT基址:00100000h

界限:000FFh例請分析下面的描述符:0000A238分段管理總結(jié)分段管理總結(jié)39例(P297圖9.21):訪問代碼段例(P297圖9.21):訪問代碼段4080386微處理器資料課件41分頁管理

在80386中,在設(shè)計分段管理的基礎(chǔ)上又增加了分頁管理。在多任務(wù)系統(tǒng)中,有了分頁管理功能,就只需把每個活動任務(wù)當(dāng)前所需要的少量頁面放在存儲器中。 當(dāng)CR0中的PG=1時,系統(tǒng)就啟動分頁機(jī)制; 當(dāng)PG=0時,則禁止使用分頁機(jī)制,而且把分段機(jī)制產(chǎn)生的線性地址直接當(dāng)作物理地址使用。 80386分頁管理的對象是固定大小為4KB的存儲塊,稱之為頁。分頁管理 在80386中,在設(shè)計分段管理的基礎(chǔ)上又增加了分42段頁式結(jié)構(gòu)的尋址過程下×4×4CR3段頁式結(jié)構(gòu)的尋址過程下×4×4CR343頁表結(jié)構(gòu)、頁目錄描述符以及頁描述符 80386采用了兩級表結(jié)構(gòu):頁目錄表和頁表。 當(dāng)允許分頁時,分頁機(jī)制將實現(xiàn)兩級地址轉(zhuǎn)換:在較高一級,由頁目錄表中的一個頁目錄項映射頁表;在低一級,由頁表映射頁。圖9.24頁目錄項和頁表項的格式(P299)頁表結(jié)構(gòu)、頁目錄描述符以及頁描述符 80386采用了44P—存在位,表示該頁/頁表是否在內(nèi)存W—寫允許位,表示該頁/頁表是可寫U—用戶位,表示該頁/頁表用戶是否可用A—訪問位,表示該頁/頁表是否訪問過D—出錯位AVL—

程序員可使用的位

當(dāng)頁目錄項和頁表項的U、W位不一致時,選取最小的值。例假設(shè)頁目錄項的UW位=11(用戶可寫),頁表項的UW位=10(用戶可用,但只可讀,不可寫)則,最終UW位=min(11,10)=10

(用戶可用,但只可讀,不可寫)P—存在位,表示該頁/頁表是否在內(nèi)存45分頁管理尋址過程舉例假設(shè)線性地址=12345678H,CR3=10000000H,頁目錄描述符=20000005H,頁描述符=30000007H

求:1)頁目錄描述符的地址2)頁描述符的地址3)操作數(shù)(32位)的地址4)操作數(shù)用戶是否可寫?答:

1)頁目錄描述符的地址10000120H~10000123H2)頁描述符的地址20000D14H~20000D17H3)操作數(shù)(32位)的地址30000678H~3000067BH操作數(shù)用戶是否可寫?頁目錄描述符:U=1,W=0,不可寫頁描述符:U=1,W=1,可寫∴操作數(shù)用戶不可寫CR3×4×4分頁管理尋址過程舉例求:1)頁目錄描述符的地址答:1)頁46分段分頁綜合例題

80386工作在保護(hù)方式下,GDTR=002000001FFFH,LDTR=3009H,CS=1007H,EIP=00000800H。1)GDT的起始地址為

,結(jié)束地址為

。GDT的表長為

。2)LDT描述符的地址范圍是

。分段分頁綜合例題473)若代碼段描述符為:

6

4

2

0則代碼段的屬性為:特權(quán)級

,是否可讀

,是否在內(nèi)存

,是否訪問過

。代碼段的長度為

。00

00

FB

50

00000FFF3)若代碼段描述符為:0000F484)若80386僅分段,不分頁,則當(dāng)前執(zhí)行指令的物理地址是

;若分段,又分頁,則訪問代碼段時轉(zhuǎn)換的線性地址為

;根據(jù)此線性地址進(jìn)行分頁轉(zhuǎn)換,頁目錄描述符的偏移地址為

,頁表描述符的偏移地址為

,被訪問指令在頁幀中的偏移地址為

。4)若80386僅分段,不分頁,則當(dāng)前執(zhí)行指令的物理地址是49保護(hù)

386支持兩個主要的保護(hù)類型:

一類是不同任務(wù)之間的保護(hù)。它是通過給每一任務(wù)分配不同的虛擬地址空間,而每一任務(wù)有各自不同的虛擬地址—物理地址的轉(zhuǎn)換映射,因而可實現(xiàn)任務(wù)之間的完全隔離。

另一類是同一任務(wù)內(nèi)的保護(hù)。定義4種特權(quán)級(特權(quán)級0、1、2、3),特權(quán)級0最高,特權(quán)級3最低。每個段都有對應(yīng)的特權(quán)級,訪問段時需遵循相應(yīng)的特權(quán)保護(hù)規(guī)則。保護(hù)50系統(tǒng)中特權(quán)級的安排系統(tǒng)中特權(quán)級的安排51特權(quán)級種類:1、請求特權(quán)級——RPL RPL為選擇子的最低2位2、描述符特權(quán)級——DPL DPL為描述符中屬性字節(jié)的b6、b5位3、當(dāng)前特權(quán)級——CPL CPL=當(dāng)前正在執(zhí)行的代碼段的DPL4、輸入輸出特權(quán)級——IOPL特權(quán)級種類:52各種段的特權(quán)保護(hù):1、數(shù)據(jù)段、附加數(shù)據(jù)段的特權(quán)保護(hù)

max{CPL,RPL}≤DPL

程序只能訪問特權(quán)級相同或較低的數(shù)據(jù)段例:MOV AX,01001101B MOV DS,AX

RPL=01CPL為這段程序所在代碼段的DPL(假設(shè)=10)

則該程序所能訪問的數(shù)據(jù)段的

DPL≥max{CPL,RPL}

即DPL≥max{10,01}

=10即只能訪問特權(quán)級為2,3的數(shù)據(jù)段。各種段的特權(quán)保護(hù):532、堆棧段的特權(quán)保護(hù)

DPL=RPL=CPL

任務(wù)在不同特權(quán)級操作時必須有獨立的堆棧,否則低特權(quán)級的任務(wù)會通過堆棧影響高特權(quán)級的任務(wù)。2、堆棧段的特權(quán)保護(hù)543、代碼段的特權(quán)保護(hù)1)程序段在同特權(quán)級之間可以進(jìn)行控制轉(zhuǎn)移;2)低特權(quán)級的段到高特權(quán)級的段通過某些合法的入口點(如“調(diào)用門”)也可以進(jìn)行控制轉(zhuǎn)移;

CPL≤DPL(調(diào)用門)3)高特權(quán)級到低特權(quán)級之間的轉(zhuǎn)移是禁止的。如,操作系統(tǒng)的程序不能調(diào)用、跳轉(zhuǎn)到用戶的程序。3、代碼段的特權(quán)保護(hù)55

門描述符格式(P305圖9.30)和系統(tǒng)段描述符有差別。它包含一個32位的偏移地址,一個字計數(shù)和一個選擇子。

調(diào)用門描述符由選擇子、偏移地址和字計數(shù)構(gòu)成。

選擇子和偏移地址指出一個子程序的起始地址,字計數(shù)指出有多少參數(shù)必須從主程序的堆棧傳送到被調(diào)用的子程序的堆棧上。對其他門而言,字計數(shù)值字段無意義。 門描述符格式(P305圖9.30)和系統(tǒng)段描述符有差別。56例請分析下面的描述符:1、

642000

00

CC

10

00258000解:屬性字節(jié):CCh=11001100386調(diào)用門描述符,有效,DPL=2。

目標(biāo)代碼段選擇子:0025h目標(biāo)代碼段偏移地址:00008000h

雙字計數(shù):10h×4B=64B即要從調(diào)用程序的堆??截?4B的參數(shù)到被調(diào)用程序的堆棧。例請分析下面的描述符:0000CC574、協(xié)調(diào)(一致)代碼段

(屬性字節(jié)中C=1) 任何低特權(quán)級的過程可直接調(diào)用或轉(zhuǎn)移到協(xié)調(diào)代碼段,不必使用調(diào)用門,也不必切換堆棧。但轉(zhuǎn)移、調(diào)用后CPL不變,仍為調(diào)用前的低特權(quán)級。 因此,除協(xié)調(diào)代碼段外,調(diào)用過程仍不能訪問其他高特權(quán)級的代碼段,只能把協(xié)調(diào)代碼段協(xié)調(diào)到調(diào)用者的特權(quán)級。4、協(xié)調(diào)(一致)代碼段(屬性字節(jié)中C=1)58例請分析下面的描述符:1、

642001

00

BF

0B

00007FFF解:屬性字節(jié):BFh=10111111協(xié)調(diào)代碼段,DPL=1,在內(nèi)存,可讀,被訪問過。

代碼段基址:010B0000h

界限:07FFFh注:特權(quán)級為1、2、3的代碼段都可調(diào)用或跳轉(zhuǎn)到該協(xié)調(diào)代碼段,但轉(zhuǎn)移到該協(xié)調(diào)代碼段后,當(dāng)前特權(quán)級CPL不變。如,原CPL=3,則調(diào)用后,CPL還是3,不會變成1。例請分析下面的描述符:0100BF59(三)虛擬8086方式(V86方式) 為了解決80286中不能在保護(hù)模式下運(yùn)行8086/8088應(yīng)用程序的問題,從80386開始,在保護(hù)模式中引入了虛擬8086工作模式(簡稱V86模式)。

V86模式下,多個8086實模式的應(yīng)用軟件可以同時運(yùn)行。操作系統(tǒng)可以并行執(zhí)行8086、80286和80386的程序。

V86模式是讓80386模擬1MB空間的尋址環(huán)境,但它并不僅限于1MB的存儲空間,因為它可以同時支持幾個V86環(huán)境。

(三)虛擬8086方式(V86方式) 為了解決8028660V86模式的主要特點

1.V86模式的尋址 在V86模式下,80386對段寄存器的解釋與處理方式和實模式一樣。2.V86模式下的保護(hù)功能

V86模式具有80386的一些保護(hù)功能,但只是簡單地把V86模式下的任務(wù)的特權(quán)級一律降到最低級3。

在V86模式下,只能執(zhí)行SGDT、SIDT和SMSW這3條指令,如果要執(zhí)行其他保護(hù)模式指令,均會產(chǎn)生異常。V86模式的主要特點

1.V86模式的尋址2.V86模式613.V86模式下的分頁功能

為了使80386運(yùn)行多個虛擬任務(wù)的地址空間大于1MB的物理地址空間,則需要存儲器管理部件進(jìn)行分頁操作。若要啟動分頁機(jī)制,必須預(yù)先在保護(hù)模式下對CR0的PG位(位31)置1。

V86模式下的分頁時線性地址的算法與實模式下完全相同。3.V86模式下的分頁功能62六、80386/80486三種工作模式的相互轉(zhuǎn)變

CPU復(fù)位后進(jìn)入實地址模式;通過修改CR0的PE位,可以使CPU從實地址模式轉(zhuǎn)變到保護(hù)模式,或者從保護(hù)模式轉(zhuǎn)變到實地址模式;通過執(zhí)行IRETD指令,或者進(jìn)行任務(wù)轉(zhuǎn)換,可從保護(hù)模式轉(zhuǎn)變到V86模式。采用中斷操作,可以從V86模式轉(zhuǎn)變到保護(hù)模式。六、80386/80486三種工作模式的相互轉(zhuǎn)變

CPU63ENDEND6480386微處理器

(參考郁慧娣書第9章9.2、9.3、9.4和第3版教材第8章8.2)80386微處理器

(參考郁慧娣書第9章9.2、9.3、65

8.280386微處理器80386是一種與16位的80286相兼容的第一個高性能全32位微處理器,它代表了體系結(jié)構(gòu)的重要進(jìn)步——從16位體系結(jié)構(gòu)過渡到32位體系結(jié)構(gòu)。80386采用高速CHMOSⅢ1.5μm技術(shù),132條引出線用網(wǎng)格陣列式封裝在陶瓷片內(nèi),其耗散功率在1.5w到3.0w之間。

8.280386微處理器8066一、80386的特點

1.80386芯片在硬件結(jié)構(gòu)上由6個邏輯單元組成。它們按流水線方式工作,運(yùn)行速度可達(dá)到4MIPS。

2.80386有三種方式:實方式、保護(hù)方式、V86方式

。3.硬件支持段式管理和頁式管理,易于實現(xiàn)虛擬存儲系統(tǒng)。

4.硬件支持多任務(wù),一條指令可以完成任務(wù)切換。

5.特權(quán)保護(hù)機(jī)制

4級特權(quán)級:0級最優(yōu)先,其次為1,2和3級。一、80386的特點1.80386芯片在硬件結(jié)構(gòu)上67二、80386的內(nèi)部結(jié)構(gòu)二、80386的內(nèi)部結(jié)構(gòu)681.

總線接口部件(BIU:BusInterfaceUnit)。2.

指令預(yù)取部件(CPU:CodePrefetchUnit)。3.

指令譯碼部件(IDU:InstructionDecodeUnit)。4.

執(zhí)行部件(EU:ExecutionUnit)。它可進(jìn)一步分為控制部件(ControlUnit),保護(hù)測試部件(ProtectionTestUnit)和數(shù)據(jù)處理部件(DataUnit)3部分。5.

段管理部件(SU:SegmentUnit)。6.頁管理部件(PU:PagingUnit)。1.總線接口部件(BIU:BusInterfaceU69三、80386的寄存器結(jié)構(gòu)

80386有7類寄存器: 通用寄存器、段寄存器、指令指針和標(biāo)志寄存器、控制寄存器、系統(tǒng)地址寄存器、調(diào)試寄存器以及測試寄存器。 三、80386的寄存器結(jié)構(gòu) 80386有7類寄存器:70(一)通用寄存器

80386有8個32位的通用寄存器,分別命名為EAX、EBX、ECX、EDX、ESI、EDI、EBP以及ESP。(一)通用寄存器80386有8個32位71(二)段寄存器和段描述符高速緩存器

80386增加了FS和GS兩個新的數(shù)據(jù)段寄存器。

段寄存器里存放的不再是段基址的高16位,而是選擇器(P288圖9.7)。b15b14…………b4b3b2b1b0索引(13位)TI(0:GDT;1:LDT)RPL(二)段寄存器和段描述符高速緩存器 80386增加了FS72 80386中有一個32位的指令指針(EIP)和一個32位的標(biāo)志寄存器(EFLAGS)。 80386工作在實模式時采用16位的指令指針I(yè)P。

EFLAGS的低12位與8086標(biāo)志寄存器FLAGS完全相同。高20位中設(shè)置了4個新的標(biāo)志。(三)指令指針和標(biāo)志寄存器圖9.8保護(hù)方式標(biāo)志寄存器(P288) 80386中有一個32位的指令指針(EIP)和一個3273(四)系統(tǒng)地址寄存器和系統(tǒng)段寄存器

GDTR——

全局描述符表寄存器

IDTR——

中斷描述符表寄存器

LDTR——

局部描述符表寄存器

TR——任務(wù)寄存器(四)系統(tǒng)地址寄存器和系統(tǒng)段寄存器 GDTR——全局描74全局描述符表寄存器(GDTR)(圖9.2)全局描述符表寄存器(GDTR)(圖9.2)75例1.

如果GDTR的內(nèi)容為200000001FFFh,請給出GDT的起始地址、結(jié)束地址、表的長度。表中放了多少個描述符?最后一個描述符的地址范圍?解:GDT的起始地址

=20000000h

GDT的結(jié)束地址

=20000000h+1FFFh=20001FFFh

GDT表長

=1FFFh+1=2000h

表中描述符個數(shù)

=2000h÷8=400h=1024 最后一個描述符的地址范圍:20001FFFh-7=20001FF8h~20001FFFh

例1.如果GDTR的內(nèi)容為200000001FFFh,請給76中斷描述符表寄存器(IDTR)(圖9.3)中斷描述符表寄存器(IDTR)(圖9.3)77局部描述符表寄存器(LDTR)(圖9.4)局部描述符表寄存器(LDTR)(圖9.4)78例2.假設(shè)GDT的基地址為01002000h,LDTR=2108h,問LDT描述符的地址范圍?解:LDTR=0010000100001000

TI=0,LDT描述符在GDT中

索引

=0010000100001

LDT描述符的起始地址:GDT的基地址+索引×8=01002000h+0010000100001×8

=01004108h

LDT描述符的地址范圍(占8字節(jié)): 01004108h~0100410Fh例2.假設(shè)GDT的基地址為01002000h,LDTR=79任務(wù)寄存器(TR)(圖9.6)任務(wù)寄存器(TR)(圖9.6)80例3.假設(shè)GDT的基地址為00011000h,TR=3208h,問TSS描述符的地址范圍?解:TR=0011001000001000

TI=0,TSS描述符在GDT中

索引

=0011001000001

TSS描述符的起始地址:GDT的基地址+索引×8=00011000h+0011001000001×8

=00014208h

TSS描述符的地址范圍(占8字節(jié)): 00014208h~0001420Fh例3.假設(shè)GDT的基地址為00011000h,TR=3281(五)控制寄存器

80386中有3個32位的控制寄存器CR0、CR2和CR3,用于保存機(jī)器的各種全局性狀態(tài),這些狀態(tài)影響系統(tǒng)所有任務(wù)的運(yùn)行。

CR1未定義,留作備用。1.CR0——控制寄存器0 定義了6個控制和狀態(tài)標(biāo)志。(五)控制寄存器 80386中有3個32位的控制寄存器82PE(位0)和PG(位31)——保護(hù)控制位。TS——任務(wù)切換位每當(dāng)任務(wù)切換時,處理器將把TS置為1。MP——監(jiān)控協(xié)處理器位MP為1時,表示有協(xié)處理器在工作。EM——模擬協(xié)處理器控制位EM為1時,表示用軟件仿真協(xié)處理器。ET——協(xié)處理器擴(kuò)展類型

0:80287協(xié)處理器;1:80387協(xié)處理器;PE(位0)和PG(位31)——保護(hù)控制位。832.CR2——控制寄存器2CR2稱為頁面故障線性地址寄存器,用于發(fā)生頁面訪問異常時報告出錯信息。3.CR3——控制寄存器3CR3稱為頁組目錄基址寄存器,用于存放頁目錄表的物理基地址。如下圖所示。(分頁時用到)2.CR2——控制寄存器284四、80386的三種工作模式

80386有3種工作模式:

實地址模式(RealAddressMode),簡稱為實模式;

保護(hù)虛擬地址模式(ProtectedVirtualAddressMode),也叫保護(hù)模式;

虛擬8086模式(VirtualAddress8086Mode),簡稱為V86模式。四、80386的三種工作模式 80386有3種工作模式85實地址模式

當(dāng)80386在剛加電啟動或復(fù)位時,便由操作系統(tǒng)自動控制進(jìn)入實模式。

實模式主要是為80386進(jìn)行初始化用的,為80386保護(hù)模式所需要的數(shù)據(jù)結(jié)構(gòu)做好各種配置和準(zhǔn)備。 在實模式下,80386類似于8086的體系結(jié)構(gòu),與8086兼容。實地址模式 當(dāng)80386在剛加電啟動或復(fù)位時,便由操作系統(tǒng)86保護(hù)虛擬地址模式

保護(hù)模式是80386最常用的、也是最具特色的工作模式。通常在開機(jī)或復(fù)位后,機(jī)器先進(jìn)入實模式完成初始化,然后就立即切換到保護(hù)模式。 保護(hù)模式提供了多任務(wù)環(huán)境中的各種復(fù)雜功能以及對復(fù)雜存儲器組織的管理機(jī)制:

1)多用戶、多任務(wù);

2)虛擬存儲管理;

物理存儲空間:4GB;虛擬存儲空間:64TB

保護(hù)虛擬地址模式 保護(hù)模式是80386最87

所謂虛擬存儲空間是指程序所占有的存儲空間。80386系統(tǒng)中,由于內(nèi)存容量的限制,并不可能將所有的段都放在內(nèi)存中的,而必須將大部分段放在海量的外部磁盤上,待執(zhí)行到相關(guān)程序段時再調(diào)入內(nèi)存,將暫時不執(zhí)行的程序段調(diào)出內(nèi)存。 程序員編寫程序時,其程序存入磁盤。這樣,從程序員的角度來看,系統(tǒng)中似乎有一個容量很大、速度也相當(dāng)快的虛擬存儲器;當(dāng)然,它并不是真正的物理上的內(nèi)存。 3)保護(hù)機(jī)制; 特權(quán)保護(hù)機(jī)制、不同任務(wù)之間的隔離(不同的虛擬存儲空間) 所謂虛擬存儲空間是指程序所占有的存儲空間。8038688虛擬8086模式(1)使80386可以快速地執(zhí)行多個8086的應(yīng)用程序。(2)段寄存器的用法和實模式時相同。(3)存儲器尋址空間為1MB,可以使用分頁機(jī)制,支持多任務(wù)。在多任務(wù)系統(tǒng)中,80386可以使其中的一個或幾個任務(wù)使用虛擬8086模式。此時,可以使一個任務(wù)所用的全部頁面定位于某個物理地址空間,而另一個任務(wù)所用的頁面定位于其他物理地址空間,這樣,就把存儲器虛擬化了,虛擬8086模式的名稱即由此而來。(4)在虛擬8086模式中,程序是在最低特權(quán)級(3級)上運(yùn)行的,因此,80386指令系統(tǒng)中的一些特權(quán)指令是不能使用的。虛擬8086模式(1)使80386可以快速地執(zhí)行多個808689五、80386的存儲器管理

80386利用片內(nèi)的存儲管理單元(MemoryManagementUnit,簡稱MMU

)來實現(xiàn)對存儲器系統(tǒng)的兩級管理:分段管理(邏輯地址→線性地址)和分頁管理(線性地址→物理地址)

。 在兩級存儲管理中,段的大小可以選擇(可以字節(jié)或頁為單位),根據(jù)數(shù)據(jù)結(jié)構(gòu)和代碼模塊的大小而確定。 另外,對每個段還可以賦予屬性和保護(hù)信息,以有效防止在多任務(wù)環(huán)境下各個模塊對存儲器的越權(quán)訪問。五、80386的存儲器管理 80386利用片內(nèi)的存儲管90(一)實模式

80386的所有指令在實模式下都有效。其物理地址的形成與8086相同,可尋址的實地址空間只有1MB,所有的段最大容量為64KB。

中斷向量表仍設(shè)置在00000H~003FFH共計1K字節(jié)的存儲區(qū)內(nèi)。 系統(tǒng)初始化區(qū)在FFFFFFF0H~FFFFFFFFH存儲區(qū)內(nèi)。 (一)實模式 80386的所有指令在實模式下都有效。其物91(二)保護(hù)模式

保護(hù)模式下采用段頁式管理機(jī)構(gòu)。(二)保護(hù)模式 保護(hù)模式下采用段頁式管理機(jī)構(gòu)。92

保護(hù)模式下采用段頁式管理機(jī)構(gòu)。 注意區(qū)分邏輯地址、線性地址和物理地址這3者之間的關(guān)系。(二)保護(hù)模式 保護(hù)模式下采用段頁式管理機(jī)構(gòu)。(二)保護(hù)模式93邏輯地址:16位段選擇子+32位有效地址 有效地址=基址+變址×比例因子+位移量

線性地址

由存儲器段式管理機(jī)構(gòu)按下式來計算:

線性地址

=

段基地址+有效地址物理地址 頁式管理機(jī)構(gòu)不工作時,物理地址=線性地址;頁式管理機(jī)構(gòu)工作時,物理地址=F(線性地址)邏輯地址:16位段選擇子+32位有效地址94分段管理

為了實現(xiàn)分段管理,80386把有關(guān)段的信息存放在一個稱為段描述符(簡稱描述符)的8個字節(jié)長的數(shù)據(jù)結(jié)構(gòu)中,并把系統(tǒng)中所有的描述符編成一張表,以便硬件查找和識別。 80386共設(shè)置了3種描述符表,即全局描述符表GDT、局部描述符表LDT和中斷描述符表IDT。

分段管理 為了實現(xiàn)分段管理,80386把有關(guān)段的信息存放在95

段描述符包括:

段基地址(BaseAddress),規(guī)定了線性地址空間中段的起始地址。也可以把基地址看成是段內(nèi)偏移量為0的線性地址。

段的界限(Limit),表示在虛擬地址中,段內(nèi)可使用的最大偏移量。

段的屬性(Attributes),包括該段是否可讀出、寫入以及段的特權(quán)級等。 有兩種類型的段:非系統(tǒng)段、系統(tǒng)段;兩種段描述符:非系統(tǒng)段描述符、

系統(tǒng)段描述符。 段描述符包括:96非系統(tǒng)段描述符(P296圖9.20)

非系統(tǒng)段指一般的代碼段、數(shù)據(jù)段和堆棧段。(s=1)基地址(B0~B15)界限(L0~L15)屬性字節(jié)(訪問權(quán)字節(jié))(8位):B5基地址(32位):B7B4B3B2界限(20位):B6(低4位)B1B0非系統(tǒng)段描述符(P296圖9.20) 非系統(tǒng)段指一般9780386微處理器資料課件98例請分析下面的描述符:

6420

80

00

B2

0A

000003FF解:屬性字節(jié):B2h=10110010

可寫的數(shù)據(jù)段,DPL=1,在內(nèi)存,未訪問過。

數(shù)據(jù)段基址:800A0000h

界限:003FFh例請分析下面的描述符:8000B99

系統(tǒng)段描述符(P299圖9.23)

系統(tǒng)段描述符也稱為特殊段描述符(S位為0)。 系統(tǒng)段包括任務(wù)狀態(tài)段TSS和門,另外,局部描述符表LDT也作為一種系統(tǒng)段?;刂罚˙0~B15)界限(L0~L15)系統(tǒng)段描述符(P299圖9.23) 系統(tǒng)段描述符也稱10080386微處理器資料課件101例請分析下面的描述符:1、

642000

00

A2

10

000000FF解:屬性字節(jié):A2h=10100010386LDT描述符,有效,DPL=1。

LDT基址:00100000h

界限:000FFh例請分析下面的描述符:0000A2102分段管理總結(jié)分段管理總結(jié)103例(P297圖9.21):訪問代碼段例(P297圖9.21):訪問代碼段10480386微處理器資料課件105分頁管理

在80386中,在設(shè)計分段管理的基礎(chǔ)上又增加了分頁管理。在多任務(wù)系統(tǒng)中,有了分頁管理功能,就只需把每個活動任務(wù)當(dāng)前所需要的少量頁面放在存儲器中。 當(dāng)CR0中的PG=1時,系統(tǒng)就啟動分頁機(jī)制; 當(dāng)PG=0時,則禁止使用分頁機(jī)制,而且把分段機(jī)制產(chǎn)生的線性地址直接當(dāng)作物理地址使用。 80386分頁管理的對象是固定大小為4KB的存儲塊,稱之為頁。分頁管理 在80386中,在設(shè)計分段管理的基礎(chǔ)上又增加了分106段頁式結(jié)構(gòu)的尋址過程下×4×4CR3段頁式結(jié)構(gòu)的尋址過程下×4×4CR3107頁表結(jié)構(gòu)、頁目錄描述符以及頁描述符 80386采用了兩級表結(jié)構(gòu):頁目錄表和頁表。 當(dāng)允許分頁時,分頁機(jī)制將實現(xiàn)兩級地址轉(zhuǎn)換:在較高一級,由頁目錄表中的一個頁目錄項映射頁表;在低一級,由頁表映射頁。圖9.24頁目錄項和頁表項的格式(P299)頁表結(jié)構(gòu)、頁目錄描述符以及頁描述符 80386采用了108P—存在位,表示該頁/頁表是否在內(nèi)存W—寫允許位,表示該頁/頁表是可寫U—用戶位,表示該頁/頁表用戶是否可用A—訪問位,表示該頁/頁表是否訪問過D—出錯位AVL—

程序員可使用的位

當(dāng)頁目錄項和頁表項的U、W位不一致時,選取最小的值。例假設(shè)頁目錄項的UW位=11(用戶可寫),頁表項的UW位=10(用戶可用,但只可讀,不可寫)則,最終UW位=min(11,10)=10

(用戶可用,但只可讀,不可寫)P—存在位,表示該頁/頁表是否在內(nèi)存109分頁管理尋址過程舉例假設(shè)線性地址=12345678H,CR3=10000000H,頁目錄描述符=20000005H,頁描述符=30000007H

求:1)頁目錄描述符的地址2)頁描述符的地址3)操作數(shù)(32位)的地址4)操作數(shù)用戶是否可寫?答:

1)頁目錄描述符的地址10000120H~10000123H2)頁描述符的地址20000D14H~20000D17H3)操作數(shù)(32位)的地址30000678H~3000067BH操作數(shù)用戶是否可寫?頁目錄描述符:U=1,W=0,不可寫頁描述符:U=1,W=1,可寫∴操作數(shù)用戶不可寫CR3×4×4分頁管理尋址過程舉例求:1)頁目錄描述符的地址答:1)頁110分段分頁綜合例題

80386工作在保護(hù)方式下,GDTR=002000001FFFH,LDTR=3009H,CS=1007H,EIP=00000800H。1)GDT的起始地址為

,結(jié)束地址為

。GDT的表長為

。2)LDT描述符的地址范圍是

。分段分頁綜合例題1113)若代碼段描述符為:

6

4

2

0則代碼段的屬性為:特權(quán)級

,是否可讀

,是否在內(nèi)存

,是否訪問過

。代碼段的長度為

。00

00

FB

50

00000FFF3)若代碼段描述符為:0000F1124)若80386僅分段,不分頁,則當(dāng)前執(zhí)行指令的物理地址是

;若分段,又分頁,則訪問代碼段時轉(zhuǎn)換的線性地址為

;根據(jù)此線性地址進(jìn)行分頁轉(zhuǎn)換,頁目錄描述符的偏移地址為

,頁表描述符的偏移地址為

,被訪問指令在頁幀中的偏移地址為

。4)若80386僅分段,不分頁,則當(dāng)前執(zhí)行指令的物理地址是113保護(hù)

386支持兩個主要的保護(hù)類型:

一類是不同任務(wù)之間的保護(hù)。它是通過給每一任務(wù)分配不同的虛擬地址空間,而每一任務(wù)有各自不同的虛擬地址—物理地址的轉(zhuǎn)換映射,因而可實現(xiàn)任務(wù)之間的完全隔離。

另一類是同一任務(wù)內(nèi)的保護(hù)。定義4種特權(quán)級(特權(quán)級0、1、2、3),特權(quán)級0最高,特權(quán)級3最低。每個段都有對應(yīng)的特權(quán)級,訪問段時需遵循相應(yīng)的特權(quán)保護(hù)規(guī)則。保護(hù)114系統(tǒng)中特權(quán)級的安排系統(tǒng)中特權(quán)級的安排115特權(quán)級種類:1、請求特權(quán)級——RPL RPL為選擇子的最低2位2、描述符特權(quán)級——DPL DPL為描述符中屬性字節(jié)的b6、b5位3、當(dāng)前特權(quán)級——CPL CPL=當(dāng)前正在執(zhí)行的代碼段的DPL4、輸入輸出特權(quán)級——IOPL特權(quán)級種類:116各種段的特權(quán)保護(hù):1、數(shù)據(jù)段、附加數(shù)據(jù)段的特權(quán)保護(hù)

max{CPL,RPL}≤DPL

程序只能訪問特權(quán)級相同或較低的數(shù)據(jù)段例:MOV AX,01001101B MOV DS,AX

RPL=01CPL為這段程序所在代碼段的DPL(假設(shè)=10)

則該程序所能訪問的數(shù)據(jù)段的

DPL≥max{CPL,RPL}

即DPL≥max{10,01}

=10即只能訪問特權(quán)級為2,3的數(shù)據(jù)段。各種

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論