第2章微處理器系統(tǒng)_第1頁
第2章微處理器系統(tǒng)_第2頁
第2章微處理器系統(tǒng)_第3頁
第2章微處理器系統(tǒng)_第4頁
第2章微處理器系統(tǒng)_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章8086/8088微處理器系統(tǒng)2.18086/8088CPU2.1.18086/8088的功能結構圖2-13總線接口單元和執(zhí)行單元

1.總線接口單元BIU

總線接口單元BIU的功能是對外電路提供三組總線,實現CPU與存儲器、I/O端口之間地址信號、數據信號和控制/狀態(tài)信號的傳送。BIU承擔的具體任務是:根據CS和IP的值計算下一條將要執(zhí)行指令的物理地址;經由總線控制電路發(fā)出的地址信息選中存儲器某一單元或某一I/O端口,以及相應的讀/寫控制信號;經數據總線完成8/16位數據的讀/寫。在取指令階段,把從存儲單元取出的指令字節(jié)送指令隊列寄存器。

BIU內部結構由三部分組成:第一部分是20位地址加法器和4個16位段寄存器CS、DS、SS、ES,功能是計算并生成20位指令操作碼的物理地址;第二部分是總線控制邏輯電路,是三態(tài)門控制的三組總線輸入/輸出電路,是CPU與外界聯(lián)系的惟一通道;第三部分是指令隊列寄存器,是按照“先入先出”工作原則組織起來的一組寄存器,用于順序存放指令代碼。8086的指令隊列為6個字節(jié),8088的指令隊列為4個字節(jié)??偩€控制電路從存儲器取得的指令字節(jié),依次進入指令隊列。指令隊列操作規(guī)則為:當指令隊列中有1個指令字節(jié)后,該字節(jié)就能進入EU實施指令譯碼并執(zhí)行;指令隊列中空出2個(對于8086)或空出1個(對于8088)字節(jié)時,BIU自動去存儲器取指令字節(jié)(稱為“取指”),直至填滿為止;在順序控制程序執(zhí)行中,BIU取指是不需要EU提出任何請求的,并且每一次都能取2個字節(jié),在一個總線周期內完成一個規(guī)則字的操作。如果遇到程序轉移指令,EU將向BIU發(fā)出轉移信息,BIU將到轉移目標去取指。當轉移到一個以奇數地址開始的存儲單元時,BIU會自動地從這個奇數地址取一個字節(jié),然后從其后的偶數地址開始,按規(guī)則字取指令字節(jié)。與此同時,指令隊列中原有的待執(zhí)行指令字節(jié)會全部被清除,裝入轉移指令目標地址的指令代碼,實現程序的轉移。由于指令隊列中至少總有1個指令字節(jié),因此EU執(zhí)行指令和BIU從存儲器去取指令字節(jié)就可以同時進行。EU在執(zhí)行指令時,如果指令要求對存儲器或I/O設備存取數據,那么BIU將在現行取指周期完成后的下一個總線周期,對存儲器或I/O設備開展存取操作,傳送的數據代碼經BIU送至EU。當BIU不使用系統(tǒng)總線時,系統(tǒng)總線可以供微機系統(tǒng)其它邏輯部件使用。

2.執(zhí)行單元EU

執(zhí)行單元EU的功能是解釋并執(zhí)行指令。EU由控制單元電路、算術邏輯單元、CPU內部通用寄存器組三部分組成??刂茊卧娐酚米鲗⒅噶铌犃腥淼闹噶钭止?jié)進行譯碼并形成各種定時控制號,它能對EU的各個邏輯電路實施特定的定時操作;算術邏輯單元用于實現算術邏輯運算、尋址時有效地址的計算;CPU內部通用寄存器組用于存放參加運算的操作數、運算結果及運算結果的標志,以及存放存儲單元邏輯地址的偏移量。它包括10個16位寄存器AX、BX、CX、DX、SP、BP、SI、DI、IP、FLAGS。

8086CPU內部除指令隊列總線為8位外,其余內部數據總線均為16位。2.1.28086/8088寄存器的結構圖2-148086/8088寄存器

通用寄存器(General-PurposeRegister)共8個,分為三組。

