80x86CPU的體系結(jié)構(gòu)課件_第1頁(yè)
80x86CPU的體系結(jié)構(gòu)課件_第2頁(yè)
80x86CPU的體系結(jié)構(gòu)課件_第3頁(yè)
80x86CPU的體系結(jié)構(gòu)課件_第4頁(yè)
80x86CPU的體系結(jié)構(gòu)課件_第5頁(yè)
已閱讀5頁(yè),還剩120頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

80x86CPU的體系結(jié)構(gòu)圖8086/8088CPU引腳信號(hào)一、8086/8088CPU內(nèi)部編程結(jié)構(gòu)1.功能結(jié)構(gòu)

8086/8088CPU內(nèi)部結(jié)構(gòu)從功能上可以分為兩部分:

總線接口單元BIU(BusInterfaceUnit):負(fù)責(zé)完成CPU與存儲(chǔ)器或I/O設(shè)備之間的數(shù)據(jù)傳送。

執(zhí)行單元EU(ExecutionUnit):不與系統(tǒng)外部直接相連,負(fù)責(zé)譯碼和執(zhí)行指令。

圖8086CPU基本結(jié)構(gòu)框圖20位總線接口單元BIU的組成:①4個(gè)段地址寄存器:CS、DS、SS、ES。②IP—16位的指令指針寄存器。③20位物理地址加法器和總線控制電路。④6個(gè)字節(jié)的指令隊(duì)列緩沖器。執(zhí)行單元EU的組成:①16位算術(shù)邏輯單元ALU。②16位標(biāo)志寄存器FLAGS。③16位通用寄存器組:AX、BX、CX、DX、SP、BP、SI、DI。④數(shù)據(jù)暫存寄存器:暫存數(shù)據(jù)。⑤EU控制電路:是控制、定時(shí)與狀態(tài)邏輯電路,接收從BIU中指令隊(duì)列取來的指令,經(jīng)過指令譯碼形成各種定時(shí)控制信號(hào),對(duì)EU的各個(gè)部件實(shí)現(xiàn)定時(shí)操作。二、8086/8088的內(nèi)部寄存器

1.通用寄存器通用寄存器(8個(gè)):包括四個(gè)數(shù)據(jù)寄存器AX(AH/AL),BX(BH/BL),CX(CH/CL),DX(DH/DL),兩個(gè)地址指針寄存器(SP,BP)和兩個(gè)變址寄存器(SI,DI)。

①數(shù)據(jù)寄存器AX、BX、CX、DX

數(shù)據(jù)寄存器一般用于存放參與運(yùn)算的操作數(shù)或運(yùn)算結(jié)果。每個(gè)數(shù)據(jù)寄存器都是16位的,可將高、低8位分別作為兩個(gè)獨(dú)立的8位寄存器來用。高8位分別記作AH、BH、CH、DH,低8位分別記作AL,BL,CL,DL。AX(Accumulator):累加器,是算術(shù)運(yùn)算主要寄存器,此外,所有的I/O指令都使用該寄存器與外設(shè)端口交換信息。BX(Base):基址寄存器,8086/8088CPU中有兩個(gè)基址寄存器BX和BP。在計(jì)算存儲(chǔ)器地址時(shí),常用BX存放操作數(shù)在內(nèi)存中數(shù)據(jù)段內(nèi)的基準(zhǔn)地址,而BP用來存放操作數(shù)在堆棧段內(nèi)的基準(zhǔn)地址。CX(Counter):計(jì)數(shù)寄存器,在設(shè)計(jì)循環(huán)程序時(shí)使用該寄存器存放循環(huán)次數(shù),在數(shù)據(jù)串操作指令中用來存放數(shù)據(jù)串元素的個(gè)數(shù)。DX(Data):數(shù)據(jù)寄存器。在寄存器間接尋址的I/O指令中存放I/O端口地址;在做雙字運(yùn)算時(shí),DX與AX一起存放一個(gè)雙字長(zhǎng)操作數(shù),DX存放高16位數(shù),AX存放低16位數(shù)。

②地址指針寄存器SP、BP

SP(StackPointer):堆棧指針寄存器。在使用堆棧操作指令(PUSH或POP)對(duì)堆棧進(jìn)行操作時(shí),每執(zhí)行一次進(jìn)?;虺鰲2僮?,系統(tǒng)會(huì)自動(dòng)將SP的內(nèi)容減2或加2,以使其始終指向棧頂,與SS聯(lián)用。

BP(BasePointer):基址指針寄存器。作為通用寄存器,它可以用來存放數(shù)據(jù),但更經(jīng)常更重要的用途是存放操作數(shù)在堆棧段內(nèi)的基準(zhǔn)地址。

變址寄存器SI、DISI(SourceIndex):源變址寄存器。

DI(DestinationIndex):目的變址寄存器。

這兩個(gè)寄存器通常用在字符串操作時(shí)存放操作數(shù)的偏移地址,其中SI存放源串在數(shù)據(jù)段內(nèi)的偏移地址,DI存放目的串在附加數(shù)據(jù)段內(nèi)的偏移地址。

2.段寄存器

8086/8088CPU具有尋址1MB字節(jié)存儲(chǔ)空間的能力,但是其指令中給出的寄存器只有16位的,使CPU不能直接尋址1MB的空間。為此,8086/8088對(duì)存儲(chǔ)器進(jìn)行分段管理,即將程序代碼或數(shù)據(jù)分別放在代碼段、數(shù)據(jù)段、堆棧段或附加數(shù)據(jù)段中,每個(gè)邏輯段最長(zhǎng)可為64KB。段地址分別放在對(duì)應(yīng)的段寄存器中,代碼或數(shù)據(jù)在段內(nèi)的偏移地址由有關(guān)寄存器或立即數(shù)給出。CS(CodeSegment):代碼段寄存器。用來存儲(chǔ)程序當(dāng)前使用的代碼段的段地址。CS的內(nèi)容左移四位再加上指令指針寄存器IP的內(nèi)容就是下一條要讀取的指令在存儲(chǔ)器中的20位物理地址。DS(DataSegment):數(shù)據(jù)段寄存器。用來存放程序當(dāng)前使用的數(shù)據(jù)段的段地址。DS的內(nèi)容左移四位再加上由指令中存儲(chǔ)器尋址方式給出的偏移地址即得到對(duì)數(shù)據(jù)段指定單元進(jìn)行讀寫的20位物理地址。SS(StackSegment):堆棧段寄存器。用來存放程序當(dāng)前所使用的堆棧段的段地址。堆棧是存儲(chǔ)器中開辟的按先進(jìn)后出原則組織的一個(gè)特殊存儲(chǔ)區(qū),主要用于調(diào)用子程序或執(zhí)行中斷服務(wù)程序時(shí)保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)。

ES(ExtraSegment):附加段寄存器。用來存放程序當(dāng)前使用的附加數(shù)據(jù)段的段地址。附加數(shù)據(jù)段常用來存放字符串操作時(shí)的目的字符串。

3.控制寄存器

IP(InstructionPointer):指令指針寄存器。用來存放下一條要讀取的指令在代碼段內(nèi)的偏移地址,與CS段寄存器聯(lián)用,用戶程序不能直接訪問IP。

FLAGS:標(biāo)志寄存器。它是一個(gè)16位的寄存器,但只用了其中9位,這9位包括6個(gè)狀態(tài)標(biāo)志位,3個(gè)控制標(biāo)志位,如下圖所示。圖8086/8088的標(biāo)志寄存器狀態(tài)標(biāo)志位:6位

CF(CarryFlag):進(jìn)位標(biāo)志位。當(dāng)進(jìn)行加減運(yùn)算時(shí),若最高位發(fā)生進(jìn)位或借位則CF=1,否則為0。通常用于判斷無符號(hào)數(shù)運(yùn)算結(jié)果是否超出了計(jì)算機(jī)所能表示的無符號(hào)數(shù)的范圍。

PF(ParityFlag):奇偶標(biāo)志位。當(dāng)指令執(zhí)行結(jié)果中含有偶數(shù)個(gè)1時(shí),PF=1,否則PF=0。

