1. 程式人生 > >【筆記】CPU的結構和功能(一)

【筆記】CPU的結構和功能(一)

一、CPU的結構

1.CPU的功能

  (1)取指令
  控制器必須具備能自動地從儲存器中取出指令的功能

  (2)分析指令
  分析指令包括兩部分內容:其一,分析此指令要完成什麼操作,即控制器需發出什麼操作命令;其二,分析參與這次操作的運算元地址,即運算元的有效地址。

  (3)執行指令
  執行指令就是根據分析指令產生的“操作命令”和“運算元地址”的要求,形成操作控制訊號序列,通過對運算器、儲存器以及I/O裝置的操作,執行每條指令。

  CPU必須具有控制程式的順序執行(稱指令控制)、產生完成每條指令的控制命令(稱操作控制)、對各種操作加以時間上的控制(稱時間控制)、對資料進行算術運算和邏輯運算(稱資料加工

)、處理中斷等功能。

2.CPU結構框圖


這裡寫圖片描述

3.CPU的暫存器

  CPU中的暫存器大致可分為兩類:一類屬於使用者可見暫存器,使用者可對這類暫存器程式設計,以及通過優化使CPU因使用這類暫存器而減少對主存的訪問次數;另一類屬於控制和狀態暫存器,使用者不可對這類暫存器程式設計,它們被控制部件使用,以控制CPU的操作,也可被帶有特權的作業系統程式使用,從而控制程式的執行。

使用者可見暫存器

  (1)通用暫存器
  通用暫存器可由程式設計者指定許多功能,可用於存放運算元,也可作為滿足某種定址方式所需的暫存器。暫存器間接定址時還可用通用暫存器存放有效地址的地址。

  (2)資料暫存器
  資料暫存器用於存放運算元,其位數應滿足多數資料型別的數值範圍。

  (3)地址暫存器
  地址暫存器用於存放地址,其本身可以具有通用性,也可用於特殊的定址方式。

  (4)條件碼暫存器
  條件碼是CPU根據運算結果由硬體設定的位。將條件碼放到一個或多個暫存器中,就構成了條件碼暫存器。

控制和狀態暫存器

  MAR:儲存器地址暫存器,用於存放將被訪問的儲存單元的地址。
  MDR:儲存器資料暫存器,用於存放欲存入儲存器中的資料或最近從儲存器中讀出的資料。
  PC:程式計數器,存放現行指令的地址,通常具有計數功能。當遇到轉移類指令時,PC的值可被修改。
  IR:指令暫存器,存放當前欲執行的指令。
  PSW:程式狀態字暫存器,存放條件碼和其他狀態資訊。
  在具有中斷系統的機器中還有中斷標記暫存器。

4.控制單元和中斷系統

  控制單元(CU)是提供完成計算機全部指令操作的微操作命令序列部件。微操作命令序列的形成方法有兩種:一種是組合邏輯設計方法,為硬連線邏輯;另一種是微程式設計方法,為儲存邏輯

二、指令週期

1.指令週期的基本概念

  CPU每取出並執行一條指令所需的全部時間稱為指令週期,也即CPU完成一條指令的時間。取指階段完成取指令和分析指令的操作,又稱取指週期;執行階段完成執行指令的操作,又稱執行週期


這裡寫圖片描述

  由於各種指令操作功能不同,因此各種指令的指令週期是不相同的。


這裡寫圖片描述

  簡介定址的指令週期就包括取指週期間址週期、**執行週期**3個階段,其中間址週期用於取運算元的有效地址,因此間址週期介於取指週期和執行週期之間。


這裡寫圖片描述

  如果有請求,CPU則要進入中斷響應階段,又稱中斷週期。在此階段,CPU必須將程式斷點儲存到儲存器中。一個完整的指令週期應包括**取值、間址、執行、中斷**4個子週期。


這裡寫圖片描述

  取指週期是為了取指令,間址週期是為了取有效地址,執行週期是為了取運算元,中斷週期是為了儲存程式斷點。這4個週期又可稱為CPU的工作週期,為了區別它們在CPU內可設定4個標誌觸發器。


這裡寫圖片描述

  FE、IND、EX、INT分別對應取值、間址、執行、中斷4個週期,並以“1”狀態表示有效,它們分別由1FE1IND1EX1INT這4個訊號控制。

2.指令週期的資料流

取指週期數據流


這裡寫圖片描述

  PC中存放現行指令的地址,該地址送到MAR並送至地址匯流排,然後由控制部件CU想儲存器發讀命令,使對應MAR所指單元的內容經資料匯流排送至MDR,再送至IR,並且CU控制PC內容加1,形成下一條指令的地址。

間址週期的資料流


這裡寫圖片描述

  一旦取指週期結束,CU便檢查IR中的內容,以確定其是否由間址操作,如果需要間址操作,則MDR中指示形式地址的右N位(記作Ad(MDR))將被送到MAR,又送至地址匯流排, 此後CU向儲存器發讀命令,以獲取有效地址並存至MDR。

執行週期的資料流

  由於不同的指令在執行週期的操作不同,因此無法用統一資料流圖表示。

中斷週期的資料流


這裡寫圖片描述

  由CU把用於儲存程式斷點的儲存器特殊地址(如棧指標的內容)送往MAR,並送到地址總線上,然後由CU向儲存器發寫命令,並將PC的內容送到MDR,最終使程式斷點經資料匯流排存入儲存器。CU還需將中斷服務程式的入口地址送至PC,為下一個指令週期的取指週期做好準備。