(1)數據寄存器:數據寄存器有4個,分別為累加器AX、基址寄存器BX、計數寄存器CX和數據寄存器DX。每個數據寄存器又可以分為高字節(jié)H和低字節(jié)L,作8位數據寄存器單獨使用。通用寄存器的功能有兩個:其一為通用功能,用于算術邏輯運算中存放操作數或操作結果;其二為專用于隱含使用功能,如表2-3所示。表2-3通用寄存器的隱含使用(2)指針類寄存器:指針類寄存器有兩個,分別為堆棧指針SP和基址指針BP。它們和SS配對使用,用于存放堆棧段中某一存儲單元邏輯地址偏移量。它們的區(qū)別是:SP存放堆棧段棧頂地址的偏移量,每次出(入)棧后,SP將自動加(減)2;BP存放堆棧段中一個數據區(qū)基地址的偏移量,每次出(入)棧后,BP不變。(3)變址類寄存器:變址類寄存器有兩個,分別是源變址寄存器SI和目的變址寄存器DI。它們的功能與指令類型有關。在數據傳送類指令中,它們和DS配對使用,用于存放數據段中某一存儲單元邏輯地址偏移量。在串操作指令中,它們有明顯的區(qū)別:SI和DS配對使用,用作源操作數邏輯地址偏移量,允許段跨越;DI和ES配對使用,用作目的操作數邏輯地址偏移量,不允許段跨越。SI和DI作數據寄存器使用時,只能以字為單位進行操作。

(4)段寄存器(SegmentRegister)共4個,分別是CS(代碼段)、DS(數據段)、SS(堆棧段)、ES(附加段),用于存放各段基址。

控制寄存器(ControlRegister)共2個,分別是指令指針I(yè)P和標志寄存器FLAGS。IP中存放著BIU要取的下一條指令字節(jié)的邏輯地址偏移量。在指令字節(jié)取出后,IP將自動加1,指向下一條指令字節(jié)的地址。IP的值不能用數據傳送指令賦予。轉移類指令可以改變IP的值,使程序朝轉移的目標執(zhí)行。FLAGS用于存放算術邏輯運算結果的狀態(tài)以及控制指令操作的動向,在8086/8088中,只用了9位,如圖2-15所示,各位定義如表2-4所示。9個標志位分為兩大類:狀態(tài)標志位6個,控制標志位3個。圖2-158086/8088標志寄存器FLAGSD1、D3、D5和D12~D15沒有使用。表2-4標志位定義2.28086/8088存儲器2.2.1規(guī)則存放和非規(guī)則存放

只有8086存儲器才有規(guī)則存放和非規(guī)則存放的概念。

多字節(jié)數據從偶數地址開始存放,稱為規(guī)則存放;從奇數地址開始存放,稱為非規(guī)則存放。例如在圖2-1所示的存儲器中,存放在32368H單元的字數據9AB1H就屬于規(guī)則存放,該字也叫規(guī)則字,因為地址32368H為偶數。0B156H是非規(guī)則字,9AB1H和0B156H發(fā)生了重疊存放。圖2-1規(guī)則字、非規(guī)則字的存放與重疊2.2.21MB內存的分體結構和尋址為了方便(既能進行字節(jié)操作又能進行字操作),8086的1MB存儲空間分成了兩個512KB的存儲體,又稱為存儲庫。其中偶數地址的512K個存儲單元命名為偶數存儲體(低位存儲庫);奇數地址的512K個存儲單元命名為奇數存儲體(高位存儲庫)。每個庫的存儲容量為219×8位,有19條地址線A18~A0和8條數據線D7~D0。每個庫都有1條芯片選擇線CS(ChipSelect)供選中本庫使用。當CS=0時本庫被選中,可供CPU讀/寫;當CS=1時本芯片與CPU的三總線斷開,CPU無法讀/寫。8086CPU為了實現對兩個庫的選中和讀/寫,三組總線之間應當采用如下的接法:CPU的地址總線A19~A1接庫的地址線A18~A0。CPU的A0接低位庫CS的端(A0=0時正好選中偶數存儲體,可讓CPU進行低位字節(jié)操作);另外使用1條CPU的控制線BHE(ByteHighEnable,高位字節(jié)允許)接高位庫的CS端(BHE=0低電平有效時,恰好奇數存儲體選中,可讓CPU進行高位字節(jié)操作)。CPU數據總線的高8位D15~D8接高位庫的數據線D7~D0