AF(AuxiliaryFlag):輔助進(jìn)位標(biāo)志位。當(dāng)執(zhí)行加法或減法運(yùn)算指令時(shí),低半部分向高半部分有進(jìn)位或借位,則AF=1,否則為0。

ZF(ZeroFlag):零標(biāo)志位。若當(dāng)前的運(yùn)算結(jié)果為0,則ZF=1,否則為0。

SF(SignFlag):符號(hào)標(biāo)志位。當(dāng)運(yùn)算結(jié)果的最高位為1時(shí),SF=1,否則為0。

OF(OverflowFlag):溢出標(biāo)志位。當(dāng)運(yùn)算結(jié)果超出了帶符號(hào)數(shù)所能表示的數(shù)值范圍,即溢出時(shí),OF=1,否則為0。用來判斷帶符號(hào)數(shù)運(yùn)算結(jié)果是否溢出。

控制標(biāo)志位:3位

用來控制CPU的操作,由程序設(shè)置或清除。它們是:

TF(TrapFlag):跟蹤(陷阱)標(biāo)志位。為測(cè)試程序的方便而設(shè)置。若將TF置1,則CPU處于單步工作方式,每執(zhí)行一條指令,自動(dòng)產(chǎn)生一次單步中斷,可使用戶逐條檢查指令執(zhí)行結(jié)果;若TF=0,則程序正常運(yùn)行。IF(InterruptEnableFlag):中斷允許標(biāo)志位。是用來控制可屏蔽中斷的標(biāo)志位。若IF=1,表示允許CPU響應(yīng)外部從INTR引腳上發(fā)來的可屏蔽中斷請(qǐng)求;若IF=0,則禁止CPU響應(yīng)可屏蔽中斷請(qǐng)求信號(hào)。IF的狀態(tài)對(duì)非屏蔽中斷和內(nèi)部中斷沒有影響。

DF(DirectionFlag):方向標(biāo)志位。若將DF置1,則串處理指令操作后使變址寄存器SI和DI遞減;若將DF置0,則串處理指令操作后使變址寄存器SI和DI遞增。一、8086/8088的引腳信號(hào)

8086與8088CPU內(nèi)部結(jié)構(gòu)基本相同,外部采用40條引腳的雙列直插式封裝,如下圖所示引腳信號(hào)。

8086/8088CPU具有兩種工作模式:最小模式和最大模式,8條引腳(24~31腳)在兩種工作模式中具有不同的功能。2.28086/8088引腳信號(hào)及工作模式圖8086/8088CPU引腳信號(hào)8086是Intel系列的16位微處理器,采用N溝道、耗盡型的硅柵工藝(HMOS)制造,內(nèi)部包含約29000個(gè)晶體管。

8086有40條引腳,有16根數(shù)據(jù)線和20根地址線,可尋址的地址空間為220即1MB。時(shí)鐘頻率:8086為5MHz,8086-2為8MHz,8086-1為10MHz。

8088一種準(zhǔn)16位微處理器,推出8088的主要目的是為了與當(dāng)時(shí)已有的一整套Intel外圍接口芯片直接兼容使用。8088的內(nèi)部寄存器、內(nèi)部運(yùn)算部件以及內(nèi)部操作與8086基本相同,但外部性能有區(qū)別。8086的外部數(shù)據(jù)總線是16位的,但8088外部的數(shù)據(jù)總線是8位的。2.18086/8088CPU的編程結(jié)構(gòu)

1.各引腳功能

(1)地址/數(shù)據(jù)總線AD15~AD0(AddressDataBus)

分時(shí)復(fù)用的地址數(shù)據(jù)線。傳輸?shù)刂窌r(shí)三態(tài)輸出,傳輸數(shù)據(jù)時(shí)可雙向三態(tài)輸入/輸出。(2)地址/狀態(tài)線A19/S6~A16/S3(Address/Status)

分時(shí)復(fù)用的地址狀態(tài)線,三態(tài)輸出。在總線周期的T1狀態(tài)作為地址總線的高4位,A19~A16與AD15~AD0一起構(gòu)成訪問存儲(chǔ)器的20位物理地址,當(dāng)CPU訪問I/O端口時(shí),A19~A16保持為“0”;在總線周期的其它時(shí)間作為狀態(tài)線用,S6~S3用來輸出狀態(tài)信息,其中:S4和S3用于表示當(dāng)前使用的段寄存器,如下表所示。對(duì)I/O端口或中斷矢量尋址時(shí),不需要使用段寄存器。S5用來表示中斷標(biāo)志位狀態(tài)。當(dāng)IF

1時(shí),S5置“1”,表示CPU可以響應(yīng)可屏蔽中斷,否則置為“0”,表示CPU禁止一切可屏蔽中斷;S6恒保持為“0”。表S4與S3的代碼組合和對(duì)應(yīng)的狀態(tài)S4S3狀態(tài)00當(dāng)前正在使用ES01當(dāng)前正在使用SS10當(dāng)前正在使用CS,或未使用任何段寄存器11當(dāng)前正在使用DS

(3)/S7(BusHighEnable/Status)高8位數(shù)據(jù)總線有效/狀態(tài)復(fù)用引腳,三態(tài)輸出。在總線周期的T1狀態(tài)時(shí)輸出,S7在T2—T4時(shí)輸出。在8086中,該引腳輸出信號(hào)時(shí),表示總線高8位AD15-AD8上的數(shù)據(jù)有效,在8088中,該引腳被賦予另外的含義。

(4)(Read)讀控制信號(hào),三態(tài),輸出。低電平有效,表示當(dāng)前CPU正在讀存儲(chǔ)器或I/O端口。

(5)READY信號(hào)準(zhǔn)備就緒信號(hào),由外部輸入。高電平有效,表示被訪問的內(nèi)存或I/O端口已準(zhǔn)備好,CPU可以進(jìn)行數(shù)據(jù)傳送。當(dāng)CPU采集到READY為低時(shí),自動(dòng)插入等待周期Tw,直到READY信號(hào)變?yōu)楦唠娖胶螅珻PU才脫離等待狀態(tài),完成數(shù)據(jù)傳送過程。

(6)INTR(InterruptRequest)可屏蔽中斷請(qǐng)求信號(hào),由外部輸入,高電平有效。INTR有效時(shí),表示外設(shè)向CPU提出中斷請(qǐng)求。CPU在每條指令的最后一個(gè)時(shí)鐘周期對(duì)INTR進(jìn)行采樣,一旦測(cè)試到有中斷請(qǐng)求,并且當(dāng)前中斷允許標(biāo)志IF

1時(shí),則暫停執(zhí)行下條指令轉(zhuǎn)入中斷響應(yīng)周期。

(7)NMI(Non-MaskableInterruptReguest)

非屏蔽中斷請(qǐng)求信號(hào),由外部輸入,上升沿觸發(fā),不受IF狀態(tài)的影響。CPU一旦測(cè)試到NMI請(qǐng)求有效,待當(dāng)前指令執(zhí)行完就自動(dòng)從中斷入口地址表中找到類型2中斷服務(wù)程序的入口地址,并轉(zhuǎn)去執(zhí)行。顯然,這是一種比INTR高級(jí)的請(qǐng)求。

(8)

測(cè)試信號(hào),由外部輸入,低電平有效。用于多處理器系統(tǒng)中且只有當(dāng)CPU執(zhí)行WAIT指令時(shí)才使用。每隔5個(gè)時(shí)鐘周期對(duì)其進(jìn)行一次測(cè)試。若測(cè)試到無效,則CPU處于踏步等待狀態(tài),直到有效,CPU才繼續(xù)執(zhí)行下一條指令。等待期間允許外部中斷。

(9)RESET

復(fù)位信號(hào),由外部輸入,高電平有效。要求RESET信號(hào)至少保持4個(gè)時(shí)鐘周期。CPU接收到RESET信號(hào)后,停止進(jìn)行操作,并將標(biāo)志寄存器、段寄存器、IP和指令隊(duì)列等復(fù)位到初始狀態(tài)。如下表所示:內(nèi)部寄存器狀態(tài)內(nèi)部寄存器狀態(tài)FLAGS0000HDS0000HIP0000HSS0000H指令隊(duì)列清除ES0000HCSFFFFH其余寄存器0000H

