第四章 16位微處理器_第1頁
第四章 16位微處理器_第2頁
第四章 16位微處理器_第3頁
第四章 16位微處理器_第4頁
第四章 16位微處理器_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章16位微處理器

微處理器(Microprocessor)是微機的運算及控制部件,也稱中央處理單元(CPU)。它本身不構成獨立的工作系統(tǒng),因而它不能獨立地執(zhí)行程序。通常,微處理器由算術邏輯部件(ALU)、控制部件、寄存器組和片內(nèi)總線等幾部分組成,這些都在前面幾章中講過了有了一定的基礎。4.116位微處理器概述2023/2/214.28086/8088CPU的結構8086CPU從功能上可分為兩部分,即:總線接口部件BIU(Bus1nterfaceUnit)和執(zhí)行部件EU(ExecutionUnit)。8086的內(nèi)部結構如圖4-1所示.2023/2/22圖4-18086CPU內(nèi)部結構框圖2023/2/231.執(zhí)行部件

執(zhí)行部件(EU)的功能就是負責指令的執(zhí)行。將指令譯碼并利用內(nèi)部的寄存器和ALU對數(shù)據(jù)進行所需的處理。從結構圖4-1中,可見到執(zhí)行部件由下列部分組成:1)四個通用寄存器,即AX、BX、CX、DX;2)四個專用寄存器,即基數(shù)指針寄存器BP,堆棧指針寄存器SP,源變址寄存器SI,目的變址寄存器DI;3)標志寄存器(FR);4)算述邏輯部件(ALU)。2023/2/248086/8088的EU有如下特點:

1、四個通用寄存器既可以作為16位寄存器使用,也可以作為8位寄存器使用。當BX寄存器作為8位寄存器時,分為BH和BL、BH為高8位,BL為低8位。

2.AX寄存器也常稱為累加器,8086指令系統(tǒng)中有許多指令都是通過累加器的動作來執(zhí)行的。當累加器作為16位來使用時,可以進行按字乘操作、按字除操作、按字輸入/輸出和其它字傳送等;當累加器作為8位來使用時,可以實現(xiàn)按字節(jié)乘操作、按字節(jié)除操作、按字節(jié)輸入輸出和其它字節(jié)傳送,以及十進制運算等。2023/2/25

3.加法器是算術邏輯的主要部件,絕大部分指令的執(zhí)行都由加法器來完成。

4.標志寄存器FR共有16位,其中7位未用,所用的各位含義如下:

根據(jù)功能,8086的標志可分為兩類:狀態(tài)標志——它是操作在執(zhí)行后,決定算術邏輯部ALU處在何種狀態(tài),這種狀態(tài)會影響后面的操作。控制標志——它是人為設置的,指令系統(tǒng)中有專門的指令用于控制標志的設置和清除,每個控制標志都對每一種特定的功能起控制作用。2023/2/26

狀態(tài)標志有六個,即SF、ZF、PF、CF、AF和OF。表4-18086/8088標志位表:

2023/2/272.總線接口部件BIU

總線接口部件的功能是負責與存儲器、I/O端口傳送數(shù)據(jù),即BIU管理在存儲器中存取程序和數(shù)據(jù)的實際處理過程。

總線接口部件由下列各部分組成:

(1)四個段地址寄存器,即

CS一16位代碼段寄存器,

DS一16位數(shù)據(jù)段寄存器,

ES一16位附加段寄存器,

SS一16位堆棧段寄存器。

(2)16位指令指針寄存器IP;

(3)20位的地址加法器;

(4)六字節(jié)的指令隊列。

2023/2/28

IP:指令指針寄存器。存放下一條要讀取的指令在代碼段內(nèi)的偏移地址。用戶程序不能直接訪問IP。注意PC與IP的區(qū)別。在程序執(zhí)行過程中,PC始終指向下一條要執(zhí)行的指令。因此可得結論:PC中的地址是需要轉移、循環(huán)、調用子程序等操作時的斷點。

8086CPU中有兩個功能部件,即總線接口部件BIU和執(zhí)行部件EU,BIU負責取指令,EU負責譯碼執(zhí)行。當BIU執(zhí)行的六個字節(jié)裝滿后,EU開始從出棧口取指令進行譯碼執(zhí)行,同時BIU并行操作向入棧口補充一條取指令命令。指令指針I(yè)P則指向下條要取指的指令。而斷點則應是要執(zhí)行的指令內(nèi)存地址,而不是IP內(nèi)的下一條要取指的指令地址,且IP比斷點超前了六個字節(jié)。由此可得結論:IP中并不是需要作轉移、循環(huán)等操作時的斷點。2023/2/29

