微碼控制器,是指一個CPU的指令集作為一微碼指令的序列,其中每個典型地由很多位域和下一個微指令執(zhí)行的地址組成,按照預(yù)定順序改變主電路或控制電路的接線和改變電路中電阻值來控制電動機的啟動、調(diào)速、制動和反向的主令裝置。
GF一10一12高速多功能運算部件微碼控制器介紹GF一10一12微碼控制器的工作原理、主要特點和幾個技術(shù)難點。GF一10一12采用微程序設(shè)計技術(shù),簡化了加法部件和乘法部件的邏輯設(shè)計,給用戶提供許多性質(zhì)不同的指令,從而增強了系統(tǒng)的功能。1
微碼控制器工作原理GF一10一12系統(tǒng)存在著三級不同類型的指令系統(tǒng),一 種是MC68000微機指令系統(tǒng),二是參數(shù)部件的指令系統(tǒng),三是運算部件的微指令系統(tǒng)。
這三種指令之間的關(guān)系以矩陣乘運算是一個三重循環(huán)的計算公式,除了需要一些加法和乘法指令外,還要給一些參數(shù),如:第一操作數(shù)開始地址,第一操作數(shù)開始地址增量,第一操作數(shù)地址增量 ; 第二操作數(shù)開始地址,第二操作數(shù)開始地址增量,第二操作數(shù)地址增量 ; 運算結(jié)果開始地址,運算結(jié)果開始地址增量,運算結(jié)果地址增量,還有k、i、j 循環(huán)次數(shù)。
MC68000指令好比主程序,當(dāng)發(fā)現(xiàn)有調(diào)AP宏指令時,就發(fā)一條命令到參數(shù)部件,之后68000又繼續(xù)執(zhí)行它的程序。當(dāng)參數(shù)部件接到AP命令后,就到存儲器取參數(shù)指令,并執(zhí)行之。參數(shù)部件取完一組參數(shù)指令后,就發(fā)一條AP宏指令到微碼控制器。微碼控制器設(shè)有宏指令緩沖站,共四個單元。一條宏指令的功能, 是用一組微程序來實現(xiàn)的。所有宏指令對應(yīng)的微程序均放在用PROM組成的存儲器里(又稱算術(shù)庫)。 微碼控制器的第一個功能,是從宏指令緩沖站提取宏指令,然后到算術(shù)庫里取出微指令,第二個功能是解釋和執(zhí)行微指令。
微碼控制器所看到的邏輯實體,有加法部件AU,乘法部件MU,寄存器組XR和YR,取數(shù)緩沖寄存器XS和YS,送數(shù)緩沖寄存器ZDR,微程序存儲器拼μPM和表格存儲器TPM等。高速陣列運算器微碼控制器微指令長度為64位,分為三大信息段。 第一段是加法指令及有關(guān)信息,第二段是乘法指令及有關(guān)信息,第三段是轉(zhuǎn)移類指令。這三大部分同時并行工作。加法指令分為兩大類,一類是運算型指令 ,一類是控制型指令,共有三十二種,取數(shù)特征有三位,共譯出八種尋址方式。
微指令控制器取出微指令后,通過譯碼,判斷出是加法或乘法運算型指令時,根據(jù)取數(shù)特征,給加法器和乘法器分別提供兩個操作數(shù),分別送到加法器和乘法器各自的兩個操作數(shù)寄存器里。至于加法器和乘法器本身的操作運算,是由硬件來完成。微碼控制器還根據(jù)發(fā)送特征碼和目標(biāo)地址,負責(zé)傳送加法器和乘法器的運算結(jié)果。當(dāng)譯碼判斷是控制型指令時(如數(shù)據(jù)傳送、 查表、取表常數(shù)和各種轉(zhuǎn)移類指令等),微碼控制器負責(zé)執(zhí)行這些指令。 有的需要一個時鐘周期就可完成,如傳送數(shù)據(jù)、 轉(zhuǎn)移類指令等,有的需要二個時鐘周期才能完成。1
GF一10一12微碼控制器的主要特點在通用機中,為了避免取指令占用操作時間,往往采用了先行取指令技術(shù)。如果假設(shè)取指令時間等于操作時間,取指令和操作可以并行執(zhí)行,那么取指令所需的時間就會被吸收掉。
GF一10一12微碼控制器也是采用先行取指令技術(shù)。在陣列處理機中,時鐘周期為125ns。由于只讀存儲器的速度不是很快,取微指令、解釋微指令和執(zhí)行微指令,在一個時鐘周期是完不成的,所以分為二個時鐘周期。兩者可以流水、并行工作。
先行取指令控制技術(shù)有一個弱者,當(dāng)它遇到全局性相關(guān)時(如根據(jù)條件碼進行轉(zhuǎn)移),系統(tǒng)的吞吐率將受到嚴重的影響。為了解決這個問題,GF一10一12微指令中,設(shè)置一位NB(控制操作特征),它的含義是,若本條微指令轉(zhuǎn)移成功(條件成立轉(zhuǎn)),則建立一個控制位,它控制下條微指令,若有轉(zhuǎn)移操作,則不執(zhí)行該轉(zhuǎn)移操作。若本條微指令不成功轉(zhuǎn)移(條件不成立轉(zhuǎn))、則該特征對下條無控制作用。
這樣微程序的效率就很高,它能很好地保證流水線的暢通,這是微碼控制器的一個特點。它的另 一個特點是微程序的鏈接技術(shù)??梢酝ㄟ^高速陣列運算器微碼控制器,將加法器和乘法器直接鏈結(jié)起來,構(gòu)成一個高效閉環(huán)鏈結(jié)的有機整體,也可以將乘法器和加法器,通過中間的寄存器組間接鏈結(jié)起來,構(gòu)成一個開環(huán)鏈結(jié)的有機整體,以便提供許多不同運算功能的指令,這些指令可以是通常的加、減、乘、除、邏輯操作等,也可以是函數(shù)指令。1
流水線的堵塞和數(shù)據(jù)相關(guān)問題在陣列處理機中,由于各功能部件都是并行,流水作業(yè),如果指令流或數(shù)據(jù)流在某一時刻供不應(yīng)求,機器就不能連續(xù)運轉(zhuǎn),這種情況叫做流水線的堵塞。微碼控制器處理方法是,一旦遇到宏指令供不應(yīng)求,或者是一個操作數(shù)或兩個操作數(shù)沒有取到,或者是送數(shù)緩沖站已滿等情況,就立即封鎖運算器的時鐘脈沖,讓各條流水線都停止工作,原地等待,封鎖一解除,運算器又重新有序不亂地繼續(xù)工作起來。
關(guān)于數(shù)據(jù)相關(guān)問題,在微碼控制器里是比較嚴重的。由高速陣列運算器微碼控制器可以看出,兩個運算部件 和寄存器組數(shù)據(jù)通路都很多,彼此之間又可以互相鏈結(jié),因而存在多種數(shù)據(jù)相關(guān)。1
微碼控制器的NoC網(wǎng)絡(luò)接口設(shè)計提出了一種適用于雙通道路由器構(gòu)建的片上網(wǎng)絡(luò)系統(tǒng)的網(wǎng)絡(luò)接口。該網(wǎng)絡(luò)接口集成IP核一側(cè)采用AMBA協(xié)議,網(wǎng)絡(luò)一側(cè)同時兼容3種片上通信協(xié)議以適應(yīng)不同的NoC應(yīng)用環(huán)境。在該設(shè)計中微碼控制器通過加載并執(zhí)行微程序控制整個接口的工作流程,這種可編程的設(shè)計使得該網(wǎng)絡(luò)接口具有一定的靈活性。獨立雙通道的設(shè)計可以同時進行網(wǎng)絡(luò)包的發(fā)送和接收,保證了片上通信效率。實驗結(jié)果表明,該網(wǎng)絡(luò)接口資源消耗少,響應(yīng)延遲低。2
微碼控制器的設(shè)計微碼控制是設(shè)計CISC處理器控制器的流行技術(shù),采用微程序語言實現(xiàn),設(shè)計簡單靈活。在設(shè)計中,微碼控制器取代了傳統(tǒng)的FSM,負責(zé)整個通道所有部件的控制。它具有可編程性,可以通過編寫不同的微程序來支持多種協(xié)議。每段微程序都是由多條微指令組成,而每條微指令又由多個域組成。設(shè)計中的微指令按照水平微指令結(jié)構(gòu)進行定義:
其中指令類型位寬是4bit,該域定義微指令的類型;條件碼位寬8bit,用于條件跳轉(zhuǎn)指令,該域的值經(jīng)過特定的編碼解碼能完整反映外部組件的工作狀態(tài);下一個地址位寬8bit,用于跳轉(zhuǎn)指令;控制碼位寬8bit,用于對外部組件的控制,經(jīng)過特定的編碼解碼,該域能夠?qū)ν獠康拿總€組件生成控制信號。由于指令類型位寬為4bit,最多可以定義出16種不同的微指令,已定義的有5條,其編碼及功能為微指令定義。
設(shè)計中兩個通道的微碼控制器都采用了微碼控制器的結(jié)構(gòu)??刂拼鎯ζ鞲鶕?jù)當(dāng)前地址譯碼器的結(jié)果輸出一條水平微指令。該指令的控制碼域經(jīng)過解碼生成一組控制信號輸出,其余的各個域發(fā)送到地址生成邏輯單元,該單元根據(jù)指令的類型與外部輸入的狀態(tài)信號計算出下一條微指令的地址,并寫入地址寄存器中,地址寄存器中的值經(jīng)過地址譯碼后輸入控制存儲器,讀取出下一條微指令。
PCC、CBFC和4PHFC三種協(xié)議各對應(yīng)于一段微程序,存放在控制存儲器中。不同協(xié)議之間的切換通過方式實現(xiàn):在寄存器組中,有一個寄存器專門用于表征所選擇的協(xié)議,該寄存器的值作為狀態(tài)信號的組成部分,通過條件碼編碼被地址生成邏輯識別,從而選擇出對應(yīng)于當(dāng)前協(xié)議的微程序。2
實驗結(jié)果使用 VerilogHDL語言描述,采用ISE12。2綜合工具,基于Xilinx VC5VLX30FPGA器件,同時設(shè)計實現(xiàn)了以下5種類型NoC網(wǎng)絡(luò)接口:
(1)NI_FSM_PCC,基于有限狀態(tài)機實現(xiàn)僅支持PCC協(xié)議的網(wǎng)絡(luò)接口;
(2)NI_MC_PCC,基于微碼控制器實現(xiàn)僅支持PCC協(xié)議的網(wǎng)絡(luò)接口;
(3)NI_MC_CBFC,基于微碼控制器實現(xiàn)僅支持CBFC協(xié)議的網(wǎng)絡(luò)接口;
(4)NI_MC_4PHFC,基于微碼控制器實現(xiàn)僅支持4PHFC協(xié)議的網(wǎng)絡(luò)接口;
(5)NI_MC_3PRO,基于微碼控制器實現(xiàn)同時兼容3種協(xié)議的網(wǎng)絡(luò)接口。
在所有設(shè)計中,網(wǎng)絡(luò)包的數(shù)據(jù)位寬為32bit,DMA接口數(shù)據(jù)位寬為32bit,AHB接口數(shù)據(jù)位寬為32bit。網(wǎng)絡(luò)包的數(shù)據(jù)微片位寬為34bit,其中2bit作為類型標(biāo)識。在此將給出設(shè)計實現(xiàn)結(jié)果,并從響應(yīng)延遲和資源消耗兩個方面評估所提出的網(wǎng)絡(luò)接口性能。2
片內(nèi)存儲的消耗統(tǒng)計片內(nèi)存儲的消耗由兩部分組成:數(shù)據(jù)緩沖Buff-er內(nèi)的存儲和微碼控制器內(nèi)的存儲。其中數(shù)據(jù)緩沖Buffer內(nèi)的存儲深度固定為16,位寬為32bit;微碼控制器內(nèi)的存儲深度等于微程序的長度,位寬為28bit。影響微程序長度的主要因素包括所實現(xiàn)的協(xié)議和微指令集。對于相同的微指令集,一般協(xié)議越復(fù)雜,需要的微程序也就越長;而實現(xiàn)相同協(xié)議時,微指令集越復(fù)雜,需要的微程序也就越短。不同設(shè)計消耗的片上存儲統(tǒng)計中給出了5種不同設(shè)計對片內(nèi)存儲資源的需求。2
響應(yīng)延遲統(tǒng)計網(wǎng)絡(luò)接口的響應(yīng)延遲是網(wǎng)絡(luò)通信延遲的組成部分,是衡量網(wǎng)絡(luò)接口服務(wù)質(zhì)量的重要參量。響應(yīng)延遲越大,則意味著包傳輸?shù)木W(wǎng)絡(luò)延遲越大,同時鏈路的使用率越低。設(shè)計將發(fā)包的響應(yīng)延遲定義為從IP核發(fā)起請求到包的第一個微片出現(xiàn)于輸出端口的周期數(shù),收包的響應(yīng)延遲定義為從包的第一個微片出現(xiàn)于輸入端口到IP核接收到收包請求的周期數(shù)。
在基于微碼控制器的設(shè)計中,不同協(xié)議的響應(yīng)延遲統(tǒng)計的最后兩行是文獻中的實驗結(jié)果,它所提出的兩種設(shè)計具有不同的響應(yīng)延遲,取其平均值作為參考??梢钥吹?,提出的設(shè)計平均響應(yīng)延遲為2.5,相比于文獻有很大改進。在包長1000以上時,響應(yīng)延遲的影響幾乎可以忽略不計,鏈路帶寬的利用率達到99%以上。2
本詞條內(nèi)容貢獻者為:
何星 - 副教授 - 上海交通大學(xué)