表復(fù)位后內(nèi)部寄存器的狀態(tài)

(10)MN/(Minimun/Maximun)工作模式選擇信號(hào),由外部輸入。MN/為高電平,表示CPU工作在最小模式系統(tǒng)中;低電平時(shí),表示CPU工作在最大模式系統(tǒng)中。(11)CLK(Clock)主時(shí)鐘信號(hào),由8284時(shí)鐘發(fā)生器輸入。8086CPU可使用的時(shí)鐘頻率隨芯片型號(hào)不同而不同,8086為5MHz,8086-1為10MHz,8086-2為8MHz。(12)VCC(電源)和地線GND8086CPU只需要單一的+5V電源,由VCC輸入。地線GND有兩條,均應(yīng)該接地。

二、8086/8088工作模式

8086/8088有兩種工作模式:最大模式和最小模式。最小模式是單處理機(jī)模式,最大模式是多處理機(jī)模式。兩種模式下系統(tǒng)配置不同。MN/引腳為高電平時(shí)工作在最小模式;為低電平時(shí)工作在最大模式。(一)總線接口芯片在實(shí)際使用8086/8088微處理器時(shí),還必須配有時(shí)鐘發(fā)生器(8284A)、地址鎖存器(8282/8283或74LS373)和總線驅(qū)動(dòng)器(8286/8287),才能構(gòu)成系統(tǒng)總線。

1.時(shí)鐘發(fā)生器8284A

8284A除為CPU和系統(tǒng)提供時(shí)鐘信號(hào)外,還提供經(jīng)時(shí)鐘同步的復(fù)位信號(hào)RESET和就緒信號(hào)READY。

8284A能為CPU提供的最高時(shí)鐘信號(hào)頻率為8MHz。而8284A-1可提供10MHz時(shí)鐘信號(hào)。為使8284A正常工作,只要外接一片晶體振蕩器即可。(1)時(shí)鐘信號(hào)發(fā)生器時(shí)鐘信號(hào)發(fā)生器提供系統(tǒng)所需要的時(shí)鐘信號(hào),有兩個(gè)來源:一個(gè)是F/C為低電平時(shí),由X1、X2引腳間14.31818MHz晶體振蕩器信號(hào)被8284A作3分頻產(chǎn)生4.77MHz時(shí)鐘信號(hào)CLK(占空比為1∶3);另一個(gè)是F/C為高電平時(shí),由EFI引腳輸入的方波信號(hào)被8284A做3分頻產(chǎn)生時(shí)鐘信號(hào)。

OSC:14.31818MHz晶振信號(hào)。外設(shè)時(shí)鐘PCLK:由4.77MHz的CLK再經(jīng)2分頻后產(chǎn)生,頻率為2.385MHz(占空比為1∶2)。CSYNC:多個(gè)8284工作時(shí)的同步信號(hào),為高時(shí),8284內(nèi)部計(jì)數(shù)器復(fù)位,為低時(shí),8284開始工作,使用晶振時(shí)必須接地。(2)復(fù)位生成電路輸入信號(hào)RES在8284延遲和同步后產(chǎn)生系統(tǒng)復(fù)位信號(hào)RESET,高電平有效,使系統(tǒng)初始化。

(3)設(shè)備就緒控制電路就緒控制電路有兩組輸入信號(hào),每一組都有允許信號(hào)AEN和設(shè)備就緒信號(hào)RDY,AEN是低電平有效信號(hào),用以控制其對(duì)應(yīng)的RDY信號(hào)的有效。這種工作方式用于能保證滿足RDY建立時(shí)間要求的同步設(shè)備中。

2.8282/8283地址鎖存器

由于8086/8088CPU的地址/數(shù)據(jù)和地址/狀態(tài)總線是分時(shí)復(fù)用的,而存儲(chǔ)器或I/O接口電路通常要求在與CPU進(jìn)行數(shù)據(jù)傳輸時(shí),在整個(gè)總線周期內(nèi)須保持穩(wěn)定的地址信息,因而必須在總線周期的第一個(gè)時(shí)鐘周期內(nèi)將地址鎖存起來。

8282(不反相)和8283(反相)是適用于8086/8088以及MCS-85等系列微型計(jì)算機(jī)的8位雙極型具有三態(tài)輸出的鎖存緩沖器,可用于緩沖或多路傳輸。

DI0-DI7為8位數(shù)據(jù)輸入端OE為輸出允許信號(hào),低電平有效DO0-DO7為8位數(shù)據(jù)輸出端STB為選通信號(hào)

3.8286/8287數(shù)據(jù)收發(fā)器

為提高8086/8088系統(tǒng)數(shù)據(jù)總線的驅(qū)動(dòng)能力,并提供一種在多主控器系統(tǒng)應(yīng)用環(huán)境下的控制手段,在8086/8088CPU和系統(tǒng)數(shù)據(jù)總線之間必須接入數(shù)據(jù)雙向緩沖器,Intel公司提供的8286(不反相)和8287(反相)就是一種具有三態(tài)輸出的8位雙極型數(shù)據(jù)收發(fā)器,具有很強(qiáng)的總線驅(qū)動(dòng)能力。A0-A7為A組8根數(shù)據(jù)線B0-B7為B組8根數(shù)據(jù)線OE為門控端,低電平時(shí)有效,可以傳輸數(shù)據(jù)T為方向控制端,高電平時(shí)數(shù)據(jù)由A組送B組,低電平時(shí)由B組送A組

(二)最小模式當(dāng)處理器的引腳在+5V時(shí),系統(tǒng)工作于最小模式,即單處理器模式,它適合較小規(guī)模的應(yīng)用。如下為一種典型的最小模式系統(tǒng)配置及引腳信號(hào)含義。

(1)(InterruptAcknowledge)

中斷響應(yīng)信號(hào),向外部輸出,低電平有效,表示CPU響應(yīng)了外部發(fā)來的INTR信號(hào),在中斷響應(yīng)周期,可用來作為讀選通信號(hào)。

(2)ALE(AddressLatchEnable)

地址鎖存允許信號(hào),向外部輸出,高電平有效,該信號(hào)是8086/8088提供給地址鎖存器(如:8282/8283)的控制信號(hào)。

(3)SSO(SystemStatusOutput)

系統(tǒng)狀態(tài)信號(hào),輸出,低電平有效,只用于8088。

(4)(Write)

寫控制信號(hào),三態(tài),輸出。低電平有效,表示當(dāng)前CPU正在寫存儲(chǔ)器或I/O端口。(5)M/IO(Memory/InputOutput)

存儲(chǔ)器或I/O端口訪問信號(hào),三態(tài)輸出。高電平時(shí)表示當(dāng)前CPU正在訪問存儲(chǔ)器;低電平時(shí),表示CPU正在訪問I/O端口,8088中該引腳為IO/M。

(6)HLDA(HoldAcknowlege)

總線保持響應(yīng)信號(hào),向外部輸出,高電平有效。當(dāng)CPU接收到HOLD信號(hào)后,就在當(dāng)前總線周期結(jié)束時(shí),使HLDA有效,表示響應(yīng)這一總線請(qǐng)求,并立即讓出總線使用權(quán)。CPU中的EU可繼續(xù)工作到下一次要求使用總線為止,一直到HOLD無效,CPU才將HLDA置成無效,并收回對(duì)總線的使用權(quán),繼續(xù)操作。

(7)DT/(DataTransmit/Receive)

數(shù)據(jù)發(fā)送/接收控制信號(hào),三態(tài)輸出。該信號(hào)用來控制數(shù)據(jù)總線收發(fā)器(如:8286/8287)的數(shù)據(jù)傳輸方向。為高電平時(shí),CPU向內(nèi)存或I/O端口發(fā)送數(shù)據(jù);為低電平時(shí),CPU從內(nèi)存或I/O端口接收數(shù)據(jù)。在DMA操作時(shí)被置為高阻態(tài)。(8)(DataEnable)

