梁之勇
(1.中國(guó)電子科技集團(tuán)公司第三十八研究所,安徽合肥230088;2.數(shù)字陣列技術(shù)重點(diǎn)實(shí)驗(yàn)室,安徽合肥230088;3.孔徑陣列與空間探測(cè)安徽省重點(diǎn)實(shí)驗(yàn)室,安徽合肥230088)
ωK算法的主要流程包括二維傅里葉變換、參考函數(shù)相乘,距離頻域Stolt插值、二維傅里葉逆變換,Stolt插值完成了殘余距離徙動(dòng)校正、殘余二次距離壓縮、殘余方位壓縮,這樣便實(shí)現(xiàn)了所有目標(biāo)的聚焦。
Stolt插值是雙精度運(yùn)算,同時(shí)隨著測(cè)繪帶變大,128K點(diǎn)甚至更大點(diǎn)數(shù)插值也越來越多。傳統(tǒng)單核DSP在片內(nèi)內(nèi)存、運(yùn)算能力、數(shù)據(jù)吞吐等方面的能力不足問題也隨之出現(xiàn)。TI公司新推出的多核DSP TMS320C6678可以有效地解決Stolt插值的處理瓶頸。
設(shè)照射區(qū)某點(diǎn)目標(biāo)到飛行航跡垂距為R x,則對(duì)回波信號(hào)進(jìn)行兩維傅里葉變換后的回波相位[2]
可表示為
式中,v為平臺(tái)飛行速度,fc為雷達(dá)中心頻率,fr為距離向頻率,fa為方位向頻率,y為目標(biāo)方位位置,c為光速,R0為雷達(dá)采集起始距離。
對(duì)式(1)進(jìn)行參考距離函數(shù)補(bǔ)償,補(bǔ)償函數(shù)相位可表示為
補(bǔ)償后的信號(hào)為
半年末,我們對(duì)下半年的市場(chǎng)進(jìn)行展望,發(fā)布了《逢八魔咒難逃 下半年如何應(yīng)對(duì)》的封面文章。彼時(shí)我們認(rèn)為,上半年尤其是二季度市場(chǎng)的暴跌情形,除了有國(guó)內(nèi)去杠桿緊信用的負(fù)面因素在里面,更多是受中美貿(mào)易摩擦的影響,外患大于內(nèi)憂的背景下,我們給出了“關(guān)注內(nèi)需桃花源 現(xiàn)金流佳好種田”的觀點(diǎn),并提出三個(gè)配置思路,一是規(guī)避中美貿(mào)易戰(zhàn)的不確定性,尋找內(nèi)需板塊的確定性;二是選擇現(xiàn)金流良好的公司;三是關(guān)注海外資金配置A股的方向。這些方向上的主要標(biāo)的集中在上證50中,而后者在三季度的表現(xiàn)為5.11%,顯著跑贏大盤。
對(duì)不同的fa,通過對(duì)數(shù)據(jù)進(jìn)行Stolt插值,可將信號(hào)變換成關(guān)于f′r的線性函數(shù),即
fr為距離向頻率向量,為非線性向量。f′r為插值后距離向頻率向量,為線性向量。兩者關(guān)系為
常規(guī)成像只需將式(4)作兩維逆傅里葉變換就可得到該目標(biāo)的兩維脈沖壓縮響應(yīng)。因此可以看出Stolt插值是ωK算法的核心。
隨著分辨率、作用距離、測(cè)繪帶寬等指標(biāo)越來越高,系統(tǒng)計(jì)算量也越來越大,而Stolt插值為雙精度復(fù)雜運(yùn)算,所需要的計(jì)算時(shí)間也大大增加。傳統(tǒng)的SAR成像處理器ADSPTS101、ADSPTS201等已經(jīng)不能滿足系統(tǒng)實(shí)時(shí)性要求[3]。TI公司新推出的C6678,該芯片內(nèi)部有8核,運(yùn)算能力強(qiáng),主要性能[4-5]如下:
1)C6678單片處理能力:內(nèi)核主頻最高1.25 GHz,浮點(diǎn)運(yùn)算能力達(dá)到160 GFlops;
2)內(nèi)部存儲(chǔ)資源:?jiǎn)纹珻6678每核內(nèi)置32KB L1P、32KB L1D、512KB L2,同時(shí)8個(gè)內(nèi)核共享4MB L3SRAM;
3)外設(shè)接口:SRIO接口可以支持4個(gè)1X、2個(gè)2X、1個(gè)4X,每一個(gè)通道最高速率5 Gbit/s,PCIe接口有2個(gè)通道,每個(gè)通道最高速率支持5 Gbit/s;Hyper Link接口有4通道,支持的帶寬高達(dá)50 Gbit/s。
本文采用的基于C6678的通用信號(hào)處理硬件平臺(tái)如圖1所示。
圖1 TMS320C6678通用信號(hào)處理平臺(tái)
該信號(hào)處理平臺(tái)單板主要性能如下:
1)定點(diǎn)處理能力達(dá)到1280 GMACs、浮點(diǎn)處理能力最高640 GFlops;
2)單板外掛32GB DDR3;
3)SRIO:Switch實(shí)現(xiàn)4個(gè)6678的SRIO之間的交換。
在一個(gè)成像孔徑內(nèi)距離向處理點(diǎn)數(shù)為Ran-Lenth,方位向處理點(diǎn)數(shù)為Azm Lenth。Stolt插值在距離向操作,同時(shí)方位向之間沒有耦合,因此4片C6678按照方位向平均分配任務(wù),每片DSP的8核按照距離向分配任務(wù),如圖2所示。具體如下:DSP0處理0~1/4Azm Lenth,DSP1處理1/4~1/2Azm Lenth,DSP2處理1/2~3/4Azm Lenth,DSP3處理3/4~1Azm Lenth。DSP片內(nèi)8核按距離向任務(wù)分配如下:核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]。通過上述任務(wù)分配實(shí)現(xiàn)了多核多DSP并行處理,極大地提高了系統(tǒng)實(shí)時(shí)性。
圖2 4 DSP任務(wù)分配
為了提高實(shí)時(shí)性,所有計(jì)算變量、緩沖均存放在片內(nèi)RAM上,L3有4MB,空間分配如表1所示,從內(nèi)存分配可以看出最大能支持128K復(fù)數(shù)點(diǎn)Stolt插值。
表1 L3內(nèi)存分配
L2有512KB,主要存放插值緩沖區(qū),及插值后頻率向量,由于L2是各核獨(dú)有的,因此每核只需要插值點(diǎn)數(shù)的1/8存儲(chǔ)空間,具體分配如表2所示。
表2 L2內(nèi)存分配
按照任務(wù)分配,一條距離線的Stolt插值由8個(gè)核同時(shí)完成。插值流程是首先將輸出分成8段,計(jì)算每段輸出頻率范圍,為保證分段插值結(jié)果正確,輸入頻率范圍至少要等于輸出頻率范圍;然后根據(jù)輸入頻率范圍和輸入每點(diǎn)頻率計(jì)算各核插值起始點(diǎn)和插值結(jié)束點(diǎn)位置;最后將各核對(duì)應(yīng)起始點(diǎn)和結(jié)束點(diǎn)適當(dāng)擴(kuò)大,輸入頻率范圍便大于輸出頻率范圍,以保證交界處插值結(jié)果正確性。8核Stolt插值計(jì)算流程如圖3所示。
圖3 8核Stolt插值流程
Stolt插值測(cè)試環(huán)境:DSP主頻1 GHz,DDR3時(shí)鐘700 MHz,距離向8 192點(diǎn)插值。表3為插值時(shí)間。從圖中可以看出8核并行插值運(yùn)算時(shí)間需要31 795時(shí)鐘周期,取數(shù)據(jù)時(shí)間為11 612時(shí)鐘周期,存數(shù)據(jù)時(shí)間為11 620時(shí)鐘周期。沒有DMA CHAIN完成插值總時(shí)間為55 027時(shí)鐘周期。采用DMA CHAIN技術(shù)后時(shí)鐘周期為32 395時(shí)鐘周期,比插值計(jì)算時(shí)間略多,主要是因?yàn)镈MA配置和啟動(dòng)需要一些時(shí)鐘周期數(shù)。前者時(shí)間較長(zhǎng)主要是因?yàn)槿?shù)、計(jì)算、存數(shù)整個(gè)流程是串行的,后者在采用DMA CHAIN技術(shù)后存取數(shù)和計(jì)算是并行的,時(shí)間性能提高了41.13%。因此DMA CHAIN技術(shù)有效地提高了插值的實(shí)時(shí)性。
圖4 DSP計(jì)算流程
表3 插值時(shí)間分析
在Stolt插值多核分段的具體實(shí)現(xiàn)中,相鄰分段之間如何處理,是一個(gè)需要特別關(guān)注的問題。正常情況下多核任務(wù)分配是將輸入、輸出平均分成8段進(jìn)行插值,程序中距離向處理點(diǎn)數(shù)為8 192點(diǎn),輸入頻率為0到8 191線性遞增,輸入幅值為對(duì)應(yīng)頻率的一半,輸出頻率向量根據(jù)式(5)計(jì)算得到,這樣便可通過Stolt插值計(jì)算輸出的幅值。該情況下插值結(jié)果如圖5所示,可以看出部分插值結(jié)果有異常值。圖6為局部放大圖,從圖中可知第1024點(diǎn)插值結(jié)果為0,該點(diǎn)是核0和核1分段交界處。圖5中插值異常值均出現(xiàn)在核間交界處。原因是將輸入、輸出平均分8段來計(jì)算,輸入輸出處理的點(diǎn)數(shù)一樣,但是輸入和輸出每點(diǎn)頻率不一致導(dǎo)致輸入輸出頻率范圍不對(duì)應(yīng),導(dǎo)致各核交界處插值結(jié)果有誤。
本文采用的方法是將輸出分成8段,程序自動(dòng)計(jì)算輸入范圍。插值結(jié)果如圖7所示,各核交界處的插值結(jié)果均已正確。
圖5 8核插值結(jié)果
圖6 插值結(jié)果局部圖
圖7 改進(jìn)后8核插值結(jié)果
隨著SAR向大測(cè)繪帶和高分辨率發(fā)展,ωK成像算法核心Stolt插值對(duì)計(jì)算量和計(jì)算精度要求越來越高,傳統(tǒng)DSP面臨處理能力不足的問題。本文采用了 TI公司新推出的DSP TMS320C6678,該DSP內(nèi)置8核,浮點(diǎn)運(yùn)算能力達(dá)到160 GFlops。文中從任務(wù)分配、內(nèi)存分配、程序?qū)崿F(xiàn)三個(gè)方面論述了Stolt插值多核多DSP并行實(shí)現(xiàn),同時(shí)采用DMA CHAIN技術(shù)使Stolt插值實(shí)時(shí)性得到提升,為解決SAR成像實(shí)時(shí)處理的瓶頸提供了一種可行的方案。
[1]劉燕,孫光才,邢孟道.大場(chǎng)景高分辨率星載聚束SAR修正ω-k算法[J].電子與信息學(xué)報(bào),2011,33(9):2108-2113.
[2]CUMMING I G,WONG F H.合成孔徑雷達(dá)成像:算法與實(shí)現(xiàn)[M].洪文,胡東輝,譯.北京:電子工業(yè)出版社,2012:219-230.
[3]劉書明,羅勇江.ADSP TS20XS系列DSP原理與應(yīng)用設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007:1-50.
[4]郝朋朋,周煦林,唐藝菁,等.基于TMS320C6678多核處理器體系結(jié)構(gòu)的研究[J].微電子學(xué)與計(jì)算機(jī),2012,29(12):171-175.
[5]TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor[Z].Dallas,Texas:Texas Instruments,2015.
[6]夏際金,常越,梁之勇,等.多核DSP信號(hào)處理并行設(shè)計(jì)[J].雷達(dá)科學(xué)與技術(shù),2013,11(6):617-620.