計算機組成原理學習筆記(八):控制器設計
第八章 控制器設計
8。1 組合邏輯控制器
8。1。1 操作碼譯碼
CU 執行的關鍵在於 IR 將指令操作碼部分傳入譯碼器中,譯碼器根據指令操作碼部分輸出對應的指令編號。
CU 再根據輸入的指令編號,輸出相應的微操作命令。
8。1。2 微操作設計概述
微操作設計的關鍵任務
由於控制器實質是根據當前指令功能,依次發出一系列控制訊號,因此我們需要了解如下資訊。
有哪些控制訊號
這些控制訊號如何依次發出?即這些控制訊號應該安排到哪個機器週期的哪個節拍中發出。
微操作設計的前提假設
採用同步控制方式。
一個機器週期內有 3 個節拍。(時鐘週期)
CPU 內部結構採用非匯流排方式。
安排微操作時序的原則
微操作的先後順序一般不得隨意更改。
被控物件不同的微操作儘量安排在一個節拍內完成。
由於被控物件不同,因此不同微操作可以並行執行,提高執行效率。
3。 佔用時間較短的微操作,儘量安排在一個節拍內完成,並允許有先後順序。
兩個微操作佔用時間非常短,因此可以在同一個節拍內依次執行,加快硬體執行效率。
組合邏輯控制器設計流程
組合邏輯控制器就是一個大規模的組合邏輯電路,因此又稱為硬佈線控制器。
組合邏輯控制器設計一共分為以下 5 個流程。
指令週期的微操作節拍安排。
繪製操作時間表。
設計微操作命令的最簡邏輯表示式。
設計微操作命令的邏輯電路圖。
綜合最佳化。
組合邏輯控制器設計的特點
思路清晰,簡單明瞭。
電路龐雜,除錯難,修改難,升級維護難。
速度快。
這種設計方式主要被 RISC 處理器採用,因此 RISC 處理器速度快,但一旦更新換代則很難做到相容。
8。1。3 (1) 指令週期微操作節拍安排
取指週期微操作的節拍安排
間址週期微操作的節拍安排
執行週期微操作的節拍安排
以下述十條指令的執行週期為例。
CLA(清零)
為空,
時安排
。
COM(取反)
為空,
時安排
。
SHR(ACC右移,符號位不變)
為空,
時安排
。
CSL(迴圈左移)
為空,
時安排
。
STP(停機)
為空,
時安排
。
ADD X(ACC加上 X 對應資料)
STA X(存數)
LDA X(讀數)
JMP X(跳轉)
為空,
時安排
。
BAN X(條件跳轉)
為空,
時安排
。
中斷週期微操作的節拍安排
中斷週期即三條中斷隱指令的實現。
執行微操作
以及硬體關中斷
執行微操作
執行微操作
8。1。4 (2) 繪製操作時間表
在這個步驟中需要根據第一步中設計的微操作來安排每個指令的具體執行過程。下圖中空格子表示不執行。
取指週期操作時間表
間址週期操作時間表
執行週期操作時間表
ADD、STA、LDA 三個指令的執行過程如下。
其餘七條指令的執行過程如下。
8。1。5 (3) 設計微操作命令的最簡邏輯表示式
我們以
這條命令為例。
上述的邏輯表示式恰好是根據第二部分中各指令執行的操作時間表來決定的。
我們可以發現其中時鐘訊號
,機器週期
以及十種操作型別均在下述的硬體電路中已經給出。
8。1。6 (4) 設計微操作命令的邏輯圖
我們根據上述的最簡邏輯表示式設計出下述的邏輯電路圖。
8。1。7 (5) 綜合最佳化
上述的過程只涉及到了一條微操作的設計,在實際工作中,我們需要將全部微操作命令的邏輯圖綜合起來,從整體上進行最佳化工作。
8。2 微程式控制器工作原理
8。2。1 微程式設計概述
微程式設計思想
以 “微程式-微指令-微操作命令” 三級對一條機器指令進行劃分。
一條機器指令對應一個微程式,將微程式存入 ROM 中,稱為控制儲存器。
微程式與硬佈線設計方式的聯絡
微程式以微指令為單位,硬佈線以時鐘週期為單位。其中微指令與時鐘週期一樣,都會發出一個或幾個微操作命令。
硬佈線方式的三級結構: “指令週期-機器週期-時鐘週期-微操作 (控制訊號)”
微程式方式的三級結構: “大段微程式-小段微程式-微指令-微操作 (控制訊號)”
8。2。2 微程式工作原理
控制儲存器的組成
由於指令的取指、間址、中斷週期均一致,因此在控制儲存器中的固定位置統一存放這三個過程的微程式。並在其餘部分依次存放各類操作執行週期對應的微程式。
微程式控制單元的基本框圖
CMDR: 控存資料暫存器,儲存當前微指令。
CMAR: 控存地址暫存器,儲存微指令的地址。
微指令分成兩個部分,“操作控制欄位” 與 “順序控制欄位” (儲存下一條微指令地址,因此也稱為 “下址欄位”)。
微程式的儲存結構
根據控制儲存器中的內容,我們可以看到取指週期的最後一條微指令的下址欄位不確定,原因是不知道接下來執行哪一段微程式。
並且所有執行週期微程式最後一條微指令的下址欄位均為 M,因為執行完後開始下一條指令的取址。
8。2。3 微程式工作流程
取指階段
取指階段入口地址 M 送給 CMAR
微指令的控制欄位是一個0、1序列,其中 1 代表一個控制訊號的開啟。
執行階段
8。2。3 微程式設計特點總結
特點
指令執行的每個階段都是一段微程式,共同組成完成指令的微程式。
全部微指令存在控制儲存器(CM)中,程式執行過程中只需讀出。因此一旦指令集更新換代,也只需要更新 CM 即可,比硬佈線方式方便很多。
因此微程式設計方式為 CISC 處理器所採用。
實現關鍵點
微指令的操作控制欄位如何形成微操作命令。
微指令的後續地址如何形成。
8。3 微程式控制器設計方法
8。3。1 微指令的編碼方式
直接控制方式
在微指令的操作控制欄位中,每一位代表一個微操作命令,這種方式速度最快。
在操作控制碼欄位,某位為 “1” 即表示該控制訊號有效。
欄位直接編碼方式
將互斥的微操作經編碼合在一起作為一個 “段”,每段經譯碼後發出控制訊號。
例如 8 個互斥微操作,我們可以用 4 位進行二進位制編碼,最後再譯碼得到對應控制訊號。(4 位的原因是還有一個無操作訊號,一共 9 個訊號)
這種方式縮短了微指令字長,增加了譯碼時間,執行較慢。
欄位間接編碼方式
混合編碼
直接編碼和欄位編碼(直接和間接)混合使用。
8。3。2 微指令序列地址的形成
6 種形成方式
微指令的下地址欄位指出
根據機器指令的操作碼形成(IR)
增量計數器
分支轉移
根據轉移方式來判斷轉移去向。
5。 由硬體產生微程式入口地址
第一條微指令地址(由專門硬體產生)
中斷週期(由硬體產生中斷週期微程式首地址)
6。 透過測試網路
具體形成過程
微程式序列地址由下述的
種方式依次產生,並透過一個多路選擇器來確定最終的序列地址,然後將地址傳入 CMAR 中,經過譯碼後將控制儲存器中對應的微程式存入CMDR中,然後發出對應的控制訊號。