微碼控制器

微碼控制器

微碼控制器,是指一個CPU的指令集作為一微碼指令的序列,其中每個典型地由很多位域和下一個微指令執行的地址組成,按照預定順序改變主電路或控制電路的接線和改變電路中電阻值來控制電動機的啟動、調速、制動和反向的主令裝置。

GF一10一12高速多功能運算部件微碼控制器

介紹GF一10一12微碼控制器的工作原理、主要特點和幾個技術難點。GF一10一12採用微程式設計技術,簡化了加法部件和乘法部件的邏輯設計,給用戶提供許多性質不同的指令,從而增強了系統的功能。

微碼控制器工作原理

GF一10一12系統存在著三級不同類型的指令系統,一 種是MC68000微機指令系統,二是參數部件的指令系統,三是運算部件的微指令系統。

這三種指令之間的關係以矩陣乘運算是一個三重循環的計算公式,除了需要一些加法和乘法指令外,還要給一些參數,如:第一運算元開始地址,第一運算元開始地址增量,第一運算元地址增量 ; 第二運算元開始地址,第二運算元開始地址增量,第二運算元地址增量 ; 運算結果開始地址,運算結果開始地址增量,運算結果地址增量,還有k、i、j 循環次數。

MC68000指令好比主程式,當發現有調AP宏指令時,就發一條命令到參數部件,之後68000又繼續執行它的程式。當參數部件接到AP命令後,就到存儲器取參數指令,並執行之。參數部件取完一組參數指令後,就發一條AP宏指令到微碼控制器。微碼控制器設有宏指令緩衝站,共四個單元。一條宏指令的功能, 是用一組微程式來實現的。所有宏指令對應的微程式均放在用PROM組成的存儲器里(又稱算術庫)。 微碼控制器的第一個功能,是從宏指令緩衝站提取宏指令,然後到算術庫里取出微指令,第二個功能是解釋和執行微指令。

微碼控制器所看到的邏輯實體,有加法部件AU,乘法部件MU,暫存器組XR和YR,取數緩衝暫存器XS和YS,送數緩衝暫存器ZDR,微程式存儲器拼μPM和表格存儲器TPM等。高速陣列運算器微碼控制器微指令長度為64位,分為三大信息段。 第一段是加法指令及有關信息,第二段是乘法指令及有關信息,第三段是轉移類指令。這三大部分同時並行工作。加法指令分為兩大類,一類是運算型指令 ,一類是控制型指令,共有三十二種,取數特徵有三位,共譯出八種定址方式。

微指令控制器取出微指令後,通過解碼,判斷出是加法或乘法運算型指令時,根據取數特徵,給加法器和乘法器分別提供兩個運算元,分別送到加法器和乘法器各自的兩個運算元暫存器里。至於加法器和乘法器本身的操作運算,是由硬體來完成。微碼控制器還根據傳送特徵碼和目標地址,負責傳送加法器和乘法器的運算結果。當解碼判斷是控制型指令時(如數據傳送、 查表、取表常數和各種轉移類指令等),微碼控制器負責執行這些指令。 有的需要一個時鐘周期就可完成,如傳送數據、 轉移類指令等,有的需要二個時鐘周期才能完成。

GF一10一12微碼控制器的主要特點

在通用機中,為了避免取指令占用操作時間,往往採用了先行取指令技術。如果假設取指令時間等於操作時間,取指令和操作可以並行執行,那么取指令所需的時間就會被吸收掉。

GF一10一12微碼控制器也是採用先行取指令技術。在陣列處理機中,時鐘周期為125ns。由於唯讀存儲器的速度不是很快,取微指令、解釋微指令和執行微指令,在一個時鐘周期是完不成的,所以分為二個時鐘周期。兩者可以流水、並行工作。

先行取指令控制技術有一個弱者,當它遇到全局性相關時(如根據條件碼進行轉移),系統的吞吐率將受到嚴重的影響。為了解決這個問題,GF一10一12微指令中,設定一位NB(控制操作特徵),它的含義是,若本條微指令轉移成功(條件成立轉),則建立一個控制位,它控制下條微指令,若有轉移操作,則不執行該轉移操作。若本條微指令不成功轉移(條件不成立轉)、則該特徵對下條無控制作用。

這樣微程式的效率就很高,它能很好地保證流水線的暢通,這是微碼控制器的一個特點。它的另 一個特點是微程式的連結技術。可以通過高速陣列運算器微碼控制器,將加法器和乘法器直接鏈結起來,構成一個高效閉環鏈結的有機整體,也可以將乘法器和加法器,通過中間的暫存器組間接鏈結起來,構成一個開環鏈結的有機整體,以便提供許多不同運算功能的指令,這些指令可以是通常的加、減、乘、除、邏輯操作等,也可以是函式指令。

流水線的堵塞和數據相關問題

在陣列處理機中,由於各功能部件都是並行,流水作業,如果指令流或數據流在某一時刻供不應求,機器就不能連續運轉,這種情況叫做流水線的堵塞。微碼控制器處理方法是,一旦遇到宏指令供不應求,或者是一個運算元或兩個運算元沒有取到,或者是送數緩衝站已滿等情況,就立即封鎖運算器的時鐘脈衝,讓各條流水線都停止工作,原地等待,封鎖一解除,運算器又重新有序不亂地繼續工作起來。

