新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 在DSP處理器上并行實現(xiàn)ATR算法

在DSP處理器上并行實現(xiàn)ATR算法

作者: 時間:2010-01-08 來源:網(wǎng)絡(luò) 收藏

2 在分布式多系統(tǒng)上

在分布式多系統(tǒng)中,多有各自獨立的存儲器,多個處理器通過通信口相連構(gòu)成分布式多處理器系統(tǒng)。分布式多處理器并行系統(tǒng)的加速比和處理器的數(shù)目呈線性關(guān)系,所以只要增加處理器的數(shù)目,分布式多處理器并行系統(tǒng)的處理能力就能夠成比例地增加。分布式多處理器比較適合于構(gòu)成大規(guī)模并行系統(tǒng)。

目前,計算量過大仍然是制約許多有效的實時的個主要因素。在分布式多處理器并行系統(tǒng)上實時是一個很有潛力的研究領(lǐng)域,特別在地基和天基雷達信號處理系統(tǒng)中有廣闊的應(yīng)用前景。分布式多處理器并行系統(tǒng)的連接方式有線形、樹形、星形、網(wǎng)孔和超立方體結(jié)構(gòu)等。樹形和星形網(wǎng)絡(luò)的優(yōu)點是網(wǎng)絡(luò)管理容易、數(shù)據(jù)通信進尋徑簡單;缺點是樹形網(wǎng)絡(luò)的根節(jié)點處理器和星形網(wǎng)絡(luò)的中央節(jié)點處理器的輸入/輸出吞吐量大,易造成通信瓶頸。所以樹形和星形網(wǎng)絡(luò)不適合ATR算法各個任務(wù)數(shù)據(jù)通信量較大的應(yīng)用場合。

在分布式多處理器并行系統(tǒng)中并行實現(xiàn)ATR算法目前還處于研究的初始階段,在編寫并行算法程序應(yīng)當重點考慮兩個方面:

(1)各處理器任務(wù)的均衡分配

在分布式多處理器并行系統(tǒng)中處理器的數(shù)目通常較多,只有合理地對眾多的處理器均衡地分配任務(wù),才能最大地發(fā)揮并行系統(tǒng)的總體性能,提高并行系統(tǒng)的加速比。

(2)處理器節(jié)點間的高效通信

在分布式多處理器并行系統(tǒng)中數(shù)據(jù)通信都是點對點通信。即兩個相鄰的處理器之間通過通信口通信。因此需要合理安排各個處理器節(jié)點在網(wǎng)絡(luò)結(jié)構(gòu)中的位置,盡可能地縮短處理器節(jié)點間的通信路徑長度,從而實現(xiàn)處理器節(jié)點間的高效數(shù)據(jù)通信。

3 在指令級并行處理器上實現(xiàn)ATR算法

在單片處理器內(nèi)通過多個功能單元的指令級并行(ILP)實現(xiàn)ATR算法的并行化處理,目前適合ATR算法實時處理的指令級并行芯片是TI公司的TMS320C6x系列。TMS320C6x系列DSP處理器是第一個使用超長指令字(VLIW)體系結(jié)構(gòu)的數(shù)字信號處理芯片。下面以TMS320C62x定點系列DSP為例說明指令級并行的原理和ATR并行算法軟件開發(fā)方法。

3.1 VLIW體系結(jié)構(gòu)

TMS320C62x的內(nèi)核結(jié)構(gòu)如圖1所示。內(nèi)核中的8個功能單元可以完全并行運行,功能單元執(zhí)行邏輯、位移、乘法、加法和數(shù)據(jù)尋址等操作。內(nèi)核采用VLIW體系結(jié)構(gòu),單指令字長32位,取指令、指令分配和指令譯碼單元每周期可以從程序存儲器傳遞8條指令到功能單元。這8條指令組成一個指令包,總字長為256位。芯片內(nèi)部設(shè)置了專門的指令分配模塊,可以將每個256位的指令分配到8個功能單元中,并由8個功能單元并行運行。TMS320C62x芯片的最高時鐘頻率可以達到200MHz。當8個功能單元同時運行時,該芯片的處理能力高達1600MIPS。

3.2 基于TMS320C62x的并行算法軟件開發(fā)方法

基于TMS320C62x的并行編譯系統(tǒng)支持C語言和匯編語言開發(fā)并行程序代碼。通常,開發(fā)ATR并行算法按照代碼開發(fā)流程的三個階段進行并行程序設(shè)計:第一階段是開發(fā)C代碼;第二階段是優(yōu)化C代碼;第三階段是編寫線性匯編代碼。以上三個階段不是必須的,如果在某一階段已經(jīng)實現(xiàn)了ATR算法的功能和性能要求,就不必進入下一階段。

(1)開發(fā)C代碼

開發(fā)C代碼需要考慮的要點包括:

①數(shù)據(jù)結(jié)構(gòu)

TMS320C62x編譯器定義了各種數(shù)據(jù)結(jié)構(gòu)的長度:字符型(char)為8位,短整型(short)為16位,整型(int)為32位,長整形(long)為40位,浮點型(float)為32位,雙精度浮點型(double)為64位。在編寫C代碼時應(yīng)當遵循的規(guī)則是:避免在代碼中將int和long型作為同樣長度處理;對于定點乘法,應(yīng)當盡可能使用short型數(shù)據(jù);對循環(huán)計數(shù)器使用int或者無符號int類型,避免不必要的符號擴展。

②提高C代碼性能

應(yīng)用調(diào)試器的Profile工具可以得到一個關(guān)于C代碼中各特定代碼段執(zhí)行情況的統(tǒng)計表,也可以得到特定代碼段招待所用的CPU時鐘周期數(shù)。因此可以找出影響軟件程序總體性能的C代碼段加以改進,通常是循環(huán)代碼段影響軟件程序總體性能。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