官术网_书友最值得收藏!

2.4 80386微處理器

在16位微處理器80286的基礎(chǔ)上,Intel公司于1985年推出32位微處理器80386及更高性能的32位微處理器80486。32位微處理器體現(xiàn)了體系結(jié)構(gòu)的重要進步,即從16位體系結(jié)構(gòu)過渡到32位體系結(jié)構(gòu);由于其性價比高而受到廣泛的應(yīng)用,由80386/80486微處理器組成的微機系統(tǒng)的主要性能指標已超過許多中、小型計算機系統(tǒng)。

80386微處理器在增大字長的同時增加了許多功能和附加特征,下面將分幾方面進行介紹。

2.4.1 80386的主要性能

① 具有32條數(shù)據(jù)總線和內(nèi)部數(shù)據(jù)通路,其中寄存器、ALU和內(nèi)部總線都是32位,可以處理8位、16位和32位數(shù)據(jù)類型。具有32條地址總線,能提供32位的指令尋址能力,可尋址4GB的物理存儲空間。

② 具有實模式、保護模式和虛擬8086三種工作模式。在實模式下,80386只能運行在有限資源的情況下,內(nèi)存最大尋址空間1MB,性能相當于一個高速的8086 CPU;在保護模式下,80386具有段頁式存儲管理功能,可尋址4GB的物理存儲空間;在虛擬8086模式下,支持保護機制和分頁存儲管理,與8086兼容,可尋址1MB存儲空間。

③ 具有指令流水線結(jié)構(gòu)、片內(nèi)地址轉(zhuǎn)換的高速緩沖存儲器等硬件,大大提高了指令的執(zhí)行速度和CPU的工作效率。

2.4.2 80386的內(nèi)部結(jié)構(gòu)

80386微處理器內(nèi)部結(jié)構(gòu)框圖如圖2-28所示。芯片主要由三大部件組成:總線接口部件(BIU)、中央處理部件(CPU)、存儲器管理部件(MMU)。三大部件又可分為6個并行工作的模塊部件:總線接口部件、代碼預取部件、指令譯碼部件、控制部件、指令執(zhí)行部件、存儲器管理部件。6個模塊部件采用流水線作業(yè)結(jié)構(gòu),各行其能,并行工作,可同時處理多條指令,從而大大提高了程序的執(zhí)行速度。

圖2-28 80386微處理器內(nèi)部結(jié)構(gòu)框圖

(1)總線接口部件(BIU)

通過數(shù)據(jù)總線、地址總線、控制總線完成與微處理器外部(存儲器、I/O接口)的聯(lián)系。包括訪問存儲器預取指令、存儲器數(shù)據(jù)讀/寫、I/O端口數(shù)據(jù)讀/寫等操作控制功能。

(2)中央處理部件(CPU)

由代碼預取部件、指令譯碼部件、控制部件、指令執(zhí)行部件組成,各部件為并行工作。代碼預取部件用于暫存從存儲器中預取的指令代碼,又稱為預取指令隊列。指令譯碼部件對預取指令隊列中的指令進行譯碼,譯碼后又送入譯碼指令隊列等待執(zhí)行。該部件的特點是在預譯碼時若發(fā)現(xiàn)為轉(zhuǎn)移指令,則提前通知總線接口部件去取目標地址中的指令代碼并取代原預取指令隊列中的順序指令代碼,從而提高效率。控制部件根據(jù)指令代碼產(chǎn)生工作時序。指令執(zhí)行部件完成指令代碼的執(zhí)行,包含1個32位的算術(shù)運算單元(ALU),8個32位的通用寄存器,1個為快速乘、除運算服務(wù)的64位移位寄存器(桶形移位器)

(3)存儲器管理部件(MMU)

由分段部件和分頁部件組成,存儲器采用段、頁式結(jié)構(gòu)。頁為定長結(jié)構(gòu),即每4KB為一頁,程序或數(shù)據(jù)以頁為單位存儲。存儲器按段組織,每段含若干頁,段的最大容量可達4000MB。一個任務(wù)最多可含16K個段,故可為每個任務(wù)提供最大64TB的虛擬存儲空間。存儲結(jié)構(gòu)中還采用了高速緩沖存儲器(Cache),加快了指令和數(shù)據(jù)的訪問速度,在計算機系統(tǒng)中構(gòu)成了高速緩沖存儲器、內(nèi)存儲器、外存儲器的三級存儲體系。

2.4.3 80386的寄存器結(jié)構(gòu)

