大三下-微機米么瑞chapter_第1頁
大三下-微機米么瑞chapter_第2頁
大三下-微機米么瑞chapter_第3頁
大三下-微機米么瑞chapter_第4頁
大三下-微機米么瑞chapter_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2014@

BIT理工大學2014-02第二章微處理器的結(jié)構(gòu)2014BIT2.4

80386CPU結(jié)構(gòu)80386CPU的

結(jié)構(gòu)主要由六大部件組成:●總線接口部件BIU(Bus

Interface

Unit)●指令譯碼部件IDU(Instruction

Decode

Unit)●指令預(yù)取部件CPU(Code

Prefetch

Unit)●執(zhí)行部件EU(Execution

Unit)●段管理部件SU(Segment

Unit)●頁管理部件PU(Page

Unit)2014BIT2014BIT

ALU線/代碼取表取控制指令預(yù)譯碼指令預(yù)取物理地址總線控制保護測試部件數(shù)據(jù)總線地址總線判優(yōu)電路地址驅(qū)動器分段部件輸入加法器描述符寄存器邊界和屬性指令譯桶形移位器加法器乘除譯碼指

令隊列寄存器文件流水線/總線寬度控制MUX/收發(fā)器譯碼和定序器控制ROM預(yù)取器/邊界校驗器16字節(jié)代碼隊列分頁部件加法器頁高速緩存器控制和屬性高速緩沖總線控制狀態(tài)標志M/IO

、D/C

、W/R

、LOCK

、ADS

、NA

、BS16、READYD0~D31BE0~BE3,A2~A31HOLD

、INTR

、NMI

、ERROR

、BUS

、RESET

、HLDA2014BIT可以分為:總線接口部件(BIU):總線接口部件通過數(shù)據(jù)總線、地址總線和控制總線負責與外部取得聯(lián)系,包括

器預(yù)取指令,讀寫數(shù)據(jù)和I/O端口讀/寫數(shù)據(jù)等全部操作及其它控制功能。處理部件(CPU):由指令部件和執(zhí)行部件組成指令部件包含兩個指令隊列,即16字節(jié)的預(yù)取指令隊列和已譯碼指令隊列,前者用來暫存從

器中預(yù)取出來的指令代碼,經(jīng)指令譯對指令代碼譯碼后送入已譯碼指令隊列中等待執(zhí)行部件執(zhí)行。執(zhí)行部件中包含32位的算術(shù)運算單元ALU,8個既可用于數(shù)據(jù)操作又可用于計算地址的32位通用寄存器。為了加快移位、循環(huán)已及乘、除法操作,設(shè)置了一個64位的桶形移位器和乘/除硬件。此外,還包括控制部件和保護測試部件。2014BIT管理部件(MMU):器段、管理部件(MMU)由分段部件和分頁部件部件組成,實現(xiàn)頁式管理。分頁部件提供了對物理地址空間的管理,頁是機械劃分的,每一頁為4K字節(jié),程序或數(shù)據(jù)均為頁為單位進入實存。分段部件通過提供一個額外的尋址器件對邏輯地址空間進行管理,每段包含若干個頁。2014BIT2.5

80386CPU寄存器結(jié)構(gòu)80386CPU共有七類32個寄存器通用寄存器段寄存器指令指針標志寄存器控制寄存器系統(tǒng)描述符表寄存器調(diào)試寄存器和測試寄存器2014BIT1)通用寄存器組8個32位通用寄存器,分別命名為EAX、EBX、ECX、EDX、ESI、EDI、EBP以及ESP。每個寄存器可用于存放數(shù)據(jù)或地址值,它支持8、16和32位的數(shù)據(jù)操作數(shù),也支持16位和32為的地址操作數(shù)。作16位寄存器單獨使用:AX、BX、CX、DX、SI、DI、BP、SP可作8位寄存器單獨使用:AH、AL、BH、BL、CH、CL、DH、DL2014BIT累加器3116

158

70EAXAXAH318

70數(shù)據(jù)寄存器EDXDXDHDL計數(shù)寄存器3116

158

70ECXCX161C5HCL基址寄存器31EBXBXBHBLAL16

158

A7L

02014BIT3116

158

70堆棧指示器ESPSP0目標變址寄存器3116

158

7EDIDI0源變址寄存器3116

158

7ESISI基址指示器3116

158

70EBPBP2014BIT2)段寄存器6個段寄存器,也稱選擇字(或選擇器)。CS選擇器表示當前的碼段;SS選擇器表示當前的堆棧段;DS、ES、FS和GS可用來表示當前的數(shù)據(jù)段。2014BIT器分段代碼段堆棧段D數(shù)據(jù)段E數(shù)據(jù)段F數(shù)據(jù)段G

