版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第6章
CPU的功能與結構本章導讀本章對CPU的情況進行整體說明,首先介紹CPU的功能和基本組成結構,其中包括CPU的內部結構框圖,內部寄存器結構,中斷情況和CPU內的數據通路結構。然后對CPU的外部特性進行介紹,并舉例說明CPU的引腳情況與功能定義。本章要點CPU的功能CPU的基本結構數據通路的功能數據通路的基本結構6.1CPU的功能中央處理器(CPU)是計算機系統(tǒng)的核心組成部件,它包括運算器和控制器兩大部分。在早期的計算機中,器件集成度低,運算器與控制器是兩個相對獨立的部分。隨著大規(guī)模、超大規(guī)模集成電路技術的發(fā)展,逐漸趨向于將CPU作為一個整體。在微型計算機中,已將CPU集成為一塊芯片,稱為微處理器。計算機能自動執(zhí)行存放在主存中的程序。程序是指令的有序集合,計算機每執(zhí)行一段程序,就可完成一定的功能。具體執(zhí)行過程是:計算機從主存中取出一條指令,按指令操作碼及指令中的其他有關信息執(zhí)行以實現指令所要求的功能,然后按順序遞增或轉移指令要求的目的地址,從主存中取出下一條指令……重復上述過程,直至停機指令為止。中央處理器就是專門用于完成上述功能的計算機部件。CPU在計算機系統(tǒng)的運行中起著重要的作用,它具有如下四個方面的基本功能。(1)指令控制,即控制指令的執(zhí)行順序。CPU必須對指令的執(zhí)行順序進行控制,正確產生下一條指令在內存中的地址,以保證指令序列正確執(zhí)行。(2)操作控制,即指令內操作信號的控制。一條指令的功能一般需要若干個操作信號的組合來實現,因此,CPU必須管理并產生由內存取出的每條指令所要求的操作信號,把各種操作信號送往相應的部件,從而控制這些部件按指令的要求進行動作。(3)時間控制,計算機中各指令的操作信號均受時間的嚴格定時,一條指令的整個執(zhí)行過程也受到時間限制。而CPU對各種操作實施時間上的定時,就稱為時間控制。(4)數據加工,即對數據進行算術和邏輯運算,完成加工處理,這是CPU的根本任務。另外,CPU通常還要求能實現異常處理,如運算中的溢出等錯誤情況處理,以及處理外部設備的服務請求等。這些功能歸納起來實質上只有兩個:一是執(zhí)行程序,完成某一任務;二是對異常的處理。執(zhí)行程序即一條條執(zhí)行指令。異常處理由中斷機構完成,最終也要執(zhí)行指令,所以處理指令和中斷是中央處理機的最本質特點。6.2CPU的基本結構6.2.1CPU的結構框圖6.2.2CPU的寄存器結構6.2.3控制單元與中斷系統(tǒng)6.2.4CPU內部數據通路6.2.1CPU的結構框圖根據CPU的功能不難設想,要處理指令,CPU內就要有一個寄存器存放指令的地址以找到指令并實現取指令,還要有控制部件能分析指令的功能并發(fā)出指令需要的操作控制信號,還要有相應的算術邏輯運算部件ALU完成具體的運算。要處理異常情況和特殊請求,就必須有中斷系統(tǒng)。可見,CPU可由四大部分組成。圖6-1CPU內部結構框圖在圖6-1中,考慮到CPU內部各部件間有數據信息的傳送,所以也畫出了內部的數據總線。其中ALU部分的內容已在第3章作了詳細說明,在此,我們用圖6-2來表示基本的運算器部件結構。圖6-2基本的運算部件結構基本運算部件包括ALU、多路選擇器和移位器。沿數據流向,大致分為三級:第一級為多路選擇器,決定哪一種數據送往ALU;第二級為ALU,由功能選擇命令選擇ALU完成的運算功能;第三級是移位器,由輸出選擇對輸出結果進行移位控制。6.2.2CPU的寄存器結構CPU中的寄存器大致可分兩類:一類屬用戶可見寄存器,用戶可對這類寄存器編程使用,或通過優(yōu)化使CPU因使用這類寄存器而減少對主存的訪問次數;另一類屬控制和狀態(tài)寄存器,用戶不可對這類寄存器編程,它們被控制部件使用,以控制CPU的操作,也可被帶有特權的操作系統(tǒng)程序使用,從而控制程序的執(zhí)行。1、用戶可見寄存器通常CPU執(zhí)行機器語言訪問的寄存器為用戶可見寄存器,按其特征又可分為以下幾類:(1)通用寄存器通用寄存器可由程序設計者指定許多功能,可用于存放操作數,也可作為滿足某種尋址方式所需的寄存器。(2)數據寄存器數據寄存器用于存放操作數,其位數應滿足多數數據類型的數值范圍,有些機器允許使用兩個連續(xù)的寄存器存放雙倍字長的值。還有些機器的數據寄存器只能用于保存數據,不能用于操作數地址的計算。(3)地址寄存器地址寄存器用于存放地址,其本身可以具有通用性,也可用于特殊的尋址方式。地址寄存器的位數必須足夠長,以滿足足夠大的尋址范圍。(4)條件代碼寄存器這類寄存器中存放條件碼,它們對用戶來說是部分透明的。條件碼是CPU根據運算結果由硬件設置的位,常用的有N、Z、V、C等。條件碼可被測試,作為分支運算的依據。此外,有些條件碼可被直接置位或復位。2、控制和狀態(tài)寄存器CPU中還有一類寄存器用于控制CPU的操作或運算。在一些機器里,大部分這類寄存器對應用程序員是透明的。如以下四種寄存器在指令執(zhí)行過程中起重要作用。MAR:存儲器地址寄存器,用于存放將被訪問的存儲單元的地址。MDR:存儲器數據寄存器,用于存放欲存入存儲器中的數據或最近從存儲器中讀出的數據。PC:程序計數器,存放欲執(zhí)行的指令的地址,通常具有計數功能。當遇到轉移類指令時,PC的值可被修改。IR:指令寄存器,存放當前欲執(zhí)行的指令。通過這四個寄存器,CPU可以和主存交換信息。例如,將下一條指令的地址從PC送至MAR,啟動存儲器作讀操作,存儲器就可將指定地址單元內的指令讀至MDR,再由MDR送至IR。3、寄存器結構舉例(1)8086的寄存器組織8086是Intel公司的16位微處理器,它內部包含有4組16位寄存器,它們是通用寄存器組、指針和變址寄存器組、段寄存器組、指令指針及標志位寄存器。如圖6-3所示。圖6-38086CPU的寄存器組通用寄存器組是AX,BX,CX和DX,用以存放16位數據或地址。也可分成8個8位寄存器來使用,低8位是AL,BL,CL和DL,高8位是AH,BH,CH和DH,此時只能存放8位數據,不能存放地址。為了縮短指令代碼的長度,在8086中,某些通用寄存器用作專門用途。如AX作累加器,CX在串指令中作計數寄存器等。指針和變址寄存器包括基址指針寄存器BP,堆棧指針寄存器SP,源變址寄存器SI,目的變址寄存器DI。這組寄存器存放的內容通常是某一段內地址偏移量,用來形成操作數地址,主要在堆棧操作和變址運算中使用。8086CPU可直接尋址1MB的存儲器空間,直接尋址需要20位地址碼,而所有內部寄存器都是16位的,只能直接尋址64KB,因此對存儲器采用分段技術來解決此問題。系統(tǒng)將1MB的存儲空間分成若干邏輯段,每段最長64KB,然后設置了4個16位的段寄存器,由它們給出相應邏輯段的首地址(高16位),稱為“段基址”,與段內偏移地址組合形成20位物理地址。這些段寄存器是代碼段寄存器CS,數據段寄存器DS,堆棧段寄存器SS和附加段寄存器ES。指令指針寄存器IP用來存放將要執(zhí)行的下一條指令在現行代碼段中的偏移地址。在程序運行時,能自動修改,使其始終指向下一條將要執(zhí)行的指令的地址。8086程序不能直接訪問IP,但可以通過某些指令修改IP的內容。如中斷或子程序調用指令。標志寄存器PSW用來存放運算結果的特征,常用作后繼條件轉移指令的轉移控制條件。(2)Pentium機的寄存器組織Pentium微處理器配備的寄存器種類和數量非常多,按其類型可分為如下幾類。①、基本體系結構寄存器。包括通用寄存器、指令指針寄存器、標志寄存器和段寄存器。②、系統(tǒng)級寄存器。包括系統(tǒng)寄存器和系統(tǒng)地址寄存器。③、調試和測試寄存器。④、浮點寄存器。包括數據寄存器、狀態(tài)字寄存器、指令和數據指針寄存器、控制字寄存器和標記字寄存器。圖6-4給出了16個應用程序員可用的寄存器。圖6-4Pentium應用寄存器組從圖中可以看出,通用寄存器共有8個,全部是32位寄存器,它們是EAX,EBX,ECX,EDX,ESP,EBP,ESI和EDI。它們又含有與8086兼容的8個16位寄存器及8個8位寄存器。指令指針寄存器也為32位,稱為EIP,指向要執(zhí)行的下一條指令的偏移地址。標志寄存器EFLAGS為32位,包含若干狀態(tài)標志和控制標志,狀態(tài)標志由微處理器執(zhí)行某種操作后自動設置,其低位部分與8086兼容。段寄存器除了原有的CS,DS,SS和ES外,又增加了兩個新的段寄存器FS和GS,它們也是附加數據段寄存器,都仍為16位寄存器。(3)MC68000的寄存器組織MotorolaMC68000的寄存器設計方案是將它的寄存器分成了8個數據寄存器(D0~D7)和9個地址寄存器(A0~A7、A7`),它們都是32位的,如圖6-5所示。圖6-5MC68000的寄存器其中8個數據寄存器主要用于數據存儲管理,在尋址方式中僅用作變址寄存器。寄存器允許8位、16位和32位的數據格式運算,這些都可以由操作碼確定。在地址寄存器中存放著32位的地址,其中兩個寄存器(A7和A7`)也用作堆棧指針。但它們一個用于操作系統(tǒng),一個用于用戶,具體的選擇取決于當前的執(zhí)行模式。不過在某一時刻這兩個寄存器只能使用一個。MC68000還包括一個32位程序計數器PC和一個16位的狀態(tài)寄存器。6.2.3控制單元與中斷系統(tǒng)控制單元CU產生CPU所需要的全部微操作控制信號。所謂微操作,即計算機中最簡單的、不能再分解的操作,如打開某一個控制門或寄存器的清除脈沖等。復雜操作是通過執(zhí)行一系列微操作實現的??刂茊卧狢U根據指令譯碼器產生的操作控制信號、時序部件產生的時序信號以及其他控制條件可以產生整個機器所需要的全部操作控制信號。這些控制信號引向計算機各個部件,以控制各部件執(zhí)行指令所要求的功能。該控制單元部件可由硬布線方式或微程序方式實現,這將在后面章節(jié)詳細介紹。中斷是現代計算機中非常重要的處理機制,在本書第10章中會對I/O中斷作較詳細的討論,實際上I/O中斷只是CPU眾多中斷中的一種。引起中斷的因素很多,為了處理各種中斷,CPU內通常設有處理中斷的機構——中斷系統(tǒng),以解決各種中斷的共性問題。對中斷系統(tǒng)來說,主要需要解決以下幾個問題:(1)各中斷源如何向CPU提出中斷請求;(2)當多個中斷源同時提出中斷請求時,中斷系統(tǒng)如何確定優(yōu)先響應哪個中斷源的請求;(3)CPU在什么條件、什么時候、以什么方式來響應中斷;(4)CPU響應中斷后如何保護現場;(5)CPU響應中斷后,如何停止原程序的執(zhí)行而轉入中斷服務程序的入口地址;(6)中斷處理結束后,CPU如何恢復現場,如何返回到原程序的間斷處;(7)若在中斷處理過程中又出現了新的中斷請求,CPU該如何處理。對這些問題的解決,只有在中斷系統(tǒng)中配置相應的硬件和軟件,才能完成整個中斷處理任務。但在有些計算機中,把部分相應的功能分散在了各接口電路中實現。下面以Pentium微處理器的中斷處理為例,來了解中斷系統(tǒng)的特點。(1)中斷和異常有兩類事件能引起Pentium掛起當前指令流的執(zhí)行并響應事件:中斷和異常。兩種情況下處理器都要保存當前進程的上下文,并將轉至一個預先定義的子程序來執(zhí)行特殊的服務。中斷(Interrupt)通常是由硬件信號產生的,并可出現在程序執(zhí)行期間內的任何時刻。異常(Exception)是由軟件產生的,是由執(zhí)行指令所引發(fā)的。Pentium有兩類中斷源和兩類異常源。中斷包括可屏蔽中斷和不可屏蔽中斷??善帘沃袛嘤商幚砥鞯腎NTR引腳接收信號。除非中斷允許標志(IF)被置位,否則處理器不承認可屏蔽中斷。不可屏蔽中斷由處理器的NMI引腳接收信號。這類中斷的認可不能被阻止。異常包括處理器確定的異常和程序異常。處理器確定的異常是當試圖執(zhí)行一條指令而處理器遇到一個錯誤時此異常發(fā)生。程序異常是由一些指令(INTO、INT、BOUND等)引起的。(2)中斷類型表Pentium的中斷處理使用了中斷向量表(interruptvectortable)。每一類中斷都被指派了一個中斷類型號,此類型號用于對中斷向量表的索引。該表容納有256個32位的中斷向量,它們存儲著中斷服務程序的地址(段地址和偏移地址)。表6-1表示了中斷類型號的指派情況(見教材)。若不止一個異?;蛑袛嗤瑫r要求處理,則處理器以一個預先指定的順序為它們服務。向量號在表中的位置不反映它們的優(yōu)先權。異常和中斷的優(yōu)先權組成5類。以降序排列的5類優(yōu)先權是:類1:先前指令上的中斷(向量號1);類2:外部中斷(2,32~255);類3:取下一指令的故障(3,14);類4:下一指令的譯碼故障(6,7);類5:執(zhí)行指令的故障(0,4,5,8,10~14,16,17)。(3)處理中斷和子程序調用相似,一個到中斷處理子程序的控制傳遞,需要使用系統(tǒng)堆棧保存處理器的狀態(tài)。當一個中斷出現并被處理器識別時,如下事件序列發(fā)生了。①、若轉換涉及到特權級改變,則當前堆棧段寄存器和當前擴展的棧指針(ESP)寄存器的內容被壓入堆棧。②、EFLAGS寄存器的當前值被壓入堆棧。③、中斷(IF)和自陷(TF)兩個標志被清除。這就禁止了INTR中斷、軟中斷或單步特征。④、當前代碼段(CS)寄存器和當前指令指針(IP或EIP)的內容被壓入堆棧。⑤、若中斷伴隨有錯誤代碼,則錯誤代碼也要壓入堆棧。⑥、取中斷向量內容并裝入CS和IP(或EIP)寄存器。找到中斷服務子程序繼續(xù)執(zhí)行。為實現從中斷的返回,中斷服務子程序執(zhí)行一條IRET指令。這使得所有保存在堆棧上的值被取回,并由中斷點恢復執(zhí)行。6.2.4CPU內部數據通路CPU內部可以分為數據部分和控制部分。數據部分即數據通路,包括寄存器、ALU以及數據在它們之間傳送的路徑。數據通路能對數據項執(zhí)行某些操作,如數據從什么地方開始,中間經過哪些寄存器或多路開關,最后傳送到哪個寄存器保存等。數據通路功能的實現需要控制部分加以控制,也即需要控制器向數據通路發(fā)出控制信號來完成數據在通路內的一系列傳送。CPU內部的數據通路的典型組織形式是內部總線,它通常在寄存器和ALU之間傳送數據,提供操作數和保存運算結果。當然,在數據傳輸頻繁的兩個部件之間也可以采用專用數據通路。常見的總線組織形式大體有三種結構。(1)單總線結構單總線結構的運算器如圖6-6所示。由于所有部件都接到同一總線上,所以數據可以在任何兩個寄存器之間,或者在任一個寄存器和ALU之間傳送。如果具有陣列乘法器或除法器,那么它們所處的位置應與ALU相當。圖6-6單總線結構對這種結構的運算器來說,在同一時間內,只能有一個操作數放在單總線上。為了把兩個操作數輸入到ALU,需要分兩次來做,而且還需要A,B兩個緩沖器。例如執(zhí)行一個加法操作時,第一個操作數先放在A緩沖寄存器,然后再把第二個操作數放入B緩沖寄存器。只有兩個操作數同時出現在ALU的兩個輸入端,ALU才執(zhí)行加法。當加法結果出現在單總線上時,由于輸入數已保存在緩沖寄存器中,它并不會打擾輸入數。然后,再做第三個傳送動作,以便把加法的“和”選通到目的寄存器中。由此可見,這種結構的主要缺點是總線分時使用,操作速度較慢。雖然在這種結構中輸入數據和保存操作結果需要三次串行的選通操作,但它不會對每種指令都增加很多執(zhí)行時間。只有在對全都是CPU寄存器中的兩個操作數進行操作時,單總線結構的運算器才會造成一定的時間損失。但是由于它只需控制一條總線,故控制電路比較簡單。(2)雙總線結構雙總線結構的運算器如圖6-7所示。在這種結構中,兩個操作數可同時送到ALU進行運算,只需要一次操作控制,而且馬上就可以得到運算結果。圖中兩條總線各自把其操作數據送至ALU的輸入端。圖6-7雙總線結構
特殊寄存器分成兩組,它們分別與一條總線交換數據。這樣,通用寄存器中的數就可以進入到任一組特殊寄存器中去,從而使數據傳送更為靈活。ALU的輸出不能直接加到總線上去。這是因為,當形成操作結果的輸出時,兩條總線都被輸入數占據,因而必須在ALU輸出端設置緩沖寄存器。為此,操作的控制要分兩步來完成:第一步,在ALU的兩個輸入端輸入操作數,形成結果并送入緩沖寄存器;第二步,把結果送入目的寄存器。假如在總線1、2和ALU輸入端之間再各加一個輸入緩沖寄存器,并把兩個輸入數先放至這兩個緩沖寄存器,那么,ALU輸出端就可以直接把操作結果送至總線1或總線2上去。(3)三總線結構三總線結構的運算器如圖6-8所示。在三總線結構中,ALU的兩個輸入端分別由兩條總線提供數據,而ALU的輸出則與第三條總線相連。這樣,算術邏輯操作就可以在一步的控制之內完成。圖6-8三總線結構由于ALU本身有時間延遲,所以輸出結果打入的選通脈沖必須考慮到包括這個延遲。另外,設置了一個總線旁路器。如果一個操作數不需要修改,而直接從總線2傳送到總線3,那么可以通過控制總線旁路器把數據傳出;如果一個操作數需要修改,那么就借助于ALU。顯然,三總線結構的運算器的特點是操作時間快,但它的總線控制相對復雜。6.3CPU的外部特性6.3.18086的引腳定義6.3.280386的引腳定義CPU完成程序執(zhí)行和數據處理,但程序和數據都需要由CPU外部送入。同時CPU還要能對各種外部設備進行管理和控制,這些信號都需要通過CPU的各個引腳來進行傳送。不同的CPU其引腳數目和功能定義不同,但這些引腳的主要功能種類是相似的。6.3.18086的引腳定義Intel8086CPU是16位微處理器,外型為雙列直插式,有40個引腳,直接尋址空間為1MB。圖6-9給出了8086CPU外部引腳圖。圖6-98086CPU的外部引腳(1)AD15~AD0,A19/S6~A16/S3:8086應包括20條地址線和16條數據線,由于制造工藝的限制,部分引腳采用了分時復用方式,其中AD15~AD0是16條地址/數據總線,A19/S6~A16/S3是地址/狀態(tài)線。(2)BHE#/S7:高8位數據總線允許/狀態(tài)信號,用BHE#和AD0分別表示16位數據高、低字節(jié)的有效與否。(3)MN/MX#:最小/最大工作模式選擇信號。8086工作在最小模式時,CPU組成一個單處理器系統(tǒng);最大模式時,構成多處理器系統(tǒng)。在此介紹的引腳是最小模式時的定義。(4)ALE,M/IO#,RD#,WR#,DEN#,DT/R#:ALE是地址鎖存允許信號,因為8086的地址、數據引腳是分時復用的,需要把地址鎖存起來以便在傳送數據時仍有固定的地址信息可用。M/IO#是存儲器或I/O端口控制信號,來區(qū)別訪問的是存儲器還是I/O設備。RD#是讀選通信號。WR#是寫選通信號。DEN#是數據允許信號,允許數據在總線上的傳送。DT/R#是數據發(fā)送/接收控制信號,控制總線上數據傳送的方向。(5)READY,RESET,TEST#,CLK:READY是準備就緒信號,表示外部設備已準備好可進行數據傳送了。RESET是CPU的復位信號。TEST#是測試信號,實現從空轉狀態(tài)的返回控制。CLK是時鐘信號,供CPU內部操作定時使用。(6)NMI,INTR,INTA#:NMI是不可屏蔽中斷請求信號。INTR是可屏蔽中斷請求信號。INTA#是中斷響應信號。(7)HOLD,HLDA:HOLD是總線保持請求信號,表示其他共享總線的部件向CPU請求使用總線。HLDA是總線保持響應信號,表示CPU允許讓出總線控制權。(8)VCC,GND:電源信號。VCC接+5V,兩條GND接地。6.3.280386的引腳定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 演講稿小短文合集【五篇】
- 2025年清潔漂白項目申請報告
- 2024-2025學年西藏拉薩市城關區(qū)數學三上期末檢測試題含解析
- 2025年工業(yè)廢水處理項目提案報告模范
- 2025年無玷污采水器項目規(guī)劃申請報告模范
- 2025年聲學海流計項目提案報告模板
- 2025年沼氣設備項目申請報告模稿
- 募捐倡議書模板錦集八篇
- 青銅葵花讀后感匯編15篇
- 關于會計專業(yè)自我鑒定集錦9篇
- 食材供應鏈行業(yè)市場分析ppt
- 跟師臨診抄方心得體會
- 靜脈治療護理技術操作標準2023
- B2C網絡商店物流服務質量及其與顧客忠誠的關系研究的中期報告
- 年同等學歷考研申碩綜合科復習指導(教育心理學)課件
- 線段角動點問題
- 【課件】沉心靜氣打贏最后一仗 課件-2022-2023學年高中主題班會
- 華能電力定員標準
- 部編版語文四年級上冊普羅米修斯教學反思(兩篇)
- 生理學基礎(第4版)第十一章 內分泌電子課件 中職 電子教案
- 石油化工安裝工程預算定額(2019版)
評論
0/150
提交評論