夏際金,崔留爭
(1.中國電子科技集團公司第三十八研究所,安徽合肥230088;2.數字陣列技術重點實驗室,安徽合肥230088;3.智能情報處理重點實驗室,安徽合肥230088)
合成孔徑雷達(Synthetic Aperture Radar,SAR)是一種高分辨率的成像雷達,通過雷達在飛行載體上的運動形成虛擬等效長天線,獲得高方位分辨率的雷達圖像。距離多普勒成像,通過對接收的二維信號在距離和方位分別進行線性調頻信號的匹配濾波,就可實現對場景的二維成像。該算法通常應用于快速實現成像功能,是一種經典的SAR處理方法。
為了提高信號處理的能力,成像軟件采用DSP處理器實現。隨著信號處理需求的不斷發展,信號處理器也逐步由單核向多處理器、多核方向發展。典型的處理如TigerSharc系列采用緊耦合并行處理的能力,TI推出的Keystone架構的多核DSP片內集成多個處理內核[1],國產BW100處理器采用多片并行處理架構[2]。
對于SAR處理需要很強的處理性能,同時對于處理器存儲容量、存儲器讀寫帶寬、外部接口帶寬等要求較高。通過多核與多線程設計、任務并行設計、計算傳輸平衡等的設計可以提高SAR處理的綜合性能。
TMS320C6678處理器采用Keystone架構,具有8個TMS320C66x內核。每個核內部有32 KB的L1程序緩存、32 KB的L1數據緩存和512 KB的L2緩存。處理器內部有4 MB多核共享存儲器(Multicore Shared Memory,MSM),處理器外部可掛DDR3直接訪問空間2 GB。外部存儲器訪問可以采用直接核訪問的方式和EDMA的方式傳輸。內核工作主頻為1.25 GHz時理論上具有160 GFLOP和320 GMAC的處理性能。
距離多普勒算法是比較成熟的合成孔徑算法,采用頻域矯正距離走動的距離多普勒算法是實現快速成像的有效方法。其算法原理[3]如式(1)所示:

采用多核DSP實現的流程如圖1所示。接收回波后進行距離向FFT,和距離向匹配函數相乘后執行距離向IFFT實現距離脈壓;距離脈壓后,截取有效長度后,將一維距離像數據轉到頻域。在完成一個方位場景的收數后,估計出場景的FDC并在距離頻域完成距離走動補償,之后進行距離IFFT得到一維距離像。采用最大對比度的方法進行多普勒參數估計,得到較為精確的方位匹配函數,從而實現方位脈壓。兩維脈壓后已經得到了幅度圖像,通過量化就得到了場景圖像。

圖1 距離多普勒算法流程圖
對于并行任務分配,典型的是數據并行和任務并行[4]。數據并行是指多個線程對不同的數據執行相同的操作。可以通過主從方式實現數據并行,非常適合應用于很多相互無關的小線程處理。
任務并行是指各線程對相同的數據執行不同的操作。采用流水方式實現,最大的挑戰是將復雜任務分解到每個核,以及需要非常大的數據通信帶寬以滿足核間的數據傳輸。
對于距離多普勒成像方法是分別按照距離線和方位線進行處理,任務組織形式為Nr×Na的復數矩陣。處理距離線時,需要處理Na條Nr點的運算;處理方位線時,需要處理Nr條Na點的運算。每個基本處理運算為一條線,任務分解適合采用數據并行的方式。
距離多普勒算法在多核中設計如圖2所示,通過并行計算、同步等方式實現任務到多核的設計實現。其中典型的兩個過程距離脈壓和方位脈壓,距離脈壓采用8核虛擬成一個處理節點共同處理;方位脈壓采用每個核獨立完成子任務的方式實現。
由于合成孔徑成像采用的是脈沖式收發數據。在每個收發數據的重復周期內完成收數據,收完數據后空閑的時間較長。可以利用收數空閑的時間完成距離脈壓,實現收數同時脈壓。采用收數的同時進行脈壓處理,提高了處理效率。對于16K點以下的處理可以通過8核流水的方式實現多DSP并行,也可以采用8核共同計算大點數FFT的方式實現并行計算。通常脈壓的點數較大,采用8核共同計算大點數FFT的方式適合收數同時脈壓。

圖2 距離多普勒算法多核設計實現
脈壓的運算核心算法就是FFT、匹配函數相乘及IFFT三步操作。
IFFT可以通過算法轉換為FFT運算和共軛。因而8核同時脈壓的核心算法就可以轉換為FFT和復數相乘。
對大點數N,N可以分解為N=N1?N2通過時域采樣,DFT可以被公式化[5]為

通過算法分解,將大點數FFT分成N1?N2的二維小點數運算。第一步計算N2個N1點的FFT,第二步乘上交叉旋轉因子,第三步計算N1個N2點的FFT,這樣就實現大點數FFT分解成小點數計算。
點數為N的復數相乘運算通過將長度分成8段就可以將任務分解到8核處理,每個核處理N/8長度的復乘,合在一起就完成了一條距離線的復乘。需要注意的是,對于多核原始數據放在MSM中的話,直接運算需要使每段的長度向上以CACHE LINE為單位對齊,避免多核更新同一條CACHE LINE而導致數據一致性錯誤。
對于小點數運算如方位脈壓(點數<16 384)運算各個處理過程粒度較小、相對獨立,可以直接分配到每個核處理。這樣可以采用流水的方式將任務分割成每個核能直接處理的力度完成多核心任務的分配。
對于小粒度的運算如方位脈壓,待處理的任務數據放在DDR3中。如圖3所示,第一層次任務分解粒度較大,可以根據核號分解為任務0到任務7。該級任務分解實現了任務對每個核的分解。