;CPU數據總線的低8位D7~D0接低位庫的數據線D7~D0。8086存儲器連接圖如圖2-3所示。圖2-380861MB存儲器分體結構CPU通過地址線A0和控制線BHE進行尋址。在執(zhí)行字節(jié)操作時,如果操作數在偶數存儲單元中,則8086CPU的A0端輸出0,選中低位庫;BHE輸出1,斷開高位庫。隨后由A19~A1發(fā)出地址信號選中低位庫中某一存儲單元,在讀/寫命令(圖中未畫出)控制下經CPU的D7~D0完成字節(jié)數據的傳送。?如果字節(jié)操作數在奇數存儲單元中,則有BHE=0選中高位庫,A0=1斷開低位庫,CPU的D7~D0不起作用,而由D15~D8傳送字節(jié)數據。BHE和A0對存儲體的選擇功能如表2-1所示。表2-18086存儲器高低位庫選擇CPU執(zhí)行字操作時,要區(qū)分是規(guī)則字還是非規(guī)則字。規(guī)則字的低位字節(jié)存放在低位庫的偶數地址中,高位字節(jié)存放在緊跟其后的高位庫的奇數地址中。訪問規(guī)則字時,CPU的A0端和BHE端同時輸出0,高低位庫同時被選中。在一個總線周期內,低位庫的數據經D7~D0傳送;高位庫的數據經D15~D8傳送,從而完成一個字的讀/寫操作。

如果是非規(guī)則字,則其低位字節(jié)存放在高位庫的奇數地址中,高位字節(jié)存放在緊隨其后的低位庫偶數地址中。一個字的讀/寫操作需要兩個總線周期才能完成。在第1個總線周期內,CPU發(fā)出BHE=0,A0=1的信號,選中低位字節(jié)所在的高位庫,經D15~D8傳送低位字節(jié)。在第2個總線周期內,CPU發(fā)出BHE=1,A0=0的信號,選中高位字節(jié)所在的低位庫,經D7~D0傳送高位字節(jié)。8086的1MB存儲器采用分體結構,為規(guī)則字的讀/寫在1個總線周期內完成創(chuàng)造了條件。2.2.3存儲器分段組織

存儲單元的數量太多,為了使用和管理方便,將存儲器分段是一種行之有效的方法。只不過不同微機系統(tǒng)的存儲器,分段的方法不相同,段的大小沒有統(tǒng)一的規(guī)定。8086/8088系統(tǒng)中1段長度最大為64KB,含有64K=65536個連續(xù)存儲單元。

【例2-1】設64KB為1段,8086/80881?MB內存可分為首尾相連且互不重疊的多少段?解可以分為1MB/64KB=16段,如圖2-5所示。圖2-5段劃分圖2-64段劃分圖2-764KB段內地址

每段第1個存儲單元的地址叫做段的首址,或起始地址。不是任意一個存儲單元都能充當首址,只有低4位為0的那些存儲單元才有資格成為首址,即00000H、00010H、00020H、…、FFFF0H等。這些單元共有1?MB/16?B=65536個。

首址的高16位叫做段的基址,在8086/8088CPU中,設置了4個16位段寄存器CS、DS、SS和ES,分別用于存放代碼段、數據段、堆棧段和附加段的基址。程序將從4個段寄存器指出的邏輯段中實施指令操作。如果要從其它段而不是當前段中存取信息,必須首先要找到操作段寄存器的值,然后到該段中去尋找操作數。2.2.4物理地址和邏輯地址

物理地址又叫實際地址,是存儲單元按順序依次排列的實際存在地址。每個存儲單元的物理地址是惟一的,使用20位二進制數或5位十六進制數表示。1MB存儲器有1048576個存儲單元,物理地址編號為00000H~FFFFFH??紤]到16位微機中寄存器為16位,要表示20位物理地址,常常改用邏輯地址表示。邏輯地址是使用16位段基址和16位偏移量表示的地址,記為“段基址:偏移量”。物理地址和邏輯地址之間的關系為物理地址=段基址×10H+偏移量把段基址左移4位,低4位補0,再加上偏移量,得到該單元的物理地址。如圖2-8所示。圖2-8物理地址和邏輯地址【例2-2】設某單元所在段的基址是C018H,偏移量是FE7FH,該單元的邏輯地址是C018H:FE7FH,物理地址=C0180H+FE7FH=CFFFFH,如圖2-9所示。

