梁之勇
(1.中國電子科技集團公司第三十八研究所,安徽合肥230088;2.數字陣列技術重點實驗室,安徽合肥230088;3.孔徑陣列與空間探測安徽省重點實驗室,安徽合肥230088)
ωK算法的主要流程包括二維傅里葉變換、參考函數相乘,距離頻域Stolt插值、二維傅里葉逆變換,Stolt插值完成了殘余距離徙動校正、殘余二次距離壓縮、殘余方位壓縮,這樣便實現了所有目標的聚焦。
Stolt插值是雙精度運算,同時隨著測繪帶變大,128K點甚至更大點數插值也越來越多。傳統單核DSP在片內內存、運算能力、數據吞吐等方面的能力不足問題也隨之出現。TI公司新推出的多核DSP TMS320C6678可以有效地解決Stolt插值的處理瓶頸。
設照射區某點目標到飛行航跡垂距為R x,則對回波信號進行兩維傅里葉變換后的回波相位[2]
可表示為

式中,v為平臺飛行速度,fc為雷達中心頻率,fr為距離向頻率,fa為方位向頻率,y為目標方位位置,c為光速,R0為雷達采集起始距離。
對式(1)進行參考距離函數補償,補償函數相位可表示為

補償后的信號為
半年末,我們對下半年的市場進行展望,發布了《逢八魔咒難逃 下半年如何應對》的封面文章。彼時我們認為,上半年尤其是二季度市場的暴跌情形,除了有國內去杠桿緊信用的負面因素在里面,更多是受中美貿易摩擦的影響,外患大于內憂的背景下,我們給出了“關注內需桃花源 現金流佳好種田”的觀點,并提出三個配置思路,一是規避中美貿易戰的不確定性,尋找內需板塊的確定性;二是選擇現金流良好的公司;三是關注海外資金配置A股的方向。這些方向上的主要標的集中在上證50中,而后者在三季度的表現為5.11%,顯著跑贏大盤。

對不同的fa,通過對數據進行Stolt插值,可將信號變換成關于f′r的線性函數,即

fr為距離向頻率向量,為非線性向量。f′r為插值后距離向頻率向量,為線性向量。兩者關系為

常規成像只需將式(4)作兩維逆傅里葉變換就可得到該目標的兩維脈沖壓縮響應。因此可以看出Stolt插值是ωK算法的核心。
隨著分辨率、作用距離、測繪帶寬等指標越來越高,系統計算量也越來越大,而Stolt插值為雙精度復雜運算,所需要的計算時間也大大增加。傳統的SAR成像處理器ADSPTS101、ADSPTS201等已經不能滿足系統實時性要求[3]。TI公司新推出的C6678,該芯片內部有8核,運算能力強,主要性能[4-5]如下:
1)C6678單片處理能力:內核主頻最高1.25 GHz,浮點運算能力達到160 GFlops;
2)內部存儲資源:單片C6678每核內置32KB L1P、32KB L1D、512KB L2,同時8個內核共享4MB L3SRAM;
3)外設接口:SRIO接口可以支持4個1X、2個2X、1個4X,每一個通道最高速率5 Gbit/s,PCIe接口有2個通道,每個通道最高速率支持5 Gbit/s;Hyper Link接口有4通道,支持的帶寬高達50 Gbit/s。
本文采用的基于C6678的通用信號處理硬件平臺如圖1所示。

圖1 TMS320C6678通用信號處理平臺
該信號處理平臺單板主要性能如下:
1)定點處理能力達到1280 GMACs、浮點處理能力最高640 GFlops;
2)單板外掛32GB DDR3;
3)SRIO:Switch實現4個6678的SRIO之間的交換。
在一個成像孔徑內距離向處理點數為Ran-Lenth,方位向處理點數為Azm Lenth。Stolt插值在距離向操作,同時方位向之間沒有耦合,因此4片C6678按照方位向平均分配任務,每片DSP的8核按照距離向分配任務,如圖2所示。具體如下:DSP0處理0~1/4Azm Lenth,DSP1處理1/4~1/2Azm Lenth,DSP2處理1/2~3/4Azm Lenth,DSP3處理3/4~1Azm Lenth。DSP片內8核按距離向任務分配如下:核0處理0~1/8Ran Lenth,核1處理1/8~2/8Ran Lenth,核2處理2/8~3/8Ran Lenth,核3處理3/8~4/8Ran Lenth,核4處理4/8~5/8Ran Lenth,核5處理5/8~6/8Ran Lenth,核6處理6/8~7/8Ran Lenth,核7處理7/8~1Ran Lenth[6]。通過上述任務分配實現了多核多DSP并行處理,極大地提高了系統實時性。

