1. 程式人生 > >【筆記】控制單元的功能

【筆記】控制單元的功能

一、微操作命令的分析

1.取指週期

  取指令的過程可歸納為以下幾個操作:

  1. 現行指令地址送至儲存器地址暫存器,記作$PC \rightarrow MAR$
  2. 向主存傳送讀命令,記作$1\rightarrow R$
  3. 將MAR(通過地址匯流排)所指的主存單元中的內容(指令)經資料匯流排讀至MDR內,記作$M(MAR)\rightarrow MDR$
  4. 將MDR的內容送至IR,記作$MDR \rightarrow IR$
  5. 指令的操作碼送至CU譯碼,記作$OP(IR) \rightarrow CU$
  6. 形成下一條指令的地址,記作$(PC)+1\rightarrow PC$

2.間址週期

  間址週期完成取運算元有效地址的任務。

  1. 將指令的地址碼部分(形式地址)送至儲存器地址暫存器,記作$Ad(IR)\rightarrow MAR$
  2. 向主存傳送讀命令,啟動主存作讀操作,記作$1\rightarrow R$
  3. 將MAR(通過地址匯流排)所指的主存單元中的內容(有效地址)經資料匯流排讀至MDR內,記作$M(MAR)\rightarrow MDR$
  4. 將有效地址送至指令暫存器的地址欄位,記作$MDR\rightarrow Ad(IR)$

3.執行週期

非訪存指令

  這類指令在執行週期不訪問儲存器。

  1. 清除累加器指令CLA,記作$0\rightarrow ACC$
  2. 累加器取反指令COM,記作$\overline{ACC} \rightarrow ACC$
  3. 算術右移一位指令SHR,記作$L(ACC)\rightarrow R(ACC)$,$ACC_0\rightarrow ACC_0$(ACC的符號位不變)
  4. 迴圈左移一位指令CSL,記作$R(ACC)\rightarrow L(ACC)$,$ACC_0\rightarrow ACC_n$
  5. 停機指令STP:執行標誌觸發器G,當G=1時,表示機器執行;當G=0時,表示停機。STP指令在執行階段只需將執行標誌觸發器置“0”,記作$0\rightarrow G$

訪存指令

  這類指令在執行階段都需要訪問儲存器。

  (1)加法指令ADD X
  該指令在執行階段需要完成累加器內容與對應與主存X地址單元的內容相加,結果送累加器的操作。

  1. 將指令的地址碼部分送至儲存器地址暫存器,記作$Ad(IR)\rightarrow MAR$
  2. 向主存發讀命令,啟動主存作讀操作,記作$1\rightarrow R$
  3. 將MAR(通過地址匯流排)所指的主存單元中的內容(運算元)經資料匯流排讀至MDR內,記作$M(MAR)\rightarrow MDR$
  4. 給ALU傳送加命令,將ACC的內容和MDR的內容相加,結果存於ACC,記作$(ACC)+(MDR)\rightarrow ACC$

  (2)存數指令STA X
  該指令在執行階段需將累加器ACC的內容存於主存的X地址單元中。

  1. 將指令的地址碼部分送至儲存器地址暫存器,記作$Ad(IR)\rightarrow MAR$
  2. 向主存發寫命令,啟動主存作寫操作,記作$1\rightarrow W$
  3. 將累加器內容送至MDR,記作$ACC\rightarrow MDR$
  4. 將MDR的內容(通過資料匯流排)寫入到MAR(通過地址匯流排)所指的主存單元中,記作$MDR\rightarrow M(MAR)$

  (3)取數指令LDA X
  該指令在執行階段需將主存X地址單元的內容存至累加器ACC中。

  1. 將指令的地址碼部分送至儲存器地址暫存器,記作$Ad(IR)\rightarrow MAR$
  2. 向主存發讀命令,啟動主存作讀操作,記作$1\rightarrow R$
  3. 將MAR的內容(通過地址匯流排)所指的主存單元中的內容經資料匯流排讀至MDR內,記作$M(MAR)\rightarrow MDR$
  4. 將MDR的內容送至ACC,記作$MDR\rightarrow ACC$

轉移類指令

  (1)無條件轉移指令JMP X
  該指令在執行階段完成將指令的地址碼部分X送至PC的操作,記作$Ad(IR)\rightarrow PC$
  (2)條件轉移指令BAN X
  該指令根據上一條指令執行的結果決定下一條指令的地址,若結果為負(累加器最高位為1,即$A_0=1$),則指令的地址碼送至PC,否則程式按原順序執行。記作$A_0\cdot Ad(IR)+\overline{A_0}\cdot (PC)\rightarrow PC$

4.中斷週期

  在執行週期結束時刻,CPU要查詢是否有請求中斷的時事件發生,如果有則進入中斷週期。假設程式斷點存至主存的0地址單元,且採用硬體向量法尋找入口地址,則在中斷週期需完成如下操作。

  1. 將特定地址“0”送至儲存器地址暫存器,記作$0\rightarrow MAR$
  2. 向主存發寫命令,啟動儲存器作寫操作,記作$1\rightarrow W$
  3. 將PC的內容(程式斷點)送至MDR,記作$PC\rightarrow MDR$
  4. 將MDR的內容(程式斷點)通過資料匯流排寫入到MAR(通過地址匯流排)所指示的主存單元(0地址單元)中,記作$MDR\rightarrow M(MAR)$
  5. 將向量地址形成部件的輸出送至PC,記作向量地址$\rightarrow $PC,為下一條指令的取指週期做準備。
  6. 關中斷,將允許中斷觸發器清零,記作$0\rightarrow EINT$(該操作可直接由硬體線路完成)。

  如果程式斷點存入堆疊,而且進棧操作是先修改指標,後儲存資料,只需將上述1改為$(SP)-1\rightarrow SP$,且$SP\rightarrow MAR$。