8086/8088的BIU有如下特點:1·8086的指令隊列為六個字節(jié),8088的指令隊列為四個字節(jié)。不管是8086還是8088,都會在執(zhí)行指令的同時,從內(nèi)存中取下一條指令或下幾條指令,取來的指令就放在指令隊列中。這樣,一般情況下,CPU執(zhí)行完一條指令就可以立即執(zhí)行下一條指令,而不需要象以往的計算機那樣,讓CPU輪番進行取指令和執(zhí)行指令的操作,從而提高了CPU的效率。2023/2/2102·地址加法器用來產(chǎn)生20位地址。上面已經(jīng)提到,8086可用20位地址尋址:1M字節(jié)的內(nèi)存空間,但8086內(nèi)部所有的寄存器都是16位的,所以需要由一個附加的機構來根據(jù)16位寄存器提供的信息計算出20位的物理地址,這個機構就是20位的地址加法器。

例如,一條指令的物理地址就是根據(jù)代碼段寄存器CS和指令指針寄存器IP的內(nèi)容得到的。具體計算時,要將段寄存器的內(nèi)容左移4位,然后再與IP的內(nèi)容相加。假設:CS=0FE00H,IP=0400H,此時指令的物理地址為0FE400H。2023/2/211

總線接口部件和執(zhí)行部件并不是同步工作的,它們是按以下流水線技術原則管理:

(1)每當8086的指令隊列中有兩個空字節(jié),或者8088的指令隊列中有一個空字節(jié)時,總線接口部件就會自動把指令取到指令隊列中。

(2)每當執(zhí)行部件準備執(zhí)行一條指令時,它會從總線接口部件的指令隊列前部取出指令的代碼,然后用幾個時鐘周期去執(zhí)行指令。在執(zhí)行指令的過程中,如果必須訪問存儲器或者輸入/輸出設備,那么,執(zhí)行部件就會請求總線接口部件,進入總線周期,完成訪問內(nèi)存或者輸入/輸出端口的操作;如果此時總線接口部件正好處于空閑狀態(tài),那么,會立即響應執(zhí)行部件的總線請求。2023/2/212

但有時會遇到這樣的情況,執(zhí)行部件請求總線接口部件訪問總線時,總線接口部件正在將某個指令字節(jié)取到指令隊列中,此時總線接口部件將首先完成這個取指令的總線周期,然后再去響應執(zhí)行部件發(fā)出的訪問總線的請求。

(3)當指令隊列已滿,而且執(zhí)行部件又沒有總線訪問時,總線接口部件便進入空閑狀態(tài)。2023/2/213

(4)在執(zhí)行轉移指令、調用指令和返回指令時,下面要執(zhí)行的指令就不是在程序中緊接著的那條指令了,而總線接口部件往指令隊列裝人指令時,總是按順序進行的,這樣,指令隊列中已經(jīng)裝入的字節(jié)就沒有用了。遇到這種情況,指令隊列中的原有內(nèi)容被自動消除,總線接口部件會接著往指令隊列中裝入另一個程序段中的指令。2023/2/214

3.存儲器結構

8086/8088系統(tǒng)中存儲器按字節(jié)編址,可尋址的存儲器空間為1M字節(jié),由于1M字節(jié)為220,因此每個字節(jié)所對應的地址應是20位,這20位的地址稱為物理地址。

(1)存儲器的分段20位的物理地址在CPU內(nèi)部就應有20位的地址寄存器,而機內(nèi)的寄存器是16位的(16位機),16位寄存器只能尋址64K字節(jié)。8086/8088系統(tǒng)中把1M存儲空間分成若干個邏輯段,每個邏輯段容量(64K字節(jié)),因此1M的存儲空間可分成16個邏輯段(0一15)。

2023/2/215

允許邏輯段在整個存儲空間浮動,即段與段之間可以部分重疊、完全重疊、連續(xù)排列、斷續(xù)排列非常靈活,在整個存儲空間中可設置若干個邏輯段,如圖4-2所示。2023/2/216

對于任何一個物理地址,可以唯一地被包含在一個邏輯段中,也可包含在多個相互重疊的邏輯段中,只要有段地址和段內(nèi)偏移地址就可以訪問到這個物理地址所對應的存儲空間,如圖4-3所示。

