解釋一個簡單的微程式控制器(microsequencer)的設計和實現?
微程式序列是微程式控制單元的通用構建塊。微程式控制器的主要目標是向控制儲存器提供一個地址,以便讀取和執行微指令。控制器的下一個地址邏輯決定載入到控制地址暫存器中的特定地址源。該圖顯示了簡單微程式控制器的佈局。

只有兩個可能的下一個地址被使用 - 操作碼對映和絕對跳轉。獲取週期的最後一個狀態 FETCH3 轉到四個執行例程之一。這必須透過對映輸入來實現。其餘狀態必須分別轉到一個特定的下一個狀態,我們使用絕對跳轉來實現。儘管我們可以透過將當前地址加 1 來實現其中一些分支,但它無法以這種方式執行從每個執行例程的末尾到 FETCH1 的分支。
選擇位由微程式控制器生成,以選擇正確的下一個地址。對於此 CPU,選擇是無條件的。在每個狀態下,此 CPU 都絕對確定其下一個地址的來源,但並非所有微程式控制器都是如此。
它包含總共九個狀態,每個狀態由一條微指令表示。選擇它們所需的最小位數是 4,這是絕對地址的大小。對映硬體也生成相同大小的地址,其輸出也是 4 位寬。這與多路複用器的輸出(輸入到暫存器)和暫存器的輸出(輸入到微程式碼儲存器的地址輸入)相同大小。
主要考慮因素是為每個執行例程的第一狀態分配地址,因為這決定了實現對映函式的邏輯。對於此 CPU,微程式控制器將使用與硬連線控制單元相同的對映函式,即 1 IR [1…0]0。
這分別為 ADD1、AND1、JMP1 和 INC1 生成地址 1000、1010、1100 和 1110(8、10、12 和 14)。實現對映的硬體變成了幾根線,這是最簡單的對映邏輯。這在圖中顯示。

其餘狀態的地址可以任意分配。它可以將連續狀態分配給微程式碼儲存器中的連續位置。結果分配如表所示。
非常簡單的微程式控制器的狀態地址
| 狀態 | 地址 |
|---|---|
| FETCH1 | 0000 (0) |
| FETCH2 | 0001 (1) |
| FETCH3 | 0010 (2) |
| ADD1 | 1000 (8) |
| ADD2 | 1001 (9) |
| AND1 | 1010 (10) |
| AND2 | 1011 (11) |
| JMP1 | 1100 (12) |
| INC1 | 1110 (14) |
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP