3.1 CPU的組成及功能


CPU的功能

運算器

  • 數據加工:對數據進行算術和邏輯運算。

控制器

​ 協調並控制計算機各部件執行程序的指令序列

  • 指令控制:完成取指令、分析指令和執行指令的操作,即程序的順序控制。
    • 取指令:自動形成指令地址(PC+1),自動發出取指令的命令。
    • 分析指令:操作碼譯碼、產生操作數的有效地址。
    • 執行指令:根據分析指令得到的“操作命令”和“操作數地址”,形成操作信號以控制序列,控制運算器、存儲器以及I/O設備完成相應的操作。
  • 操作控制:一條指令的功能往往是由若干操作信號的組合來實現的。CPU管理並產生由內存取出的每條指令的操作信號,把各種操作信號送往相應的部件,從而控制這些部件按指令的要求進行動作。
  • 時間控制:對各種操作加以時間上的控制。時間控制要為每條指令按時間順序提供應有的控制信號。
  • 中斷處理:對計算機運行過程中出現的異常情況(如掉電)和特殊請求(如打印機請求打印一行字符)進行處理。
    • 外部設備造成中斷處理:用鼠標停止某項下載任務
    • 內部指令造成中斷處理:在除法中給出的除數為0

運算器的基本結構

  • 算術邏輯單元ALU:主要功能是進行算術/邏輯運算。

  • 通用寄存器組:用於存放操作數(包括源操作數、目的操作數及中間結果)和各種地址信息等。

    • 如R0、R1、AX、BX、CX、DX、SP等
    • 其中AX,BX等都可以向下划分為:高字節部分AH,BH、低字節部分AL,BL
  • 堆棧寄存器SP:用於指示棧頂的地址。

  • 累加寄存器ACC:它是一個通用寄存器,用於暫時存放ALU運算的結果信息,用於實現加法運算。

  • 程序狀態字寄存器PSW:保留由算術邏輯運算指令或測試指令的結果而建立的各種狀態信息。PSW中的這些位參與並決定微操作的形成。

    • 如溢出標志(OP)、符號標志(SF:正負標志)、零標志(ZF)、進位標志(CF)等。
  • 暫存寄存器

  • 移位寄存器:對運算結果進行移位運算

    • 之前也可以是個暫存寄存器,增加對運算結果的移位功能—>移位寄存器
  • 計數器:控制乘除運算的操作步數

運算器的數據通路方式

1、專用數據通路方式

  • 根據指令執行過程中的數據和地址的流動方向安排連接線路。
  • 如圖,每個寄存器都要與ALU有各自的通路,圖中R0和ALU的連線是簡化的。

特點

  • 性能較高,基本不存在數據沖突現象,但結構復雜,硬件量大,不易實現。
  • 為什么說連通復雜?例如當R是16bit的時候,要和A、B分別連16根線,

問:一次可以傳入ALU很多數字,但如何選擇需要的那個?

如果直接用導線連接,相當於多個寄存器同時並且一直向ALU傳輸數據

解決方法1:使用多路選擇器MUX根據控制信號選擇一路輸出
  • 通過在MUX上選定信號是00、01,來決定選擇來自R0、R1寄存器的數據

解決方法2:使用三態門來控制每一條路是否輸出
  • 圖中小三角就是三態門,默認情況下不導通

2、內部單總線方式

  • 將所有寄存器的輸入端和輸出端都連接到一條公共的通路上。

特點

  • 結構簡單,容易實現,但數據傳輸存在較多沖突的現象,性能較低。

前提

  • 暫存寄存器:用於暫存從主存讀來的數據,這個數據不能存放在通用寄存器中,否則會破壞其原有內容
  • 如:兩個操作數分別來自主存和R0,最后結果存回R0,那么從主存中取來的操作數直接放入暫存器,就不會破壞運算前R0的內容。

舉例:ADD R0 R1

如果同時運輸2數,無法確定兩個分別是哪個

  • 讓R0out導通 沿着線路A 放到暫存器中
  • 讓R0out關閉
  • 讓R1out導通 沿着線路B到ALU

如果在兩次連續的計算中 R0給的信號和ALU給的結果產生信號可能沖突,如何解決?——在結果處增加一個暫存寄存器

  • ALU計算結果先放在暫存寄存器中,此時,三態門不導通,先存着
  • 讓 R0out導通,先傳輸數據,再讓暫存寄存器這邊導通,就不會再產生矛盾

控制器的基本結構

  • 程序計數器PC:用於指出下一條指令在主存中的存放地址。CPU就是根據PC的內容去主存中取指令的。因程序中指令(通常)是順序執行的,所以PC有自增功能。
  • 指令寄存器IR:用於保存當前正在執行的那條指令。
  • 控制單元CU
    • 指令譯碼器ID:僅對操作碼字段進行譯碼,向控制器提供特定的操作信號。
    • 微操作信號發生器:根據IR的內容(指令)、PSW的內容(狀態信息)及時序信號,產生控制整個計算機系統所需的各種控制信號。其結構有組合邏輯型和存儲邏輯型兩種。
    • 時序系統:用於產生各種時序信號,它們都是由統一時鍾(CLOcK)分頻得到。
  • 存儲器地址寄存器MAR:用於存放所要訪問的主存單元的地址。
    • 這里得到地址就要去訪問
  • 存儲器數據寄存器MDR
    • MAR與MDR被集成在CU了的
    • 這里的E是外部的意思。
    • 有無E的區別:是去往外界(數據總線)還是去往CPU內部總線。

合體:CPU基本結構


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM