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