數(shù)據(jù)段CSSSDSESFSGS2014BIT段寄存器:用戶可以直接

的寄存器。可以通過來改變段寄存器中的值。因此,一個程序要想編程另一個部分

器,

只要改變相應(yīng)的段寄存器中的值即可實現(xiàn)。FFFFH器分段的諸多情形舉例DSCSSSESFSGSABDEGCHIFJKL0000H2014BIT3)指令指針EIP(Instruction

Pointer)功能:在EIP中存放的始終是下一條要取出的指令偏移量,此偏移量是相對碼段(CS)基址的偏移量。80386的地址線是

32位,指令指針為32位寄存器EIP。IP寄存器:EIP的低16位是IP寄存器,當80386工作在實地址模式時,IP存放的是16位的偏移地址,CS:IP確定下一條要的代碼地址。31 16

15

0IPEIPEFLAGSFLAGS指令指針標志寄存器2014BIT4)標志寄存器(Flags

Register)功能:標志寄存器是80386位的值。定義的位和字段的一個32位寄存器,它是用于存放各狀態(tài)標志3

2

1

0CFPFAFZFSFTFVMRFNTIOPLOFDFIF2014BIT各標志位的含義:(1)

CF(CarryFlag)—進位標志位或借位標志位。當運行指令時,結(jié)果的最高有效位產(chǎn)生進位或借位時CF置位,否則復(fù)位。(2)PF(ParityFlag)—奇偶標志位。當算術(shù)運算或邏輯運算的結(jié)果低8位中“1”的個數(shù)為偶數(shù)時,PF置位,否則PF復(fù)位。(3)AF(AuxiliaryCarryFlag)—輔助進位位,在8、16或32位加減法運算時,最低4位向高4位有進位或有借位時,AF置位,否則復(fù)位。(4)

ZF(Zero

Flag)—零標志位。當運算結(jié)果為0時,ZF置位,否則復(fù)位。2014BIT2014BIT(5)

SF(Sign

Flag)—符號標志。當運算結(jié)果的最高有效位是1時,SF=1,否則SF=0(6)

OF(Overflow

Flag)—溢出標志位,當運算結(jié)果超出了有符號數(shù)的范圍,即溢出時,OF置位,否則OF復(fù)位。(7)

TF(Trap

Flag)—陷阱標志,主要用于控制單步

,當TF置位,則允許單步

,否則

單步

。(8)

IF(Interrupt

Flag)—中斷允許標志位,當IF置位,允許80386識別可可中斷請求。當IF復(fù)位,在中斷請求輸入端INT的信號被忽略,中斷被

。(9)

DF(Direction

Flag)—方向標志位。當DF置位,串操作按地址減方式變址;當DF復(fù)位,串操作按地址增方式變址。2014BIT(10)

NT(Nested

Task

Flag)—任務(wù)嵌套標志,用來表示當前的任務(wù)是否嵌套在另一任務(wù)內(nèi)。當NT置位,表示該任務(wù)被另一個任務(wù)調(diào)用,NT只能通過復(fù)位。(11)

IOPL(I/O

Privilege

Level)—輸入/輸出

標志。IOPL用于指定輸入/輸出的最大

級例如,IOPL=00時,80386處于最高

級時才可以執(zhí)行I/O操作。若IOPL=11,I/O指定最低級3。(12)

RF(Resume

Flag)—恢復(fù)標志。它是與調(diào)試寄存器的斷點一起使用的標志。當RF置位,即使遇到斷點或調(diào)試故障,也不產(chǎn)生異常中斷1。在成功地執(zhí)行每條指令時,RF將自動地被復(fù)位。(13)

VM(Virtual

8086

Mode)—虛擬8086模式(簡稱V86方式),當VM置位時,CPU工作在V86模式。2014BIT5)系統(tǒng)描述符表寄存器80386中設(shè)置了兩個系統(tǒng)地址寄存器和兩個系統(tǒng)段寄存器,GDTR——全局描述符表寄存器IDTR——中斷描述符表寄存器GDTR和IDTR長48位,稱為系統(tǒng)地址寄存器;GDTR用來存放全局描述符表(GDT)的32位線性IDTR來存放中斷描述符表(IDT)的32位線性址和16位界限值址和16位界限值每個描述符(程序員不可見)由8個字節(jié)組成,每個描述符表的大小為216=64KB(

16位界限值),所以每個表最多可包含8K個字符80386中最多只有256個中斷,故IDT中最多有256個中斷描述符。2014BITLDTR——局部描述符表寄存器TR——任務(wù)寄存器LDTR和TR長16位稱為系統(tǒng)段寄存器。LDTR寄存器用來存放局部描述符表的段選擇字TR寄存器用來存放任務(wù)狀態(tài)段表的段選擇字它們所在的段是由任務(wù)決定的,即由任務(wù)的系統(tǒng)段寄存器中的選擇器值決定。2014BIT310