在8086/8088存儲空間中,把16字節(jié)的存儲空間稱作一節(jié)(Paragraph)。為了簡化操作,要求各個邏輯段從節(jié)的整數(shù)邊界開始,也就是說段首地址低4位應該是“0”,因此就把段首地址的高16位稱為“段基址”,存放在段寄存器DS或CS或SS或ES中,段內(nèi)的偏移地址存放在IP或SP中。2023/2/217

若已知當前有效的代碼段、數(shù)據(jù)段、附加段和堆棧段的段基址分別為1055H、250AH、8FFBH和EFF0H,那么它們在存儲器中的分布情況如圖4-4所示。2023/2/218(2)存儲器中的邏輯地址和物理地址

任何一個20位物理地址,也稱為絕對地址,都是由兩部分組成。采用分段結構的存儲器中,任何一個邏輯地址由段基址和偏移地址兩個部分構成,它們都是無符號的16位二進制數(shù)。任何一個存儲單元對應一個20位的物理地址,也可稱為絕對地址,它是由邏輯地址變換得來的,當CPU需要訪問存儲器時,必須完成如下的地址運算:

物理地址=段基址*16+偏移地址

2023/2/219

物理地址的形成如圖4-5所示,它是通過CPU的總線接口部件BIU的地址加法器來實現(xiàn)的。2023/2/220

例如,代碼段寄存器CS=2000H,指令指針寄存器存放的是偏移地址IP=2200H,存儲器的物理地址為20000H+2200H=22200H

我們可以把每一個存儲單元看成是具有兩種類型的地址:物理地址和邏輯地址,物理地址就是實際地址,它具有20位的地址值,它是唯一標識1M字節(jié)存儲空間的某一個字節(jié)的地址。邏輯地址由段基址和偏移地址組成。程序以邏輯地址編址,而不是用物理地址編址。

2023/2/221

四個段寄存器分別指向四個現(xiàn)行可尋址的分段的起始字節(jié)單元。一般指令程序存放在代碼段中,段地址來源于代碼段寄存器,偏移地址來源于指令指針I(yè)P。當涉及到一個堆棧操作時,段地址寄存器為SS,偏移地址來源于棧指針寄存器SP。當涉及到一個操作數(shù)時,則由數(shù)據(jù)段寄存器DS或附加段寄存器ES作為段寄存器,而偏地址是由16位偏移量得到。16位偏移量可以是指令中的偏移量加上16位地址寄存器的值組成,取決于指令的尋址方式。2023/2/2224.8086總線的工作周期

為了取得指令和傳送數(shù)據(jù)的協(xié)調工作,就需要CPU的總線接口部件執(zhí)行一個總線周期。在8086/8088中,一個最基本的總線周期由四個時鐘周期組成,時鐘周期是CPU的基本時間計量單位,它由計算機主頻決定。例如,8086的主頻為10MHz一個時鐘周期就是100ns。在一個最基本的總線周期中,常將四個時鐘周期分別稱為四個狀態(tài),即T1狀態(tài)、T2狀態(tài)、T3狀態(tài)。T4狀態(tài)。2023/2/223

典型的8086總線周期序列見圖4-6。

在T1狀態(tài):CPU往多路復用總線上發(fā)出地址信息,以指出要尋址的存儲單元或外設端口的地址。

在T2狀態(tài):CPU從總線上撤消地址,而使總線的低16位浮置成高阻狀態(tài),為傳輸數(shù)據(jù)做準備??偩€的最高四位(A16—A19)用來輸出本總線周期狀態(tài)信息。這些狀態(tài)信息用來表示中斷允許狀態(tài),當前正在使用的段寄存器名等。2023/2/224在T3狀態(tài):多路總線的高4位繼續(xù)提供狀態(tài)信息,而多路總線的低16位(8088則為低8位)上出現(xiàn)由CPU寫出的數(shù)據(jù)或者CPU從存儲器或端口讀入的數(shù)據(jù)。

在有些情況下,被寫入數(shù)據(jù)或者被讀取數(shù)據(jù)的外設或存儲器不能及時地配合CPU傳送數(shù)據(jù)。這時,外設或存儲器會通過“READY”信號線在T3狀態(tài)啟動之前,向CPU發(fā)一個“數(shù)據(jù)未準備好”信號,于是CPU會在T3之后插入一個或多個附加的時鐘周期Tw,Tw也叫等待狀態(tài),在Tw狀態(tài),總線上的信息情況和T3狀態(tài)的信息情況一樣。當指定的存儲器或外設完成數(shù)據(jù)傳送時,便在“READY”線上發(fā)出“準備好”信號,CPU接收到這一信號后,會自動脫離TW狀態(tài)而進入T4狀態(tài)。2023/2/225在T4狀態(tài):總線周期結束。

