版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第4章16位微處理器4.116位微處理器概述4.28086/8088CPU的結(jié)構(gòu)4.38086/8088CPU的引腳信號和工作模式4.48086/8088的主要操作功能微處理器(microprocessor)是微型計算機(jī)的運(yùn)算及控制部件,也稱中央處理單元(CentralProcessingUnit,CPU)。它本身不構(gòu)成獨(dú)立的工作系統(tǒng),因而它也不能獨(dú)立地執(zhí)行程序。通常,微處理器由算術(shù)邏輯部件(ALU)、控制部件、寄存器組和片內(nèi)總線等幾部分組成,這些都已在前面講過了。4.116位微處理器概述1.第一代——4位或低檔8位微處理器
第一代微處理器的典型產(chǎn)品是Intel公司1971年研制成功的4004(4位CPU)及1972年推出的低檔8位CPU8008。發(fā)展歷程2.第二代——中高檔8位微處理器
之后逐漸形成以Intel公司、Motorola公司、Zilog公司產(chǎn)品為代表的三大系列微處理器。第二代微處理器的典型產(chǎn)品有1974年Intel公司生產(chǎn)的8080CPU,Zilog
公司生產(chǎn)的Z80CPU、Motorola公司生產(chǎn)的MC6800CPU以及Intel公司1976年推出的8085CPU。它們均為8位微處理器,具有16位地址總線??墒褂脜R編語言及BASIC、FORTRAN等高級語言編寫程序。
3.第三代——16位微處理器
第三代微處理器的典型產(chǎn)品是1978年Intel公司生產(chǎn)的8086CPU,286、Zilog公司的Z8000CPU和Motorola公司的MC6800CPU。它們均為16位微處理器,具有20位地址總線。為方便原8位機(jī)用戶,Intel公司在8086推出后不久便很快推出準(zhǔn)16位的8088CPU,其指令系統(tǒng)與8086完全兼容,CPU內(nèi)部結(jié)構(gòu)仍為16位,但外部數(shù)據(jù)總線是8位的。并以8088為CPU組成了IBMPC、PC/XT等準(zhǔn)16位微型計算機(jī),由于其性能價格比高,很快占領(lǐng)了市場。4.第四代——32位高檔微處理器
1985年,Intel公司推出了32位微處理器芯片80386,其地址總線也為32位。80386SX內(nèi)部結(jié)構(gòu)位32位,外部數(shù)據(jù)總線為16位;80386DX內(nèi)部結(jié)構(gòu)、外部數(shù)據(jù)總線皆為32位,采用80387作為協(xié)處理器。
1990年,Intel公司在80386基礎(chǔ)上研制出新一代32位微處理器芯片80486,其地址總線仍然為32位。它相當(dāng)于把80386、80387及8KB高速緩沖存儲器(Cache)集成在一塊芯片上,性能比80386有較大提高。
5.第五代——64位高檔微處理器
第五代微處理器的典型產(chǎn)品是1993年Intel公司推出的Pentium(奔騰,Intel586)以及IBM、Apple和Motorola三家公司聯(lián)合生產(chǎn)的PowerPC。
Pentium微處理器數(shù)據(jù)總線為64位,地址總線為36位,有兩條超標(biāo)量流水線,兩個并行執(zhí)行單元及雙高速緩沖存儲器,工作頻率有1.4GHz、1.6GHz、2.0GHz和2.3GHz等。
PowerPC是一種精簡指令集計算機(jī),也是一種性能優(yōu)異的64位微處理器,其中也采用了先進(jìn)的超標(biāo)量流水線技術(shù)及雙高速緩沖存儲器。圖4.14.28086/8088CPU的結(jié)構(gòu)8086CPU從功能上可分為兩部分,即總線接口部件(businterfaceunit,縮寫為BIU)和執(zhí)行部件EU(executionunit)。8086的內(nèi)部結(jié)構(gòu)如圖4.1所示。4.2.1執(zhí)行部件
執(zhí)行部件(EU)的功能就是負(fù)責(zé)指令的執(zhí)行。將指令譯碼并利用內(nèi)部的寄存器和ALU對數(shù)據(jù)進(jìn)行所需的處理。從結(jié)構(gòu)圖4.1中,可見到執(zhí)行部件由下列部分組成:(1)4個通用寄存器,即AX,BX,CX,DX;(2)4個專用寄存器,即基數(shù)指針寄存器BP,堆棧指針寄存器SP,源變址寄存器SI,目的變址寄存器DI;(3)標(biāo)志寄存器(FR);(4)算術(shù)邏輯部件(ALU)。8086/8088的EU有如下特點(diǎn):(1)4個通用寄存器既可以作為16位寄存器使用,也可以作為8位寄存器使用。例如當(dāng)BX寄存器作為8位寄存器時,分為BH和BL,BH為高8位,BL為低8位。(2)AX寄存器也常稱為累加器,8086指令系統(tǒng)中有許多指令都是通過累加器的動作來執(zhí)行的。當(dāng)累加器作為16位來使用時,可以進(jìn)行按字乘操作、按字除操作、按字輸入/輸出和其他字傳送等;當(dāng)累加器作為8位來使用時,可以實(shí)現(xiàn)按字節(jié)乘操作、按字節(jié)除操作、按字節(jié)輸入/輸出和其他字節(jié)傳送,以及十進(jìn)制運(yùn)算等。AHALBHBLCHCLDHDLAXBXCXDX累加器基址計數(shù)數(shù)據(jù)數(shù)據(jù)寄存器07815AX、BX、CX、DX,用于存放16的數(shù)據(jù)和地址。可以拆分成AH、AL、BH、BL、CH、CL、DH、DL,用來存放8位數(shù)據(jù),可以獨(dú)立尋址,獨(dú)立使用。隱含使用:AX作為累加器;
BX作為基址寄存器;
CX作為計數(shù)寄存器;
DX在乘除運(yùn)算中做輔助累加器。SPBPSIDI0堆棧指針基址指針
源變址目的變址地址指針寄存器變址寄存器SP、BP、SI、DI,都是16位寄存器,可以存放數(shù)據(jù),通常用來存放邏輯地址的偏移量,是形成20位物理地址的其中一部分。SP—堆棧指針,是棧頂?shù)钠屏?。BP—基址指針,用于存放位于堆棧段中的一個數(shù)據(jù)區(qū)基址的偏移地址。SI—源變址寄存器,存放源操作數(shù)地址的偏移量;DI—目的變址寄存器,存放目的操作數(shù)地址的偏移量;
SP、BP的段基址由寄存器SS提供,SI、DI其段基址由寄存器DS提供。158086/8088的EU有如下特點(diǎn):(續(xù))(3)加法器是算術(shù)邏輯的主要部件,絕大部分指令的執(zhí)行都由加法器來完成。(4)標(biāo)志寄存器FR共有16位,是一個16寄存器,其中9位作標(biāo)志位,另外7位未用,所用的各位含義如下:狀態(tài)標(biāo)志——它是操作在執(zhí)行后,決定算術(shù)邏輯部件ALU處在何種狀態(tài),這種狀態(tài)會影響后面的操作??刂茦?biāo)志——它是人為設(shè)置的,指令系統(tǒng)中有專門的指令用于控制標(biāo)志的設(shè)置和清除,每個控制標(biāo)志都對每一種特定的功能起控制作用。CF—進(jìn)位標(biāo)志,加法時的最高位(D7或D15)產(chǎn)生進(jìn)位或減法時最高位出現(xiàn)借位,則CF=1,否則CF=0;AF—輔助進(jìn)位標(biāo)志,供BCD碼使用。當(dāng)D3位出現(xiàn)進(jìn)位或借位時AF=1,否則AF=0;OF—溢出標(biāo)志,帶符號數(shù)進(jìn)行算術(shù)運(yùn)算時,其結(jié)果超出了8位或16位的表示范圍,產(chǎn)生溢出,則OF=1,否則OF=0;ZF—零標(biāo)志,運(yùn)算結(jié)果各位都為零,則ZF=1,否則ZF=0;SF——符號標(biāo)志,運(yùn)算結(jié)果為負(fù)數(shù)時,即運(yùn)算結(jié)果的最高位為1,則SF=1,否則SF=0;PF—奇偶標(biāo)志,反映操作結(jié)果中“1”的個數(shù)的情況,若有偶數(shù)個“1”,則PF=1,否則PF=0。3個是控制標(biāo)志位DF——方向標(biāo)志,用來控制數(shù)據(jù)串操作指令的步進(jìn)方向;當(dāng)設(shè)置DF=1時,將以遞減順序?qū)?shù)據(jù)串中的數(shù)據(jù)進(jìn)行處理。當(dāng)設(shè)置DF=0時,遞增。IF—中斷允許標(biāo)志,當(dāng)設(shè)置IF=1,開中斷,CPU可響應(yīng)可屏蔽中斷請求;當(dāng)設(shè)置IF=0時,關(guān)中斷,CPU不響應(yīng)可屏蔽中斷請求。TF—陷阱標(biāo)志,為程序調(diào)試而設(shè)的。當(dāng)設(shè)置TF=1,CPU處于單步執(zhí)行指令的方式;當(dāng)設(shè)置TF=0時,CPU正常執(zhí)行程序。返回4.2.2總線接口部件BIU總線接口部件的功能是負(fù)責(zé)與存儲器、I/O端口傳送數(shù)據(jù),即BIU管理在存儲器中存取程序和數(shù)據(jù)的實(shí)際處理過程??偩€接口部件由下列各部分組成:(1)4個段地址寄存器,即CS——16位代碼段寄存器;DS——16位數(shù)據(jù)段寄存器;ES——16位附加段寄存器;SS——16位堆棧段寄存器。(2)16位指令指針寄存器IP。(3)20位的地址加法器。(4)6字節(jié)的指令隊(duì)列。8086/8088的BIU有如下特點(diǎn):(1)8086的指令隊(duì)列為6個字節(jié),8088的指令隊(duì)列為4個字節(jié)。不管是8086還是8088,都會在執(zhí)行指令的同時,從內(nèi)存中取下一條指令或下幾條指令,取來的指令就放在指令隊(duì)列中。這樣,一般情況下,CPU執(zhí)行完一條指令就可以立即執(zhí)行下一條指令,而不需要像以往的計算機(jī)那樣,讓CPU輪番進(jìn)行取指令和執(zhí)行指令的操作,從而提高了CPU的效率。(2)地址加法器用來產(chǎn)生20位地址。上面已經(jīng)提到,8086可用20位地址尋址1M字節(jié)的內(nèi)存空間,但8086內(nèi)部所有的寄存器都是16位的,所以需要由一個附加的機(jī)構(gòu)來根據(jù)16位寄存器提供的信息計算出20位的物理地址,這個機(jī)構(gòu)就是20位的地址加法器。BIU和EU的工作協(xié)調(diào):(1)每當(dāng)8086的指令隊(duì)列中有兩個空字節(jié),或者8088的指令隊(duì)列中有一個空字節(jié)時,總線接口部件就會自動把指令取到指令隊(duì)列中。(2)每當(dāng)執(zhí)行部件準(zhǔn)備執(zhí)行一條指令時,它會從總線接口部件的指令隊(duì)列前部取出指令的代碼,然后用幾個時鐘周期去執(zhí)行指令。在執(zhí)行指令的過程中,如果必須訪問存儲器或者輸入/輸出設(shè)備,那么,執(zhí)行部件就會請求總線接口部件,進(jìn)入總線周期,完成訪問內(nèi)存或者輸入/輸出端口的操作;如果此時總線接口部件正好處于空閑狀態(tài),那么,會立即響應(yīng)執(zhí)行部件的總線請求。但有時會遇到這樣的情況,執(zhí)行部件請求總線接口部件訪問總線時,總線接口部件正在將某個指令字節(jié)取到指令隊(duì)列中,此時總線接口部件將首先完成這個取指令的總線周期,然后再去響應(yīng)執(zhí)行部件發(fā)出的訪問總線的請求。(3)當(dāng)指令隊(duì)列已滿,而且執(zhí)行部件又沒有總線訪問時,總線接口部件便進(jìn)入空閑狀態(tài)。(4)在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時,下面要執(zhí)行的指令就不是在程序中緊接著的那條指令了,而總線接口部件往指令隊(duì)列裝入指令時,總是按順序進(jìn)行的,這樣,指令隊(duì)列中已經(jīng)裝入的字節(jié)就沒有用了。遇到這種情況,指令隊(duì)列中的原有內(nèi)容被自動消除,總線接口部件會接著往指令隊(duì)列中裝入另一個程序段中的指令。4.2.3存儲器組織8086/8088系統(tǒng)中的存儲器按字節(jié)編址,CPU有20條地址線,可尋址的最大存儲空間是220=1M,每個字節(jié)對應(yīng)唯一一個20位的物理地址。表示為:(00000H)=23H(00001H)=11H(FFFFFH)=64h23H00000H11HA9H09H00001HFFFFDHFFFFEH64HFFFFFH······物理地址存放的數(shù)據(jù)當(dāng)存放的數(shù)據(jù)是一個字時,其低位字節(jié)放在低地址,高位字節(jié)放在高地址,字的地址用低位字節(jié)的地址表示。表示為:(00000H)=1123H(0000DH)=09A9H(FFFFEH)=6409H23H00000H11HA9H09H00001HFFFFDHFFFFEH64HFFFFFH······物理地址存放的數(shù)據(jù)字字字當(dāng)字的地址是偶數(shù)地址時,即從偶數(shù)地址開始存放,稱這樣存放的字為規(guī)則字;當(dāng)字的地址是奇數(shù)地址時,即從奇數(shù)地址開始存放,稱這樣的字為非規(guī)則字。23H00000H11HA9H09H00001HFFFFDHFFFFEH64HFFFFFH······物理地址存放的數(shù)據(jù)規(guī)則字非規(guī)則字規(guī)則字存儲器與8086CPU連接時,1M的空間,實(shí)際被分成兩個512K的存儲空間。A19~A1高位(奇數(shù))庫D15~D8SELA19~A1低位(偶數(shù))庫D7~D0SELA19~A1A0BHE=1D15~D8D7~D0A0=0BHEBHE=0A0=1(A0=0且BHE=0,兩庫同時被選中)存儲器與8086CPU連接時,對規(guī)則字的存取,需要一個總線周期;對非規(guī)則的存取,則需要兩個總線周期。存儲器與8088CPU連接時,,因8088外部的數(shù)據(jù)總線是8位,因此對應(yīng)的1M的存儲空間是單一的。A19~A01M存儲空間D7~D0A19~A0D7~D0
對8088來說,每一個總線周期只能完成一個字節(jié)的存取操作存儲器的分段和物理地址的形成CPU內(nèi)部所有寄存器和ALU都是16位的,不能直接尋址1M內(nèi)存空間。8086/8088把1M存儲空間分成若干邏輯段,每段最多為64KB,各邏輯段的起始地址叫基址;段內(nèi)任意一個存儲單元的地址,可用相對于基址的偏移量來表示,稱為段內(nèi)偏移地址,通常存放于IP、SP、SI和DI中。邏輯地址的表示格式:
段基址:偏移地址對于任何一個物理地址,可以惟一地被包含在一個邏輯段中,也可包含在多個相互重疊的邏輯段中,只要有段地址和段內(nèi)偏移地址就可以訪問到這個物理地址所對應(yīng)的存儲空間,如下圖所示。在8086/8088存儲空間中,把16字節(jié)的存儲空間稱作一節(jié)(paragraph)。為了簡化操作,要求各個邏輯段從節(jié)的整數(shù)邊界開始,也就是說段首地址低4位應(yīng)該是“0”,因此就把段首地址的高16位稱為“段基址”,存放在段寄存器DS或CS或SS或ES中,段內(nèi)的偏移地址存放在IP或SP中。若已知當(dāng)前有效的代碼段、數(shù)據(jù)段、附加段和堆棧段的段基址分別為1055H,250AH,8FFBH和EFF0H,那么它們在存儲器中的分布情況如圖4.4所示。圖4.4邏輯地址的表示格式:
段基址:偏移地址物理地址=段基址×10H+偏移地址如:已知某存儲單元的邏輯地址為2000H:3300H,求該存儲單元的物理地址?解:物理地址=段基址×10H+偏移地址
=2000H×10H+3300H=23300H4個段寄存器分別指向4個現(xiàn)行可尋址的分段的起始字節(jié)單元。一般指令程序存放在代碼段中,段地址來源于代碼段寄存器,偏移地址來源于指令指針I(yè)P。當(dāng)涉及到一個堆棧操作時,段地址寄存器為SS,偏移地址來源于棧指針寄存器SP。當(dāng)涉及到一個操作數(shù)時,則由數(shù)據(jù)段寄存器DS或附加段寄存器ES作為段寄存器,而偏地址是由16位偏移量得到。16位偏移量可以是指令中的偏移量加上16位地址寄存器的值組成,取決于指令的尋址方式。圖4.64.2.48086總線的工作周期為了取得指令和傳送數(shù)據(jù)的協(xié)調(diào)工作,就需要CPU的總線接口部件執(zhí)行一個總線周期。在8086/8088中,一個最基本的總線周期由4個時鐘周期組成,時鐘周期是CPU的基本時間計量單位,它由計算機(jī)主頻決定。例如,8086的主頻為10MHz,一個時鐘周期就是100ns。在一個最基本的總線周期中,常將4個時鐘周期分別稱為4個狀態(tài),即T1狀態(tài)、T2狀態(tài)、T3狀態(tài)、T4狀態(tài)。典型的8086總線周期序列見圖4.6。CPU往多路復(fù)用總線上發(fā)出地址信息,以指出要尋址的存儲單元或外設(shè)端口的地址。CPU從總線上撤消地址,而使總線的低16位浮置成高阻狀態(tài),為傳輸數(shù)據(jù)做準(zhǔn)備??偩€的最高四位(A16~A19)用來輸出本總線周期狀態(tài)信息。這些狀態(tài)信息用來表示中斷允許狀態(tài),當(dāng)前正在使用的段寄存器名等。多路總線的高4位繼續(xù)提供狀態(tài)信息,而多路總線的低16位(8088則為低8位)上出現(xiàn)由CPU寫出的數(shù)據(jù)或者CPU從存儲器或端口讀入的數(shù)據(jù)。在有些情況下,被寫入數(shù)據(jù)或者被讀取數(shù)據(jù)的外設(shè)或存儲器不能及時地配合CPU傳送數(shù)據(jù)。這時,外設(shè)或存儲器會通過“READY”信號線在T3狀態(tài)啟動之前,向CPU發(fā)一個“數(shù)據(jù)未準(zhǔn)備好”信號,于是CPU會在T3之后插入一個或多個附加的時鐘周期TW,TW也叫等待狀態(tài)。在TW狀態(tài),總線上的信息情況和T3狀態(tài)的信息情況一樣。當(dāng)指定的存儲器或外設(shè)完成數(shù)據(jù)傳送時,便在“READY”線上發(fā)出“準(zhǔn)備好”信號,CPU接收到這一信號后,會自動脫離TW狀態(tài)而進(jìn)入T4狀態(tài)。只有在CPU和內(nèi)存或I/O接口之間傳輸數(shù)據(jù),以及填充指令隊(duì)列時,CPU才執(zhí)行總線周期??梢?,如果在一個總線周期之后,不立即執(zhí)行下一個總線周期,那么系統(tǒng)總線就處在空閑狀態(tài),此時,執(zhí)行空閑周期。在空閑周期中,可以包含一個或多個時鐘周期。在這期間,高4位上,CPU仍然驅(qū)動前一個總線周期的狀態(tài)信息,而且,如果前一個總線周期為寫周期,那么,CPU會在總線低16位上繼續(xù)驅(qū)動數(shù)據(jù)信息;如果前一個總線周期為讀周期,則在空閑周期中,總線低16位處于高阻狀態(tài)。4.38086/8088CPU的引腳信號和工作模式為了盡可能適應(yīng)各種使用場合,在設(shè)計8086/8088CPU芯片時,就使得它們可以在兩種模式下工作,即最小模式和最大模式。所謂最小模式,就是在系統(tǒng)中只有8086/8088一個微處理器。在這種系統(tǒng)中,所有的總線控制信號都直接由8086/8088產(chǎn)生,因此,系統(tǒng)中的總線控制邏輯電路被減到最少。最大模式是相對最小模式而言,它用在中等規(guī)模的或者大型的8086/8088系統(tǒng)中。在此系統(tǒng)中,包含兩個或多個微處理器,其中一個主處理器就是8086/8088,其他的處理器稱為協(xié)處理器,它們是協(xié)助主處理器工作的。和8086/8088配合的協(xié)處理器有兩個,一個是數(shù)值運(yùn)算協(xié)處理器8087,一個是輸入/輸出協(xié)處理器8089。4.3.18086/8088的引腳信號和功能8086和8088的引腳信號圖如圖4.7所示。1.AD15~AD0(addressdatabus)地址/數(shù)據(jù)復(fù)用引腳(雙向工作)在8088中,A8~A15并不作復(fù)用,它們只用來輸出地址,稱為A8~A15。作為復(fù)用引腳,在總線周期的T1狀態(tài)用來輸出要訪問的存儲器或I/O端口地址。T2~T3狀態(tài),對讀周期來說,處于浮空狀態(tài);對寫周期來說,則是傳輸數(shù)據(jù)。圖4.7在8086系統(tǒng)中,特別要注意,一般常將AD0信號作為低8位數(shù)據(jù)的選通信號,因?yàn)椋慨?dāng)CPU和偶地址單元或偶地址端口交換數(shù)據(jù)時,在T1狀態(tài),AD0引腳傳送的地址信號必定為低電平;在其他狀態(tài),則用來傳送數(shù)據(jù)。而CPU的傳輸特性決定了只要是偶地址單元或偶地址端口交換數(shù)據(jù),那么,CPU必定通過總線低8位,即AD7~AD0傳輸數(shù)據(jù)??梢?,如果在總線周期的T1狀態(tài),AD0為低電平,實(shí)際上就指示了在這一總線周期的其余狀態(tài)中,CPU將用總線低8位和偶地址單元或偶地址端口交換數(shù)據(jù)。因此,AD0和下面講到的BHE類似,可以用來作為接于數(shù)據(jù)總線低8位上的8位外設(shè)接口芯片的選通信號。AD15~AD0在CPU響應(yīng)中斷,以及系統(tǒng)總線“保持響應(yīng)”時,都被浮置為高阻狀態(tài)。2.A19/S6~A16/S3(address/status)地址/狀態(tài)復(fù)用引腳(輸出)A19/S6~A16/S3在總線周期的T1狀態(tài),用來輸出地址的最高4位。在總線周期的T2,T3,TW和T4狀態(tài)時,用來輸出狀態(tài)信息。其中,S6為0,用來指示8086/8088當(dāng)前與總線相連,所以在T2,T3,TW和T4狀態(tài)時,8086/8088總是使S6等于0,以表示8086/8088當(dāng)前連在總線上。S5表明中斷允許標(biāo)志的當(dāng)前設(shè)置,若為1,表示當(dāng)前允許可屏蔽中斷請求;若為0,則禁止一切可屏蔽中斷。S4,S3合起來指出當(dāng)前正在使用哪段寄存器。3.BHE/S7(bushighenable/status)高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用引腳(輸出)在總線周期的T1狀態(tài),8086在BHE/S7引腳輸出BHE信號,表示高8位數(shù)據(jù)總線D15~D8上的數(shù)據(jù)有效。在T2,T3,TW和T4狀態(tài),BHE/S7引腳輸出狀態(tài)信號S7。不過,在當(dāng)前的芯片(8086,8086-1,8086-2)設(shè)計中,S7并未被賦予任何實(shí)際意義。在8088系統(tǒng)中,第34腳不是BHE7/S7,而是被賦予另外的信號。在最大模式時,此引腳恒為高電平;在最小模式中,則為SS0,它和DT/R,M/IO一起決定了8088芯片當(dāng)前總線周期的讀/寫動作。4.NMI(non-maskableinterrupt)非屏蔽中斷引腳(輸入)非屏蔽中斷信號是一個由低到高的上升沿。這類中斷不受中斷標(biāo)志IF的影響,也不能用軟件進(jìn)行屏蔽。每當(dāng)NMI端進(jìn)入一個正沿觸發(fā)信號時,CPU就會在結(jié)束當(dāng)前指令后,進(jìn)入對應(yīng)于中斷類型號為2的非屏蔽中斷處理程序。5.INTR(interruptrequest)可屏蔽中斷請求信號引腳(輸入)可屏蔽中斷請求信號為高電平有效,CPU在執(zhí)行每條指令的最后一個時鐘周期會對INTR信號進(jìn)行采樣,如果CPU中的中斷允許標(biāo)志為1,并且又接收到INTR信號,那么,CPU就會在結(jié)束當(dāng)前指令后,響應(yīng)中斷請求,進(jìn)入一個中斷處理子程序。6.RD(read)讀信號引腳(輸出)此信號指出將要執(zhí)行一個對內(nèi)存或I/O端口的讀操作。到底是讀取內(nèi)存單元中的數(shù)據(jù)還是I/O端口中的數(shù)據(jù),這決定于M/IO信號。在一個執(zhí)行讀操作的總線周期中,RD信號在T2,T3和TW狀態(tài)均為低電平。在系統(tǒng)總線進(jìn)入“保持響應(yīng)”期間,RD引腳被浮置為高阻狀態(tài)。7.CLK(clock)時鐘引腳(輸入)8086/8088要求時鐘信號的占空比為33%,即1/3周期為高電平,2/3周期為低電平。8086/8088的時鐘頻率要求為5MHz,8086-1的時鐘頻率為10MHz,8086-2的時鐘頻率則為8MHz,時鐘信號為CPU和總線控制邏輯電路提供定時手段。8.RESET(reset)復(fù)位信號引腳(輸入)復(fù)位信號為高電平有效。8086/8088要求復(fù)位信號至少維持4個時鐘周期的高電平才有效。復(fù)位信號來到后,CPU便結(jié)束當(dāng)前操作,并對處理器標(biāo)志寄存器、IP,DS,SS,ES及指令隊(duì)列清零,而將CS設(shè)置為FFFFH。當(dāng)復(fù)位信號變?yōu)榈碗娖綍r,CPU從FFFF0H開始執(zhí)行程序。9.READY(ready)“準(zhǔn)備好”信號引腳(輸入)“準(zhǔn)備好”信號實(shí)際上是由所訪問的存儲器或I/O設(shè)備發(fā)來的響應(yīng)信號,高電平有效?!皽?zhǔn)備好”信號有效時,表示內(nèi)存或I/O設(shè)備準(zhǔn)備就緒,馬上就可進(jìn)行一次數(shù)據(jù)傳輸。CPU在每個總線周期的T3狀態(tài)開始對READY信號進(jìn)行采樣。如果檢測到READY為低電平,則在T3狀態(tài)之后插入等待狀態(tài)TW,在TW狀態(tài),CPU也對READY進(jìn)行采樣,若READY仍為低電平,則會繼續(xù)插入TW,所以TW可以插入一個或多個。直到READY變?yōu)楦唠娖胶?,才進(jìn)入T4狀態(tài),完成數(shù)據(jù)傳送過程,從而結(jié)束當(dāng)前總線周期。10.TEST(test)測試信號引腳(輸入)測試信號為低電平有效。TEST信號是和指令WAIT結(jié)合起來使用的,在CPU執(zhí)行WAIT指令時,CPU處于空轉(zhuǎn)狀態(tài)進(jìn)行等待;當(dāng)8086的TEST信號有效時,等待狀態(tài)結(jié)束,CPU繼續(xù)往下執(zhí)行被暫停的指令。11.MN/MX(minimum/maximummodecontrol)最?。畲竽J娇刂菩盘栆_(輸入)它是最大模式及最小模式的選擇控制端。此引腳固定接為+5V時,CPU處于最小模式;如果接地,則CPU處于最大模式。12.GND地和Vcc電源引腳8086/8088均用單一+5V電源。8086/8088CPU的第24腳~第31腳在最大模式和最小模式下有不同的名稱和定義。4.3.2最小工作方式當(dāng)MN/MX(33號引腳)接+5V時,8086/8088處于最小工作方式,整個系統(tǒng)只有一片CPU,所有的總線控制信號都由該CPU產(chǎn)生。①INTA中斷響應(yīng)信號(輸出),是CPU對外設(shè)的中斷請求的回答信號。②ALE地址鎖存允許信號(輸出),是CPU在每個總線周期T1發(fā)出的,高電平表示當(dāng)前地址/數(shù)據(jù)復(fù)用線上輸出的是地址信息。接下頁③DEN數(shù)據(jù)允許信號(輸出),表示CPU準(zhǔn)備好接受和發(fā)送數(shù)據(jù)。④DT/R數(shù)據(jù)收發(fā)信號,用其控制數(shù)據(jù)的傳送方向。此引腳為高電平,則CPU進(jìn)行數(shù)據(jù)發(fā)送;反之,CPU進(jìn)行數(shù)據(jù)接受;⑤M/IO存儲器/IO控制信號,高電平表示訪問存儲器,低電平表示訪問I/O。⑥WR寫信號(輸出)此引腳低電平時,表示CPU正在執(zhí)行存儲器或I/O的寫操作。⑦HOLD總線保持請求信號(輸入),是系統(tǒng)中其他總線主控部件向CPU發(fā)出的請求占用總線的申請信號。⑧HLDA總線保持響應(yīng)信號(輸出),是CPU對請求占用總線使用權(quán)的響應(yīng)信號。說明:對8088來說,第34引腳為SSO,與DT/R、M/IO的組合,反映了當(dāng)前總線周期的操作。圖4.8是8086在最小模式下的典型配置。由圖4.8可看到,在8086的最小模式中,硬件包括:1片8284A,作為時鐘發(fā)生器;3片8282或74LS373,用來作為地址鎖存器;當(dāng)系統(tǒng)中所連的存儲器和外設(shè)較多時,需要增加數(shù)據(jù)總線的驅(qū)動能力,這時,要用兩片8286/8287作為總線收發(fā)器。圖4.84.3.3最大工作模式
當(dāng)MN/MX(33號引腳)接地時,8086/8088處于最大工作方式,系統(tǒng)的總線控制信號由專用的總線控制器8288提供。最大方式用于多處理器和協(xié)處理器的結(jié)構(gòu)中。最大工作模式的典型配置如圖4.12所示。這時,8086/8088的MN/MX引腳接地。圖4.128086引腳信號定義4.48086/8088的主要操作功能一個微型機(jī)系統(tǒng)要完成各種任務(wù),其中有一些操作是最基本的。本節(jié)講解以下幾項(xiàng)8086的主要操作:①系統(tǒng)的復(fù)位和啟動操作;②總線操作;③中斷操作;④最小工作模式下的總線請求;⑤最大工作模式下的讀/寫操作。
4.4.1系統(tǒng)的復(fù)位和啟動操作8086/8088的復(fù)位和啟動操作是在RESET引腳上加上觸發(fā)信號來執(zhí)行的。8086/8088要求復(fù)位信號(RESET)至少有4個時鐘周期的高電平,如果是初次加電的啟動,則要求有大于50μs的高電平。標(biāo)志寄存器FR指令指針寄存器IPCSDSSSES指令隊(duì)列其他寄存器清零0000HFFFFH0000H0000H0000H空0000H復(fù)位時內(nèi)部各寄存器的值在復(fù)位的時候,代碼段寄存器CS和指令指針寄存器IP分別初始化為FFFFH和0000H。所以,8086/8088在復(fù)位之后再重新啟動時,便從內(nèi)存的FFFF0H處開始執(zhí)行指令,使系統(tǒng)在啟動時,能自動進(jìn)入系統(tǒng)程序。復(fù)位信號RESET從高電平到低電平的跳變會觸發(fā)CPU內(nèi)部的一個復(fù)位邏輯電路,經(jīng)過7個時鐘周期之后,CPU就被啟動而恢復(fù)正常工作,即從FFFF0H處開始執(zhí)行程序。4.4.2總線操作8086/8088CPU中各單元之間以及與外設(shè)的數(shù)據(jù)交換,都是通過總線來進(jìn)行的??偩€操作有兩種情況,即總線讀操作及總線寫操作??偩€讀操作指CPU從存儲器或外設(shè)端口讀取數(shù)據(jù)??偩€寫操作指CPU把數(shù)據(jù)寫入存儲器或外設(shè)端口。1.最小模式下的總線操作(1)8086CPU最小模式下的總線讀周期(1)T1狀態(tài)
當(dāng)CPU準(zhǔn)備開始一個總線讀周期時,用M/IO信號指出當(dāng)前執(zhí)行的讀操作是從存儲器讀,還是從I/O端口讀。M/IO信號的有效電平一直保持到整個總線周期的結(jié)束。在T1狀態(tài),CPU經(jīng)地址/數(shù)據(jù)復(fù)用線AD15~AD0,地址/狀態(tài)復(fù)用線A19/S7~A16/S3發(fā)出20位地址信息。發(fā)出地址信息的同時BHE和ALE控制信號有效。BHE信號用來表示高位數(shù)據(jù)線上的信息可以使用,用該信號作為奇地址存儲體的選擇信號,配合地址信號來實(shí)現(xiàn)對存儲單元的尋址。ALE信號作為地址鎖存信號,啟動鎖存器8212,在ALE信號下降沿將20位地址和BHE信號鎖存。從而把地址信息和狀態(tài)信息分開。
(2)T2狀態(tài)
在T2狀態(tài)時,A19/S6~A16/S3上的地址信號消失,而出現(xiàn)S6~S3狀態(tài)信號,這些狀態(tài)信號保持到讀周期結(jié)束,狀態(tài)信號用來表明當(dāng)前正在使用哪一個段寄存器,指示可屏蔽中斷允許標(biāo)志IF的狀態(tài),以及表明8086CPU當(dāng)前是連在總線上。AD15~AD0變成高阻狀態(tài),為讀入數(shù)據(jù)作準(zhǔn)備。RD有效信號為由高電平變成低電平,送至存儲器或I/O端口,開始從被選中的存儲單元或I/O端口讀取數(shù)據(jù)。DEN也變成低電平有效信號,啟動收發(fā)器8286,與在T1狀態(tài)時已有效的DT/信號一樣,做好了接收來自存儲器或I/O端口的數(shù)據(jù)。
(3)T3狀態(tài)若存儲器或I/O端口已做好數(shù)據(jù)準(zhǔn)備而不需要等待狀態(tài)時,在T3期間將數(shù)據(jù)放到數(shù)據(jù)總線上,在T3結(jié)束時,CPU從AD15~AD0上讀取數(shù)據(jù)。(4)TW狀態(tài)
若存儲器或I/O設(shè)備來不及把數(shù)據(jù)放到數(shù)據(jù)總線上,則發(fā)出一個低電平信號到CPU的READY端,使CPU在T3和T4之間插入一個或幾個TW狀態(tài)等待存儲器或I/O端口的數(shù)據(jù)。8086CPU這時的工作過程是:在T3狀態(tài)開始測試READY引腳信號,若發(fā)現(xiàn)為高電平,則表示存儲器或I/O端口能按時將數(shù)據(jù)送上數(shù)據(jù)總線,T3狀態(tài)之后即進(jìn)入T4狀態(tài);若測試到READY為低電平,則在T3狀態(tài)結(jié)束后,不進(jìn)入T4狀態(tài),而插入一個或幾個TW狀態(tài),在每個TW狀態(tài)開始,CPU都測試READY線,只有發(fā)現(xiàn)它為高電平后,才在該TW結(jié)束后進(jìn)入T4狀態(tài)。
在最后一個TW狀態(tài),數(shù)據(jù)已經(jīng)出現(xiàn)在數(shù)據(jù)總線上。所以,在最后一個TW狀態(tài)中,總線的動作和基本總線周期中T3狀態(tài)所完成的動作完全一樣。而在其他的TW狀態(tài),所有控制信號的電平和T3狀態(tài)的一樣,但數(shù)據(jù)尚未出現(xiàn)在數(shù)據(jù)總線上。
(5)T4狀態(tài)
在T4狀態(tài)和前一個狀態(tài)交界的下降沿處,CPU對數(shù)據(jù)總線進(jìn)行采樣,讀取數(shù)據(jù)。
2.8086CPU最小模式下的總線寫周期(1)T1狀態(tài)
首先使M/IO控制信號有效,指明是對存儲器還是對I/O接口進(jìn)行操作。此有效電平一直保持到T4狀態(tài)才結(jié)束。同時由A19/S6~A16/S3和AD15~AD0
的復(fù)用引腳發(fā)出將要訪問的存儲單元或I/O接口的20位地址。發(fā)出地址鎖存信號ALE。ALE的下降沿對地址信號進(jìn)行鎖存,同時也對M/IO信號和BHE信號進(jìn)行鎖存。使BHE
信號有效,作為存儲體的體選信號,配合地址信號實(shí)現(xiàn)對奇地址存儲單元的尋址。使控制數(shù)據(jù)收發(fā)器方向的信號DT/R信號為高電平,指出將要傳送的數(shù)據(jù)流方向,收發(fā)器8286發(fā)送數(shù)據(jù),進(jìn)行寫操作。
(2)T2狀態(tài)由AD15~AD0
復(fù)用引腳發(fā)出將要寫到存儲單元或I/O端口的16位數(shù)據(jù),此數(shù)據(jù)一直保持到T4狀態(tài)的中間。WR引腳發(fā)出寫信號,該信號送到存儲器或I/O接口,并保持到T4狀態(tài)的中間。此時寫操作已準(zhǔn)備就緒,只等待將數(shù)據(jù)寫入存儲單元或I/O接口。(3)T3狀態(tài)CPU也將在T3上升沿測試READY信號,若READY為低電平,則表明將訪問的存儲單元或I/O接口未準(zhǔn)備好接收數(shù)據(jù),CPU將在T3與T4狀態(tài)之間插入TW等待狀態(tài),以等待存儲器或I/O接口做好準(zhǔn)備工作。如果測試到READY為高電平,則在T3和T4狀態(tài)交接處,或是TW與T4狀態(tài)交接處將數(shù)據(jù)寫入存儲單元或I/O接口。(4)T4狀態(tài)
在T4狀態(tài),數(shù)據(jù)從數(shù)據(jù)總線上被撤除,各種控制信號和狀態(tài)信號進(jìn)入無效狀態(tài),CPU完成了對存儲單元或I/O接口的寫操作。4.4.3中斷操作中斷:
當(dāng)CPU正常運(yùn)行時,由于隨機(jī)事件(內(nèi)部或外部)引起CPU暫時中止正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行請求中斷的外設(shè)(或內(nèi)部事件)的中斷服務(wù)程序,中斷服務(wù)程序結(jié)束后再返回被中止的程序,這一過程稱為中斷。微機(jī)系統(tǒng)為適應(yīng)各種需要,都有一個中斷系統(tǒng),8086/8088是16位微處理器,它的中斷系統(tǒng)可以處理256種不同類型的中斷。硬件中斷軟件中斷:主要來自CPU內(nèi)部的軟件中斷。非屏蔽中斷:NMI引腳輸入,不受中斷標(biāo)志位IF控制??善帘沃袛?INTR引腳輸入,由標(biāo)志寄存器中的IF位控制。硬件中斷軟件中斷2.中斷向量表
(1)中斷向量的定義--實(shí)際上就是中斷服務(wù)程序的入口地址。每個中斷類型號對應(yīng)一個中斷向量。中斷向量占4個字節(jié)存儲單元,其中前兩個字節(jié)放中斷向量的偏移地址(IP),且低字節(jié)在前,高字節(jié)在后;后兩個字節(jié)放中斷向量的段地址(CS),也是低字節(jié)在前,高字節(jié)在后。
(2)中斷向量表--存放中斷向量的存儲區(qū)稱為中斷向量表。通常在存儲器的低地址區(qū)。
8086/8088有256種中斷類型,類型號為0-255(或0-FFH),共有256個中斷向量,每個占4個存儲單元,所以需要1024個字節(jié),在存儲器的最低端,地址從00000H-003FFH,這塊地址空間就是中斷向量表。
從表中,知道了中斷類型號,便可計算出相應(yīng)的中斷向量在表中存放的位置,稱為中斷向量表地址,或稱為中斷向量指針。從中斷向量表地址中取出中斷向量,便得到了該中斷類型號的中斷服務(wù)程序入口地址。即中斷類型號×4=中斷向量指針的低地址中斷類型號×4+2=中斷向量指針的高地址(中斷向量指針的低地址)→(IP)(中斷向量指針的高地址)→(CS)例1:中斷類型號為27H
則中斷向量指針的低地址=27H×4=9CH
中斷向量指針的高地址=27H×4+2=9EH
即該中斷向量存放在0000H:009CH開始的4個連續(xù)單元中。如果這4個單元中的內(nèi)容如下:
0000:009C2AH0000:009D43H0000:009E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年臺州學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案詳解一套
- 2026年湖南軟件職業(yè)技術(shù)大學(xué)單招職業(yè)適應(yīng)性測試題庫含答案詳解
- 2026年呂梁職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性考試題庫及答案詳解一套
- 2026年河南機(jī)電職業(yè)學(xué)院單招職業(yè)傾向性測試題庫附答案詳解
- 羅莊社工面試題及答案
- 關(guān)于銀行面試題目及答案
- 國家開放大學(xué)《健康教育與健康促進(jìn)》形考任務(wù)1-4答案
- 2025年哈爾濱工業(yè)大學(xué)未來工學(xué)院招聘5人備考題庫及完整答案詳解一套
- 重慶市開州區(qū)事業(yè)單位2025年面向應(yīng)屆高校畢業(yè)生考核招聘工作人員備考題庫及完整答案詳解1套
- 企業(yè)規(guī)章管理制度范本(3篇)
- 地下水污染與防治課件
- 法人獨(dú)資旅行社公司章程
- 校門安全管理“十條”
- 超全QC管理流程圖
- 臨時工勞動合同簡易版可打印
- 潔凈室施工及驗(yàn)收規(guī)范標(biāo)準(zhǔn)
- -井巷工程課程設(shè)計
- pks r5xx裝機(jī)及配置手冊
- 支付寶城市服務(wù)商管理制度
- GB/T 17215.322-2008交流電測量設(shè)備特殊要求第22部分:靜止式有功電能表(0.2S級和0.5S級)
- 駐廠QC檢驗(yàn)日報表
評論
0/150
提交評論