80386微處理器的寄存器共有40個,其結(jié)構(gòu)如圖2-29所示。80386的寄存器分為7組:通用寄存器組、段寄存器組、專用寄存器組、控制寄存器組、系統(tǒng)地址寄存器組、調(diào)試寄存器組、測試寄存器組。通用寄存器組、段寄存器組和專用寄存器組稱為基本寄存器,編程人員會經(jīng)常使用這些寄存器,應(yīng)該掌握。其余寄存器組稱為系統(tǒng)寄存器,多用于對操作系統(tǒng)的調(diào)試,應(yīng)該了解。

圖2-29 80386寄存器組

1.通用寄存器組

通用寄存器組由8個32位的寄存器組成,是8086/8088微處理器中8個16位通用寄存器的32位擴展。其中EAX,EBX,ECX和EDX這4個寄存器可8位使用(用寄存器名AL,AH,BL,BH,CL,CH,DL和DH表示),也可16位使用(用寄存器名AX,BX,CX和DX表示),還可32位使用(其寄存器名分別為:EAX,EBX,ECX和EDX)。80386通用寄存器組如圖2-29(a)所示。

2.段寄存器組

段寄存器組由6個16位的選擇器寄存器組組成。選擇器寄存器組是8086/8088微處理器中4個16位段寄存器的數(shù)量擴展。原來的兩個數(shù)據(jù)段、附加寄存器DS和ES擴展為4個數(shù)據(jù)段寄存器DS,ES,F(xiàn)S和GS,在編程時可同時定義和使用這4個數(shù)據(jù)段,使程序設(shè)計更加靈活。保留了原來的代碼段寄存器CS和堆棧段寄存器SS。80386段寄存器組如圖2-29(b)所示。

3.專用寄存器組

專用寄存器組由2個32位的寄存器組成,是8086/8088微處理器中16位標志寄存器FLAGS和指令指針寄存器IP的32位擴展,稱為EFLAGS和EIP。32位的指令指針寄存器EIP可工作于16位操作方式(用寄存器名IP表示),也可工作于32位操作方式(用寄存器名EIP表示)。32的標志寄存器EFLAGS中定義了14位有效,除與8086/8088微處理器中定義的9位(CF,PF,AF,ZF,SF,TF,IF,DF和OF)相同外,還定義了5位:I/O特權(quán)標志位(IOPL)、嵌套標志位(NT)、恢復標志位(RF)、虛擬8086模式標志位(VM)、對齊檢查標志位(AC)。80386的指令指針寄存器EIP的結(jié)構(gòu)圖如圖2-29(c)所示。80386的標志寄存器EFLAGS的位結(jié)構(gòu)如圖2-30所示。

圖2-30 80386的標志寄存器EFLAGS

80386新增標志位的功能及定義如下。

① I/O特權(quán)標志位:IOPL=00 特權(quán)級0 IOPL=01 特權(quán)級1

IOPL=10 特權(quán)級2IOPL=11 特權(quán)級3

② 嵌套標志位:NT=0 無嵌套 NT=1 當前任務(wù)嵌套于另一任務(wù)中

③ 恢復標志位:RF=0 所有調(diào)試故障需排除

RF=1 所有調(diào)試故障被忽略

④ 模式標志位:VM=0 工作于實地址方式

VM=1 工作于保護虛地址方式

4.控制寄存器組

控制寄存器組由4個32位寄存器組成。80386的控制寄存器組結(jié)構(gòu)如圖2-29(d)所示。

(1)控制寄存器CR0的功能:目前僅用了最低4位作為機器狀態(tài)字,各位定義如下。

① 允許保護位PE(bo):PE=0 CPU當前處于實地址方式

PE=1 CPU當前已進入保護虛地址方式

② 任務(wù)切換位TS(b3)、仿真協(xié)處理器位EM(b2)、監(jiān)控協(xié)處理器位MP(b1)為組合應(yīng)用。

TS,EM,MP=000 80386處于實地址方式,當前最復位后的初始狀態(tài)。

TS,EM,MP=001 有協(xié)處理器80387,不需要軟件仿真。

TS,EM,MP=010 無協(xié)處理器80387,要求用軟件仿真。

TS,EM,MP=101 有協(xié)處理器,不需軟件仿真,產(chǎn)生任務(wù)切換。

TS,EM,MP=110 無協(xié)處理器,要求軟件仿真,產(chǎn)生任務(wù)切換。

