一、CPU的功能
當用計算機解決某個問題時,我們首先必須爲它編寫程序。
程序是一個指令序列,這個序列明確告訴計算機應該執行什麼操作,在什麼地方找到用來操作的數據。一旦把程序裝入內存儲器,就可以由計算機來自動完成取出指令和執行指令的任務。專門用來完成此項工作的計算機部件稱爲中央處理器,通常簡稱CPU。
CPU對整個計算機系統的核心,它具有如下四方面的基本功能:
前三項功能是由控制器實現的,後一項功能由運算器實現。
二、CPU的基本組成
CPU的基本部分由運算器、cache和控制器三大部分組成。 其主要部分由運算器和控制器組成(圖5.1給出了CPU組成的模型)。
1、控制器
控制器主要由程序計數器、指令寄存器、指令譯碼器、時序產生器和操作控制器組成,它是發佈命令的“決策機構”,即完成協調和指揮整個計算機系統的操作。它的主要功能有:
(1)從內存中取出一條指令,並指出下一條指令在內存中的位置;
(2)對指令進行譯碼或測試,併產生相應的操作控制信號,以便啓動規定的動作;
(3)指揮並控制CPU、內存和輸入/輸出設備之間數據流動的方向。
2、運算器
由算術邏輯單元(ALU)、累加寄存器、數據緩衝寄存器和狀態條件寄存器組成,它是數據加工處理部件。
相對控制器而言,運算器接受控制器的命令而進行動作,即運算器所進行的全部操作都是由控制器發出的控制信號來指揮的,所以它是執行部件。
運算器有兩個主要功能:
(1)執行所有的算術運算;
(2)執行所有的邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。
三、CPU中的主要寄存器
CPU中通常都了很多各種不同功能和作用的寄存器,用於暫存CPU各功能部件處理所需要的各種信息(指令、地址、數據、狀態等等)。
在CPU中至少要有六類寄存器。它們是:指令寄存器(IR)、程序計數器(PC)、地址寄存器(AR)、緩衝寄存器(DR)、累加寄存器(AC)、狀態條件寄存器(PSW)。
數據緩衝寄存器用來暫時存放由內存儲器讀出的一條指令或一個數據字;反之,當向內存存入一條指令或一個數據字時,也暫時將它們存放在數據緩衝寄存器中。
緩衝寄存器的作用是 :
(1)作爲CPU和內存、外部設備之間信息傳送的中轉站;
(2)補償CPU和內存、外圍設備之間在操作速度上的差別
(3)在單累加器結構的運算器中,數據緩衝寄存器還可兼作爲操作數寄存器。
指令寄存器用來保存當前正在執行的一條指令。
當執行一條指令時,先把它從內存取到緩衝寄存器中,然後再傳送至指令寄存器。隨後由控制器對指令寄存器中的二進制指令代碼進行解釋,併產生相應的控制。
指令劃分爲操作碼和地址碼字段,由二進制數字組成。爲了執行任何給定的指令,必須對操作碼進行測試,以便識別所要求的操作。指令譯碼器就是做這項工作的。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經譯碼後,即可向操作控制器發出具體操作的特定信號。
爲了保證程序能夠連續地執行下去,CPU必須具有某些手段來確定下一條指令的地址。而程序計數器正是起到這種作用,所以通常又稱爲指令計數器(IP)。
在程序開始執行前,必須將它的起始地址,即程序的一條指令所在的內存單元地址送入PC,因此PC的內容即是從內存提取的第一條指令的地址。當執行指令時,CPU將自動修改PC的內容,以便使其保持的總是將要執行的下一條指令的地址。由於大多數指令都是按順序來執行的,所以修改的過程通常只是簡單的對PC加1。
但是,當遇到轉移指令如JMP指令時,那麼後繼指令的地址(即PC的內容)必須從指令的地址段取得。在這種情況下,下一條從內存取出的指令將由轉移指令來規定,而不是像通常一樣按順序來取得。因此程序計數器的結構應當是具有寄存信息(保存和設置轉移地址)和計數(順序執行)兩種功能的結構。
地址寄存器用來保存當前CPU所訪問的內存單元的地址。
由於在內存和CPU之間存在着操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到內存的讀/寫操作完成爲止 。
當CPU和內存進行信息交換,即CPU向內存存/取數據時,或者CPU從內存中讀出指令時,都要使用地址寄存器和數據緩衝寄存器。同樣,如果我們把外圍設備的設備地址作爲像內存的地址單元那樣來看待,那麼,當CPU和外圍設備交換信息時,我們同樣使用 地址寄存器和數據緩衝寄存器。
地址寄存器的結構和數據緩衝寄存器、指令寄存器一樣,通常使用單純的寄存器結構。信息的存入一般採用電位-脈衝方式,即電位輸入端對應數據信息位,脈衝輸入端對應控制信號,在控制信號作用下,瞬時地將信息打入寄存器。
累加寄存器AC通常簡稱爲累加器,它是一個通用寄存器。其功能是:當運算器的算術邏輯單元ALU)執行算術或邏輯運算時,爲ALU提供一個工作區。
累加寄存器暫時存放ALU運算的結果信息。顯然,運算器中至少要有一個累加寄存器。
目前CPU中的累加寄存器,多達16個,32個,甚至更多。當使用多個累加器時,就變成通用寄存器堆結構,其中任何一個可存放源操作數,也可存放結果操作數。在這種情況下,需要在指令格式中對寄存器號加以編址。
狀態條件寄存器保存由算術指令和邏輯指令運行或測試的結果建立的各種條件碼內容,如運算結果進位標誌(C),運算結果溢出標誌(V),運算結果爲零標 志(Z),運算結果爲負標誌(N)等等。這些標誌位通常分別由 1位觸發器保存。
除此之外,狀態條件寄存器還保存中斷和系統工作狀態等信息,以便使CPU和系統能及時瞭解機器運行狀態和程序運行狀態。因此,狀態條件寄存器是一個由各種狀態條件標誌拼湊而成的寄存器。
四、操作控制器與時序產生器
數據通路 :是許多寄存器(部件)之間傳送信息的通路。
信息從什麼地方開始,中間經過哪個寄存器或多路開關,最後傳送到哪個寄存器,都要加以控制。
在各寄存器之間建立數據通路的任務,是由稱爲操作控制器的部件來完成的。
操作控制器的功能:就是根據指令操作碼和時序信號,產生各種操作控制信號,以便正確地建立數據通路,從而完成取指令和執行指令的控制。
根據設計方法不同,操作控制器可分爲時序邏輯型、存儲邏輯型、時序邏輯與存儲邏輯結合型三種。
相對於上述三種設計方法,有三種類型控制器,它們是:硬佈線控制器、微程序控制器、PLA控制器。
操作控制器控制信號必須嚴格按照時間順序要求產生。因此,還需要時序產生器,對各種操作實施時間上的控制。