15

0系統(tǒng)地址寄存器GDTRIDTRLDTRTR選擇器邊界址線性11

0

3115

0019

0屬性址邊界2014BIT6)控制寄存器80386增加了4個32位的控制寄存器CR0~CR3。它們都是與80386的頁功能有關(guān)的寄存器。CR0寄存器中的低16位為機器狀態(tài)字寄存器(MSW),可使用MOV指令對CR0進行讀/寫操作。CR1寄存器保留給將來開發(fā)的In

微處理器使用。CR2寄存器包含一個32位的線性地址,該地址是由最后檢測出的頁故障所產(chǎn)生的。CR3包含了頁

表示的物理

址(即用,其低12位總是“0”,所以,80386的頁4K。址)。由分頁硬件使表總對齊,即每頁均為2014BITCR0CR1CR2CR3MSW控制寄存器2014BIT2014BIT7)調(diào)試寄存器組8個32位的調(diào)試(DEBUG)寄存器DR0~DR7DR0~DR3可設(shè)置4個線性斷點地址DR6用于保留斷點狀態(tài)DR7用于控制設(shè)置斷點DR4與DR5保留2014BIT2.6 80386

微處理器接口信號80386按其接口類型可將信號線分為四組:器/IO接口中斷接口DMA接口協(xié)處理器接口2014BITM/IO接口ADS

READYNALOCKM/IOD/CW/RBS16A

2-A31中斷接口ERRORHOLDHLDAINTRNMIRESETPEREOBUSY80386DXMPUBE0-BE3D

-D0

31DMA接口協(xié)處理接口2014BIT1.

器I/O接口

80386的實地址模式和保護的虛擬地址模式之間一個差異是地址總線的多少。在實地址模式下,低18根地址線(A19--A2)有效;實際是20位地址,能

1MB

空間。在保護模式下,30根地址線(A31-A2)全部有效,實際是32空間地址。另外在位地址;32根地址線可

4GB的物理保護模式下,可以借助實現(xiàn)虛擬尋址,能尋址64TB的虛擬

空間。最低地址A0、A1由BE1、BE2、BE3。對其譯碼,產(chǎn)生字節(jié)選通信號BE0、2014BIT數(shù)據(jù)總線寬度的切換通過BS16引腳的輸入邏輯電平來實現(xiàn)數(shù)據(jù)總線寬度的切換。當BS16引腳輸入邏輯0,數(shù)據(jù)總線將動態(tài)地從32位切換到16位。在這種模式下,如要傳送32位數(shù)據(jù),就需要在D0~D15數(shù)據(jù)線上分兩次相繼傳送16位數(shù)據(jù)。2014BIT字節(jié)選通輸出和選通的數(shù)據(jù)總線字節(jié)選通BE0BE1BE2BE3數(shù)據(jù)總線D0-D7D8-D15D16-D23D24-D312014BITADS信號有效,表明總線周期定義信號,字節(jié)選通信號,地址信號全部處于穩(wěn)定狀態(tài)。READY信號有效,慢速的外部

器和I/O設(shè)備通知MPU,已做好準備。LOCK信號,有效時MPU鎖定共享資源,

其他設(shè)備使用。2014BIT中斷接口:DMA接口:協(xié)處理器接口:2014BIT2.7

32位微處理器的三種工作方式80386是典型的32位微處理器,有三種工作方式:實地址模式、保護虛地址模式、虛擬8086模式。(1)實地址模式(real

address

mode)80386開機啟動或復(fù)位后自動進入實地址方式,對其進行初始化,配置保護方式所需要的數(shù)據(jù)結(jié)構(gòu)。用戶可以一直運行在實模式,也可以通過尋址機構(gòu)、指令切換到保護模式。特點:器管理、中斷處理機構(gòu)均和8086相同;操作數(shù)默認為16位長度,但允許

80386的32位寄存器組;2014BIT不用虛擬地址的概念,

器最大容量1MB;采用分段方式,每段大小固定為64KB,不進行分頁;實地址方式下,

