跳轉到內容

微處理器設計/指令譯碼器

來自華夏公益教科書,開放的書籍,用於開放的世界

指令譯碼器從記憶體中讀取下一條指令,並將該指令的組成部分發送到必要的目的地。

對於每個機器語言指令,控制單元都會產生每個控制訊號線上實現該指令(以及獲取下一條指令)所需的脈衝序列。

如果幸運的話,在設計處理器時,你會發現許多控制訊號可以從指令暫存器“直接譯碼”。例如,有時指令暫存器 IR 的幾個輸出位可以直接連線到 ALU 的“哪個函式”輸入端。即使這些位在非 ALU 指令中具有完全無關的意義,只要 ALU 執行,例如,一個虛假的減法,而處理器其餘部分正在執行一個儲存指令,就可以了。

其餘無法從指令暫存器中譯碼的控制訊號——如果你不幸的話,所有控制訊號——由控制單元生成,控制單元以[Moore 機][2]或[Mealy 機][3]實現。有很多不同的方法來實現控制單元。

如果設計了一個使用普林斯頓架構的處理器——你的處理器通常從用於讀寫資料的同一個單埠記憶體中提取指令——那麼你就被迫讓至少載入和儲存至少需要兩個時鐘週期才能執行。(一個週期用於資料,另一個週期用於讀取下一條指令)。(許多處理器都設計為“單週期執行”,無論是非常簡單的哈佛架構處理器,還是複雜的、具有單獨指令快取的高效能處理器)。

RISC 指令譯碼器

[編輯 | 編輯原始碼]

RISC 機器背後的理念是,指令執行要保持極快的速度和簡單性。因此,指令譯碼器(如果有的話)必須儘可能地簡化。折衷方案是必須執行更多指令才能執行更復雜的機器功能。所有低階抽象必須在機器程式碼編譯器中提供。

RISC 譯碼器通常有兩種變體。

在第一種變體中,指令程式碼的位直接饋送到硬體元件,因此實際上根本沒有譯碼器。所有定時要求必須透過仔細程式設計機器程式碼來滿足,並且沒有指令譯碼器的執行延遲。必要的控制線“波形”是直接由指令序列建立的。一旦指令出現,硬體就開始響應。指令集中​​的位直接代表硬體元件的實際物理控制。

第二種變體包括指令程式碼和硬體元件之間的一個簡單(快速)譯碼器。這種譯碼通常由離散邏輯閘實現。這個譯碼器的主要目的是允許“更簡潔”的指令集表示。與直接變體一樣,每條指令仍然代表一個單獨的機器功能,但使用譯碼器通常會顯著減少機器程式碼字中所需的位數。反過來,這可以允許在一條機器指令中啟動多個硬體功能。

CISC 指令譯碼器

[編輯 | 編輯原始碼]

譯碼 CISC 指令字比 RISC 情況要困難得多,並且譯碼器複雜性的增加是人們選擇在設計中使用 RISC 而不是 CISC 的常見原因。

CISC 譯碼器通常使用一個狀態機,該狀態機設定為一個隨機長度的排序器。機器讀取操作碼欄位以確定它是什麼型別的指令以及其他資料值在哪裡(如果需要)。指令字甚至可以逐段讀取,因此可以在每個階段做出決定,說明如何讀取指令字的其餘部分以及任何包含的資料。

與 RISC 譯碼器的情況相反,這個譯碼器會按順序遍歷機器硬體的多個狀態。指令程式碼選擇要執行的序列,排序器控制此執行的定時。此執行中的一個“步驟”可能包括從指令程式碼中獲取更多輸入,無論此輸入是進一步的指令還是所需的資料值。

也許理解這種譯碼器型別最簡單的方法是將其視為一個非常寬的控制儲存 ROM。此 ROM 中的程式是譯碼器/排序器的微程式碼。指令暫存器的部分用於形成此 ROM 的地址的一部分。地址的幾位來自 ROM 本身。ROM 的大多數輸出用於控制系統硬體。

反饋地址部分形成一個迴圈,該迴圈將按照程式設計到 ROM 中的方式逐步遍歷隨機序列。此迴圈的執行速度與 ROM 允許的訪問時間一樣快,通常是一個系統時鐘。反饋地址通常被程式設計為在排序器的每個後續狀態遞增 1。反饋位的數量決定了微碼序列的最大長度。


管道暫存器在每個時鐘週期都鎖定控制儲存 ROM 的所有輸出位。

每個時鐘週期,管道暫存器都會鎖定一組新的位。

排序器的輸出有兩個部分

控制位傳送到處理器的硬體元件。反饋到控制儲存 ROM 的一些地址輸入的“微 PC”。有些人將進位標誌硬連線到控制儲存 ROM 的一個地址輸入。

每次從主記憶體中獲取新的操作碼時,通常將微 PC 的高位載入操作碼,並將微 PC 的低位復位為零。(為了便於除錯,一些設計人員將操作碼載入到單獨的指令暫存器 IR 以及微 PC 暫存器中,至少在初始原型中是這樣。一旦設計除錯完畢,可能會發現 IR 或微 PC 暫存器或兩者中的某些或所有位從未使用過,因此可以從最終設計中刪除)。在執行指令期間,每個時鐘週期,管道暫存器都從控制儲存器載入一個新的微 PC 地址,並從控制儲存器載入一組新的控制位。通常,編寫微程式的人(刻錄到控制儲存 ROM 中)將該 ROM 的下一地址輸出位設計為在該操作碼的最初幾個週期中按順序遞增。然後,每個“正常”操作碼的微程式最終都會跳轉到控制儲存 ROM 的一個公共部分,該部分處理獲取下一條指令。

華夏公益教科書