第6章計(jì)算機(jī)組成原理_第1頁(yè)
第6章計(jì)算機(jī)組成原理_第2頁(yè)
第6章計(jì)算機(jī)組成原理_第3頁(yè)
第6章計(jì)算機(jī)組成原理_第4頁(yè)
第6章計(jì)算機(jī)組成原理_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章

CPU的功能與結(jié)構(gòu)本章導(dǎo)讀本章對(duì)CPU的情況進(jìn)行整體說(shuō)明,首先介紹CPU的功能和基本組成結(jié)構(gòu),其中包括CPU的內(nèi)部結(jié)構(gòu)框圖,內(nèi)部寄存器結(jié)構(gòu),中斷情況和CPU內(nèi)的數(shù)據(jù)通路結(jié)構(gòu)。然后對(duì)CPU的外部特性進(jìn)行介紹,并舉例說(shuō)明CPU的引腳情況與功能定義。本章要點(diǎn)CPU的功能CPU的基本結(jié)構(gòu)數(shù)據(jù)通路的功能數(shù)據(jù)通路的基本結(jié)構(gòu)6.1CPU的功能中央處理器(CPU)是計(jì)算機(jī)系統(tǒng)的核心組成部件,它包括運(yùn)算器和控制器兩大部分。在早期的計(jì)算機(jī)中,器件集成度低,運(yùn)算器與控制器是兩個(gè)相對(duì)獨(dú)立的部分。隨著大規(guī)模、超大規(guī)模集成電路技術(shù)的發(fā)展,逐漸趨向于將CPU作為一個(gè)整體。在微型計(jì)算機(jī)中,已將CPU集成為一塊芯片,稱(chēng)為微處理器。計(jì)算機(jī)能自動(dòng)執(zhí)行存放在主存中的程序。程序是指令的有序集合,計(jì)算機(jī)每執(zhí)行一段程序,就可完成一定的功能。具體執(zhí)行過(guò)程是:計(jì)算機(jī)從主存中取出一條指令,按指令操作碼及指令中的其他有關(guān)信息執(zhí)行以實(shí)現(xiàn)指令所要求的功能,然后按順序遞增或轉(zhuǎn)移指令要求的目的地址,從主存中取出下一條指令……重復(fù)上述過(guò)程,直至停機(jī)指令為止。中央處理器就是專(zhuān)門(mén)用于完成上述功能的計(jì)算機(jī)部件。CPU在計(jì)算機(jī)系統(tǒng)的運(yùn)行中起著重要的作用,它具有如下四個(gè)方面的基本功能。(1)指令控制,即控制指令的執(zhí)行順序。CPU必須對(duì)指令的執(zhí)行順序進(jìn)行控制,正確產(chǎn)生下一條指令在內(nèi)存中的地址,以保證指令序列正確執(zhí)行。(2)操作控制,即指令內(nèi)操作信號(hào)的控制。一條指令的功能一般需要若干個(gè)操作信號(hào)的組合來(lái)實(shí)現(xiàn),因此,CPU必須管理并產(chǎn)生由內(nèi)存取出的每條指令所要求的操作信號(hào),把各種操作信號(hào)送往相應(yīng)的部件,從而控制這些部件按指令的要求進(jìn)行動(dòng)作。(3)時(shí)間控制,計(jì)算機(jī)中各指令的操作信號(hào)均受時(shí)間的嚴(yán)格定時(shí),一條指令的整個(gè)執(zhí)行過(guò)程也受到時(shí)間限制。而CPU對(duì)各種操作實(shí)施時(shí)間上的定時(shí),就稱(chēng)為時(shí)間控制。(4)數(shù)據(jù)加工,即對(duì)數(shù)據(jù)進(jìn)行算術(shù)和邏輯運(yùn)算,完成加工處理,這是CPU的根本任務(wù)。另外,CPU通常還要求能實(shí)現(xiàn)異常處理,如運(yùn)算中的溢出等錯(cuò)誤情況處理,以及處理外部設(shè)備的服務(wù)請(qǐng)求等。這些功能歸納起來(lái)實(shí)質(zhì)上只有兩個(gè):一是執(zhí)行程序,完成某一任務(wù);二是對(duì)異常的處理。執(zhí)行程序即一條條執(zhí)行指令。異常處理由中斷機(jī)構(gòu)完成,最終也要執(zhí)行指令,所以處理指令和中斷是中央處理機(jī)的最本質(zhì)特點(diǎn)。6.2CPU的基本結(jié)構(gòu)6.2.1CPU的結(jié)構(gòu)框圖6.2.2CPU的寄存器結(jié)構(gòu)6.2.3控制單元與中斷系統(tǒng)6.2.4CPU內(nèi)部數(shù)據(jù)通路6.2.1CPU的結(jié)構(gòu)框圖根據(jù)CPU的功能不難設(shè)想,要處理指令,CPU內(nèi)就要有一個(gè)寄存器存放指令的地址以找到指令并實(shí)現(xiàn)取指令,還要有控制部件能分析指令的功能并發(fā)出指令需要的操作控制信號(hào),還要有相應(yīng)的算術(shù)邏輯運(yùn)算部件ALU完成具體的運(yùn)算。要處理異常情況和特殊請(qǐng)求,就必須有中斷系統(tǒng)??梢?jiàn),CPU可由四大部分組成。圖6-1CPU內(nèi)部結(jié)構(gòu)框圖在圖6-1中,考慮到CPU內(nèi)部各部件間有數(shù)據(jù)信息的傳送,所以也畫(huà)出了內(nèi)部的數(shù)據(jù)總線(xiàn)。其中ALU部分的內(nèi)容已在第3章作了詳細(xì)說(shuō)明,在此,我們用圖6-2來(lái)表示基本的運(yùn)算器部件結(jié)構(gòu)。圖6-2基本的運(yùn)算部件結(jié)構(gòu)基本運(yùn)算部件包括ALU、多路選擇器和移位器。沿?cái)?shù)據(jù)流向,大致分為三級(jí):第一級(jí)為多路選擇器,決定哪一種數(shù)據(jù)送往ALU;第二級(jí)為ALU,由功能選擇命令選擇ALU完成的運(yùn)算功能;第三級(jí)是移位器,由輸出選擇對(duì)輸出結(jié)果進(jìn)行移位控制。6.2.2CPU的寄存器結(jié)構(gòu)CPU中的寄存器大致可分兩類(lèi):一類(lèi)屬用戶(hù)可見(jiàn)寄存器,用戶(hù)可對(duì)這類(lèi)寄存器編程使用,或通過(guò)優(yōu)化使CPU因使用這類(lèi)寄存器而減少對(duì)主存的訪(fǎng)問(wèn)次數(shù);另一類(lèi)屬控制和狀態(tài)寄存器,用戶(hù)不可對(duì)這類(lèi)寄存器編程,它們被控制部件使用,以控制CPU的操作,也可被帶有特權(quán)的操作系統(tǒng)程序使用,從而控制程序的執(zhí)行。1、用戶(hù)可見(jiàn)寄存器通常CPU執(zhí)行機(jī)器語(yǔ)言訪(fǎng)問(wèn)的寄存器為用戶(hù)可見(jiàn)寄存器,按其特征又可分為以下幾類(lèi):(1)通用寄存器通用寄存器可由程序設(shè)計(jì)者指定許多功能,可用于存放操作數(shù),也可作為滿(mǎn)足某種尋址方式所需的寄存器。(2)數(shù)據(jù)寄存器數(shù)據(jù)寄存器用于存放操作數(shù),其位數(shù)應(yīng)滿(mǎn)足多數(shù)數(shù)據(jù)類(lèi)型的數(shù)值范圍,有些機(jī)器允許使用兩個(gè)連續(xù)的寄存器存放雙倍字長(zhǎng)的值。還有些機(jī)器的數(shù)據(jù)寄存器只能用于保存數(shù)據(jù),不能用于操作數(shù)地址的計(jì)算。(3)地址寄存器地址寄存器用于存放地址,其本身可以具有通用性,也可用于特殊的尋址方式。地址寄存器的位數(shù)必須足夠長(zhǎng),以滿(mǎn)足足夠大的尋址范圍。(4)條件代碼寄存器這類(lèi)寄存器中存放條件碼,它們對(duì)用戶(hù)來(lái)說(shuō)是部分透明的。條件碼是CPU根據(jù)運(yùn)算結(jié)果由硬件設(shè)置的位,常用的有N、Z、V、C等。條件碼可被測(cè)試,作為分支運(yùn)算的依據(jù)。此外,有些條件碼可被直接置位或復(fù)位。2、控制和狀態(tài)寄存器CPU中還有一類(lèi)寄存器用于控制CPU的操作或運(yùn)算。在一些機(jī)器里,大部分這類(lèi)寄存器對(duì)應(yīng)用程序員是透明的。如以下四種寄存器在指令執(zhí)行過(guò)程中起重要作用。MAR:存儲(chǔ)器地址寄存器,用于存放將被訪(fǎng)問(wèn)的存儲(chǔ)單元的地址。MDR:存儲(chǔ)器數(shù)據(jù)寄存器,用于存放欲存入存儲(chǔ)器中的數(shù)據(jù)或最近從存儲(chǔ)器中讀出的數(shù)據(jù)。PC:程序計(jì)數(shù)器,存放欲執(zhí)行的指令的地址,通常具有計(jì)數(shù)功能。當(dāng)遇到轉(zhuǎn)移類(lèi)指令時(shí),PC的值可被修改。IR:指令寄存器,存放當(dāng)前欲執(zhí)行的指令。通過(guò)這四個(gè)寄存器,CPU可以和主存交換信息。例如,將下一條指令的地址從PC送至MAR,啟動(dòng)存儲(chǔ)器作讀操作,存儲(chǔ)器就可將指定地址單元內(nèi)的指令讀至MDR,再由MDR送至IR。3、寄存器結(jié)構(gòu)舉例(1)8086的寄存器組織8086是Intel公司的16位微處理器,它內(nèi)部包含有4組16位寄存器,它們是通用寄存器組、指針和變址寄存器組、段寄存器組、指令指針及標(biāo)志位寄存器。如圖6-3所示。圖6-38086CPU的寄存器組通用寄存器組是AX,BX,CX和DX,用以存放16位數(shù)據(jù)或地址。也可分成8個(gè)8位寄存器來(lái)使用,低8位是AL,BL,CL和DL,高8位是AH,BH,CH和DH,此時(shí)只能存放8位數(shù)據(jù),不能存放地址。為了縮短指令代碼的長(zhǎng)度,在8086中,某些通用寄存器用作專(zhuān)門(mén)用途。如AX作累加器,CX在串指令中作計(jì)數(shù)寄存器等。指針和變址寄存器包括基址指針寄存器BP,堆棧指針寄存器SP,源變址寄存器SI,目的變址寄存器DI。這組寄存器存放的內(nèi)容通常是某一段內(nèi)地址偏移量,用來(lái)形成操作數(shù)地址,主要在堆棧操作和變址運(yùn)算中使用。8086CPU可直接尋址1MB的存儲(chǔ)器空間,直接尋址需要20位地址碼,而所有內(nèi)部寄存器都是16位的,只能直接尋址64KB,因此對(duì)存儲(chǔ)器采用分段技術(shù)來(lái)解決此問(wèn)題。系統(tǒng)將1MB的存儲(chǔ)空間分成若干邏輯段,每段最長(zhǎng)64KB,然后設(shè)置了4個(gè)16位的段寄存器,由它們給出相應(yīng)邏輯段的首地址(高16位),稱(chēng)為“段基址”,與段內(nèi)偏移地址組合形成20位物理地址。這些段寄存器是代碼段寄存器CS,數(shù)據(jù)段寄存器DS,堆棧段寄存器SS和附加段寄存器ES。指令指針寄存器IP用來(lái)存放將要執(zhí)行的下一條指令在現(xiàn)行代碼段中的偏移地址。在程序運(yùn)行時(shí),能自動(dòng)修改,使其始終指向下一條將要執(zhí)行的指令的地址。8086程序不能直接訪(fǎng)問(wèn)IP,但可以通過(guò)某些指令修改IP的內(nèi)容。如中斷或子程序調(diào)用指令。標(biāo)志寄存器PSW用來(lái)存放運(yùn)算結(jié)果的特征,常用作后繼條件轉(zhuǎn)移指令的轉(zhuǎn)移控制條件。(2)Pentium機(jī)的寄存器組織Pentium微處理器配備的寄存器種類(lèi)和數(shù)量非常多,按其類(lèi)型可分為如下幾類(lèi)。①、基本體系結(jié)構(gòu)寄存器。包括通用寄存器、指令指針寄存器、標(biāo)志寄存器和段寄存器。②、系統(tǒng)級(jí)寄存器。包括系統(tǒng)寄存器和系統(tǒng)地址寄存器。③、調(diào)試和測(cè)試寄存器。④、浮點(diǎn)寄存器。包括數(shù)據(jù)寄存器、狀態(tài)字寄存器、指令和數(shù)據(jù)指針寄存器、控制字寄存器和標(biāo)記字寄存器。圖6-4給出了16個(gè)應(yīng)用程序員可用的寄存器。圖6-4Pentium應(yīng)用寄存器組從圖中可以看出,通用寄存器共有8個(gè),全部是32位寄存器,它們是EAX,EBX,ECX,EDX,ESP,EBP,ESI和EDI。它們又含有與8086兼容的8個(gè)16位寄存器及8個(gè)8位寄存器。指令指針寄存器也為32位,稱(chēng)為EIP,指向要執(zhí)行的下一條指令的偏移地址。標(biāo)志寄存器EFLAGS為32位,包含若干狀態(tài)標(biāo)志和控制標(biāo)志,狀態(tài)標(biāo)志由微處理器執(zhí)行某種操作后自動(dòng)設(shè)置,其低位部分與8086兼容。段寄存器除了原有的CS,DS,SS和ES外,又增加了兩個(gè)新的段寄存器FS和GS,它們也是附加數(shù)據(jù)段寄存器,都仍為16位寄存器。(3)MC68000的寄存器組織MotorolaMC68000的寄存器設(shè)計(jì)方案是將它的寄存器分成了8個(gè)數(shù)據(jù)寄存器(D0~D7)和9個(gè)地址寄存器(A0~A7、A7`),它們都是32位的,如圖6-5所示。圖6-5MC68000的寄存器其中8個(gè)數(shù)據(jù)寄存器主要用于數(shù)據(jù)存儲(chǔ)管理,在尋址方式中僅用作變址寄存器。寄存器允許8位、16位和32位的數(shù)據(jù)格式運(yùn)算,這些都可以由操作碼確定。在地址寄存器中存放著32位的地址,其中兩個(gè)寄存器(A7和A7`)也用作堆棧指針。但它們一個(gè)用于操作系統(tǒng),一個(gè)用于用戶(hù),具體的選擇取決于當(dāng)前的執(zhí)行模式。不過(guò)在某一時(shí)刻這兩個(gè)寄存器只能使用一個(gè)。MC68000還包括一個(gè)32位程序計(jì)數(shù)器PC和一個(gè)16位的狀態(tài)寄存器。6.2.3控制單元與中斷系統(tǒng)控制單元CU產(chǎn)生CPU所需要的全部微操作控制信號(hào)。所謂微操作,即計(jì)算機(jī)中最簡(jiǎn)單的、不能再分解的操作,如打開(kāi)某一個(gè)控制門(mén)或寄存器的清除脈沖等。復(fù)雜操作是通過(guò)執(zhí)行一系列微操作實(shí)現(xiàn)的??刂茊卧狢U根據(jù)指令譯碼器產(chǎn)生的操作控制信號(hào)、時(shí)序部件產(chǎn)生的時(shí)序信號(hào)以及其他控制條件可以產(chǎn)生整個(gè)機(jī)器所需要的全部操作控制信號(hào)。這些控制信號(hào)引向計(jì)算機(jī)各個(gè)部件,以控制各部件執(zhí)行指令所要求的功能。該控制單元部件可由硬布線(xiàn)方式或微程序方式實(shí)現(xiàn),這將在后面章節(jié)詳細(xì)介紹。中斷是現(xiàn)代計(jì)算機(jī)中非常重要的處理機(jī)制,在本書(shū)第10章中會(huì)對(duì)I/O中斷作較詳細(xì)的討論,實(shí)際上I/O中斷只是CPU眾多中斷中的一種。引起中斷的因素很多,為了處理各種中斷,CPU內(nèi)通常設(shè)有處理中斷的機(jī)構(gòu)——中斷系統(tǒng),以解決各種中斷的共性問(wèn)題。對(duì)中斷系統(tǒng)來(lái)說(shuō),主要需要解決以下幾個(gè)問(wèn)題:(1)各中斷源如何向CPU提出中斷請(qǐng)求;(2)當(dāng)多個(gè)中斷源同時(shí)提出中斷請(qǐng)求時(shí),中斷系統(tǒng)如何確定優(yōu)先響應(yīng)哪個(gè)中斷源的請(qǐng)求;(3)CPU在什么條件、什么時(shí)候、以什么方式來(lái)響應(yīng)中斷;(4)CPU響應(yīng)中斷后如何保護(hù)現(xiàn)場(chǎng);(5)CPU響應(yīng)中斷后,如何停止原程序的執(zhí)行而轉(zhuǎn)入中斷服務(wù)程序的入口地址;(6)中斷處理結(jié)束后,CPU如何恢復(fù)現(xiàn)場(chǎng),如何返回到原程序的間斷處;(7)若在中斷處理過(guò)程中又出現(xiàn)了新的中斷請(qǐng)求,CPU該如何處理。對(duì)這些問(wèn)題的解決,只有在中斷系統(tǒng)中配置相應(yīng)的硬件和軟件,才能完成整個(gè)中斷處理任務(wù)。但在有些計(jì)算機(jī)中,把部分相應(yīng)的功能分散在了各接口電路中實(shí)現(xiàn)。下面以Pentium微處理器的中斷處理為例,來(lái)了解中斷系統(tǒng)的特點(diǎn)。(1)中斷和異常有兩類(lèi)事件能引起Pentium掛起當(dāng)前指令流的執(zhí)行并響應(yīng)事件:中斷和異常。兩種情況下處理器都要保存當(dāng)前進(jìn)程的上下文,并將轉(zhuǎn)至一個(gè)預(yù)先定義的子程序來(lái)執(zhí)行特殊的服務(wù)。中斷(Interrupt)通常是由硬件信號(hào)產(chǎn)生的,并可出現(xiàn)在程序執(zhí)行期間內(nèi)的任何時(shí)刻。異常(Exception)是由軟件產(chǎn)生的,是由執(zhí)行指令所引發(fā)的。Pentium有兩類(lèi)中斷源和兩類(lèi)異常源。中斷包括可屏蔽中斷和不可屏蔽中斷??善帘沃袛嘤商幚砥鞯腎NTR引腳接收信號(hào)。除非中斷允許標(biāo)志(IF)被置位,否則處理器不承認(rèn)可屏蔽中斷。不可屏蔽中斷由處理器的NMI引腳接收信號(hào)。這類(lèi)中斷的認(rèn)可不能被阻止。異常包括處理器確定的異常和程序異常。處理器確定的異常是當(dāng)試圖執(zhí)行一條指令而處理器遇到一個(gè)錯(cuò)誤時(shí)此異常發(fā)生。程序異常是由一些指令(INTO、INT、BOUND等)引起的。(2)中斷類(lèi)型表Pentium的中斷處理使用了中斷向量表(interruptvectortable)。每一類(lèi)中斷都被指派了一個(gè)中斷類(lèi)型號(hào),此類(lèi)型號(hào)用于對(duì)中斷向量表的索引。該表容納有256個(gè)32位的中斷向量,它們存儲(chǔ)著中斷服務(wù)程序的地址(段地址和偏移地址)。表6-1表示了中斷類(lèi)型號(hào)的指派情況(見(jiàn)教材)。若不止一個(gè)異?;蛑袛嗤瑫r(shí)要求處理,則處理器以一個(gè)預(yù)先指定的順序?yàn)樗鼈兎?wù)。向量號(hào)在表中的位置不反映它們的優(yōu)先權(quán)。異常和中斷的優(yōu)先權(quán)組成5類(lèi)。以降序排列的5類(lèi)優(yōu)先權(quán)是:類(lèi)1:先前指令上的中斷(向量號(hào)1);類(lèi)2:外部中斷(2,32~255);類(lèi)3:取下一指令的故障(3,14);類(lèi)4:下一指令的譯碼故障(6,7);類(lèi)5:執(zhí)行指令的故障(0,4,5,8,10~14,16,17)。(3)處理中斷和子程序調(diào)用相似,一個(gè)到中斷處理子程序的控制傳遞,需要使用系統(tǒng)堆棧保存處理器的狀態(tài)。當(dāng)一個(gè)中斷出現(xiàn)并被處理器識(shí)別時(shí),如下事件序列發(fā)生了。①、若轉(zhuǎn)換涉及到特權(quán)級(jí)改變,則當(dāng)前堆棧段寄存器和當(dāng)前擴(kuò)展的棧指針(ESP)寄存器的內(nèi)容被壓入堆棧。②、EFLAGS寄存器的當(dāng)前值被壓入堆棧。③、中斷(IF)和自陷(TF)兩個(gè)標(biāo)志被清除。這就禁止了INTR中斷、軟中斷或單步特征。④、當(dāng)前代碼段(CS)寄存器和當(dāng)前指令指針(IP或EIP)的內(nèi)容被壓入堆棧。⑤、若中斷伴隨有錯(cuò)誤代碼,則錯(cuò)誤代碼也要壓入堆棧。⑥、取中斷向量?jī)?nèi)容并裝入CS和IP(或EIP)寄存器。找到中斷服務(wù)子程序繼續(xù)執(zhí)行。為實(shí)現(xiàn)從中斷的返回,中斷服務(wù)子程序執(zhí)行一條IRET指令。這使得所有保存在堆棧上的值被取回,并由中斷點(diǎn)恢復(fù)執(zhí)行。6.2.4CPU內(nèi)部數(shù)據(jù)通路CPU內(nèi)部可以分為數(shù)據(jù)部分和控制部分。數(shù)據(jù)部分即數(shù)據(jù)通路,包括寄存器、ALU以及數(shù)據(jù)在它們之間傳送的路徑。數(shù)據(jù)通路能對(duì)數(shù)據(jù)項(xiàng)執(zhí)行某些操作,如數(shù)據(jù)從什么地方開(kāi)始,中間經(jīng)過(guò)哪些寄存器或多路開(kāi)關(guān),最后傳送到哪個(gè)寄存器保存等。數(shù)據(jù)通路功能的實(shí)現(xiàn)需要控制部分加以控制,也即需要控制器向數(shù)據(jù)通路發(fā)出控制信號(hào)來(lái)完成數(shù)據(jù)在通路內(nèi)的一系列傳送。CPU內(nèi)部的數(shù)據(jù)通路的典型組織形式是內(nèi)部總線(xiàn),它通常在寄存器和ALU之間傳送數(shù)據(jù),提供操作數(shù)和保存運(yùn)算結(jié)果。當(dāng)然,在數(shù)據(jù)傳輸頻繁的兩個(gè)部件之間也可以采用專(zhuān)用數(shù)據(jù)通路。常見(jiàn)的總線(xiàn)組織形式大體有三種結(jié)構(gòu)。(1)單總線(xiàn)結(jié)構(gòu)單總線(xiàn)結(jié)構(gòu)的運(yùn)算器如圖6-6所示。由于所有部件都接到同一總線(xiàn)上,所以數(shù)據(jù)可以在任何兩個(gè)寄存器之間,或者在任一個(gè)寄存器和ALU之間傳送。如果具有陣列乘法器或除法器,那么它們所處的位置應(yīng)與ALU相當(dāng)。圖6-6單總線(xiàn)結(jié)構(gòu)對(duì)這種結(jié)構(gòu)的運(yùn)算器來(lái)說(shuō),在同一時(shí)間內(nèi),只能有一個(gè)操作數(shù)放在單總線(xiàn)上。為了把兩個(gè)操作數(shù)輸入到ALU,需要分兩次來(lái)做,而且還需要A,B兩個(gè)緩沖器。例如執(zhí)行一個(gè)加法操作時(shí),第一個(gè)操作數(shù)先放在A緩沖寄存器,然后再把第二個(gè)操作數(shù)放入B緩沖寄存器。只有兩個(gè)操作數(shù)同時(shí)出現(xiàn)在ALU的兩個(gè)輸入端,ALU才執(zhí)行加法。當(dāng)加法結(jié)果出現(xiàn)在單總線(xiàn)上時(shí),由于輸入數(shù)已保存在緩沖寄存器中,它并不會(huì)打擾輸入數(shù)。然后,再做第三個(gè)傳送動(dòng)作,以便把加法的“和”選通到目的寄存器中。由此可見(jiàn),這種結(jié)構(gòu)的主要缺點(diǎn)是總線(xiàn)分時(shí)使用,操作速度較慢。雖然在這種結(jié)構(gòu)中輸入數(shù)據(jù)和保存操作結(jié)果需要三次串行的選通操作,但它不會(huì)對(duì)每種指令都增加很多執(zhí)行時(shí)間。只有在對(duì)全都是CPU寄存器中的兩個(gè)操作數(shù)進(jìn)行操作時(shí),單總線(xiàn)結(jié)構(gòu)的運(yùn)算器才會(huì)造成一定的時(shí)間損失。但是由于它只需控制一條總線(xiàn),故控制電路比較簡(jiǎn)單。(2)雙總線(xiàn)結(jié)構(gòu)雙總線(xiàn)結(jié)構(gòu)的運(yùn)算器如圖6-7所示。在這種結(jié)構(gòu)中,兩個(gè)操作數(shù)可同時(shí)送到ALU進(jìn)行運(yùn)算,只需要一次操作控制,而且馬上就可以得到運(yùn)算結(jié)果。圖中兩條總線(xiàn)各自把其操作數(shù)據(jù)送至ALU的輸入端。圖6-7雙總線(xiàn)結(jié)構(gòu)