需要指出的是,只有在CPU和內(nèi)存或I/O接口之間傳輸數(shù)據(jù),以及填充指令隊列時,CPU才執(zhí)行總線周期。可見,如果在一個總線周期之后,不立即執(zhí)行下一個總線周期,那么系統(tǒng)總線就處在空閑狀態(tài),此時,執(zhí)行空閑周期。在空閑周期中,可以包含一個或多個時鐘周期。在這期間,高4位上,CPU仍然驅動前一個總線周期的狀態(tài)信息,而且,如果前一個總線周期為寫周期,那么,CPU會在總線低16位上繼續(xù)驅動數(shù)據(jù)信息;如果前一個總線周期為讀周期,則在空閑周期中,總線低16位處于高阻狀態(tài)。2023/2/226

4.38086/8088CPU的引腳和工作模式

(一)8086和8088的引腳如圖4-7所示:圖4-78086/8088引腳信號圖(括號內(nèi)為最大模式時的引腳名)2023/2/2278086/8088各引腳信號的:功能如下:

1.AD15一AD0。(AddressDatabus)地址/數(shù)據(jù)復用引腳(雙向工作)

作為復用引腳,在總線周期的T1狀態(tài)用來輸出要訪問的存儲器或I/O端口地址。T2一T3狀態(tài),對讀周期來說,處于浮空狀態(tài);對寫周期來說,則是傳輸數(shù)據(jù)。

2023/2/228地址狀態(tài)分時復用引腳A19/S6A16/S3:引腳3538,輸出、三態(tài)總線。采用分時輸出,即在T1狀態(tài)作地址線用,T2T4狀態(tài)輸出狀態(tài)信息。訪問存儲器時,T1狀態(tài)輸出由A19A16(訪問I/O端口時,不使用A19A16,它們保持為0)與AD15AD0一起構成的20位物理地址。狀態(tài)信息位中,S6為0用來表示8086CPU當前與總線相連,所以在T2T4狀態(tài),S6總為0;S5表示(可屏蔽)中斷允許標志位IF的當前設置,IF=1時,S5為1,否則為0;S4S3用來指示當前正在使用哪個段寄存器,如下表所示:2.A19/S6一A16/S3(Address/Status)地址/狀態(tài)復用引腳(輸出)2023/2/229S4與S3組合代表的正在使用的寄存器S4S3當前正在使用的段寄存器00110101ESSSCS或未使用任何段寄存器DS2023/2/230

3.NMI(Non一Maskab1einterrupt)非屏蔽中斷引腳(輸入)

非屏蔽中斷信號是不受中斷允許標志IF的影響,也不能用軟件進行屏蔽。每當NMI端進入一個正沿觸發(fā)信號時,CPU就會在結束當前指令后,進入對應于中斷類型號為2的非屏蔽中斷處理程序。

4.INTR(1nterruptRequest)可屏蔽中斷請求信號引腳(輸入)

可屏蔽中斷請求信號為高電平有效,CPU在執(zhí)行每條指令的最后一個時鐘周期會對INTR信號進行采樣,如果CPU中的中斷允許標志為1,并且又接收到INTR信號,那么,CPU就會在結束當前指令后,響應中斷請求,進入一個中斷處理子程序。2023/2/2314.CLK(Clock)時鐘引腳(輸入)

5.RESET(Reset)復位信號引腳(輸入)引腳21,復位信號,輸入,高電平有效。復位信號使處理器馬上結束現(xiàn)行操作,對處理器內(nèi)部寄存器進行初始化。8086/8088要求復位脈沖寬度不得小于4個時鐘周期。復位后,內(nèi)部寄存器的狀態(tài)如下表所示:內(nèi)部寄存器狀態(tài)標志寄存器IPCSDSSSES指令隊列緩沖器其余寄存器0000H0000HFFFFH0000H0000H0000H空0000H2023/2/2326.TEST測試信號引腳(輸入)

測試信號為低電平有效。TEST信號是和指令WAIT結合起來使用的,在CPU執(zhí)行WAIT指令時,CPU處于空轉狀態(tài)進行等待;當8086的TEST信號有效時,等待狀態(tài)結束,CPU繼續(xù)往下執(zhí)行被暫停的指令。7.MN/MX(Minimum/MaximumModeControl)最小/最大模式控制信號引腳(輸入)