一個存儲單元的物理地址對應多個邏輯地址,例如01234H存儲單元,其邏輯地址既可以表示為0100H:0234H,也可以表示為0120H:0034H,如圖2-10所示。圖2-9C018H:FE7FH單元圖2-10邏輯地址【例2-3】把邏輯地址5182H:A1F4H存放在內存20B56H單元,存儲圖為【例2-4】設字數據5ABFH放在數據段3E613H單元中,數據段基址為3E5DH,現在要求把字數據5ABFH的物理地址3E613H存入10028H單元,畫出存儲圖。解

20位物理地址不宜直接存放在存儲器中,應改用邏輯地址存放。偏移量=3E613H-3E5DH×10H=0043H將3E5DH:0043H存入,存儲圖為【例2-5】8086某存儲單元地址為5182H:A1F4H,問該單元所處段的首單元和末單元的物理地址是多少?解首單元物理地址:51820H。末單元物理地址:51820H+FFFFH=6181FH?!纠?-6】某數據區(qū)起始地址為5182H:A1F4H,該數據區(qū)由20個字組成,問該數據區(qū)的首單元和末單元物理地址是多少?第20個字存放在哪個單元中?是規(guī)則存放還是非規(guī)則存放?解數據區(qū)首單元物理地址=5182H×10H+A1F4H=5BA14H

數據區(qū)末單元物理地址=5BA14H+27H=5BA3BH

第20個字存放在5BA3AH單元,為規(guī)則存放。

當把一個存儲單元的邏輯地址存放在內存中時,應當遵循兩條原則:其一,偏移量進入低地址,段基址進入高地址;其二,低字節(jié)進入低地址,高字節(jié)進入高地址。表2-2邏輯地址中的段寄存器和偏移量寄存器注:主存中的有效地址EA的構成=BX/BP+DI/SI+8/16位偏移量。EA包含的成分不同則尋址方式不同。2.2.5段寄存器的初始化

段寄存器的值除了CS外,都必須在程序一開始用數據傳送指令送入。給寄存器賦值可以建立起該邏輯段,便于后面的操作使用。在程序中間,也可以給已經賦過值的DS、SS、ES再次使用數據傳送指令賦值,重新建立一些新段,這種做法稱為再定位。

CS的值不能用數據傳送指令寫在程序中。當執(zhí)行一個編制好的程序前,微機會自動給CS和IP賦一個合適的值。在執(zhí)行轉移類、中斷類指令時,微機會把指令格式指定的值賦給CS和IP。在復位時,CS自動成為FFFFH,IP自動成為0000H。2.3堆棧操作圖2-11堆棧示意圖堆棧按照先入后出的原則工作,SP指針總是指向棧頂?!纠?-7】設SS=3000H,SP=2000H,DX=4A86H。將DX推入堆棧及將堆棧內容彈出到SI和DI操作示意如圖2-12所示。圖2-12入(出)棧及SP的自動減(加)2功能2.48086/8088功能引線和引腳表2-58086功能引線和引腳2.4.18086/8088引腳名稱和信號

8086/8088采用40條引腳DIP(雙列直插)封裝,引腳分配如圖2-16所示。8086CPU使用的時鐘脈沖頻率按型號不同有3種:8086用5MHz,8086-1用8MHz,8086-2用10MHz。8088CPU使用的時鐘脈沖頻率為4.77MHz,基本總線周期為4個T狀態(tài),平均每秒可執(zhí)行65萬條指令。圖2-168086/8088引腳分配(括號內為最大方式引腳)2.4.28086/8088引腳功能表2-68086CPU引腳定義表2-68086CPU引腳定義1.地址/數據總線AD15~AD0AD15~AD0是分時復用的雙重總線。在每個總線周期開始的第1個時鐘周期T1時,傳送存儲單元或I/O端口的低16位地址,AD15~AD0作地址總線使用。在T2時鐘周期內成為浮置或高阻狀態(tài),為傳送數據信號做準備。在T3時鐘周期內用于雙向傳送16位數據信號。在T4時鐘周期結束總線周期。地址信號為三態(tài)輸出信號,由CPU發(fā)往存儲器或I/O端口作尋址用。地址總線為單向總線。數據信號為三態(tài)雙向信號,在CPU與存儲器、I/O端口之間傳送。傳送方向是由存儲器、I/O端口送至CPU,還是由CPU送至存儲器、I/O端口,由CPU發(fā)出的讀/寫命令決定。數據總線為雙向總線。