③ ET(b4):處理器擴展類型位,僅對80386有效,ET=0,表示80386系統(tǒng)內(nèi)使用80287,否則是使用80387協(xié)處理器。

④ PG(b31):分頁允許位。PG=1,允許片內(nèi)分頁單元工作,否則將禁止。

(2)控制寄存器CR1的功能:保留為將來開發(fā)的Intel微處理器用。

(3)控制寄存器CR2的功能:包含一個32位的線性地址,指向頁故障地址。

(4)控制寄存器CR3的功能:包含頁目錄表的物理地址。

5.系統(tǒng)地址寄存器組

系統(tǒng)地址寄存器組由2個48位的寄存器和2個16位的寄存器組成。80386系統(tǒng)地址寄存器組結(jié)構(gòu)如圖2-29(e)所示。系統(tǒng)地址寄存器組中各寄存器的功能如下:

① GDTR:存放全局描述符表的32位線性基地址和16位界限值。

② IDTR:存放中斷描述符表的32位線性基地址和16位界限值。

③ LDTR:存放局部描述符表的16位段選擇子。

④ TR:存放任務(wù)狀態(tài)段表的16位段選擇子。

6.調(diào)試寄存器組

調(diào)試寄存器組由8個32位寄存器組成。80386調(diào)試寄存器組結(jié)構(gòu)圖如圖2-29(f)所示。

80386微處理器為程序員提供了供程序調(diào)試(DEBUG)的寄存器組。程序員在編程及調(diào)試過程中使用這些寄存器完成程序的調(diào)試。各寄存器的功能如下:

① DR0,DR1,DR3,DR3:用戶設(shè)置的程序斷點地址。

② DR7:用戶設(shè)置的斷點控制。

③ DR6:用戶調(diào)試時的斷點狀態(tài)值。

④ DR4,DR5:保留寄存器。

7.測試寄存器組

測試寄存器組由8個32位寄存器組成。80386測試寄存器組結(jié)構(gòu)如圖2-29(g)所示。

① TR0,TR1,TR2和TR3為調(diào)試寄存器,各寄存器中包含了由微處理器指令產(chǎn)生的32位線性斷點地址,供調(diào)試時使用。

② TR4和TR5兩個寄存器未用,為Intel公司預留。

③ TR6和TR7為測試寄存器,用來測試轉(zhuǎn)換后備緩沖區(qū)TLB(Translation Look-aside Buffer)。TR6為測試命令寄存器,用于對TLB進行測試。TR7用于保存測試TLB后的結(jié)果。

2.4.4 80386的數(shù)據(jù)處理

80386微處理器的數(shù)據(jù)總線寬度為32位,即可同時并行處理4字節(jié)數(shù)據(jù)。在實際應(yīng)用中可采用8位,16位,32位3種數(shù)據(jù)傳輸方式。內(nèi)存儲器按字節(jié)組織,每個存儲單元僅含8位二進制數(shù)據(jù)。處理8位數(shù)據(jù)時僅訪問1個地址單元,處理16位數(shù)據(jù)時要訪問連續(xù)的2個地址單元,處理32位數(shù)據(jù)時要訪問連續(xù)的4個地址單元。

1.8086微處理器對8位、16位數(shù)據(jù)的處理

在8086微處理器中將內(nèi)存儲器分為奇數(shù)庫和偶數(shù)庫,用控制線和地址線A0完成奇、偶庫的選擇從而實現(xiàn)對8位數(shù)據(jù)或16位數(shù)據(jù)的選擇處理。

2.80386微處理器對8位、16位、32位數(shù)據(jù)的處理

在80386微處理器中將內(nèi)存儲器分為0庫、1庫、2庫和3庫,采用向芯片引腳輸入控制信號及最低兩位地址線A1,A0完成庫選擇,從而實現(xiàn)對8位、16位、32位數(shù)據(jù)的選擇處理。

主站蜘蛛池模板: 交城县| 青州市| 始兴县| 兴城市| 马边| 行唐县| 沂南县| 福海县| 昌平区| 乐亭县| 罗定市| 富裕县| 广宗县| 邹城市| 伊宁市| 揭东县| 樟树市| 溧水县| 襄垣县| 吉首市| 霍山县| 开封县| 黄浦区| 晋江市| 闸北区| 湛江市| 沾化县| 太原市| 荔波县| 南投市| 盈江县| 闸北区| 金堂县| 泽普县| 且末县| 融水| 陆川县| 阿图什市| 防城港市| 保靖县| 东平县|