它是最大模式及最小模式的選擇控制端。此引腳固定接為+5V時,CPU處于最小模式;如果接地,則CPU處于最大模式。2023/2/2338、INTA(1nterruptAcknowledge)中斷響應信號(輸出)

9、ALE(AddressLatchEnable)地址鎖存允許信號(輸出)這是8086/8088提供給地址鎖存器8282/8283的控制信號,高電平有效。

10、:引腳32,讀控制信號,輸出。當=0時,表示將要執(zhí)行一個對存儲器或I/O端口的讀操作。到底是從存儲單元還是從I/O端口讀取數(shù)據(jù),取決于(8086)或(8088)信號。2023/2/234

11.:引腳34,8086高8位數(shù)據(jù)總線允許/狀態(tài)復用引腳,輸出。在總線周期的T1狀態(tài)時輸出,為低電平時,表示當前數(shù)據(jù)總線上高8位數(shù)據(jù)有效。該引腳和地址引腳A0配合表示當前數(shù)據(jù)總線的使用情況。S7為備用狀態(tài)信號線。

8086系統(tǒng)中,若要讀/寫從奇地址單元開始的一個字,需要兩個總線周期。數(shù)據(jù)總線的使用情況00110101011016位字傳送(偶地址開始的兩個存儲器單元的內(nèi)容)在數(shù)據(jù)總線高8位(D15D8)和奇地址單元間進行字節(jié)傳送在數(shù)據(jù)總線低8位(D7D0)和偶地址單元間進行字節(jié)傳送無效從奇地址開始讀/寫一個字(在第一個總線周期將低8位數(shù)字送到AD15~AD8;在第二個總線周期將高8位數(shù)字送到AD7~AD0)2023/2/235M/IODT/RSS0操作100發(fā)中斷響應信號101讀I/O端口110寫I/O端口111暫停000取指令001讀內(nèi)存010寫內(nèi)存011無源狀態(tài)對于8088,對外只有8位數(shù)據(jù)總線,沒有高8位數(shù)據(jù)總線,因而不需要BHE信號,第34號引腳為SS0。SS0、M/IO和DT/R組合起來,決定了當前總線周期的操作,具體對應關系如表所示。2023/2/236

12.READY:引腳22,準備就緒信號,輸入,高電平有效。該信號由8284時鐘發(fā)生器同步后產(chǎn)生。CPU在每個總線周期的T3狀態(tài)的上升沿對READY引腳采樣,若為高電平,說明數(shù)據(jù)已準備好,進入T4狀態(tài)完成數(shù)據(jù)傳送過程,結束當前總線周期;若為低電平,則CPU在T3狀態(tài)之后自動插入一個或幾個等待狀態(tài)TW,直到READY變?yōu)楦唠娖健o源狀態(tài):當S2、S1、S0都為高電平時表明操作過程即將結束,而另外iayige新的總線周期尚未開始,這時稱為無源狀態(tài)(最大工作模式下)。2023/2/237(二)8086/8088CPU工作模式

8086/8088的工作模式完全是由硬件決定的。

為了盡可能適應各種使用場合,在設計8086/8088CPU芯片時,就使得它們可以在兩種模式下工作,即最大模式和最小模式。所謂最小模式,就是在系統(tǒng)中只有8086/8088一個微處理器。在這種系統(tǒng)中,所有的總線控制信號都直接由8086/8088產(chǎn)生,因此,系統(tǒng)中的總線控制邏輯電路被減到最少。

2023/2/238

8087是一種專用于數(shù)值運算的處理器,它能實現(xiàn)多種類型的數(shù)值操作,例如高精度的整數(shù)和浮點運算,也可以進行超越函數(shù)(如:三角函數(shù)、對數(shù)函數(shù))的計算。

最大模式是相對最小模式而言,它用在中等規(guī)模的或者大型的8086/8088系統(tǒng)中,在此系統(tǒng)中,包含兩個或多個微處理器,其中一個主處理器就是8086/8088,其它的處理器稱為協(xié)處理器·它們是協(xié)助主處理器工作的。和8086/8088配合的協(xié)處理器有兩個,一個是數(shù)值運算協(xié)處理器8087,一個是輸入/輸出協(xié)處理器8089。2023/2/239

