跳轉到內容

微處理器設計/微程式碼

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

RISC單元通常比CISC單元更快、更高效。 出於這個原因,許多CISC處理器擁有複雜的指令解碼器,實際上將CISC機器碼轉換為稱為微程式碼的類似RISC的內部指令集。 然後,這些微程式碼被饋送到基於RISC設計的處理器的內部核心。

實現記憶體-記憶體體系結構CPU[需要引文] 的最常見方法(即使是單晶片微處理器,不僅僅是 線繞機)是使用一個小的“控制儲存器”ROM。 控制儲存器的輸出資料位被鎖存在微指令暫存器[1][2][3][4][5] 中(類似於從RAM獲取的指令被鎖存在指令暫存器中的方式)。 決定系統迴圈時間的時鐘訊號主要對微指令暫存器進行時鐘控制。 儲存在微指令暫存器中的位直接控制著CPU中發生的一切。(在一些處理器中,微指令暫存器是唯一與時鐘訊號相連的東西。 稍後我們將討論“流水線”,這是一種涉及與時鐘訊號相連的流水線暫存器的技術)。

微指令暫存器中的一些位僅僅驅動控制儲存器的一些地址位。 這些位——流水線暫存器的那個子欄位——有時被稱為“微程式計數器”,即使它僅僅是一個鎖存器——通常對控制儲存器進行程式設計,使得這些位在每個時鐘週期遞增,並在新的指令被載入到指令暫存器時復位為零。 指令暫存器直接驅動控制儲存器ROM的一些地址線。 控制儲存器ROM的另外一些地址線由狀態位驅動,如Z標誌位和C標誌位。

一些CPU,如ECOMIPS[6]、英特爾酷睿2和英特爾至強[7],使用“可寫微程式碼”——而不是將微程式碼儲存在ROM或硬連線邏輯中,而是將微程式碼儲存在一個稱為可寫控制儲存器或WCS的RAM中。


進一步閱讀

[編輯 | 編輯原始碼]


  • "Viktor's Amazing 4-bit Processor" 的微程式碼,據他說,*可能*可以用傳統二極體矩陣中的大約90個二極體來實現; 但是他用一個Flash儲存器晶片實現了微程式碼,他可以使用手動開關在電路中重新程式設計。
  • Dieter Mueller 的 MT15 使用電晶體而不是二極體在一個大的AND-OR PLA(可程式設計邏輯陣列)矩陣中實現微程式碼。

參考文獻

[編輯 | 編輯原始碼]
  1. 美國專利5050073。 "用於減少計算微指令執行時間的微指令執行系統"。 1987年。
  2. Jonathan G. Campbell。 "中央處理單元(CPU)" 2000年。
  3. Patrick R. Schaumont。 "硬體/軟體協同設計的實踐介紹"。 2010年。
  4. Govindarajalu。 "計算機體系結構與組織:設計原理與應用"。 2004年。
  5. B. Govindarajalu。 "計算機體系結構與組織,第2版" 2010年。
  6. "ECOMIPS:FPGA上的經濟型MIPS CPU設計",由李希芝和李鐵財撰寫。
  7. 維基百科:微程式碼#可寫控制儲存器
華夏公益教科書