數(shù)據(jù)允許信號(hào),三態(tài)輸出,低電平有效。在最小模式系統(tǒng)中用來作為數(shù)據(jù)收發(fā)器8286/8287的選通信號(hào)。有效時(shí),表示CPU當(dāng)前準(zhǔn)備發(fā)送或接收數(shù)據(jù)。在DMA操作時(shí)被置為高阻態(tài)。(9)HOLD(HoldRequest)

總線請(qǐng)求信號(hào),由外部輸入,高電平有效。在最小模式系統(tǒng)中表示有其他共享總線的主控者向CPU請(qǐng)求使用總線。

(三)最大模式

1.系統(tǒng)配置及相關(guān)引腳信號(hào)當(dāng)處理器的引腳接地時(shí),系統(tǒng)工作于最大模式,它適合較大規(guī)模的應(yīng)用。如下為一種典型的最大模式系統(tǒng)配置及相關(guān)引腳信號(hào)含義。最大模式和最小模式的主要區(qū)別是外加有8288總線控制器。最小模式下,控制總線直接從8086/8088得到,最大模式下,通過8288對(duì)CPU發(fā)出的控制信號(hào)進(jìn)行變換和組合,以得到對(duì)存儲(chǔ)體和I/O端口的讀寫信號(hào)和對(duì)鎖存器8282及數(shù)據(jù)總線收發(fā)器8286的控制信號(hào),使得總線控制功能更加完善。最大模式是多處理機(jī)模式,需要協(xié)調(diào)主處理體和協(xié)處理器的工作問題及對(duì)總線的共享控制問題。

(1)S2、S1、S0(BusCycleStatus)

總線周期狀態(tài)信號(hào),輸出,低電平有效,連接到總線控制器8288的輸入端,8288對(duì)這些信號(hào)進(jìn)行譯碼后產(chǎn)生內(nèi)存及I/O端口的讀寫控制信號(hào)。下表為這三個(gè)狀態(tài)信號(hào)的代碼組合使、對(duì)應(yīng)的操作及8288產(chǎn)生的控制信號(hào)。

(2)LOCK(Lock)

引腳29,總線封鎖信號(hào),輸出。當(dāng)LOCK為低電平時(shí),系統(tǒng)中其他總線設(shè)備不能獲得系統(tǒng)總線的控制權(quán)而占有總線。LOCK信號(hào)由指令LOCK產(chǎn)生,LOCK指令后面的一條指令執(zhí)行完后,便撤消了LOCK信號(hào)。另外,在DMA期間,LOCK被浮空而處于高阻狀態(tài)。

(3)RQ/GT1、RQ/GT0(Request/Grant)

總線請(qǐng)求信號(hào)輸入/總線請(qǐng)求允許信號(hào)輸出。這兩個(gè)信號(hào)可供8086/8088以外的2個(gè)總線主設(shè)備向8086/8088發(fā)出使用總線的請(qǐng)求信號(hào)RQ(相當(dāng)于最小方式時(shí)的HOLD信號(hào))。而8086/8088在現(xiàn)行總線周期結(jié)束后讓出總線,發(fā)出總線請(qǐng)求允許信號(hào)GT(相當(dāng)于最小方式的HLDA信號(hào)),此時(shí),外部總線主設(shè)備便獲得了總線的控制權(quán)。其中RQ/GT0比RQ/GT1的優(yōu)先級(jí)高。(4)QS1、QS0(InstructionQueueStatus)

指令隊(duì)列狀態(tài)信號(hào),輸出。QS1、QS0兩個(gè)信號(hào)電平的不同組合指明了指令隊(duì)列的狀態(tài),其代碼組合對(duì)應(yīng)的含義如下表所示。QS1QS0含義00無操作01從指令隊(duì)列的第一字節(jié)中取走代碼10隊(duì)列為空11除第一字節(jié)外,還取走了后續(xù)字節(jié)中的代碼2.最大模式下系統(tǒng)總線的構(gòu)成

(1)8288總線控制器當(dāng)8086/8088CPU工作于最大模式時(shí),不直接產(chǎn)生總線控制信號(hào),而是在每個(gè)總線周期開始之前輸出狀態(tài)信息和用于指示該總線周期的操作類型。8288總線控制器對(duì)總線狀態(tài)信息進(jìn)行譯碼,產(chǎn)生所需要的總線命令信號(hào)和控制信號(hào)??偩€控制器

由8288總線控制器參與構(gòu)成的工作于最大方式的單處理器總線如下圖所示:

如果希望在一個(gè)系統(tǒng)中能包含多個(gè)共享總線的主控者,那么必須在系統(tǒng)中增設(shè)總線仲裁器8289。

(2)總線仲裁器8289

總線仲裁器8289與總線控制器8288配合,將8086/8088CPU與8089IOP、8087NDP等主控者連接到總線上,構(gòu)成多主控的微機(jī)系統(tǒng)。每一個(gè)主控者必須配備一個(gè)8288總線控制器和一個(gè)8289總線仲裁器。8289對(duì)主控者是透明的,對(duì)于任何一個(gè)主控者來說,都好像自己獨(dú)占總線一樣。當(dāng)有多個(gè)主控者同時(shí)要求使用總線時(shí),由8289總線仲裁器進(jìn)行仲裁將使用權(quán)賦給優(yōu)先級(jí)別高的主控者。一、指令周期、總線周期和T狀態(tài)

指令周期(InstructionCycle):指CPU從取指令到指令執(zhí)行完畢所需要的時(shí)間,指令周期可以劃分為一個(gè)個(gè)的總線周期。

總線周期(BusCycle):指CPU從存儲(chǔ)器或I/O端口存取一個(gè)字節(jié)所需要的時(shí)間。按照數(shù)據(jù)的傳送方向來分,總線周期可分為“讀”總線周期(CPU從存儲(chǔ)器或I/O端口讀取數(shù)據(jù))和“寫”總線周期(CPU將數(shù)據(jù)寫入存儲(chǔ)器或I/O端口)。

T狀態(tài)(Tstate):T狀態(tài)是CPU中處理動(dòng)作的最小時(shí)間單位,每個(gè)T狀態(tài)就是一個(gè)時(shí)鐘周期(ClockCycle),8086/8088CPU的每個(gè)總線周期通常包含4個(gè)T狀態(tài),即T1、T2、T3、T4,如下圖所示:2.38086/8088總線操作時(shí)序圖8086/8088基本總線周期①8086/8088CPU基本的總線周期由4個(gè)時(shí)鐘周期組成,時(shí)鐘周期是CPU的基本時(shí)間計(jì)量單位,由CPU主頻決定。如8086主頻f=5MHz,則一個(gè)時(shí)鐘周期tc=1/f=200ns。一個(gè)時(shí)鐘周期又稱為一個(gè)T狀態(tài),因此基本總線周期用T1、T2、T3、T4表示。②在T1狀態(tài)CPU把要讀/寫的存儲(chǔ)單元的地址或I/O端口的地址放到地址總線上。若是“寫”總線周期,CPU從T2起到T4把數(shù)據(jù)送到總線上,并寫入存儲(chǔ)器單元或I/O端口;若是“讀”總線周期,CPU則從T3起到T4從總線上接收數(shù)據(jù),T2狀態(tài)時(shí)總線浮空,允許CPU有個(gè)緩沖時(shí)間把輸出地址的寫方式轉(zhuǎn)換成輸入數(shù)據(jù)的讀方式。③圖b是具有空閑狀態(tài)的總線周期。如果在一個(gè)總線周期之后不立即執(zhí)行下一個(gè)總線周期,即CPU此時(shí)執(zhí)行的指令不需要對(duì)存儲(chǔ)器或I/O端口進(jìn)行訪問,且目前指令隊(duì)列滿而不需要到內(nèi)存中讀指令,那么系統(tǒng)總線就處于空閑狀態(tài),即執(zhí)行空閑周期。在空閑周期中可包括一個(gè)或多個(gè)時(shí)鐘周期,在這期間,在高4位的總線上,CPU仍驅(qū)動(dòng)前一個(gè)總線周期的狀態(tài)信息;而在低16位的總線上,則根據(jù)前一個(gè)總線周期是讀還是寫周期來決定。若前一個(gè)周期為寫周期,CPU會(huì)在總線的低16位繼續(xù)驅(qū)動(dòng)數(shù)據(jù)信息;若前一個(gè)總線周期為讀周期,CPU則使總線的低16位處于浮空狀態(tài)。在空閑周期,盡管CPU對(duì)總線進(jìn)行空操作,但在CPU內(nèi)部,仍然進(jìn)行著有效的操作,如執(zhí)行某個(gè)運(yùn)算、在內(nèi)部寄存器之間傳送數(shù)據(jù)等。④圖c是具有等待狀態(tài)的總線周期。在T3狀態(tài)結(jié)束之前,CPU測(cè)試READY信號(hào)線,如果為高電平,則說明數(shù)據(jù)已準(zhǔn)備好,可進(jìn)入T4狀態(tài);若READY為低電平,則說明數(shù)據(jù)沒有準(zhǔn)備好,CPU在T3之后插入1個(gè)或多個(gè)等待周期TW,直到檢測(cè)到READY為高電平后,CPU會(huì)自動(dòng)脫離TW而進(jìn)入T4狀態(tài)。這種延長(zhǎng)總線周期的措施允許系統(tǒng)使用低速的存儲(chǔ)器芯片。