器中保留兩個固定區(qū)域:初始化程序區(qū):FFFF0H-FFFFFH;中斷向量區(qū):00000H-003FFH;2014BIT處理器支持額定的1M字節(jié)物理地址空間。該地址空間分成段,1個段的長度可達64KB。段基址用16位的段選擇符來指定,將段基址左移4位與16位段內(nèi)偏移相加即可得到20位物理地址。2014BIT2)保護虛擬地址模式(protected

virtual

address

mode)也叫保護模式、本性模式對80386來說。實模式是在模擬8086/8088工作,因此其高性能是無法充分體現(xiàn)的,只有工作在保護模式下,才能充分發(fā)揮出它的高性能,它能利用其全部的地址線參與尋址,并能滿足多用戶、多任務(wù)的操作系統(tǒng)的要求。何謂保護模式呢?386是多任務(wù)系統(tǒng),對每一個任務(wù)它都可被分配一定的內(nèi)存資源和讀寫限制,

統(tǒng)稱為

權(quán)限。當一次尋址

了這些權(quán)限的話,CPU將

執(zhí)行這次尋址,產(chǎn)生中斷以告警,這就是所謂保護的概念。它的目的是為了防止當某一任務(wù)程序失控情況下,不會對系統(tǒng)整個資源產(chǎn)生破壞作用。2014BIT描述符表和描述符寄存器在尋址過程中的作用:所謂描述符實際上是在RAM內(nèi)存中設(shè)置的一個區(qū)間,在該內(nèi)存區(qū)間內(nèi)存有很多描述符,每個描述符占8個連續(xù)字節(jié),它

一段內(nèi)存址及權(quán)限。CPU在保護模式下的尋址是通過描述符和對應(yīng)的偏置來完成的。而描述符寄存器則指明了對應(yīng)描述符表的所在內(nèi)存地址。2014BIT由于386以上的CPU需要具有執(zhí)行多任務(wù)的能力,為了能安全有效地劃分和使用內(nèi)存資源,有必要對每一個任務(wù)劃分一定的內(nèi)存資源,所以,在386中有兩種描

述符表以及對應(yīng)的寄存器。其中一種是局部描述符表LDT,它裝有針對某一任務(wù)的一系列描述符;另一種是全局描述符表GDT,它除了放有一般的全局尋址描述符外,還特別放有所有任務(wù)局部描述符表LDT所在的內(nèi)存

址、表長度和

權(quán)限,這些信息也是以8字節(jié)描述符形式表達的。因此,全局描述符表只有一個,而局部描述符表則可有多個,每一任務(wù)對應(yīng)一局部描述符表。2014BIT全局描述符表寄存器GDTR存放著系統(tǒng)GDT表與內(nèi)存中的基地址和表的總長。局部描述符寄存器(16位)是一個選擇符,在針對某一任務(wù)進行尋址時,它實際上是作為GDT

址(存于GDTR中)的一個偏置,合起來指向GDT表中的某一位置,該位置存放著一個8字節(jié)描述符,該描述符中保存有本次任務(wù)的局部描述符LDT的首地址和表長度。在實際尋址中,CPU根據(jù)當前的GDTR和LDTR取到LDT的起始地址和表長度放入一高速緩存LDTR

Cache(48位),再通過譯碼確定局部描述符表的首地址。但找到描述符表區(qū)首址后如何完成一次尋址呢?這就要借助于段寄存器(也稱段寄存器)和偏置寄存器等。2014BIT在保護模式下,段寄存器(如CS,DS,ES等)高13位表示一個地址偏置,而第三位稱TI,是一個全局或局部任務(wù)標志位。如TI=0表示這次尋址是一次全局任務(wù)尋址,這時不用局部描述符表寄存器LDTR,直接由GDTR與段寄存器高13位偏置一起找到全局描述符表GDT中的一個描述符,再加上某偏置寄存器,如EIP中的偏置完成尋址任務(wù),該過程

。2014BIT2014BIT當TI=1時,表示是一次局部任務(wù)尋址,這時必須用LDTR、GDTR與CS一起找到局部描述符后,再與EIP一起完成尋,如圖所示。2014BIT386在保護模式下的尋址空間386有32根地址線,因此物理上可尋址4GB。(386面向用戶或者說利用尋址指令所能達到的內(nèi)存范圍稱為邏輯地址空間)卻大得多。因此根據(jù)前述的尋址原理,邏輯地址由段寄存器(如CS)和邏輯偏移量(如EIP)組成。段寄存器有16位,其中有效尋址位是高14位,而邏輯偏移量由32位組成,故每個任務(wù)所擁有的邏輯地址空間為