由于在通常情況下,這些運算往往通過軟件方法來實現(xiàn),而8087是用硬件方法來完成這些運算的,所以在系統(tǒng)中加入?yún)f(xié)處理器8087之后,會提高系統(tǒng)的數(shù)值運算速度。

8089在原理上有點兒象帶有兩個DMA通道的處理器,它有一套專門用于輸入/輸出操作的指令系統(tǒng),但8089又和DMA的控制器不同,它可以直接為輸入/輸出設備服務,使8086/8088不再承擔這類工作。所以在系統(tǒng)中增加協(xié)處理器8089后,會提高主處理器的效率,尤其是在輸入輸出頻繁的場合。2023/2/2408086最小工作模式的典型配置2023/2/241

在最小模式下其硬件包括:一片8284A

作為時鐘發(fā)生器。它有三個功能:產(chǎn)生時鐘信號對READY和RESET信號進行同步。三片8282或74LS373

。(8282是8位的,而8086/8088系統(tǒng)采用20位地址,再加上BHE信號,所以需要三片8282),用來作為地址鎖存器(由于采用地址數(shù)據(jù)分式復用總線,而CPU對存儲器或I/O接口進行存取操作時,要求在整個總線周期內(nèi)保持穩(wěn)定的地址信息,因而必須在總線周期內(nèi)的T1狀態(tài)中將地址信息鎖存起來)。當系統(tǒng)中所連的存儲器和外設較多時,需要增加數(shù)據(jù)總線的驅動能力,這時用兩片8286作為總線收發(fā)器,也常稱為總線驅動器。

2023/2/242在最小方式下,第2431引腳的功能如下:

(2)ALE:引腳25,地址鎖存允許信號,輸出。它是8086/8088提供給地址鎖存器的控制信號,高電平有效。

(1)

:引腳24,中斷響應信號,輸出。該信號用于對外設的中斷請求作出響應。

(3)

:引腳26,數(shù)據(jù)允許信號,輸出。當使用數(shù)據(jù)總線收發(fā)器時,該信號為收發(fā)器提供一個控制信號,決定是否允許數(shù)據(jù)通過數(shù)據(jù)總線收發(fā)器。2023/2/243在DMA方式,以上三個引腳被浮置為高阻狀態(tài)。

(4)

:引腳27,數(shù)據(jù)發(fā)送/接收信號,輸出。該信號用來控制數(shù)據(jù)的傳送方向。

(5)

:引腳28,存儲器I/O端口控制信號,輸出。該信號用來區(qū)分CPU是進行存儲器訪問還是I/O端口訪問。

(6)

:引腳29,寫信號,輸出。表示CPU當前正在進行存儲器或I/O寫操作(取決于M/IO信號)。2023/2/244數(shù)據(jù)傳送方式M/IORDWRI/O讀001I/O寫010存儲器讀101存儲器寫1108086最小模式數(shù)據(jù)傳送方式2023/2/245

(7)HOLD:引腳31,總線保持請求信號,輸入。當8086/8088CPU之外的總線主設備要求占用總線時,通過該引腳向CPU發(fā)一個高電平的總線保持請求信號。

(8)HLDA:引腳30,總線保持響應信號,輸出。當CPU接收到HOLD信號后,這時如果CPU允許讓出總線,就在當前總線周期完成時,在T4狀態(tài)發(fā)出高電平有效的HLDA信號給以響應。2023/2/2468086最大工作模式的典型配置2023/2/247

在最大模式下,一般包括2個或多個處理器,這樣就要解決主處理器和協(xié)處理器之間的協(xié)調工作問題和對總線的共享控制問題。在最大模式下,CPU不直接產(chǎn)生總線控制信號,而是將總線開始的狀態(tài)信息等信號經(jīng)一個控制信號轉換電路,即8288總線控制器。

另外,在最大模式系統(tǒng),一般還有中斷優(yōu)先管理部件,即8289A,在8086多處理器系統(tǒng)中,除8086CPU外還有8089和8087,他們也是采用分時方式來占用總線。因此,在多處理器系統(tǒng)中必須采用總線仲裁器8289配合總線控制器8288來確定每一個時刻的總線使用權賦予優(yōu)先級別較高的處理器使用。2023/2/248在最大方式下,第2431引腳的功能如下:

(1)QS1、QS0:引腳24、25,指令隊列狀態(tài)信號,輸出。QS1、QS0兩個信號電平的不同組合指明了8086/8088內(nèi)部指令隊列的狀態(tài)。QS1QS0含義00無操作01從指令隊列的第一字節(jié)中取走代碼10隊列為空11除第一字節(jié)外,還取走了后續(xù)字節(jié)中的代碼2023/2/249