特殊寄存器分成兩組,它們分別與一條總線(xiàn)交換數(shù)據(jù)。這樣,通用寄存器中的數(shù)就可以進(jìn)入到任一組特殊寄存器中去,從而使數(shù)據(jù)傳送更為靈活。ALU的輸出不能直接加到總線(xiàn)上去。這是因?yàn)椋?dāng)形成操作結(jié)果的輸出時(shí),兩條總線(xiàn)都被輸入數(shù)占據(jù),因而必須在ALU輸出端設(shè)置緩沖寄存器。為此,操作的控制要分兩步來(lái)完成:第一步,在ALU的兩個(gè)輸入端輸入操作數(shù),形成結(jié)果并送入緩沖寄存器;第二步,把結(jié)果送入目的寄存器。假如在總線(xiàn)1、2和ALU輸入端之間再各加一個(gè)輸入緩沖寄存器,并把兩個(gè)輸入數(shù)先放至這兩個(gè)緩沖寄存器,那么,ALU輸出端就可以直接把操作結(jié)果送至總線(xiàn)1或總線(xiàn)2上去。(3)三總線(xiàn)結(jié)構(gòu)三總線(xiàn)結(jié)構(gòu)的運(yùn)算器如圖6-8所示。在三總線(xiàn)結(jié)構(gòu)中,ALU的兩個(gè)輸入端分別由兩條總線(xiàn)提供數(shù)據(jù),而ALU的輸出則與第三條總線(xiàn)相連。這樣,算術(shù)邏輯操作就可以在一步的控制之內(nèi)完成。圖6-8三總線(xiàn)結(jié)構(gòu)由于ALU本身有時(shí)間延遲,所以輸出結(jié)果打入的選通脈沖必須考慮到包括這個(gè)延遲。另外,設(shè)置了一個(gè)總線(xiàn)旁路器。如果一個(gè)操作數(shù)不需要修改,而直接從總線(xiàn)2傳送到總線(xiàn)3,那么可以通過(guò)控制總線(xiàn)旁路器把數(shù)據(jù)傳出;如果一個(gè)操作數(shù)需要修改,那么就借助于ALU。顯然,三總線(xiàn)結(jié)構(gòu)的運(yùn)算器的特點(diǎn)是操作時(shí)間快,但它的總線(xiàn)控制相對(duì)復(fù)雜。6.3CPU的外部特性6.3.18086的引腳定義6.3.280386的引腳定義CPU完成程序執(zhí)行和數(shù)據(jù)處理,但程序和數(shù)據(jù)都需要由CPU外部送入。同時(shí)CPU還要能對(duì)各種外部設(shè)備進(jìn)行管理和控制,這些信號(hào)都需要通過(guò)CPU的各個(gè)引腳來(lái)進(jìn)行傳送。不同的CPU其引腳數(shù)目和功能定義不同,但這些引腳的主要功能種類(lèi)是相似的。6.3.18086的引腳定義Intel8086CPU是16位微處理器,外型為雙列直插式,有40個(gè)引腳,直接尋址空間為1MB。圖6-9給出了8086CPU外部引腳圖。圖6-98086CPU的外部引腳(1)AD15~AD0,A19/S6~A16/S3:8086應(yīng)包括20條地址線(xiàn)和16條數(shù)據(jù)線(xiàn),由于制造工藝的限制,部分引腳采用了分時(shí)復(fù)用方式,其中AD15~AD0是16條地址/數(shù)據(jù)總線(xiàn),A19/S6~A16/S3是地址/狀態(tài)線(xiàn)。(2)BHE#/S7:高8位數(shù)據(jù)總線(xiàn)允許/狀態(tài)信號(hào),用BHE#和AD0分別表示16位數(shù)據(jù)高、低字節(jié)的有效與否。(3)MN/MX#:最小/最大工作模式選擇信號(hào)。8086工作在最小模式時(shí),CPU組成一個(gè)單處理器系統(tǒng);最大模式時(shí),構(gòu)成多處理器系統(tǒng)。在此介紹的引腳是最小模式時(shí)的定義。(4)ALE,M/IO#,RD#,WR#,DEN#,DT/R#:ALE是地址鎖存允許信號(hào),因?yàn)?086的地址、數(shù)據(jù)引腳是分時(shí)復(fù)用的,需要把地址鎖存起來(lái)以便在傳送數(shù)據(jù)時(shí)仍有固定的地址信息可用。M/IO#是存儲(chǔ)器或I/O端口控制信號(hào),來(lái)區(qū)別訪(fǎng)問(wèn)的是存儲(chǔ)器還是I/O設(shè)備。RD#是讀選通信號(hào)。WR#是寫(xiě)選通信號(hào)。DEN#是數(shù)據(jù)允許信號(hào),允許數(shù)據(jù)在總線(xiàn)上的傳送。DT/R#是數(shù)據(jù)發(fā)送/接收控制信號(hào),控制總線(xiàn)上數(shù)據(jù)傳送的方向。(5)READY,RESET,TEST#,CLK:READY是準(zhǔn)備就緒信號(hào),表示外部設(shè)備已準(zhǔn)備好可進(jìn)行數(shù)據(jù)傳送了。RESET是CPU的復(fù)位信號(hào)。TEST#是測(cè)試信號(hào),實(shí)現(xiàn)從空轉(zhuǎn)狀態(tài)的返回控制。CLK是時(shí)鐘信號(hào),供CPU內(nèi)部操作定時(shí)使用。(6)NMI,INTR,INTA#:NMI是不可屏蔽中斷請(qǐng)求信號(hào)。INTR是可屏蔽中斷請(qǐng)求信號(hào)。INTA#是中斷響應(yīng)信號(hào)。(7)HOLD,HLDA:HOLD是總線(xiàn)保持請(qǐng)求信號(hào),表示其他共享總線(xiàn)的部件向CPU請(qǐng)求使用總線(xiàn)。HLDA是總線(xiàn)保持響應(yīng)信號(hào),表示CPU允許讓出總線(xiàn)控制權(quán)。(8)VCC,GND:電源信號(hào)。VCC接+5V,兩條GND接地。6.3.280386的引腳定

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論