80x86CPU的體系結構課件_第1頁
80x86CPU的體系結構課件_第2頁
80x86CPU的體系結構課件_第3頁
80x86CPU的體系結構課件_第4頁
80x86CPU的體系結構課件_第5頁
已閱讀5頁,還剩120頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

80x86CPU的體系結構圖8086/8088CPU引腳信號一、8086/8088CPU內部編程結構1.功能結構

8086/8088CPU內部結構從功能上可以分為兩部分:

總線接口單元BIU(BusInterfaceUnit):負責完成CPU與存儲器或I/O設備之間的數據傳送。

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

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

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

①數據寄存器AX、BX、CX、DX

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

②地址指針寄存器SP、BP

SP(StackPointer):堆棧指針寄存器。在使用堆棧操作指令(PUSH或POP)對堆棧進行操作時,每執(zhí)行一次進棧或出棧操作,系統(tǒng)會自動將SP的內容減2或加2,以使其始終指向棧頂,與SS聯用。

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

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

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

這兩個寄存器通常用在字符串操作時存放操作數的偏移地址,其中SI存放源串在數據段內的偏移地址,DI存放目的串在附加數據段內的偏移地址。

2.段寄存器

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

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

3.控制寄存器

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

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

CF(CarryFlag):進位標志位。當進行加減運算時,若最高位發(fā)生進位或借位則CF=1,否則為0。通常用于判斷無符號數運算結果是否超出了計算機所能表示的無符號數的范圍。

PF(ParityFlag):奇偶標志位。當指令執(zhí)行結果中含有偶數個1時,PF=1,否則PF=0。

AF(AuxiliaryFlag):輔助進位標志位。當執(zhí)行加法或減法運算指令時,低半部分向高半部分有進位或借位,則AF=1,否則為0。

ZF(ZeroFlag):零標志位。若當前的運算結果為0,則ZF=1,否則為0。

SF(SignFlag):符號標志位。當運算結果的最高位為1時,SF=1,否則為0。

OF(OverflowFlag):溢出標志位。當運算結果超出了帶符號數所能表示的數值范圍,即溢出時,OF=1,否則為0。用來判斷帶符號數運算結果是否溢出。

控制標志位:3位

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

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

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

8086與8088CPU內部結構基本相同,外部采用40條引腳的雙列直插式封裝,如下圖所示引腳信號。

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

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

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

1.各引腳功能

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

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

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

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

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

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

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

(6)INTR(InterruptRequest)可屏蔽中斷請求信號,由外部輸入,高電平有效。INTR有效時,表示外設向CPU提出中斷請求。CPU在每條指令的最后一個時鐘周期對INTR進行采樣,一旦測試到有中斷請求,并且當前中斷允許標志IF

1時,則暫停執(zhí)行下條指令轉入中斷響應周期。

(7)NMI(Non-MaskableInterruptReguest)

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

(8)

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

(9)RESET

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

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

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

二、8086/8088工作模式

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

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

8284A除為CPU和系統(tǒng)提供時鐘信號外,還提供經時鐘同步的復位信號RESET和就緒信號READY。

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

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

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

2.8282/8283地址鎖存器

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

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

DI0-DI7為8位數據輸入端OE為輸出允許信號,低電平有效DO0-DO7為8位數據輸出端STB為選通信號

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

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

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

(1)(InterruptAcknowledge)

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

(2)ALE(AddressLatchEnable)

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

(3)SSO(SystemStatusOutput)

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

(4)(Write)

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

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

(6)HLDA(HoldAcknowlege)

總線保持響應信號,向外部輸出,高電平有效。當CPU接收到HOLD信號后,就在當前總線周期結束時,使HLDA有效,表示響應這一總線請求,并立即讓出總線使用權。CPU中的EU可繼續(xù)工作到下一次要求使用總線為止,一直到HOLD無效,CPU才將HLDA置成無效,并收回對總線的使用權,繼續(xù)操作。

(7)DT/(DataTransmit/Receive)

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

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

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

(三)最大模式

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

(1)S2、S1、S0(BusCycleStatus)

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

(2)LOCK(Lock)

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

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

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

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

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

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

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

(2)總線仲裁器8289

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

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

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

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

(1)8088存儲器讀周期

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

T1狀態(tài):

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

T2狀態(tài):

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

②信號變?yōu)榈碗娖?,和DT/一起作為雙向數據總線驅動器8286的選通信號。打開它的接收通道,使數據線上的信息得以通過它傳送到CPU的AD7~AD0。T3狀態(tài):

CPU在T3的下降沿采樣數據線獲取數據。

T4狀態(tài):

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

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

一、存儲器的組織

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

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

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

1.8086系統(tǒng)中存儲器的結構

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

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

二、存儲器的分段

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

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

三、存儲器中的物理地址和有效地址

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

物理地址由段地址和偏移地址構成。偏移地址指某一個存儲單元距離所在段起始地址的單元數,為16位的無符號數,簡稱為偏移地址,也稱為有效地址EA,其范圍為0000H—FFFFH。當CPU需要訪問存儲器時,必須完成如下的地址運算:物理地址

段地址×16

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

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

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

一、80286微處理器基本結構1.80286CPU的特點

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

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

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

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

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

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

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

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

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

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

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

①指令指針寄存器IP

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

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

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

(3)段寄存器

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

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

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

GDTR、IDTR既可以在實地址方式下使用,也可以在虛地址保護方式下使用,LDTR、TR只能在虛地址保護方式下使用。二、80386微處理器基本結構1.80386微處理器結構

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

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

80386有三種工作方式:實地址方式、保護虛擬地址方式和虛擬8086方式(VM86方式)。在實地址方式下,80386就是一個工作速度極快的8086。實地址方式主要用于建立處理機狀態(tài),以便進入保護工作方式。在保護工作方式下,用戶可使用處理器的復雜存儲管理、分頁及特權功能。在保護方式下,通過軟件可以實現任務切換,進入虛擬8086方式。虛擬8086任務可以被隔離和保護。3.80386的寄存器結構

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

虛擬8086方式位VM(Virtual8086Mode):當VM=1時,80386轉為虛擬8086方式。只能在保護方式下用IRET指令將VM置1?;謴蜆酥疚籖F(ResumeFlag):用于調試寄存器斷點處理。當RF=1時,對執(zhí)行下一條指令而言,一切故障調試均被忽略,在每條指令(除IRET、POPF、JMP、CALL、INT等指令)成功地完成后RF自動清0。4.段寄存器和段描述符寄存器

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論