圖3 方位脈壓任務分配圖
為了減少8核對多核共享存儲器訪問的沖突、提升處理的速度,以及實現處理和計算并行,將放在多核共享存儲器中的任務進一步分解。第二級任務分解將任務i分解為任務i0,i1到任務i m,每個子任務能夠放在L2緩存計算。其中m的范圍為0,1,…,NumOf Task PerCore-1,NumOf Task-PerCore為每個核的任務數。
對于方位脈壓計算第一級任務分配為每個核處理Nr/8條方位線的脈壓,Num OfTask PerCore=Nr/8。第二級任務分解的粒度為每次處理一條方位線的方位線脈壓。
在距離多普勒成像中,典型的運算為脈壓運算。在收數脈壓階段采用大點數FFT實現脈壓,在方位處理時采用小點數運算,表1給出了大點數脈壓測試情況。測試平臺為TMDSEVM6678LE平臺,該平臺性能指標為:處理器主頻1 GHz、DDR3主頻為1 333 MHz。

表1 8核大點數脈壓性能
表1中描述了8核協同處理不同點數的脈壓時間,脈壓包含FFT計算、復乘運算和IFFT運算。大點數FFT的運算按照式(2)的分解方法分配到8核協同計算。
大點數IFFT運算轉化為FFT運算過程中,輸入數據共軛、FFT之后數據共軛再除以N在每個核的運算中完成、不必整條線處理完FFT前后對整條線處理,提高了運算性能。
文獻[6]基于TS201對大點數FFT進行了Cache優化,在主頻600 MHz的情況下得到了優于其他方法的大點數FFT性能。表2為文獻[6]基于TS201優化后大點數FFT和C6678大點數FFT處理性能對比。

表2 TS201和C6678大點數FFT對比
通過對比發現,作大點數FFT時采用C6678比TS201處理性能有很大的提高。隨著處理時點數越大,C6678相對TS201的性能就越高。在點數較少時每個核計算的時間相對較短,多核對共享數據的訪問沖突幾率增加,數據通信對處理性能影響較大;隨著點數增加,每個核計算時間增加,對共享數據的訪問可以在計算同時啟動DMA從而使處理性能提升。為了提高效率,在作小于16 384點FFT時建議采用直接將小點數FFT運算分配到多個核分別計算的方法而不是多核計算一個FFT。
圖4為采用多核設計距離多普勒成像得到的成像結果。通過多種并行設計方式使多核計算均衡,處理器的計算和傳輸達到平衡,從而使距離多普勒算法在多核處理器中達到更高的處理性能。

圖4 距離多普勒成像結果
距離多普勒算法是合成孔徑雷達的一種經典處理方法。本文介紹了頻域矯正距離走動的距離多普勒算法在多核處理器C6678上的實現,采用數據并行的方式設計并行框架。采用收數同時處理脈壓、8核共同處理大點數,以及小任務8核單獨并行運算等多種并行設計方式,提高了處理效率。
針對成像運算量較大的距離脈壓和方位脈壓,分別采用大點數FFT和小點數FFT的方式實現。就大點數FFT的處理性能問題進行了對比分析,對基于TS201進行Cache優化的方法和采用C6678多核DSP并行處理的方法進行比較,在處理65 536點時后者處理性能為前者的7.401倍。
[1]郝朋朋,周煦林,唐藝菁,等.基于TMS320C6678多核處理器體系結構的研究[J].微電子學與計算機,2012,29(12):171-175.
[2]史鴻聲,穆文爭,劉麗.基于“魂芯一號”的雷達信號處理機設計[J].雷達科學與技術,2012,10(2):161-164.SHI Hongsheng,MU Wenzheng,LIU Li.Design of Radar Signal Processor Based on Hun Xin-1 Chip[J].Radar Science and Technology,2012,10(2):161-164.(in Chinese)
[3]保錚,邢孟道,王彤.雷達成像技術[M].北京:電子工業出版社,2005:76-79.
[4]GOVE D.多核應用編程實戰[M].郭晴霞,譯.北京:人民郵電出版社,2013:3-23.
[5]夏際金,丁泉,王蓉.多級并行的多核DSP軟件設計[J].雷達科學與技術,2014,12(4):368-372.XIA Jijin,DING Quan,WANG Rong.Multilevel Parallel Software Design Based on Multicore DSP[J].Radar Science and Technology,2014,12(4):368-372.(in Chinese)
[6]馬瀟,高立寧,劉騰飛,等.基于Cache優化的大點數FFT在TS201上的實現[J].電子與信息學報,2013,35(7):1774-1778.MA Xiao,GAO Lining,LIU Tengfei,et al.Cache-Optimized Implementation of Long Sequences FFT on TS201[J].Journal of Electronics&Information Technology,2013,35(7):1774-1778.(in Chinese)