232*214=246,即64TB。由于386可支持多任務(wù),因而對多任務(wù)來講,386的邏輯地址空間幾乎是無上限的。2014BIT3)虛擬8086模式

虛擬8086模式是386以上CPU在保護模式下模仿

8086/8088工作。在一般的保護方式下,在386EFLAGS寄存器中的VM位為0,若使VM=1,則進入虛擬8086方式下。它與實模式的區(qū)別在于,實模式是單任務(wù)的,而虛擬8086是多任務(wù)的,它可同時執(zhí)行幾個8086/8088應(yīng)用程序,也可同時執(zhí)行386應(yīng)用程序。2014BIT2.8

80386非流水線和流水線總線周期典型的非流水線總線周期。一個總線周期包含兩個處理器時鐘周期T,稱之為T1和T2。在總線周期T1時間內(nèi),80386輸出要被

的 器地址信息、總線周期定義碼以及控制信號。若執(zhí)行的是寫總線周期,寫數(shù)據(jù)也在T1輸出。第二個狀態(tài)T2是外設(shè)從數(shù)據(jù)總線上接收寫數(shù)據(jù)的時間或在讀周期情況下,外設(shè)將讀出數(shù)據(jù)送到數(shù)據(jù)總線上。2014BIT典型的非流水線讀總線周期時間nn+1數(shù)據(jù)

n+1

T1

T1T1

T2n地址T2地址2014BIT流水線讀總線周期所謂流水線就是下一個總線周期的地址與前一個總線周期的數(shù)據(jù)傳輸期間

。注意:

在開始采用地址流水線方式時,在期間輸出下一個總線周期的地址、總線周期定義碼和控制信號,而不是在T1T1

時刻。2014BIT流水線總線周期n+1n+1n+2n+2T1

T2nT1T1T2T2地址地址訪

問時間數(shù)據(jù)n-12014BIT流水線與非流水線總線周期的差異

對于流水線總線周期,有效地址

時間等于一個完整的總線周期持續(xù)期,這就使流水線操作模式比非流水線優(yōu)越,因為對于給定的

周期,流水線總線周期要短于非流水線總線周期,從而導致總線性能的改善。2014BIT實際上,地址流水線是總線周期在時間上的

。對外部電路而言,第N+1個總線周期提前到CPU第N個周期的中間開始,而CPU仍在每個CPU總線周期的結(jié)束數(shù)據(jù)。這樣加時間。也就是說長了從地址有效到

數(shù)據(jù)的時間,即,外部電路可以有的準備時間。如果一個速度較慢的存儲器(或I/O設(shè)備)在非地址流水線總線周期時需要

一個時鐘周期,那么,在地址流水線總線周期就不需要再插人時鐘周期。顯然地址流水線方式提高了CPU的運行效率。2014BIT2.9

器讀和寫總線周期時序1.非流水線讀總線周期時序圖讀總線周期時序圖中全部信號的產(chǎn)生,都和總線周期的兩個定時狀態(tài)T1、T2 有關(guān)。讀操作始于總線周期T1狀態(tài)的

Φ1的起始處,此時,80386將要

器地址送到地址總線A2~A31上,字節(jié)選通信號BE0~BE3被鎖定,地址選通信號ADS轉(zhuǎn)換成邏輯0,來標明地址總線上的地址是有效的。2014BIT2014BIT80386

器讀數(shù)據(jù)時的

器接口信號有效2有效1W/IO

D/CW/RBE0

-

BE3A2

-

A31周期1非周期2非空閑流水線讀流水線讀空閑CLK2

CLK2014BIT32位總線32位總線CLK2CLKADSNABS16周期1非空閑流水線讀空閑周期2非流水線讀2014BIT有效1IN1周期結(jié)束有效2IN2CLK2CLKREADYLOCKD0-

D31空閑空閑周期1非流水線讀周期2非流水線讀2014BIT2.非流水線寫總線周期時序圖非流水線寫總線周期時序圖和非流水線讀總線周期時序圖非常類似。2014BIT3.流水線讀/寫周期時序圖有效4

有效2

有效3有效1空閑T1空閑周期1非 周期2非流水線寫流水線讀周期3 周期4流水線寫

流水線讀T1

T2

T1

T2T2PT1P

T2P

T1PT2PBS16CLK2CLKBE0

-

BE3A2

-

A31W/IO

D/CW/RNA2014BIT有效2

有效3

有效4有效1IN

OUT

OUT

INLOCKD0-

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論