(2)

:引腳26、27、28,總線周期狀態(tài)信號,輸出,低電平有效。這三個狀態(tài)信號連接到總線控制器8288的輸入端,8288對這些信號進行譯碼后產(chǎn)生內(nèi)存及I/O端口的讀寫控制信號。0000111100110011010101018288產(chǎn)生的控制信號對應操作發(fā)中斷響應信號

讀I/O端口

寫I/O端口暫停取指令讀內(nèi)存寫內(nèi)存無源狀態(tài)

無2023/2/250(3)

:引腳29,總線封鎖信號,輸出。低電平有效。當它為低電平時,其它總線主控部件不能占用總線。在DMA期間,

被浮空而處于高阻狀態(tài)。

信號由前綴指令“LOCK”產(chǎn)生,LOCK指令后面的一條指令執(zhí)行完后,便撤消

信號。(4)

:引腳30、31,總線請求信號(輸入)/總線請求允許信號(輸出),低電平有效雙向信號。該信號用以多處理器之間對總線使用權的控制。的優(yōu)先級高于。2023/2/251在最大模式下,8086/8088也提供了總線主模塊之間傳遞總線控制權的手段。CPU以外的其他總線主模塊包括協(xié)處理器、DMA控制器,它們可以連接在局部總線上,去共享CPU和系統(tǒng)總線之間的接口,即共享地址鎖存器、數(shù)據(jù)總線收發(fā)器、總線控制器,當然也共享系統(tǒng)總線。與最小模式下不同的是,在最大模式下,總線控制信號不再是HOLD和HLDA,而是將這兩個信號引腳變成能更加完善的兩個雙向信號引腳RQ/GT0和RQ/GT1,它們都稱為總線請求/總線允許信號端,可以分別連接兩個其他的總線主模塊。

RQ/GT0和RQ/GT1有著完全相同的功能,但是RQ/GT0比RQ/GT1的優(yōu)先級要高。也就是說,如果RQ/GT0和RQ/GT1都連接了其他總線主模塊,當兩條引腳上同時出現(xiàn)總線請求時,CPU會在RQ/GT0先發(fā)出允許信號,等到CPU再次得到總線控制權時,才響應RQ/GT1引腳上的請求。不過,如果CPU已經(jīng)把總線控制權讓給連接RQ/GT1的主模塊,此時又在RQ/GT0引腳上收到另一個主模塊的總線請求,那么,要等前一個主模塊釋放總線后,CPU收回了總線控制權,才會去響應RQ/GT0引腳上的總線請求??梢奀PU對總線請求的處理并不是像對中斷請求的處理那樣允許“嵌套”。

2023/2/252

①當CPU以外的一個總線主模塊要求使用系統(tǒng)總線時,從RQ/GT(即RQ/GT0或者RQ/GT1,以下類同)線上往CPU發(fā)一個負脈沖,寬度為一個時鐘周期。

②CPU在每個時鐘周期的上升沿處對RQ/GT引腳進行檢測,如果測得外部有一個負脈沖,則在T4狀態(tài)或下個T1狀態(tài)從同一引腳RQ/GT上往請求總線使用權的主模塊發(fā)一個允許脈沖,這個允許脈沖的寬度也相當于一個時鐘周期。不過要注意,總線請求負脈沖是外部發(fā)給CPU的,而總線允許脈沖是由CPU發(fā)給其他外部主模塊的。CPU一旦發(fā)出了響應脈沖,各地址/數(shù)據(jù)引腳、地址/狀態(tài)引腳以及RD、LOCK、S2、S1、S0、BHE/S7便處于高阻狀態(tài),于是在邏輯上暫時和總線斷開。

③協(xié)處理器或其他總線主模塊收到CPU發(fā)出的脈沖后,便得到了總線控制權,于是它可以對總線占用一個或幾個總線周期。

④當外部主模塊準備釋放總線時,便在RQ/GT線上往CPU發(fā)一個釋放脈沖,釋放脈沖的寬度也為一個時鐘周期。CPU檢測到釋放脈沖后,在下一個時鐘周期便收回了總線控制權。2023/2/2531.總線控制器8288

2023/2/254

2.總線仲裁控制器8289