(1)8088存儲(chǔ)器讀周期

8088存儲(chǔ)器讀周期時(shí)序如圖所示。一個(gè)基本的存儲(chǔ)器讀周期由四個(gè)T狀態(tài)組成。

T1狀態(tài):

①IO/M變?yōu)橛行АS蒊O/M信號(hào)來確定是對(duì)存儲(chǔ)器還是對(duì)外設(shè)進(jìn)行操作。②從T1開始,A19/S6~A16/S3、A15~A8、AD7~AD0線上出現(xiàn)20位地址。③ALE有效,地址信息被鎖存到地址鎖存器8282中。④DT/R為低電平。

T2狀態(tài):

①A19/S6~A16/S3復(fù)用線上由地址信號(hào)變?yōu)闋顟B(tài)信號(hào)。

②信號(hào)變?yōu)榈碗娖剑虳T/一起作為雙向數(shù)據(jù)總線驅(qū)動(dòng)器8286的選通信號(hào)。打開它的接收通道,使數(shù)據(jù)線上的信息得以通過它傳送到CPU的AD7~AD0。T3狀態(tài):

CPU在T3的下降沿采樣數(shù)據(jù)線獲取數(shù)據(jù)。

T4狀態(tài):

8088使控制信號(hào)變?yōu)闊o效。如果存儲(chǔ)器工作速度較慢,不能滿足正常工作時(shí)序要求,則須采用一個(gè)產(chǎn)生READY信號(hào)的電路,使8088在T3和T4狀態(tài)之間插入TW狀態(tài)。8088在T3狀態(tài)前沿采樣READY線,若為低,則T3狀態(tài)結(jié)束后插入TW狀態(tài),以后在每一個(gè)TW前沿采樣READY線,直到它變?yōu)楦唠娖?,在TW結(jié)束后進(jìn)入T4狀態(tài)。在TW狀態(tài)8088的控制和狀態(tài)信號(hào)不變,如圖所示。

圖有TW的存儲(chǔ)器讀周期時(shí)序(2)存儲(chǔ)器寫周期存儲(chǔ)器寫周期如下圖所示,也由四個(gè)T狀態(tài)組成,存儲(chǔ)器寫周期和存儲(chǔ)器讀周期的時(shí)序基本類似。圖存儲(chǔ)器寫周期2.48086/8088存儲(chǔ)器的組織和管理

一、存儲(chǔ)器的組織

8086/8088有20根地址線,具有220

1M字節(jié)的存儲(chǔ)器地址空間,其地址范圍為00000~FFFFFH。存儲(chǔ)器按字節(jié)組織,每一個(gè)單元都可存儲(chǔ)一個(gè)字節(jié),每個(gè)存儲(chǔ)單元都有一個(gè)唯一的20位地址編號(hào),這個(gè)地址稱為內(nèi)存單元的物理地址

00000H00001HFFFFFH21000H21001H34H12H偶地址字(規(guī)則字)82001H82002H78H56H奇地址字(非規(guī)則字)讀/寫規(guī)則字需要一個(gè)總線周期讀/寫非規(guī)則字需兩個(gè)總線周期80868086/8088ABCd34000H34001H34002H34003H(1)若存放的數(shù)據(jù)是8位的字節(jié)信息,按順序存放。(2)如果在存儲(chǔ)器中存放一個(gè)字符串(按字節(jié)序列),那么字符串的第一個(gè)字節(jié)放在地址較低的單元中,以后依次存放。(3)任何兩個(gè)相鄰的字節(jié)單元可以存放一個(gè)16位的數(shù)據(jù),稱為一個(gè)字,在一個(gè)字中則將字的低字節(jié)放在低地址中,高字節(jié)放在高地址中。每個(gè)字節(jié)都有一個(gè)字節(jié)地址,低位字節(jié)的地址作為該數(shù)據(jù)字的地址。(4)對(duì)于存放的16位數(shù)據(jù),其低字節(jié)可以在奇數(shù)地址中存放,也可以在偶數(shù)地址中存放。當(dāng)從偶數(shù)地址中存放時(shí),稱為規(guī)則存放,這樣的字稱為規(guī)則字。當(dāng)從奇地址開始存放16位數(shù)據(jù)時(shí),稱為非規(guī)則存放,這樣的字稱為非規(guī)則字。8086中訪問字節(jié)的指令也有訪問字的指令,不論讀存儲(chǔ)器還是寫存儲(chǔ)器,每次總是進(jìn)行16為操作。當(dāng)執(zhí)行訪問字節(jié)指令時(shí),只用了8位,另外8位則被忽略了。對(duì)于16位的字如果第一個(gè)字節(jié)是從偶地址開始存放的,即規(guī)則字,可以通過一次訪問其功能。對(duì)于非規(guī)則字,CPU必須讀寫兩個(gè)連續(xù)的偶地址字,兩次訪問存儲(chǔ)單元,每次都忽略掉不需要的半個(gè)字,并對(duì)剩下的兩個(gè)字節(jié)進(jìn)行某種形式的字節(jié)顛倒。于是讀/寫偶地址字的指令讀/寫操作只需訪問一次存儲(chǔ)器(一個(gè)總線周期);而讀/寫奇地址的字的指令則必須兩次訪問存儲(chǔ)器(兩個(gè)總線周期)分別地取它所需要的那半個(gè)字,并進(jìn)行某種形式的字節(jié)調(diào)整,以形成指令所需要的字。8088的外部數(shù)據(jù)總線是8位的,所以8088總是以字節(jié)為單位訪問內(nèi)存。取指令也是一個(gè)總線周期讀取一個(gè)字節(jié)的指令代碼。2.48086/8088存儲(chǔ)器的組織和管理

1.8086系統(tǒng)中存儲(chǔ)器的結(jié)構(gòu)

8086系統(tǒng)中,將1M字節(jié)的存儲(chǔ)空間分成兩個(gè)512K字節(jié)的存儲(chǔ)體,一個(gè)存儲(chǔ)體中包含偶數(shù)地址,另一個(gè)存儲(chǔ)體中包含奇數(shù)地址,兩個(gè)存儲(chǔ)體之間采用字節(jié)交叉編址方式,利用A0和實(shí)現(xiàn)對(duì)奇偶存儲(chǔ)體的選擇,A0=0選擇偶存儲(chǔ)體,=0時(shí)選擇奇存儲(chǔ)體,如下圖表所示。圖字節(jié)交叉編址方式圖存儲(chǔ)體與總線的連接A0操作00奇、偶存儲(chǔ)體同時(shí)選擇,讀/寫一個(gè)字01訪問奇地址存儲(chǔ)體,讀/寫高字節(jié)(D15-D8)的信息10訪問偶地址存儲(chǔ)體,讀/寫低字節(jié)(D7-D0)的信息11無操作,數(shù)據(jù)處于高阻狀態(tài)和A0的控制作用2.8088系統(tǒng)中存儲(chǔ)器的結(jié)構(gòu)

