潘濱,周昕杰,羅靜
(中國電子科技集團公司第五十八研究所, 江蘇 無錫 214062)
摘要:研究設計了一種多節點的1553B總線協議處理器,可以模擬整套1553B總線系統,既可以作為測試設備,也可作為總線上的多個節點在實際應用中使用。針對總線協議處理器邏輯與存儲資源占用高、難以單片實現的問題,提出了多核MIMD架構的實現思路,有效地降低了邏輯資源的使用量,使其可以在單片FPGA上實現。基于軟硬件融合的理念,通過自定義專用指令集增加指令并行度來提高指令執行的效率,增強了系統的實時性,使其可以在低頻時鐘下運行,從而降低了系統的功耗。
關鍵詞:1553B總線;多核;MIMD;FPGA
0引言
1553B總線是一種廣泛應用的軍用總線,它具有異步操作、時鐘自對準、數據傳輸可靠性高等優點[1]。目前,國內科研院所已經完成了總線協議處理器的國產化,成功研制了多款單節點總線協議處理器。但在用于部分特殊應用和總線測試系統的多節點協議處理器方面,國內尚未有相關的研究文獻。這一方面由于相比單節點處理器,多節點處理器需求量不大;另一方面由于多節點處理器需要的邏輯與存儲資源遠高于單節點處理器,實現難度很大,國外同類產品也多是以較大規模的板卡形式實現,而未能將其集成到單片中[2]。
隨著集成電路國產化的范圍日益擴大,研制一種單片/單板實現的多節點協議處理器是必然要求。本文將以一種多核MIMD(多指令多數據)的架構在單片FPGA上實現多節點總線協議處理器,這一設計思路也可以轉換到ASIC設計上。
1總體思路
研究以DDC公司的BU61580型總線協議處理器作為參考范本,功能上實現1個總線控制器、31個總線終端、1個總線監視器。設計為在外部接口時序上與BU61580兼容,以方便現有軟件的移植。
1553B總線協議處理器可以分為邏輯和存儲兩大核心部分[3]。1553B總線的設計緊貼應用,功能繁雜,邏輯資源使用量較大。同時,總線上每個節點至少4 K字的存儲容量需要大量的存儲資源。若采用單節點協議處理器復制32份的方式來實現,勢必耗費大量資源。這就要求設計一種高效簡潔的架構,最大程度地復用相似邏輯來減少資源占用。
通過分析總線的事務和總線各節點的行為模型,發現這樣兩個特性:(1)相比于協議處理器的速度,總線上的數據傳輸速率是很慢的,即使依次處理各節點,也不會影響總線事務的正常運行;(2)不同的節點,在對總線事務的處理上,處理的過程基本是相同的,區別僅在于配置寄存器的不同配置值而產生的細小差異。若采用微控制器來執行指令實現總線上的事務處理功能,就可以復用大部分的邏輯資源,而對于每個節點的不同配置而產生的細節差異,可以用SFR(特殊功能寄存器)的方式實現[4]。這樣,既達到了壓縮邏輯規模的目的,又保證了不同節點獨立配置的能力。
2架構設計
在架構設計中,重點關注簡潔性和實時性。簡潔的架構能夠減少資源的使用量,提高代碼的可維護性。實時性能夠盡可能高效快速地完成總線事務,從而實現更高的性能。
2.1MIMD指令集設計
首先考慮微控制器核的指令集的設計。將原本并行運行的硬邏輯功能改為串行執行的指令,一個重要的問題就是保證系統的實時性。
一種思路是采用常規指令集并使用流水線實現微控制器,這樣在一個周期內能夠執行更多的指令。但這只是提高了指令執行的速度,并不能改變串行的本質,而且在協議處理器中,微控制器不應該是最復雜的部分,調試工作的重點應該放在與協議密切相關的具體功能模塊上,流水線的控制邏輯復雜,容易引入bug干擾其他模塊的調試,這會給設計工作帶來很大不便。
另一個思路是采用MIMD(多指令多數據)架構。在每個周期內,同時執行多條指令,處理多個數據,這是在事務層面的并行化,通過分配指令位域,在一條指令中實現多個不同的功能,可以大大提高指令執行的效率,增強系統的性能。
將32 bit寬度的指令分為4個位域,分別是通用指令INS、特殊功能寄存器指令SFRINS、擴展指令EXT和條件判斷碼COND。通用指令是微控制器的指令,完成總線事務的基本操作;特殊功能寄存器指令針對總線協議處理器中的寄存器設計,實現與總線事務處理流程無關但與處理細節相關的功能;擴展指令用于實現地址的重映射和設備的選擇;將需要多步邏輯運算才能得到結果的條件判斷通過硬邏輯實現,供程序根據條件是否成立來選擇是否執行該條指令。圖1給出了指令編碼的位域定義。
根據編碼原則,定制了一套專用指令集,能夠最好地適用于總線事務的處理。這套指令集可以在一個周期內實現常規指令多個周期才能完成的功能,大大地提高了實時性。為便于軟件設計與調試,使用Perl語言編寫了該指令集的匯編器。
2.2硬件模塊運行機制
硬件采用Verilog HDL設計實現,在設計中注重了代碼的模塊化和可升級化。秉承高內聚、低耦合的原則,將可以獨立出來的功能都盡可能獨立設計為一個模塊,這樣既有益于設計過程中的調試,也方便日后的維護與升級。圖2展示了多節點總線協議控制器的基本架構框圖。
控制器由BC_ACE、RT_ACE、BM_ACE、BUS_INTF和CTRL_INTF共五個模塊組成。BC_ACE、RT_ACE、BM_ACE分別實現BC(總線控制器)、RT(遠程終端)、BM(總線監視器)的功能,BUS_INTF實現了三個協議處理模塊與1553B總線之間的接口,CTRL_INTF實現了多節點總線協議控制器和上位機之間的接口。
下面詳細介紹各模塊的運行機制。
BC_ACE包含微控制器、指令存儲器、通用寄存器、特殊功能寄存器組和數據存儲器。微控制器從指令存儲器中讀取指令并執行,完成SFR的配置與更新、數據存儲器的訪問等任務。同時,微控制器將SFRINS發送到特殊功能寄存器組中,由SFR內部邏輯完成總線數據收發和部分寄存器值的更新。
RT_ACE包含四個RT_R模塊和一個RT_T模塊,RT_R模塊負責響應接收指令,RT_T模塊負責響應發送指令。RT_ACE模塊的功能框圖如圖3所示。
RT_T模塊包含微控制器、通用寄存器和指令存儲器。模塊中定義了T_DEV信號來選擇發送的RT設備,指向對應的SFR和數據存儲器。當接收到RT發送命令時,微控制器使用擴展指令選定發送RT,然后使用其SFR和數據存儲器完成發送操作;當接收到RT接收命令時,RT_T模塊不工作。
RT_R模塊包含微控制器、通用寄存器、指令存儲器、8組特殊功能寄存器和8組數據存儲器,每個RT_R模塊可以實現8個RT,4個RT_R模塊可以實現32個RT(僅出現在禁用廣播命令的情況下)。模塊中定義了CURRENT_DEV信號來選擇當前的設備,指向對應的SFR和數據存儲器。在接收到非廣播接收命令時,微控制器使用擴展指令選擇命令字指定的RT;在接收到廣播接收命令時,首先選擇第1個可用RT,在該RT處理完畢后,使用擴展指令選擇下一個可用的RT繼續處理,直到全部可用RT處理完畢。在接收到發送命令時,RT_R模塊不工作。
BM_ACE包含微控制器、指令存儲器、通用寄存器、特殊功能寄存器和數據存儲器。其運行機制類似于BC_ACE模塊,這里不再贅述。
BUS_INTF作為收發器,是各總線終端與總線之間的接口,用來完成Manchester碼的編解碼和碼字正確性檢測工作。它包含一個32×16 bit的發送緩存、一個編碼器、兩套解碼器和一個編解碼狀態監視器。發送緩存暫存各處理器請求發送的數據,編碼器完成Manchester碼的生成,兩套解碼器分別負責A/B通道的解碼,狀態監視器實現總線狀態的檢測和loopback(環回自測)功能。
CTRL_INTF實現了上位機和協議控制器之間的通信功能。上位機通過板上的USB協議處理芯片與CTRL_INTF模塊的通信來配置協議控制器中各個節點,并且可以在協議控制器工作過程中讀寫各節點的SFR和存儲器數據。
2.3軟件設計
軟件設計是本設計中較為重要的部分,它直接影響到功能的正確性和運行的實時性。設計中共有4段程序,分別是BC、RT_R、RT_T和BM的程序。出于效率的考慮,程序盡可能實現并行化操作,充分發揮MIMD的優勢,讓圖5仿真測試典型波形指令的每一個碼域都能在指令中充分應用,從而最高效地完成所需要的功能。表1給出了一段典型的程序,可以看出,一條指令中有多個域,可以分別實現不同的功能,共同完成RT處理接收命令的過程。
3仿真驗證與綜合
3.1仿真
采用VCS作為仿真工具進行仿真,為提高仿真效率,使用System Verilog搭建了測試平臺。測試平臺使用隨機種子帶約束地隨機產生一定數量的總線事務,根據事務內容,通過CTRL_INTF模塊來配置初始化各總線終端,完成總線系統的初始化,隨后啟動總線進入工作狀態。在總線事務啟動后,測試平臺的結果比較器開始監測總線事務,并使用內建mailbox對比DUT的結果和預期的結果,從而判斷各終端的功能是否正確[5]。圖4顯示了測試平臺的架構。
經過大量的測試驗證,結果表明設計滿足1553B總線標準的要求,能夠模擬整套1553B總線系統。
圖5顯示了仿真中BC到RT的廣播數據傳輸過程。BC運行指令將消息發送到總線上,RT協議處理器接收到命令后依次選擇各RT節點處理該消息。
3.2綜合
目標FPGA是Altera的EP3C80F474C8,這款FPGA存儲資源充裕但性能并不高。這樣選型主要是因為多節點協議處理器需要33×4K×16 bit的存儲資源(1個BC,31個RT,1個BM),而采用的多核MIMD架構對速度和邏輯資源的要求不高,因此出于成本方面的考慮,選擇了這樣一款器件[6]。設計使用的時鐘頻率為16 MHz,在Quartus II 13.0中綜合結果如圖6所示。
圖6綜合報告實驗表明,在該型號的FPGA上復制32份單節點協議處理器實現多節點處理器,所需的邏輯資源超出FPGA所能提供資源的一倍以上。從綜合報告中可以看出,采用多核MIMD系統大大降低了邏輯資源的占用,邏輯資源僅使用了可用資源的70%左右,在FPGA中仍有可觀的剩余邏輯資源。
4結論
研究提出了一種采用多核MIMD架構實現多節點1553B總線協議處理器的方法,功能符合1553B總線標準的要求,并特別注意了邏輯資源的節約與復用,使設計邏輯規模可以在單片FPGA中實現。在后續的工作中,將進一步優化設計,并開發測試板和PC上的測試應用軟件[7],使整個系統作為完整的產品提供給用戶使用。
參考文獻
[1] 董大偉,周宇江,郭楹. 軍用總線發展趨勢研究[J]. 電子技術應用,2015,41(7):7 10.
[2] Alta Data Technologies. Multi Channel 1553 Interface for PCI Systems[R]. 2011.
[3] Data Device Corporation. AceXtreme 1553/429 USB Avionics Device[R]. 2010.
[4] Data Device Corporation. ACE/MINI ACE Series BC/RT/MT Intergrated 1553 Terminal User’s Guide[R]. 2010.
[5] Data Device Corporation. MIL STD 1553 Designer’s Guide Sixth Edition[R]. 2003.
[6] 張春,麥宋平,趙益新. System Verilog驗證測試平臺編寫指南[M].北京:科學出版社, 2009.
[7] 黃正,王健軍,劉士全,嚴華鑫. 基于NIOS II的1553B總線測試系統設計[J]. 微型機與應用, 2015,34(18):98100.