地址總線和數據總線以及其它一些功能線分時復用的設計思路,使得8086/8088能夠用40條引腳實現73種功能。但由此帶來的問題是,必須采用地址鎖存的方式鎖存住僅在T1時鐘周期內出現的地址信號。為此8086/8088需要一條控制線ALE和地址鎖存器芯片,例如74LS373/8282等。在不采用分時復用的CPU中,就可以不要ALE及鎖存器芯片了。2.地址/狀態(tài)總線A19/S6~A16/S3A19/S6~A16/S3是分時復用的雙重總線。在T1時鐘周期內傳送存儲單元的高4位地址,與A15~A0組成20位物理地址;I/O端口操作中置“0”。在T2時鐘周期內成為浮置或高阻狀態(tài),為輸出狀態(tài)信號S6~S3做準備。在T3時鐘周期內輸出S6~S3三態(tài)信號,在T4時鐘周期用作結束總線周期。

S6~S3用于指示CPU的狀態(tài)信息。其中S6恒為低電平,表示8086/8088當前與總線連通;S5用于指出中斷允許標志狀態(tài)位IF的當前值;S4S3編碼表示當前正在使用哪個段寄存器,見表2-7。當系統(tǒng)總線處于“保持響應”狀態(tài)時,S6~S3被浮置成高阻狀態(tài)。表2-7S4S3編碼表8086/8088有20條地址總線,用于訪問存儲器時,可尋址220B=1MB存儲單元;訪問I/O設備時,可用低16位A15~A0尋址216=64K個I/O端口,或用低8位A7~A0尋址28=256個I/O端口。

3.控制總線