圖2 4 DSP任務分配
為了提高實時性,所有計算變量、緩沖均存放在片內RAM上,L3有4MB,空間分配如表1所示,從內存分配可以看出最大能支持128K復數點Stolt插值。

表1 L3內存分配
L2有512KB,主要存放插值緩沖區,及插值后頻率向量,由于L2是各核獨有的,因此每核只需要插值點數的1/8存儲空間,具體分配如表2所示。

表2 L2內存分配
按照任務分配,一條距離線的Stolt插值由8個核同時完成。插值流程是首先將輸出分成8段,計算每段輸出頻率范圍,為保證分段插值結果正確,輸入頻率范圍至少要等于輸出頻率范圍;然后根據輸入頻率范圍和輸入每點頻率計算各核插值起始點和插值結束點位置;最后將各核對應起始點和結束點適當擴大,輸入頻率范圍便大于輸出頻率范圍,以保證交界處插值結果正確性。8核Stolt插值計算流程如圖3所示。

圖3 8核Stolt插值流程

Stolt插值測試環境:DSP主頻1 GHz,DDR3時鐘700 MHz,距離向8 192點插值。表3為插值時間。從圖中可以看出8核并行插值運算時間需要31 795時鐘周期,取數據時間為11 612時鐘周期,存數據時間為11 620時鐘周期。沒有DMA CHAIN完成插值總時間為55 027時鐘周期。采用DMA CHAIN技術后時鐘周期為32 395時鐘周期,比插值計算時間略多,主要是因為DMA配置和啟動需要一些時鐘周期數。前者時間較長主要是因為取數、計算、存數整個流程是串行的,后者在采用DMA CHAIN技術后存取數和計算是并行的,時間性能提高了41.13%。因此DMA CHAIN技術有效地提高了插值的實時性。

圖4 DSP計算流程

表3 插值時間分析
在Stolt插值多核分段的具體實現中,相鄰分段之間如何處理,是一個需要特別關注的問題。正常情況下多核任務分配是將輸入、輸出平均分成8段進行插值,程序中距離向處理點數為8 192點,輸入頻率為0到8 191線性遞增,輸入幅值為對應頻率的一半,輸出頻率向量根據式(5)計算得到,這樣便可通過Stolt插值計算輸出的幅值。該情況下插值結果如圖5所示,可以看出部分插值結果有異常值。圖6為局部放大圖,從圖中可知第1024點插值結果為0,該點是核0和核1分段交界處。圖5中插值異常值均出現在核間交界處。原因是將輸入、輸出平均分8段來計算,輸入輸出處理的點數一樣,但是輸入和輸出每點頻率不一致導致輸入輸出頻率范圍不對應,導致各核交界處插值結果有誤。
本文采用的方法是將輸出分成8段,程序自動計算輸入范圍。插值結果如圖7所示,各核交界處的插值結果均已正確。

圖5 8核插值結果

圖6 插值結果局部圖

圖7 改進后8核插值結果
隨著SAR向大測繪帶和高分辨率發展,ωK成像算法核心Stolt插值對計算量和計算精度要求越來越高,傳統DSP面臨處理能力不足的問題。本文采用了 TI公司新推出的DSP TMS320C6678,該DSP內置8核,浮點運算能力達到160 GFlops。文中從任務分配、內存分配、程序實現三個方面論述了Stolt插值多核多DSP并行實現,同時采用DMA CHAIN技術使Stolt插值實時性得到提升,為解決SAR成像實時處理的瓶頸提供了一種可行的方案。
[1]劉燕,孫光才,邢孟道.大場景高分辨率星載聚束SAR修正ω-k算法[J].電子與信息學報,2011,33(9):2108-2113.
[2]CUMMING I G,WONG F H.合成孔徑雷達成像:算法與實現[M].洪文,胡東輝,譯.北京:電子工業出版社,2012:219-230.
[3]劉書明,羅勇江.ADSP TS20XS系列DSP原理與應用設計[M].北京:電子工業出版社,2007:1-50.
[4]郝朋朋,周煦林,唐藝菁,等.基于TMS320C6678多核處理器體系結構的研究[J].微電子學與計算機,2012,29(12):171-175.
[5]TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor[Z].Dallas,Texas:Texas Instruments,2015.
[6]夏際金,常越,梁之勇,等.多核DSP信號處理并行設計[J].雷達科學與技術,2013,11(6):617-620.