8088系統(tǒng)中,可直接尋址的存儲(chǔ)器空間同樣為1M字節(jié),但是整個(gè)1M字節(jié)的存儲(chǔ)空間同屬一個(gè)單一的存儲(chǔ)體,它與總線之間的連接方式如圖所示。8088CPU每訪問一次存儲(chǔ)器只能讀/寫一個(gè)字節(jié)信息,因此8088系統(tǒng)的存儲(chǔ)器中不存在對(duì)準(zhǔn)存放的概念,任何數(shù)據(jù)字都需要兩次訪問存儲(chǔ)器才能完成讀/寫操作。因此,在8088系統(tǒng)中,程序運(yùn)行速度會(huì)比在8086系統(tǒng)中慢些。

二、存儲(chǔ)器的分段

8086/8088系統(tǒng)中,可尋址的存儲(chǔ)器空間達(dá)1M字節(jié),要對(duì)整個(gè)存儲(chǔ)器空間尋址,需要20位長(zhǎng)的地址碼,而機(jī)內(nèi)所有的寄存器都只有16位,只能尋址64K字節(jié)。因此在8086/8088系統(tǒng)中,把整個(gè)存儲(chǔ)空間分成許多邏輯段,這些邏輯段容量最多可為64K字節(jié)。各個(gè)邏輯段之間可以緊密相連,也可以相互重疊(完全重疊或部分重疊),邏輯段可以分為四種類型:代碼段、數(shù)據(jù)段、堆棧段、附加段,如下圖所示。圖存儲(chǔ)器分段示意圖圖存儲(chǔ)器分段示意圖從0000H單元開始,每連續(xù)16個(gè)字節(jié)單元為1個(gè)小段,段起始地址要求為小段的起始地址,其20位物理地址的低4位為0,故可以省略低4位,將高16位地址放入段寄存器中,既得到段地址。

任何一個(gè)物理地址可以唯一地被包含在一個(gè)邏輯段中,也可包含在多個(gè)相互重疊的邏輯段中,只要能得到它所在段的首地址和段內(nèi)的相對(duì)地址,就可對(duì)它進(jìn)行訪問。在8086/8088存儲(chǔ)空間中,把連續(xù)的16字節(jié)存儲(chǔ)空間稱為一節(jié)(Paragraph,也叫小段)。為了簡(jiǎn)化操作,要求各個(gè)邏輯段從節(jié)的起始地址開始,也就是說,保證段首地址的低4位地址碼總是為“0”。于是將段首地址的高16位地址碼稱為“段地址”,把它存放在相應(yīng)的段寄存器中;而段內(nèi)的相對(duì)地址可以用系統(tǒng)中的16位通用寄存器來存放,被稱為“偏移地址”。

三、存儲(chǔ)器中的物理地址和有效地址

在1MB的存儲(chǔ)器里,每一個(gè)存儲(chǔ)單元都有一個(gè)唯一的20位地址,稱為物理地址。

物理地址由段地址和偏移地址構(gòu)成。偏移地址指某一個(gè)存儲(chǔ)單元距離所在段起始地址的單元數(shù),為16位的無符號(hào)數(shù),簡(jiǎn)稱為偏移地址,也稱為有效地址EA,其范圍為0000H—FFFFH。當(dāng)CPU需要訪問存儲(chǔ)器時(shí),必須完成如下的地址運(yùn)算:物理地址

段地址×16

偏移地址這是在CPU的總線接口部件BIU的地址加法器中完成的,其操作如下圖所示。圖物理地址的形成過程表邏輯地址來源操作類型段地址偏移地址正常來源其他來源取指令CS無IP堆棧操作SS無SP存/取變量DSCS,ES,SS有效地址EA取源串DSCS,ES,SSSI存/取目標(biāo)串ES無DI通過BP間接尋址SSCS,ES,SS有效址址EA2.5多處理器系統(tǒng)8086的協(xié)處理器主要有8087、8089數(shù)值數(shù)據(jù)處理器8087:主要是提高系統(tǒng)處理數(shù)值數(shù)據(jù)運(yùn)算能力。輸入/輸出協(xié)處理器8089:主要是提高系統(tǒng)輸入/輸出處理功能。除了完成輸入/輸出操作外,還可以對(duì)傳送的數(shù)據(jù)進(jìn)行交換、校驗(yàn)和比較等多種功能。由于多處理器都掛在同一組公共系統(tǒng)總線上,設(shè)計(jì)多處理器系統(tǒng)時(shí)必須考慮的兩個(gè)問題:(1)多個(gè)處理器對(duì)總線的爭(zhēng)用(2)多個(gè)處理器之間的相互通信最大模式下:多處理器系統(tǒng)的三種基本組態(tài)(1)協(xié)同處理器(2)緊耦合(3)松耦合在協(xié)處理器和緊耦合組態(tài)中,CPI和協(xié)處理器不僅共用存儲(chǔ)器與I/O子系統(tǒng),而且共用相同的總線控制邏輯與時(shí)鐘發(fā)生器,8086/8088是主處理器,而附加處理器是從處理器,總線控制信號(hào)由CPU提供,總線請(qǐng)求信號(hào)來自于CPU連接的附加處理器。松耦合組態(tài)用于中型到大型系統(tǒng),它們包括兩個(gè)或兩個(gè)以上的主處理器8086/8088,并且各個(gè)模塊均有自己的本機(jī)總線控制邏輯、時(shí)鐘以及本機(jī)存儲(chǔ)器與I/O設(shè)備本章問題(1)8086最大模式和最小模式的區(qū)別是什么?(2)什么是總線周期、時(shí)鐘周期、指令周期,總線周期和時(shí)鐘周期的關(guān)系是什么?(3)8086物理地址,偏移地址、段地址三者的關(guān)系是什么?(4)8086總線接口單元有哪些基本組成,執(zhí)行單元有哪些組成?(5)8086和8088的區(qū)別有哪些?引腳,數(shù)據(jù)線地址線,存儲(chǔ)模式,(6)8086/8088最小模式下需幾片8282和幾片8286?8282的作用是什么?8286的作用是什么(7)8086/8088最大模式下需幾片8284,8282、幾片8286、幾片8288,8288的作用是什么?(8)8086從存儲(chǔ)器中讀或?qū)懸粋€(gè)字需要幾個(gè)總線周期?

8088從存儲(chǔ)器中讀或?qū)懸粋€(gè)字需要幾個(gè)總線周期?8088從存儲(chǔ)器中讀或?qū)懸粋€(gè)字節(jié)需要幾個(gè)總線周期?(9)什么叫規(guī)則字?什么叫非規(guī)則字?(10)復(fù)位后內(nèi)部寄存器的狀態(tài)怎樣?(11)最小模式下典型引腳的作用如MN/MX見下頁(yè)NMIRESET

M/IOALEDT/RHLDAHOLDINTR本章作業(yè)2.12.7(1)(3)(5)2.92.13

一、80286微處理器基本結(jié)構(gòu)1.80286CPU的特點(diǎn)

1982年,Intel公司推出了高性能的16位微處理器80286,該芯片內(nèi)部集成了約13萬(wàn)個(gè)晶體管,以8MHz的時(shí)鐘工作,它有68條引腳。與8086相比,80286具有以下特點(diǎn):①它有24根地址線,最多可尋址16MB的實(shí)際存儲(chǔ)空間和64KB的I/O地址空間。②數(shù)據(jù)線和地址線完全分離。在一個(gè)總線周期中,當(dāng)有效數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上的時(shí)候,下一個(gè)總線周期的地址已經(jīng)送到地址總線,形成總線周期的流水作業(yè)。③具有“實(shí)地址方式(RealAddressMode)”和“保護(hù)虛地址方式(ProtectedVirtualAddressMode)”兩種工作方式,分別簡(jiǎn)稱為“實(shí)方式”和“保護(hù)方式”。2.680x86典型微處理器介紹