(1)MN/MX:最小/最大方式控制線,用于控制8086/8088的工作方式。當MN/MX接+5V時,8086/8088處于最小工作方式,由8086CPU提供系統(tǒng)所需的所有控制信號,8282提供地址信號,8086或8286提供數據總線驅動信號;當MN/MX接地時,8086/8088處于最大工作方式,由8288提供系統(tǒng)所需的所有控制信號,8282提供地址信號,8286提供或接收數據信號,此外還可以根據需要接入協(xié)處理器芯片和其它I/O接口電路芯片。在8086/8088的控制總線中,有一部分總線與工作方式無關,有一部分總線與工作方式有關,引腳名稱有所不同。(2)不受MN/影響的控制總線共有7條,分別是BHE/S7、RD、RESET、READY、TEST、NMI和INTR,敘述如下。①BHE/S7:高字節(jié)允許/狀態(tài)S7,三態(tài)輸出信號,分時復用雙重控制線。在總線周期T1時鐘周期內輸出BHE,低電平有效,使讀/寫的8位數據允許在AD15~AD8上傳送。和A0信號配合可實現8086字節(jié)操作或者字操作。在T2時鐘周期內,輸出狀態(tài)S7信號。在DMA方式下,BHE/S7引腳為高阻狀態(tài)。當前8086芯片設計中沒有給狀態(tài)S7賦予定義,作備用。8088的第34腳不是BHE/S7而是SS0(HIGH):最小方式時為SS0,和DT/R、M/IO一起決定了當前總線周期的讀/寫操作;最大方式時恒為高電平。其編碼組合如表2-8所示。表2-88088DT/R與第28、34腳編碼表②RD:三態(tài)輸出“讀”命令信號。當RD=0時,表示CPU要對存儲器、I/O端口執(zhí)行讀操作。是從存儲單元讀取數據還是從I/O端口讀取數據,由控制線M/IO(對8086)或M/IO(對8088)決定。在“讀”操作總線周期內,RD在T2、T3和Tw時鐘周期均是低電平有效,T1時鐘周期因地址鎖存與RD無關,T4時RD無效,恢復總線原狀態(tài)。當系統(tǒng)總線進入“保持響應”周期時,RD被浮置成高阻狀態(tài)。③RESET:復位信號,高電平有效,輸入。外接時鐘發(fā)生器8284復位輸出端,要求復位脈沖寬度不得少于4個時鐘周期,接通電源復位時不能小于50μs。復位后CPU內部寄存器狀態(tài)如表2-9所示。注意CS的復位值為FFFFH,指令指針I(yè)P的復位值為0000H。因此,8086/8088在復位后執(zhí)行的第一條指令代碼,就在內存FFFF0H處。通常從FFFF0H開始放1條無條件轉移JMP指令,轉移到執(zhí)行程序入口地址處。程序正常運行時,RESET引線處于低電平。表2-9復位后內部寄存器狀態(tài)④READY:準備好了信號,高電平有效,輸入。這是一個由存儲器、I/O端口向CPU發(fā)出反映自身狀態(tài)的信號。當READY=0時,表示存儲器、I/O端口還沒有準備好,請CPU處于等待狀態(tài)。CPU在每個總線周期的T3時鐘周期采樣READY引腳,如果檢測到READY為低電平則在T3后插入1個或幾個Tw,直到READY變?yōu)楦唠娖?,才進入T4狀態(tài)。當READY=1時,表示存儲器、I/O端口已經準備好了,立刻允許進行一次數據傳送。T4時鐘周期內完成數據傳送過程,當前總線周期宣告結束。⑤TEST:等待測試信號,低電平有效,輸入。在多處理器環(huán)境下,8086/8088CPU執(zhí)行WAIT指令時,每隔5個時鐘周期采樣TEST引腳。若TEST=0,則表示結束CPU等待,CPU能夠繼續(xù)執(zhí)行下一條指令;若TEST=1,則要求CPU停止取下一條指令進入等待狀態(tài),WAIT指令將被重復執(zhí)行直到TEST=0為止。⑥NMI:非屏蔽中斷請求信號,高電平有效,輸入。使用上升沿觸發(fā),不能用軟件屏蔽,也不受IF標志位的影響。當此信號出現時,CPU在完成當前指令后,轉入執(zhí)行非屏蔽中斷服務程序。⑦?INTR:可屏蔽中斷請求信號,高電平有效,輸入。使用電平觸發(fā),在每條指令的最后一個時鐘周期時,CPU采樣該引腳。若INTR=0,則表示無中斷申請信號出現,CPU繼續(xù)執(zhí)行下一條指令;若INTR=1,則表示有中斷申請信號出現,CPU有可能響應,也可能不響應。當IF=1(可使用STI指令使IF=1)時,CPU將響應中斷,根據中斷類型碼轉入執(zhí)行相應的中斷服務程序;當IF=0(可使用CLI指令使IF=0)時,CPU不響應中斷,繼續(xù)執(zhí)行自己的主程序,不響應中斷又稱為中斷屏蔽。(3)8086/8088CPU第24腳~第31腳在最小方式下和最大方式下工作有不同的控制/狀態(tài)功能。先敘述最小方式下各引腳的控制功能。①INTA:中斷響應信號,低電平有效,輸出。用于CPU對INTR的響應。INTA信號有兩個連續(xù)的負脈沖,其中第1個表示CPU允許中斷源提出的中斷申請;第2個負脈沖讓中斷類型碼放入數據總線,CPU接收到中斷類型碼,經過計算確定中斷服務程序的入口地址,就可以轉入為中斷源服務。整個中斷響應周期內,INTA變?yōu)榈碗娖?。②ALE:地址鎖存允許信號,高電平有效,輸出。在每一個總線周期的T1時鐘周期內由CPU發(fā)出正脈沖,表示AD15~AD0和A19/S6~A16/S3上出現的是地址信號,T1下降沿將地址信號鎖存入地址鎖存器。在T2~T4時鐘周期內為低電平,表示AD15~AD0和A19/S6~A16/S3上出現的是數據和狀態(tài)信號。ALE需要連接地址鎖存器的輸入控制端。圖2-17給出了時鐘脈沖、ALE和AD15~AD0的變化時序。圖2-17地址鎖存③DEN:數據允許信號,低電平有效,三態(tài)輸出。微機系統(tǒng)使用8286/8287作數據總線收發(fā)器時,就是總線收發(fā)器的控制信號。DEN=0時表明允許總線收發(fā)器發(fā)送或接收一個數據,反之不允許發(fā)送或接收。在DMA方式下時被浮置為高阻狀態(tài)。④DT/R:數據發(fā)送/接收信號,高低電平有不同的功能,三態(tài)輸出。用于控制8286/8287數據傳送的方向。DT/R=1時表明數據發(fā)送有效;DT/R=0時表明數據接收有效。在DMA方式下被浮置為高阻狀態(tài)。⑤M/IO:存儲器、I/O端口選擇信號,三態(tài)輸出。對8086,M/IO=1時CPU訪問存儲器;M/IO=0時CPU訪問I/O端口。DMA方式時被浮置為高阻狀態(tài)。8088用M/IO。⑥WR:寫允許信號,低電平有效,三態(tài)輸出。為0時表示CPU在進行寫操作,允許數據從CPU進入存儲器、I/O端口;為1時表示禁止寫。是對存儲器進行寫操作還是對I/O端口進行寫操作,由M/IO控制線決定。在一個寫總線周期內,WR在T2、T3、Tw時鐘周期內有效。DMA方式時被浮置為高阻狀態(tài)。⑤M/IO:存儲器、I/O端口選擇信號,三態(tài)輸出。對8086,M/IO=1時CPU訪問存儲器;M/IO=0時CPU訪問I/O端口。DMA方式時被浮置為高阻狀態(tài)。8088用/IO。⑥WR:寫允許信號,低電平有效,三態(tài)輸出。為0時表示CPU在進行寫操作,允許數據從CPU進入存儲器、I/O端口;為1時表示禁止寫。是對存儲器進行寫操作還是對I/O端口進行寫操作,由M/IO控制線決定。在一個寫總線周期內,WR在T2、T3、Tw時鐘周期內有效。DMA方式時被浮置為高阻狀態(tài)。⑦HLDA:保持響應信號,高電平有效,輸出。當HLDA=1時,表明CPU決定響應其它主模塊對使用總線的請求,CPU所有三態(tài)門引腳呈高阻狀態(tài),讓出總線控制權。⑧HOLD:保持請求信號,高電平有效,輸入。微機系統(tǒng)其它邏輯部件向CPU提出的要求獲得總線控制權的請求信號。為1時表明提出這一申請;為0時表明沒有申請。當有申請時,CPU是否允許,由HLDA信號反映。如果CPU決定讓出總線控制權,則在當前總線周期執(zhí)行過程中的T4時鐘周期內由HLDA引腳發(fā)出響應,提出請求的邏輯部件隨之獲得了總線的控制和使用。HOLD和HLDA在CPU整個讓權過程中始終為高電平。一旦總線請求的邏輯部件使用完畢,將使HOLD和HLDA變?yōu)榈碗娖?,CPU收到HOLD低電平信號,知該邏輯部件放棄了對總線的控制,將重新占有總線。HOLD和HLDA引腳常和數值數據協(xié)處理器8087、I/O協(xié)處理器8089連接,用于傳送總線請求和總線應答信號。(4)最大方式下的控制總線(第24腳~第31腳)各引腳的功能如下。①QS1,QS0:指令隊列狀態(tài)信號,輸出。它們的組合表示本總線周期之前的一個時鐘周期指令隊列的狀態(tài),以便外部協(xié)處理器對8086/8088內部指令隊列進行跟蹤。QS1、QS0的編碼組合如表2-10所示。表2-10QS1、QS0組合編碼表② :總線周期狀態(tài)信號,三態(tài)輸出。表示8086/8088外部總線周期操作類型,如表2-11所示。 連接到總線控制器8288,使8288產生存儲器讀/寫命令,I/O端口讀/寫命令和中斷響應。表2-11操作功能表③LOCK:總線優(yōu)先權鎖定信號,低電平有效,三態(tài)輸出。這個信號用于封鎖微機系統(tǒng)其它邏輯部件對總線的控制權。當LOCK=0時(可使用指令前綴LOCK實現),只有8086/8088CPU才有總線的控制權,其它任何邏輯部件都無法取得總線的控制權。在任何一條指令前加上LOCK指令前綴,該指令一執(zhí)行便有LOCK=0,且整條指令執(zhí)行中LOCK都保持低電平,有效地保證了指令執(zhí)行全過程。在保持響應期間,LOCK為高阻狀態(tài)。④RQ/GT1,RQ/GT0:總線請求/允許信號輸入/輸出,雙向。有效時表明多處理器系統(tǒng)中其它邏輯部件請求使用總線,或者接收CPU對總線請求的響應,其信號特征是請求和響應功能用同一根控制線實現,僅方向相反??偩€訪問的請求/響應時序由請求、響應和支配三個階段完成,如圖2-18所示。協(xié)處理器首先發(fā)出RQ申請,向8086/8088CPU要求占有總線,而CPU在本次總線周期的T4時鐘周期或下一個總線周期的T1時,輸出脈寬為T的GT信號響應協(xié)處理器的申請。從下一個時鐘周期開始,CPU釋放總線,由協(xié)處理器支配總線直至使用結束,結束時協(xié)處理器又有一個脈寬為T的RQ信號送CPU,由CPU恢復占有總線。RQ/GT1,RQ/GT0可以同時接兩個協(xié)處理器,規(guī)定RQ/GT0優(yōu)先級別高。圖2-18總線請求/允許信號4.其它信號VCC:+5V±10%電源,輸入。GND:地線,有2條。CLK:時鐘脈沖輸入,要求占空比為1∶3。2.4.38088CPU與8086CPU的異同表2-128088與8086的不同之處2.58086/8088微機系統(tǒng)2.5.1兩種工作方式下的系統(tǒng)配置表2-13最小配置和最大配置1.最小配置最小配置產生條件為CPU第33腳MN/MX接+5V。最小配置為組成一臺8086/8088微型計算機少得不能再少的系統(tǒng)配置,通常為小型的單處理器系統(tǒng)。典型的最小配置系統(tǒng)結構如圖2-19所示,其中時鐘發(fā)生器8284為CPU提供時鐘脈沖。8282是一個帶三態(tài)門的8級D觸發(fā)器集成芯片,要鎖存20位地址信號和BHE信號,需3片8282。8088CPU只有12位地址信號需要鎖存,所以只需要2片8282。?8286是一片帶三態(tài)雙向的8位數據放大器,且有雙向傳送數據的功能,最小配置時按需要選用,系統(tǒng)帶存儲器極少時可以不要。圖2-19最小方式典型結構

