在DSP處理器上并行實現ATR算法
自動目標識別(ATR)算法通常包括自動地對目標進行檢測、跟蹤、識別和選擇攻擊點等算法。戰(zhàn)場環(huán)境的復雜性和目標類型的不斷增長使ATR算法的運算量越來越大,因此ATR算法對微處理器的處理能力提出了更高的要求。由于通用數字信號處理芯片能夠通過編程實現各種復雜的運算,處理精度高,具有較大的靈活性,而且尺寸小、功耗低、速度快,所以一般選擇DSP芯片作為微處理器來實現ATR算法的工程化和實用化。
本文引用地址:http://butianyuan.cn/article/152150.htm為了保證在DSP處理器上實時地實現ATR算法,用算法并行化技術。算法并行化處理的三要素是:①并行體系結構;②并行軟件系統(tǒng);③并行算法。并行體系結構是算法并行化的硬件基礎,并行算法都是針對特定的并行體系結構開發(fā)的并行程序。根據DSP處理器的數目,ATR算法的并行實現可以分為處理器間并行和處理器內并行。處理器間并行是指多個DSP處理器以某種方式連接起來的多處理器并行系統(tǒng),ATR算法在多個處理器上并行招待。根據處理器使用存儲器的情況,多處理器并行系統(tǒng)又可分為共享存儲器多處理器并行系統(tǒng)和分布式多處理器并行系統(tǒng)。處理器內并行是指在單個DSP處理器內通過多個功能單元的指令級并行(ILP)來實現ATR算法的并行化。本文分別對在共享存儲器多處理器并行系統(tǒng)、分布式多處理器并行系統(tǒng)和指令級并行DSP處理器上并行實現ATR算法進行了探討。
1 在共享存儲器多處理并行系統(tǒng)上實現ATR算法
在共享存儲器多處理器并行系統(tǒng)中,各個處理器通過共享總線對所有的存儲器進行操作,實現各個處理器之間的數據通信。而在任一時刻,只允許一個處理器對共享總線進行操作。所以處理器對存儲器進行讀/寫操作時就必須先獲得對共享總線的控制權,這通過總線仲裁電路實現。然而,由于所有的處理器只能通過一條共享總線對存儲器進行訪問,這在處理器數目比較多或者處理器之間頻繁交換數據的情況下容易引起總線沖突和等待而降低整個并行系統(tǒng)的運行速度。共享存儲器多處理器并行系統(tǒng)的優(yōu)點是結構簡單,當處理器的數目較少時,可以達到較高的加速比。
ADSP2106x處理器支持最為常用的共享存儲器多處理器并行系統(tǒng),組成多處理器系統(tǒng)的每一片ADSP2106x的片內存儲器統(tǒng)一編址,任一ADSP2106x可以訪問其它任何一片ADSP2106x的片內存儲器。由于片內SRAM為雙口存儲器,因而這種訪問并不中斷被訪問處理器的正常工作。每個處理器片內SRAM既是該處理器的局部存儲器,又是共享存儲器的部分。在不增加輔助電容的情況下,通過外部總線接口直接相連的處理器數量最多為6個。由于每個處理器的工作程序放在其片內的雙口SRAM中,因此各個處理器可以實現并行處理,這是ADSP2106x的存儲器結構所決定的。
ATR算法在共享存儲器多處理器并行系統(tǒng)中實現時,在編寫并行算法程序方面應當重點考慮的問題包括:
(1)均衡地把任務分配給各個處理器
ATR算法在共享存儲器多處理器并行系統(tǒng)中實現任務級并行,因此必須把ATR算法劃分為計算量均衡的多個任務,把各個任務分配給多個處理器,才能發(fā)揮多處理器并行系統(tǒng)的最大并行效率。
(2)盡量減少多處理器之間數據通信
由于多處理器只能通過一條共享總線對存儲器進行訪問,這在多處理器之間頻繁交換數據的情況下容易引起總線競爭而降低整個并行系統(tǒng)的運行速度。
(3)利用單個處理器的并行編程特性
充分應用單個處理器的并行編程特性,有利于縮短各個處理器上任務的運行時間。例如,ADSP2106x的32位浮點運算單元包含一個乘法器、一個加法器和移位邏輯電路,它們并行工作;比特倒轉尋址在傅立葉變換運算時非常有用;循環(huán)尋址在作卷積、數字濾波運算時經常用到等。
評論