實(shí)方式:用于向上兼容8086,此時(shí)80286的24根地址線中只有低20位地址有效,其尋址空間和尋址方法與8086完全相同,即8086的應(yīng)用程序不需要修改就可以移到該方式下運(yùn)行,但是速度要快。

保護(hù)方式:該方式下,其24根地址線全部有效,可尋址16MB的實(shí)存空間;通過存儲(chǔ)管理和保護(hù)機(jī)構(gòu),可為每個(gè)任務(wù)提供多達(dá)1GB的虛擬存儲(chǔ)空間和保護(hù)機(jī)制(將每個(gè)任務(wù)的230B=1GB的虛擬地址映射到224B的物理地址中),有力地支持了多用戶、多任務(wù)的操作。④在保護(hù)方式下,80286的存儲(chǔ)管理仍然分段進(jìn)行,每個(gè)邏輯段的最大長(zhǎng)度為64KB,這種方式增加了許多管理功能,其中最重要的功能就是虛擬存儲(chǔ)。就是說,80286的物理存儲(chǔ)空間為16MB,但每個(gè)任務(wù)可使用的邏輯空間卻高達(dá)1GB。

在保護(hù)方式下,那些內(nèi)存裝不下的邏輯段,將以文件形式存在外存儲(chǔ)器中,當(dāng)處理器需要對(duì)它們進(jìn)行存取操作時(shí)就會(huì)產(chǎn)生中斷,通過中斷服務(wù)程序把有關(guān)的程序或數(shù)據(jù)從外存儲(chǔ)器調(diào)入到內(nèi)存,從而滿足程序運(yùn)行的需要。⑤在保護(hù)方式下,80286提供了保護(hù)機(jī)制,它們由硬件提供支持,一般不會(huì)增加指令的執(zhí)行時(shí)間,這些保護(hù)包括:對(duì)邏輯段的操作屬性(可執(zhí)行、可讀、只讀、可寫)和長(zhǎng)度界限(1~64KB)進(jìn)行檢查,禁止錯(cuò)誤的段操作。

為不同程序設(shè)置了四個(gè)特權(quán)級(jí)別(PrivilegeLevel),提供若干特權(quán)級(jí)參數(shù),可讓不同程序在不同的特權(quán)級(jí)別上運(yùn)行。8086系統(tǒng)程序和用戶程序處于同一級(jí)別,并存放在同一存儲(chǔ)空間,所以系統(tǒng)程序有可能遭到用戶程序的破壞。而80286依靠這一機(jī)制,可支持系統(tǒng)程序和用戶程序的分離,并可進(jìn)一步分離不同級(jí)別的系統(tǒng)程序,大大提高了系統(tǒng)運(yùn)行的可靠性。提供任務(wù)間的保護(hù)。80286為每個(gè)任務(wù)提供多達(dá)0.5GB的全局存儲(chǔ)空間,防止錯(cuò)誤的應(yīng)用任務(wù)對(duì)其他任務(wù)進(jìn)行不正常的干預(yù)。2.80286微處理器結(jié)構(gòu)

80286微處理器內(nèi)部結(jié)構(gòu)如下,其內(nèi)部由四個(gè)獨(dú)立的部件組成:執(zhí)行部件(EU)、總線接口部件(BIU)、指令部件(IU)和地址部件(AU)。這四個(gè)獨(dú)立的部件通過內(nèi)部總線進(jìn)行連接,相互配合完成一條指令的執(zhí)行過程。圖80286微處理器內(nèi)部結(jié)構(gòu)

執(zhí)行部件(EU):由地址鎖存器、控制器、算術(shù)邏輯運(yùn)算單元(ALU)和微代碼只讀存儲(chǔ)器等部分組成,負(fù)責(zé)執(zhí)行由指令部件(IU)譯碼后的指令。微代碼只讀存儲(chǔ)器存放的是執(zhí)行部件在執(zhí)行指令時(shí)使用的微程序,執(zhí)行部件不斷地從已經(jīng)譯碼后的指令隊(duì)列中取出指令并執(zhí)行??偩€接口部件(BIU):由地址鎖存器、地址驅(qū)動(dòng)器、協(xié)處理器擴(kuò)展接口、總線控制器、數(shù)據(jù)收發(fā)器、預(yù)取指器和六字節(jié)預(yù)取指令隊(duì)列組成,是CPU與系統(tǒng)之間的高速接口部件,使CPU以最高速率向外部取代碼和讀/寫數(shù)據(jù)。

指令部件(IU):由指令譯碼器和三條已被譯碼的指令隊(duì)列組成。指令部件的作用是不斷地從總線單元BU內(nèi)的預(yù)取指令隊(duì)列中取出指令,譯碼后存放到已被譯碼的指令隊(duì)列中,準(zhǔn)備接受執(zhí)行部件的讀取。

IU的引入進(jìn)一步改善了流水線操作,IU內(nèi)部始終存放著三條已譯碼的指令,執(zhí)行單元EU執(zhí)行的總是這些已譯碼的指令,IU和EU的并行操作,縮短了指令的執(zhí)行時(shí)間,提高處理速度,這種操作被稱為80286的流水操作。地址部件(AU):由地址偏移量加法器、段界限檢查器、段基址寄存器、段容量寄存器、物理地址加法器等組成。地址部件的功能:根據(jù)執(zhí)行部件(EU)的請(qǐng)求,從EU的寄存器中取出尋址信息,形成物理地址,然后把產(chǎn)生的物理地址送到總線接口部件BIU的地址鎖存器和總線驅(qū)動(dòng)器中,所產(chǎn)生的地址是物理存儲(chǔ)器地址或I/O設(shè)備的端口地址。3.80286寄存器的構(gòu)成

80286微處理器的內(nèi)部寄存器分為四組。分別為通用寄存器、段寄存器、狀態(tài)及控制寄存器以及系統(tǒng)表寄存器,它們構(gòu)成了80286基本寄存器集。如下圖所示:圖80286基本寄存器集

(1)通用寄存器通用寄存器有AX、BX、CX、DX、BP、SP、DI、SI等八個(gè)寄存器。(2)狀態(tài)和控制寄存器

①指令指針寄存器IP

用來指示下一條要執(zhí)行指令的偏移地址。②標(biāo)志寄存器FLAG

標(biāo)志寄存器用來記錄由算術(shù)或邏輯運(yùn)算類指令操作結(jié)果所設(shè)置的狀態(tài)以及系統(tǒng)的狀態(tài),該寄存器為16位的寄存器,如下圖所示。圖狀態(tài)標(biāo)志寄存器IOPL:特權(quán)標(biāo)志位。占用D13D12兩個(gè)位,用以指示I/O操作處于0-3特權(quán)層中的哪一層,只使用于保護(hù)方式。NT:嵌套標(biāo)志位。NT=1,表示當(dāng)前執(zhí)行的任務(wù)嵌套在另一個(gè)任務(wù)中,執(zhí)行完該任務(wù)后,要返回到原來的任務(wù)中去,否則,NT=0。該標(biāo)志位只適用于保護(hù)方式。③機(jī)器狀態(tài)字寄存器MSW

機(jī)器狀態(tài)字寄存器用來表示當(dāng)前處理器所處的狀態(tài)。如下圖所示,MSW寄存器是一個(gè)80286中新設(shè)計(jì)的16位寄存器,僅用了其中的四位。圖機(jī)器狀態(tài)寄存器保護(hù)方式允許PE:PE=1,保護(hù)方式允許;PE=0,表示80286被置于實(shí)地址方式。不能被清除,只有通過硬件復(fù)位(RESET)才能從保護(hù)方式返回實(shí)地址方式。監(jiān)督協(xié)處理器MP:協(xié)處理器工作時(shí),MP=1,否則。協(xié)處理器仿真狀態(tài)位EM:當(dāng)MP=0時(shí),協(xié)處理器未工作,若EM=1,表示系統(tǒng)可用軟件仿真協(xié)處理器80287的功能,若EM=0,表示將允許協(xié)處理器操作碼在80287上執(zhí)行。任務(wù)切換位TS:當(dāng)兩個(gè)任務(wù)正在切換時(shí),TS=1,此時(shí),不允許協(xié)處理器工作;當(dāng)兩個(gè)任務(wù)切換完成時(shí),TS=0。80286復(fù)位時(shí),TS被清“0”。對(duì)于機(jī)器狀態(tài)字寄存器中的有效標(biāo)志位,其中的PE位用來使CPU進(jìn)入虛地址保護(hù)方式,其余3位則具有控制協(xié)處理器接口的作用。