2.最大配置最大配置產生條件為CPU第33腳MN/MX接0V。最大配置為組成一臺多功能8086/8088微型計算機時的系統(tǒng)配置。它的突出特點是擁有2個或3個處理器。為此,系統(tǒng)面臨的是主處理器和協(xié)處理器之間的協(xié)調,以及對總線的分時共享控制。8288總線控制器能夠較好地處理這類問題。典型的最大配置系統(tǒng)結構如圖2-20所示。圖2-20最大方式典型結構2.68086/8088總線操作和工作時序圖2-29指令周期、總線周期和T狀態(tài)2.6.1指令周期、總線周期和時鐘周期

CPU執(zhí)行不同指令所需的時間是不一樣的。原因有兩個方面:其一是指令本身不等長,最短的指令僅有1字節(jié),大部分指令有2字節(jié),最長的指令有7字節(jié)。指令字節(jié)越長,執(zhí)行起來需要的時間也越長。其二是指令中的操作數在不同的地方,有的是立即數,有的在內部寄存器、存儲器或I/O端口中。比較起來,存放在內部寄存器中的操作數就在EU內,因此執(zhí)行速度最快,而在存儲器中的其次,在I/O端口中的最慢。立即數隨指令代碼進入指令隊列等待EU執(zhí)行,也在CPU中,因此也是最快的。從指令執(zhí)行的時間上看,指令的最短執(zhí)行時間是兩

溫馨提示

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

評論

0/150

提交評論