二、控制單元的功能

1.控制單元的外特性

輸入訊號

  (1)時鐘

  • 完成每個操作都需佔用一定的時間
  • 各個操作是有先後順序的

  為了控制單元按一定的先後順序、一定的節奏發出各個控制訊號,控制單元必須受時鐘控制,即每一個時鐘脈衝使控制單元傳送一個操作命令,或傳送一組需要同時執行的操作命令。

  (2)指令暫存器
  現行指令的操作碼決定了不同指令在執行週期所需完成的不同操作,故指令的操作碼欄位是控制單元的輸入訊號,它與時鐘配合可產生不同的控制訊號。

  (3)標誌
  控制單元有時需依賴CPU當前所處的狀態(如ALU操作的結果)產生控制訊號,因此“標誌”也是控制單元的輸入訊號。

  (4)來自系統匯流排(控制匯流排)的控制訊號
  例如中斷請求、DMA請求。

輸出訊號

  (1)CPU內的控制訊號
  主要用於CPU內的暫存器之間的傳送和控制ALU實現不同的操作。

  (2)送至系統匯流排的訊號
  例如命令主存或I/O讀/寫、中斷響應等。

2.多級時序系統

機器週期

  機器週期可看作是所有指令的執行過程中的一個基準時間,機器週期取決於指令的功能及器件的速度。
  確定機器週期時,通常要分析機器指令的執行步驟及每一步驟所需的時間。通常以訪問一次儲存器的時間定為基準時間較為合理,這個基準時間就是機器週期。由於不論執行什麼指令,都需要訪問儲存器取出指令,因此在儲存字長等於指令字長的前提下,取指週期也可看作機器週期。

時鐘週期

  在一個機器週期裡可完成若干個微操作,每個微操作都需要一定的時間,可用時鐘訊號來控制產生每一個微操作命令。
  時鐘訊號可由機器主振電路發出的脈衝訊號經整形後產生,時鐘訊號的頻率即為CPU主頻。用時鐘訊號控制節拍發生器,就可產生節拍。每個節拍的寬度正好對應一個時鐘週期。在每個節拍內機器可完成一個或幾個需同時執行的操作,它是控制計算機操作的最小時間單位。

多級時序系統

  一個指令週期包含若干個機器週期, 一個機器週期又包含若干個時鐘週期,每個指令週期內的機器週期數可以不等,每個機器週期內的節拍數也可以不等。機器週期節拍組成了多級時序系統
  一般來說,CPU的主頻越快,機器的執行速度也越快。在機器週期所含時鐘週期數相同的前提下,兩機平均指令執行速度之比等於兩機主頻之比。
  實際上機器的速度不僅與主頻有關,還與機器週期中所含的時鐘週期數以及指令週期中所含的機器週期數有關。同樣主頻的機器,由於機器週期所含時鐘週期數不同,執行速度也不同。機器週期所含時鐘週期數少的機器,速度更快。

3.控制方式

  控制單元控制一條指令執行的過程實質上是一次執行一個確定的微操作序列的過程。通常將如何形成控制不同微操作序列所採用的時序控制方式稱為CU的控制方式。常見的控制方式有同步控制、非同步控制、聯合控制、人工控制

同步控制方式

  同步控制方式:任何一條指令或指令中任何一個微操作的執行都是事先確定的,並且都是受統一基準時標的時序訊號所控制的方式。
  如果機器內的儲存器存取週期不統一,那麼只有把最長的存取週期作為機器週期,才能採用同步控制,否則取指令和取數時間不同,無法用統一的基準。

  (1)採用定長的機器週期
  不論指令所對應的微操作序列有多長,也不管微操作的簡繁,一律以最長的微操作序列和最繁的微操作作為標準,採取完全統一的、具有相同時間間隔和相同數目的節拍作為機器週期來執行各種不同的指令。
  (2)採用不定長的機器週期
  每個機器週期內的街拍書可以不等。通常把大多數微操作安排在一個較短的機器週期內完成,而對某些複雜的微操作,採用延長機器週期或增加節拍的方法來解決。
  (3)採用中央控制和區域性控制相結合的方法
  這種方案將機器的大部分指令安排在統一的、較短的機器週期內完成,稱為中央控制,而將少數操作複雜的指令中的某些操作採用區域性控制方式來完成。
  在設計區域性控制線路時需要注意兩點:

  • 使區域性控制的每一個節拍T*的寬度與中央控制的節拍寬度相同;
  • 將區域性控制節拍作為中央控制中機器節拍的延續,插入到中央控制的執行週期內,使機器以同樣的節奏工作,保證了局部控制和中央控制的同步。

非同步控制方式

  非同步控制方式不存在基準時標訊號,沒有固定的週期節拍和嚴格的時鐘同步,執行每條指令和每個操作需要多少時間就佔用多少時間。結構比同步控制方式複雜。

聯合控制方式

  同步控制和非同步控制相結合就是聯合控制方式。這種方式對各種不同指令的微操作實行大部分統一、小部分區別對待的辦法。

人工控制方式

  人工控制是為了調機和軟體開發的需要,在機器面板或內部設定一些開關或按鍵,來達到人工控制的目的。