1. 程式人生 > >計算機組成原理---中央處理器

計算機組成原理---中央處理器

中央處理器(CPU)由運算器和控制器組成。其中控制器的功能是負責協調並控制計算機各部件執行程式的指令序列,包括取指令,分析指令和執行指令;運算器的功能是對資料進行加工。

CPU的具體功能:

  • 指令控制:完成取指令,分析指令和執行指令的操作,即程式的順序控制;
  • 操作控制:一條指令的功能往往是由若干操作訊號的組合來實現的,CPU管理併產生由記憶體取出的每條指令的操作訊號,把各種操作訊號送往相應的部件,從而控制這些部件按指令的要求進行動作;
  • 時間控制:對各種操作加以時間上的控制;
  • 資料加工:對資料進行算術和邏輯運算;
  • 中斷處理:對計算機執行過程中出現的異常情況和特殊請求進行處理。

中央處理器主要由運算器和控制器兩大部分組成。運算器接收從控制器送來的命令並執行相應的動作,對資料進行加工和處理。運算器是計算機對資料進行加工處理的中心。控制器是整個系統的指揮中樞,在控制器的控制下,使運算器,儲存器和輸入/輸出裝置等功能部件構成一個有機的整體,根據指令的要求指揮全機協調工作。控制器的基本功能就是執行指令,每條指令的執行是由控制器發出的一組微操作實現的。控制器有硬佈線控制器和微程式控制器兩種型別。

運算器:

  • 算術邏輯單元:主要功能是進行算術/邏輯運算;
  • 暫存暫存器:用於暫存從主存讀來的資料,對應用程式設計師是透明的;
  • 累加暫存器:是一個通用暫存器,用於暫時存放ALU運算結果資訊;
  • 通用暫存器組:用於存放運算元或各種地址資訊;
  • 程式狀態字暫存器:保留由算術邏輯運算指令或測試指令的結果而建立的各種狀態資訊,使用者可見;
  • 移位器:對運算元或運算結果進行移位運算;
  • 計數器:控制乘除運算的操作步數。

控制器:

  • 程式計數器:用於指出下一條指令在主存中的地址;
  • 指令暫存器:用於儲存當前正在執行的那條指令;
  • 指令譯碼器:僅對操作碼欄位進行譯碼,向控制器提供特定的操作訊號;
  • 儲存器地址暫存器:用於存放所要訪問主存單元的地址;
  • 儲存器資料暫存器:用於存放向主存寫入或從主存中讀出的資訊;
  • 時序系統:用於產生各種時序訊號,它們都是由統一時鐘(CLOCK)分頻得到;
  • 微操作訊號發生器:根據IR,PSW,及時序訊號,產生控制整個計算機系統所需的各種控制訊號,其結構有組合邏輯和儲存邏輯兩種。

CPU從主存中每取出並執行一條指令所需的全部時間稱為指令週期。指令週期常常用若干機器週期來表示,一個機器週期又包含若干時鐘週期。對於無條件轉移指令JMP,在執行時不需要訪問主存,只包含取指階段和執行階段,所以其指令週期僅包含取指週期和執行週期。對於間接定址的指令,為了取運算元,需要先訪問一次主存,取出有效地址,然後再訪問主存,取出運算元,所以還包括間址週期。當CPU採用中斷方式實現主機和I/O裝置交換資訊時,CPU在每條指令執行結束前,都要發中斷查詢訊號,如果有中斷請求,CPU進入中斷響應階段,又稱中斷週期。這樣,一個完整的指令週期應包括取指,間址,執行和中斷4個週期。這四個週期都有CPU訪存操作,只是訪存目的不同,取指週期是為了取指令,間址週期是為了取有效地址,執行週期是為了取運算元,中斷週期是為了儲存程式斷點。

為了區別不同的工作週期,在CPU內設定4個標誌觸發器FE,IND,EX和INT,分別對應取指,間址,執行和中斷週期,並以“1”狀態有效。中斷週期進棧操作是將SP減一,和傳統意義上的進棧操作相反,原因是計算機的堆疊中都是向低地址增加,所以進棧操作是減一,不是加一。

指令週期的資料流:

  • 取指週期:PC--MAR--地址匯流排--主存;CU發出控制訊號--控制匯流排--主存;主存--資料匯流排--MDR--IR;CU發出讀命令--PC內容加一
  • 間址週期:Ad(IR)--MAR--地址匯流排--主存;CU發出讀命令--控制匯流排--主存;主存--資料匯流排--MDR
  • 執行週期:
  • 中斷週期:CU控制SP減1--MAR--地址匯流排--主存;CU發出寫命令--控制匯流排--主存;PC--MDR--資料匯流排--主存;CU(中斷服務程式的入口地址)--PC

指令執行方案可以選用三種:單指令週期,多指令週期,流水線方案。指令之間可以並行執行的方案,稱為流水線方案,其追求的目標是力爭在每個時鐘脈衝週期完成一條指令的執行過程(只有理想狀態才能達到這個效果)。

資料通路的功能:資料在功能部件之間傳送的路徑稱為資料通路。運算器與各暫存器之間的傳送路徑就是中央處理器內部資料通路。

資料通路的基本結構主要有:CPU內部單匯流排方式,CPU內部三匯流排方式;專用資料通路方式。內部匯流排是指同一部件,如CPU內部連線各暫存器及運算器部件之間的匯流排;系統匯流排是指同一臺計算機系統的各部件,如CPU,記憶體,通道以及各類I/O介面間互相連線的匯流排。

硬佈線控制器的基本原理是根據指令的要求,當前的時序及外部和內部的狀態情況,按照時間的順序傳送一系列微操作控制訊號。它由複雜的組合邏輯閘電路和一些觸發器構成,因此又稱組合邏輯控制器。

微程式控制器採用儲存邏輯實現,也就是把微操作訊號程式碼化,使每條機器指令轉化為一段微程式並存入專門的儲存器(控制儲存器)中,微操作控制訊號由微指令產生。

微程式控制器的的工作原理是微操作控制訊號以微程式的形式存放在控制儲存器中,執行指令時讀出即可,執行速度較慢,較規整,應用於CISC CPU中易於擴充和修改;硬佈線控制器的工作原理是微操作控制訊號由組合邏輯電路根據當前的指令碼,狀態和時序,即時產生,執行速度較快,應用於RISC CPU中,難擴充修改。

計算機的流水線是把一個重複的過程分解為若干子過程,每個子過程與其他子過程並行執行,採用流水線技術只需要增加少量硬體就能把計算機的運算速度提高几倍,成為計算機中普遍使用的一種並行處理技術。

一條指令的執行過程可以分為多個階段。當多條指令在處理器中執行(有取指,分析,執行三個階段)時,可以採用以下三種方式:順序執行方式,一次重疊執行方式,二次重疊執行方式。(若每條指令需要4個或5個執行步驟,則可以採取3次或4次重疊執行方式)

流水線中存在一些相關情況,它使下一條指令無法在設計的時鐘週期內執行,主要有三種:結構相關(資源衝突),資料相關(資料衝突),控制相關(控制衝突)。

超標量流水線技術:每個時鐘週期可併發多條獨立指令,即以並行操作方式將兩條或多條指令編譯並執行,為此需配置多個功能部件。超標量計算機不能調整指令的執行順序,通過編譯優化技術,把可並行執行的指令搭配起來,挖掘更多的指令並行性。