在DSP處理器上并行實現ATR算法
在分布式多處理器并行系統中,多處理器有各自獨立的存儲器,多個處理器通過通信口相連構成分布式多處理器并行系統。分布式多處理器并行系統的加速比和處理器的數目呈線性關系,所以只要增加處理器的數目,分布式多處理器并行系統的處理能力就能夠成比例地增加。分布式多處理器比較適合于構成大規模并行系統。
目前,計算量過大仍然是制約許多有效的ATR算法實時實現的個主要因素。ATR算法在分布式多處理器并行系統上實時實現是一個很有潛力的研究領域,特別在地基和天基雷達信號處理系統中有廣闊的應用前景。分布式多處理器并行系統的連接方式有線形、樹形、星形、網孔和超立方體結構等。樹形和星形網絡的優點是網絡管理容易、數據通信進尋徑簡單;缺點是樹形網絡的根節點處理器和星形網絡的中央節點處理器的輸入/輸出吞吐量大,易造成通信瓶頸。所以樹形和星形網絡不適合ATR算法各個任務數據通信量較大的應用場合。
在分布式多處理器并行系統中并行實現ATR算法目前還處于研究的初始階段,在編寫并行算法程序應當重點考慮兩個方面:
(1)各處理器任務的均衡分配
在分布式多處理器并行系統中處理器的數目通常較多,只有合理地對眾多的處理器均衡地分配任務,才能最大地發揮并行系統的總體性能,提高并行系統的加速比。
(2)處理器節點間的高效通信
在分布式多處理器并行系統中數據通信都是點對點通信。即兩個相鄰的處理器之間通過通信口通信。因此需要合理安排各個處理器節點在網絡結構中的位置,盡可能地縮短處理器節點間的通信路徑長度,從而實現處理器節點間的高效數據通信。
3 在指令級并行DSP處理器上實現ATR算法
在單片DSP處理器內通過多個功能單元的指令級并行(ILP)實現ATR算法的并行化處理,目前適合ATR算法實時處理的指令級并行芯片是TI公司的TMS320C6x系列DSP。TMS320C6x系列DSP處理器是第一個使用超長指令字(VLIW)體系結構的數字信號處理芯片。下面以TMS320C62x定點系列DSP為例說明指令級并行的原理和ATR并行算法軟件開發方法。
3.1 VLIW體系結構
TMS320C62x的內核結構如圖1所示。內核中的8個功能單元可以完全并行運行,功能單元執行邏輯、位移、乘法、加法和數據尋址等操作。內核采用VLIW體系結構,單指令字長32位,取指令、指令分配和指令譯碼單元每周期可以從程序存儲器傳遞8條指令到功能單元。這8條指令組成一個指令包,總字長為256位。芯片內部設置了專門的指令分配模塊,可以將每個256位的指令分配到8個功能單元中,并由8個功能單元并行運行。TMS320C62x芯片的最高時鐘頻率可以達到200MHz。當8個功能單元同時運行時,該芯片的處理能力高達1600MIPS。
3.2 基于TMS320C62x的并行算法軟件開發方法
基于TMS320C62x的并行編譯系統支持C語言和匯編語言開發并行程序代碼。通常,開發ATR并行算法按照代碼開發流程的三個階段進行并行程序設計:第一階段是開發C代碼;第二階段是優化C代碼;第三階段是編寫線性匯編代碼。以上三個階段不是必須的,如果在某一階段已經實現了ATR算法的功能和性能要求,就不必進入下一階段。
(1)開發C代碼
開發C代碼需要考慮的要點包括:
①數據結構
TMS320C62x編譯器定義了各種數據結構的長度:字符型(char)為8位,短整型(short)為16位,整型(int)為32位,長整形(long)為40位,浮點型(float)為32位,雙精度浮點型(double)為64位。在編寫C代碼時應當遵循的規則是:避免在代碼中將int和long型作為同樣長度處理;對于定點乘法,應當盡可能使用short型數據;對循環計數器使用int或者無符號int類型,避免不必要的符號擴展。
②提高C代碼性能
應用調試器的Profile工具可以得到一個關于C代碼中各特定代碼段執行情況的統計表,也可以得到特定代碼段招待所用的CPU時鐘周期數。因此可以找出影響軟件程序總體性能的C代碼段加以改進,通常是循環代碼段影響軟件程序總體性能。
評論