您當前的位置:首頁 > 書法

計算機組成原理學習筆記(八):控制器設計

作者:由 Gene 發表于 書法時間:2020-12-05

第八章 控制器設計

8。1 組合邏輯控制器

8。1。1 操作碼譯碼

CU 執行的關鍵在於 IR 將指令操作碼部分傳入譯碼器中,譯碼器根據指令操作碼部分輸出對應的指令編號。

CU 再根據輸入的指令編號,輸出相應的微操作命令。

計算機組成原理學習筆記(八):控制器設計

8。1。2 微操作設計概述

微操作設計的關鍵任務

由於控制器實質是根據當前指令功能,依次發出一系列控制訊號,因此我們需要了解如下資訊。

有哪些控制訊號

這些控制訊號如何依次發出?即這些控制訊號應該安排到哪個機器週期的哪個節拍中發出。

微操作設計的前提假設

採用同步控制方式。

一個機器週期內有 3 個節拍。(時鐘週期)

CPU 內部結構採用非匯流排方式。

計算機組成原理學習筆記(八):控制器設計

安排微操作時序的原則

微操作的先後順序一般不得隨意更改。

被控物件不同的微操作儘量安排在一個節拍內完成。

由於被控物件不同,因此不同微操作可以並行執行,提高執行效率。

3。 佔用時間較短的微操作,儘量安排在一個節拍內完成,並允許有先後順序。

兩個微操作佔用時間非常短,因此可以在同一個節拍內依次執行,加快硬體執行效率。

組合邏輯控制器設計流程

組合邏輯控制器就是一個大規模的組合邏輯電路,因此又稱為硬佈線控制器。

組合邏輯控制器設計一共分為以下 5 個流程。

指令週期的微操作節拍安排。

繪製操作時間表。

設計微操作命令的最簡邏輯表示式。

設計微操作命令的邏輯電路圖。

綜合最佳化。

組合邏輯控制器設計的特點

思路清晰,簡單明瞭。

電路龐雜,除錯難,修改難,升級維護難。

速度快。

這種設計方式主要被 RISC 處理器採用,因此 RISC 處理器速度快,但一旦更新換代則很難做到相容。

8。1。3 (1) 指令週期微操作節拍安排

取指週期微操作的節拍安排

計算機組成原理學習筆記(八):控制器設計

間址週期微操作的節拍安排

計算機組成原理學習筆記(八):控制器設計

執行週期微操作的節拍安排

以下述十條指令的執行週期為例。

CLA(清零)

T_0,T_1

為空,

T_2

時安排

0\rightarrow AC

COM(取反)

T_0,T_1

為空,

T_2

時安排

\overline{AC}\rightarrow AC

SHR(ACC右移,符號位不變)

T_0,T_1

為空,

T_2

時安排

L(AC)\rightarrow R(AC),AC_0\rightarrow AC_0

CSL(迴圈左移)

T_0,T_1

為空,

T_2

時安排

R(AC)\rightarrow L(AC),AC_0\rightarrow AC_n

STP(停機)

T_0,T_1

為空,

T_2

時安排

0\rightarrow G

ADD X(ACC加上 X 對應資料)

計算機組成原理學習筆記(八):控制器設計

STA X(存數)

計算機組成原理學習筆記(八):控制器設計

LDA X(讀數)

計算機組成原理學習筆記(八):控制器設計

JMP X(跳轉)

T_0,T_1

為空,

T_2

時安排

Ad(IR)\rightarrow PC

BAN X(條件跳轉)

T_0,T_1

為空,

T_2

時安排

A_0*Ad(IR)+\overline{A_0}(PC)\rightarrow PC

中斷週期微操作的節拍安排

中斷週期即三條中斷隱指令的實現。

T_0:

執行微操作

0\rightarrow MAR,1\rightarrow W

以及硬體關中斷

T_1:

執行微操作

PC\rightarrow MDR

T_2:

執行微操作

MDR\rightarrow M(MAR),向量地址\rightarrow PC

8。1。4 (2) 繪製操作時間表

在這個步驟中需要根據第一步中設計的微操作來安排每個指令的具體執行過程。下圖中空格子表示不執行。

取指週期操作時間表

計算機組成原理學習筆記(八):控制器設計

間址週期操作時間表

計算機組成原理學習筆記(八):控制器設計

執行週期操作時間表

ADD、STA、LDA 三個指令的執行過程如下。

計算機組成原理學習筆記(八):控制器設計

其餘七條指令的執行過程如下。

計算機組成原理學習筆記(八):控制器設計

8。1。5 (3) 設計微操作命令的最簡邏輯表示式

我們以

M(MAR)\rightarrow MDR

這條命令為例。

\begin{aligned}<br>& M(MAR)\rightarrow MDR \\<br>& = FE*T_1+IND*T_1(ADD+STA+LDA+JMP+BAN) \\<br>& \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  +EX*T_1(ADD+LDA) \\<br>& = T_1\{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)\}<br>\end{aligned}

上述的邏輯表示式恰好是根據第二部分中各指令執行的操作時間表來決定的。

我們可以發現其中時鐘訊號

T_1

,機器週期

FE,IND,EX

以及十種操作型別均在下述的硬體電路中已經給出。

計算機組成原理學習筆記(八):控制器設計

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)

增量計數器

(CMAR)+1\rightarrow CMAR

分支轉移

根據轉移方式來判斷轉移去向。

計算機組成原理學習筆記(八):控制器設計

5。 由硬體產生微程式入口地址

第一條微指令地址(由專門硬體產生)

中斷週期(由硬體產生中斷週期微程式首地址)

6。 透過測試網路

計算機組成原理學習筆記(八):控制器設計

具體形成過程

微程式序列地址由下述的

5

種方式依次產生,並透過一個多路選擇器來確定最終的序列地址,然後將地址傳入 CMAR 中,經過譯碼後將控制儲存器中對應的微程式存入CMDR中,然後發出對應的控制訊號。

計算機組成原理學習筆記(八):控制器設計