關於數據相關問題,在微碼控制器里是比較嚴重的。由高速陣列運算器微碼控制器可以看出,兩個運算部件 和暫存器組數據通路都很多,彼此之間又可以互相鏈結,因而存在多種數據相關。

微碼控制器的NoC網路接口設計

提出了一種適用於雙通道路由器構建的片上網路系統的網路接口。該網路接口集成IP核一側採用AMBA協定,網路一側同時兼容3種片上通信協定以適應不同的NoC套用環境。在該設計中微碼控制器通過載入並執行微程式控制整個接口的工作流程,這種可程式的設計使得該網路接口具有一定的靈活性。獨立雙通道的設計可以同時進行網路包的傳送和接收,保證了片上通信效率。實驗結果表明,該網路接口資源消耗少,回響延遲低。

微碼控制器的設計

微碼控制是設計CISC處理器控制器的流行技術,採用微程式語言實現,設計簡單靈活。在設計中,微碼控制器取代了傳統的FSM,負責整個通道所有部件的控制。它具有可程式性,可以通過編寫不同的微程式來支持多種協定。每段微程式都是由多條微指令組成,而每條微指令又由多個域組成。設計中的微指令按照水平微指令結構進行定義:

其中指令類型位寬是4bit,該域定義微指令的類型;條件碼位寬8bit,用於條件跳轉指令,該域的值經過特定的編碼解碼能完整反映外部組件的工作狀態;下一個地址位寬8bit,用於跳轉指令;控制碼位寬8bit,用於對外部組件的控制,經過特定的編碼解碼,該域能夠對外部的每個組件生成控制信號。由於指令類型位寬為4bit,最多可以定義出16種不同的微指令,已定義的有5條,其編碼及功能為微指令定義。

設計中兩個通道的微碼控制器都採用了微碼控制器的結構。控制存儲器根據當前地址解碼器的結果輸出一條水平微指令。該指令的控制碼域經過解碼生成一組控制信號輸出,其餘的各個域傳送到地址生成邏輯單元,該單元根據指令的類型與外部輸入的狀態信號計算出下一條微指令的地址,並寫入地址暫存器中,地址暫存器中的值經過地址解碼後輸入控制存儲器,讀取出下一條微指令。

PCC、CBFC和4PHFC三種協定各對應於一段微程式,存放在控制存儲器中。不同協定之間的切換通過方式實現:在暫存器組中,有一個暫存器專門用於表征所選擇的協定,該暫存器的值作為狀態信號的組成部分,通過條件碼編碼被地址生成邏輯識別,從而選擇出對應於當前協定的微程式。

實驗結果

使用 VerilogHDL語言描述,採用ISE12。2綜合工具,基於Xilinx VC5VLX30FPGA器件,同時設計實現了以下5種類型NoC網路接口:

(1)NI_FSM_PCC,基於有限狀態機實現僅支持PCC協定的網路接口;

(2)NI_MC_PCC,基於微碼控制器實現僅支持PCC協定的網路接口;

(3)NI_MC_CBFC,基於微碼控制器實現僅支持CBFC協定的網路接口;

(4)NI_MC_4PHFC,基於微碼控制器實現僅支持4PHFC協定的網路接口;

(5)NI_MC_3PRO,基於微碼控制器實現同時兼容3種協定的網路接口。

在所有設計中,網路包的數據位寬為32bit,DMA接口數據位寬為32bit,AHB接口數據位寬為32bit。網路包的數據微片位寬為34bit,其中2bit作為類型標識。在此將給出設計實現結果,並從回響延遲和資源消耗兩個方面評估所提出的網路接口性能。

片記憶體儲的消耗統計

片記憶體儲的消耗由兩部分組成:數據緩衝Buff-er內的存儲和微碼控制器內的存儲。其中數據緩衝Buffer內的存儲深度固定為16,位寬為32bit;微碼控制器內的存儲深度等於微程式的長度,位寬為28bit。影響微程式長度的主要因素包括所實現的協定和微指令集。對於相同的微指令集,一般協定越複雜,需要的微程式也就越長;而實現相同協定時,微指令集越複雜,需要的微程式也就越短。不同設計消耗的片上存儲統計中給出了5種不同設計對片記憶體儲資源的需求。

回響延遲統計

網路接口的回響延遲是網路通信延遲的組成部分,是衡量網路接口服務質量的重要參量。回響延遲越大,則意味著包傳輸的網路延遲越大,同時鏈路的使用率越低。設計將發包的回響延遲定義為從IP核發起請求到包的第一個微片出現於輸出連線埠的周期數,收包的回響延遲定義為從包的第一個微片出現於輸入連線埠到IP核接收到收包請求的周期數。

在基於微碼控制器的設計中,不同協定的回響延遲統計的最後兩行是文獻中的實驗結果,它所提出的兩種設計具有不同的回響延遲,取其平均值作為參考。可以看到,提出的設計平均回響延遲為2.5,相比於文獻有很大改進。在包長1000以上時,回響延遲的影響幾乎可以忽略不計,鏈路頻寬的利用率達到99%以上。

相關詞條

熱門詞條

聯絡我們