2023/2/2558289有兩種優(yōu)先級控制,構成系統(tǒng)的處理器都要通過主控器總線來共享總線上的資源。在某一時刻,只允許一個處理器使用主控系統(tǒng)總線。為此,利用8289可以實現(xiàn)優(yōu)先級控制。主要有兩種。BREQ——總線請求BPRN——總線優(yōu)先權輸入CBRQ——公共總線請求BUSY——總線忙2023/2/256BPRO——總線優(yōu)先權輸出BPRN——總線優(yōu)先權輸入CBRQ——公共總線請求BUSY——總線忙2023/2/257總線操作1.最小工作模式下的總線操作2023/2/2582023/2/2592.最大工作模式下的總線操作2023/2/2602023/2/261中斷操作中斷的基本概念

1.中斷的定義在CPU執(zhí)行程序的過程中,出現(xiàn)了某種緊急或異常的事件(中斷請求),CPU需暫停正在執(zhí)行的程序,轉去處理該事件(執(zhí)行中斷服務程序),并在處理完畢后返回斷點處繼續(xù)執(zhí)行被暫停的程序。返回主程序時執(zhí)行的第一條指令的地址。2023/2/262圖:中斷過程示意圖2023/2/263注意:在進行現(xiàn)場保護和現(xiàn)場恢復之前要先關閉中斷系統(tǒng),以屏蔽其他中斷請求。待現(xiàn)場保護和現(xiàn)場恢復完成后,為了使系統(tǒng)具有中斷嵌套功能,再次開放中斷。中斷處理流程圖對于一個中斷源的中斷處理過程應包括中斷請求、中斷響應、保護斷點、中斷處理和中斷返回。2023/2/264中斷的主要用途:

實現(xiàn)輸入/輸出操作 電源掉電或其他情況的報警 控制臺或人工干預 多處理機系統(tǒng)中各處理機之間的協(xié)調 控制操作系統(tǒng)2023/2/2652.中斷源任何能夠引發(fā)中斷的事件都稱為中斷源,可分為硬件中斷源和軟件中斷源兩類。硬件中斷源主要包括外設、數(shù)據(jù)通道、時鐘電路和故障源等;軟件中斷源主要包括為調試程序設置的中斷(如斷點、單步執(zhí)行等)、中斷指令(INT21H)以及指令執(zhí)行過程出錯(如除法運算時除數(shù)為零)等。2023/2/266中斷請求是中斷源向CPU發(fā)出的請求中斷的要求。軟件中斷源是在CPU內(nèi)部由中斷指令或程序出錯直接引發(fā)中斷;而硬件中斷源必須通過專門的電路將中斷請求信號傳送給CPU,CPU也有專門的引腳接收中斷請求信號??善帘沃袛嗖豢善帘沃袛郔NTRNMI2023/2/267軟件中斷軟件中斷是用一條指令使CPU進入中斷處理子程序。在進入中斷時,不需要執(zhí)行中斷響應總線周期,也不從數(shù)據(jù)總線讀取中斷類型碼,不受中斷允許標志IF的影響,也就是不管IF為0還是1,任何一個軟件中斷都可執(zhí)行。但是軟件中斷信號仍會受標志寄存器中另外一個標志TF的影響,只有TF為1時,才能執(zhí)行單步中斷。正在執(zhí)行軟件中斷時,如果有非屏蔽中斷請求,則會在執(zhí)行完當前指令后立即給與響應;如果有可屏蔽中斷請求,且在這之前在中斷處理子程序中執(zhí)行了開放中斷指令,而是中斷標志IF為1,則也會在當前指令執(zhí)行完后響應可屏蔽中斷請求。2023/2/268非屏蔽中斷一般用來處理系統(tǒng)的重大故障,比如系統(tǒng)掉電處理常常通過非屏蔽中斷處理程序來執(zhí)行。非屏蔽中斷服務程序一般采取以下措施:(1)把現(xiàn)場的的數(shù)據(jù)立即轉移到非易失性的存儲器中,等電源恢復后繼續(xù)執(zhí)行中斷前的程序。(2)啟動備用電源,在盡量短的時間內(nèi)用備用電源來維持微機系統(tǒng)的工作。非屏蔽中斷從NMI引腳上引入,它不受中斷允許標志IF的影響,它的中斷類型號是2。2023/2/2692023/2/270中斷向量表中斷向量:中斷服務程序的入口地址。對于8086/8088系統(tǒng),所有中斷服務程序的入口地址都存放在中斷向量表中,每種中斷對應一個中斷類型號,與一個中斷服務程序的入口地址相對應。每個中斷服務程序的入口地

溫馨提示

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

評論

0/150

提交評論