(3)段寄存器

80286的段寄存器包括:代碼段寄存器CS、數(shù)據(jù)段寄存器DS、堆棧段寄存器SS、附加段寄存器ES,在程序中四個(gè)段寄存器分別用來指示不同段的起始地址。每個(gè)段寄存器都是16位的,但實(shí)際上每個(gè)段寄存器都是由一個(gè)16位的段選擇器和一個(gè)48位的段高速緩沖寄存器組成,如下圖所示。只有16位的段選擇器可直接進(jìn)行訪問,而高速緩沖寄存器不能被程序直接訪問,其作用是在尋址方式的控制下,參與實(shí)際物理地址的形成。它是80286在實(shí)現(xiàn)存儲(chǔ)器管理功能時(shí)內(nèi)部使用的寄存器。圖80286的段高速緩沖寄存器(4)描述符寄存器和任務(wù)寄存器

80286中的描述符寄存器分為GDTR(全局描述符寄存器)、LDTR(局部描述符寄存器)和IDTR(中斷描述符寄存器),分別用來在虛地址保護(hù)方式下管理相應(yīng)描述符表,這些描述符表為GDT(全局描述符表)、LDT(局部描述符表)、IDT(中斷描述符表)。

TR(任務(wù)寄存器):存放正在執(zhí)行任務(wù)的狀態(tài),用來對(duì)TSS(任務(wù)狀態(tài)段)進(jìn)行尋址。任務(wù)狀態(tài)段用來存放任務(wù)環(huán)境。對(duì)TR寄存器的訪問是由指令LTR、STR來實(shí)現(xiàn)的。

GDTR、IDTR既可以在實(shí)地址方式下使用,也可以在虛地址保護(hù)方式下使用,LDTR、TR只能在虛地址保護(hù)方式下使用。二、80386微處理器基本結(jié)構(gòu)1.80386微處理器結(jié)構(gòu)

80386微處理器是Intel公司于1985年10月推出的一種高性能的32位CPU,其內(nèi)部操作和寄存器都是32位的,采用132個(gè)引腳封裝,數(shù)據(jù)線32條,地址線32條,最初的時(shí)鐘頻率為16Mhz,其運(yùn)算速度可達(dá)3-4MIPs(每秒百萬(wàn)條指令),其內(nèi)部結(jié)構(gòu)如下圖所示。圖80386微處理器內(nèi)部結(jié)構(gòu)示意圖80386由中央處理器(CPU)、存儲(chǔ)器管理部件(MMU)和總線接口部件(BIU)三大模塊組成。

CPU包括指令預(yù)取、指令譯碼、指令執(zhí)行部件;MMU包括分段部件(SU)和分頁(yè)部件(PU);加上BIU部件,這樣80386共有六個(gè)功能部件,六個(gè)功能部件可并行工作,構(gòu)成六級(jí)流水線結(jié)構(gòu)。存儲(chǔ)器管理部件中的分段部件可通過附加尋址部件對(duì)邏輯地址空間進(jìn)行管理,可以實(shí)現(xiàn)任務(wù)之間的隔離,也可實(shí)現(xiàn)指令和數(shù)據(jù)區(qū)的再定位。分頁(yè)部件的功能是管理物理地址空間,把分段部件和指令預(yù)取部件產(chǎn)生的線性地址送到分頁(yè)部件中,并轉(zhuǎn)換為物理地址。每個(gè)段可劃分為1--4KB的頁(yè),為了實(shí)現(xiàn)虛擬存儲(chǔ)系統(tǒng),80386對(duì)于頁(yè)面故障和段故障有完整的再啟動(dòng)功能。2.80386的工作方式

80386有三種工作方式:實(shí)地址方式、保護(hù)虛擬地址方式和虛擬8086方式(VM86方式)。在實(shí)地址方式下,80386就是一個(gè)工作速度極快的8086。實(shí)地址方式主要用于建立處理機(jī)狀態(tài),以便進(jìn)入保護(hù)工作方式。在保護(hù)工作方式下,用戶可使用處理器的復(fù)雜存儲(chǔ)管理、分頁(yè)及特權(quán)功能。在保護(hù)方式下,通過軟件可以實(shí)現(xiàn)任務(wù)切換,進(jìn)入虛擬8086方式。虛擬8086任務(wù)可以被隔離和保護(hù)。3.80386的寄存器結(jié)構(gòu)

80386含有通用寄存器、段寄存器、指令指針、標(biāo)志寄存器、控制寄存器、系統(tǒng)地址寄存器、排錯(cuò)寄存器、測(cè)試寄存器等8類32個(gè)寄存器,它們包括了16位8086和80286的全部寄存器。①通用寄存器、段寄存器、指令指針和標(biāo)志寄存器圖通用寄存器組80386中的標(biāo)志寄存器是名為EFLAGS的32位寄存器。虛擬8086方式標(biāo)志位恢復(fù)標(biāo)志位80386擴(kuò)展的標(biāo)志位是VM和RF,它們的功能是:

虛擬8086方式位VM(Virtual8086Mode):當(dāng)VM=1時(shí),80386轉(zhuǎn)為虛擬8086方式。只能在保護(hù)方式下用IRET指令將VM置1?;謴?fù)標(biāo)志位RF(ResumeFlag):用于調(diào)試寄存器斷點(diǎn)處理。當(dāng)RF=1時(shí),對(duì)執(zhí)行下一條指令而言,一切故障調(diào)試均被忽略,在每條指令(除IRET、POPF、JMP、CALL、INT等指令)成功地完成后RF自動(dòng)清0。4.段寄存器和段描述符寄存器

80386中用六個(gè)16位的段寄存器存放段選擇器值,指示可尋址的存儲(chǔ)空間。在保護(hù)方式下,分段大小在4GB之內(nèi)變化。在實(shí)地址方式下,最大分段固定為64KB。

在任何時(shí)刻,可尋址的6段由段寄存器CS、SS、DS、ES、FS、GS的內(nèi)容確定。CS中的內(nèi)容指示當(dāng)前代碼段;SS指示當(dāng)前堆棧段;DS、ES、FS、GS指示當(dāng)前數(shù)據(jù)段。段寄存器如下圖所示。圖中右邊是段描述符寄存器,每個(gè)描述符寄存器裝有一個(gè)32位的段基地址,一個(gè)32位的段界限值,還有其他段屬性。描述符寄存器與段寄存器一一對(duì)應(yīng)。每當(dāng)訪問存儲(chǔ)器時(shí),段描述符自動(dòng)介入訪問處理,32位的段基地址變成計(jì)算線性地址的一個(gè)分量,32位界限值用于界限檢查操作。不必去查表而得到段基地址,從而加快了存儲(chǔ)器訪問速度。圖80386段寄存器和段描述符寄存器三、80486微處理器

80486微處理器是在80386微處理器的基礎(chǔ)上改進(jìn)并發(fā)展起來的32位機(jī)。內(nèi)部寄存器和數(shù)據(jù)總線寬度都是32位,地址總線也是32位,使得可尋址的內(nèi)存空間達(dá)到4GB。虛擬內(nèi)存空間達(dá)到64TB。80486CPU將浮點(diǎn)運(yùn)算部件(FPU)、8KB高速緩沖(Cache)存儲(chǔ)器等集成在一塊芯片內(nèi)。

80486微處理器采用了一些新技術(shù),如:RISC---ReducedInstructionSetComputer(精減指令集計(jì)算機(jī))

溫馨提示

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