王亞莉,童衛(wèi)勇,呂衛(wèi)祥,姜小祥
(1.91404部隊(duì),河北 秦皇島 066001;2.中國(guó)船舶重工集團(tuán)公司第七二四研究所,南京211153)
基于PowerPC的主動(dòng)雷達(dá)信號(hào)處理軟件的設(shè)計(jì)與實(shí)現(xiàn)
王亞莉1,童衛(wèi)勇2,呂衛(wèi)祥2,姜小祥2
(1.91404部隊(duì),河北 秦皇島 066001;2.中國(guó)船舶重工集團(tuán)公司第七二四研究所,南京211153)
摘要:介紹了PowerPC處理器的主要特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了基于PowerPC平臺(tái)的主動(dòng)雷達(dá)信號(hào)處理算法軟件。通過(guò)引入局部性原理對(duì)PowerPC的存儲(chǔ)器山分析,改善了軟件的時(shí)間和空間局部性,優(yōu)化了軟件的性能,提高了軟件運(yùn)行的實(shí)時(shí)性。
關(guān)鍵詞:雷達(dá);信號(hào)處理;PowerPC8640D;局部性原理;存儲(chǔ)器山
0引言
近年來(lái),隨著電子技術(shù)迅猛發(fā)展,各種高性能器件如DSP、FPGA、CPU等的不斷涌現(xiàn)和更新?lián)Q代,使得雷達(dá)信號(hào)處理從專用硬件的開(kāi)發(fā)轉(zhuǎn)向基于通用平臺(tái)的軟件開(kāi)發(fā)。現(xiàn)代雷達(dá)的發(fā)展需要對(duì)高速海量的數(shù)據(jù)進(jìn)行實(shí)時(shí)的傳輸和處理,而串行RapidIO(SRIO)是當(dāng)前主流的數(shù)據(jù)傳輸方式。PowerPC處理器很好地提供了對(duì)SRIO的支持,同時(shí)其多核機(jī)制可以實(shí)現(xiàn)海量數(shù)據(jù)的并行快速處理。另一方面,VxWorks是應(yīng)用最為廣泛和可靠的實(shí)時(shí)操作系統(tǒng)。因此PowerPC處理器和VxWorks操作系統(tǒng)的搭配為雷達(dá)信號(hào)處理提供了很好的軟件化處理平臺(tái)。
本文將基于PowerPC8640D處理器設(shè)計(jì)實(shí)現(xiàn)主動(dòng)雷達(dá)的信號(hào)處理算法,并就8640D的存儲(chǔ)器山模型分析對(duì)算法軟件進(jìn)行優(yōu)化改進(jìn),從而實(shí)現(xiàn)對(duì)雷達(dá)回波信號(hào)的實(shí)時(shí)處理。
1PowerPC處理器的特點(diǎn)
FreeScale公司研發(fā)的PowerPC8640D/8641D處理器是目前最為先進(jìn)的處理器,其內(nèi)部集成兩個(gè)e600內(nèi)核。每個(gè)內(nèi)核的工作主頻最高可達(dá)1.5 GHz。內(nèi)核集成兩個(gè)32 KB一級(jí)緩存和一個(gè)1 MB的二級(jí)緩存。另外,e600內(nèi)核還具有強(qiáng)大運(yùn)算能力的AltiVec矢量處理引擎。e600通過(guò)MPX總線與系統(tǒng)總線進(jìn)行通信,其中高速千兆網(wǎng)接口、高速SerDes接口提供了對(duì)PCI-E和SRIO的訪問(wèn)支持,以獲取高速的數(shù)據(jù)傳輸能力、集成的雙內(nèi)存控制器可實(shí)現(xiàn)對(duì)內(nèi)存的低延遲、高帶寬訪問(wèn)等[1-2]。PowerPC8640D處理器內(nèi)核組成框圖如圖1所示。
圖1 PowerPC8640D處理器內(nèi)核組成框圖
作為嵌入式處理器的典型代表,PowerPC在雷達(dá)信號(hào)處理領(lǐng)域不僅提供了比Intel、AMD系列處理器更低的功耗以及對(duì)SRIO高速串行接口更好的支持,而且在算法編程方面給予了DSP和FPGA所不具有的靈活性,從而在節(jié)約了研發(fā)成本的同時(shí)縮短了研發(fā)周期、降低了軟件升級(jí)維護(hù)難度。此外,PowerPC處理器有著對(duì)實(shí)時(shí)操作系統(tǒng)VxWorks的強(qiáng)大兼容性。因此,在雷達(dá)這種強(qiáng)實(shí)時(shí)、高速數(shù)據(jù)率的系統(tǒng)中,PowerPC處理器具有更好的適應(yīng)性和應(yīng)用前景。
一個(gè)高性能的程序應(yīng)該具有良好的局部性。它傾向于引用鄰近于其最近引用過(guò)的數(shù)據(jù)項(xiàng),或者最近引用過(guò)的數(shù)據(jù)項(xiàng)本身。這種傾向性被稱為局部性原理[3]。局部性原理主要有兩種不同的形式:時(shí)間局部性和空間局部性。時(shí)間局部性是指在一定的時(shí)間內(nèi)重復(fù)訪問(wèn)同一個(gè)地址的次數(shù)越多程序的時(shí)間局部性越好??臻g局部性表現(xiàn)為如果程序兩次訪問(wèn)的地址越接近,則程序的空間局部性越好。局部性原理對(duì)硬件和軟件系統(tǒng)的設(shè)計(jì)和性能有著極大的影響。
計(jì)算機(jī)的存儲(chǔ)器系統(tǒng)通常設(shè)計(jì)成一個(gè)存儲(chǔ)器層次結(jié)構(gòu),從最高層的寄存器到高速緩存再到內(nèi)存以及最底層的硬盤。各層次存儲(chǔ)器的容量越來(lái)越大,訪問(wèn)速度越來(lái)越慢,成本越來(lái)越低。存儲(chǔ)器層次結(jié)構(gòu)的運(yùn)行策略就是盡量讓當(dāng)前被頻繁訪問(wèn)的存儲(chǔ)區(qū)和其臨近元素的內(nèi)容駐留在較高層存儲(chǔ)器,而把不常訪問(wèn)的存儲(chǔ)區(qū)的內(nèi)容置換到較低層存儲(chǔ)器。因此,一個(gè)具有良好的局部性的程序要盡可能地適應(yīng)存儲(chǔ)器層次結(jié)構(gòu),也就是盡可能地訪問(wèn)高層的存儲(chǔ)器,享受到最高的訪問(wèn)速率,從而提高程序運(yùn)行效率。
筆者通過(guò)編寫一個(gè)測(cè)試分析程序來(lái)研究存儲(chǔ)器層次結(jié)構(gòu)對(duì)程序的運(yùn)行效率的影響。測(cè)試程序以不同的步長(zhǎng)掃描固定長(zhǎng)度數(shù)組中的不同大小元素集合即工作集,從而測(cè)試數(shù)據(jù)的吞吐率,最后采用K次最優(yōu)測(cè)量方法得到最優(yōu)測(cè)試結(jié)果。測(cè)試函數(shù)中數(shù)據(jù)的大小和步長(zhǎng)控制產(chǎn)生讀序列的局部性程度。數(shù)據(jù)越小,得到的工作集越小,時(shí)間局部性越好。步長(zhǎng)的值越小,空間局部性越好。以不同的時(shí)間局部性(工作集大小)和空間局部性(訪問(wèn)步長(zhǎng))對(duì)存儲(chǔ)器進(jìn)行訪問(wèn),就能得到存儲(chǔ)器系統(tǒng)在不同的局部性下的性能(即訪問(wèn)速率),從而得到一個(gè)讀帶寬的時(shí)間局部性和空間局部性的二維函數(shù),即圖2所示PowerPC8640D的存儲(chǔ)器山模型。
圖2 PowerPC8640D存儲(chǔ)器山模型
存儲(chǔ)器山以工作集大小的變量為x軸,訪問(wèn)步長(zhǎng)的變量為y軸,存儲(chǔ)器訪問(wèn)速率為z軸。它看起來(lái)像一座有著山峰、山脊和山坡的小山,垂直于工作集軸的是3條山脊,分別對(duì)應(yīng)于工作集完全在L1高速緩存、L2高速緩存和主存內(nèi)的時(shí)間局部性區(qū)域。重點(diǎn)觀察L2和主存山脊。在L2和主存山脊上隨著步長(zhǎng)的增加有一個(gè)空間局部性的斜坡,此時(shí)意味著程序空間局部性的下降。顯然,盡可能地讓工作集位于高速緩存中,程序的運(yùn)行速度比工作集位于主存中優(yōu)勢(shì)明顯。然而,當(dāng)工作集太大不能全部工作在高速緩存時(shí),主存山脊的最高點(diǎn)也比它的最低點(diǎn)高了將近3倍。因此,不難發(fā)現(xiàn),當(dāng)程序的時(shí)間局部性很差時(shí),利用好空間局部性仍然可以補(bǔ)救時(shí)間局部性帶來(lái)的性能損失。
2信號(hào)處理軟件的實(shí)現(xiàn)
信號(hào)處理軟件運(yùn)行于一個(gè)PowerPC處理器,通過(guò)RapidIO協(xié)議接收雷達(dá)數(shù)據(jù),信號(hào)形式為每個(gè)脈組脈沖數(shù)為8個(gè)、重復(fù)周期為1000 μs的I、Q正交數(shù)據(jù)。算法流程如圖3所示。
圖3 主動(dòng)信號(hào)處理算法流程圖
(1) 脈沖壓縮
脈壓主要采用頻域卷積法,將脈壓系數(shù)和I、Q數(shù)據(jù)進(jìn)行FFT后再IFFT實(shí)現(xiàn)。
(2) MTI
由于一個(gè)脈組含8個(gè)脈沖組成,因此采用多階FIR高通濾波器來(lái)實(shí)現(xiàn)MTI,在設(shè)計(jì)好高通濾波器后,將脈組內(nèi)主觸發(fā)的I、Q數(shù)據(jù)與濾波器參數(shù)數(shù)組復(fù)數(shù)值進(jìn)行乘累加運(yùn)算即可完成動(dòng)目標(biāo)處理;
(3) 模值運(yùn)算
為了計(jì)算雷達(dá)回波的幅度值需要對(duì)I、Q數(shù)據(jù)進(jìn)行線性檢波的模值運(yùn)算,即求得I、Q信號(hào)的平方和后再進(jìn)行開(kāi)方運(yùn)算。
(4) 視頻積累
當(dāng)不選擇MTI處理時(shí),模值運(yùn)算后對(duì)脈組內(nèi)脈沖求和后對(duì)積累系數(shù)做除法得到的商即為視頻積累的結(jié)果。
(5) CFAR
常用的CFAR算法是兩側(cè)單元平均選大法恒虛警GOCA-CFAR,即分別計(jì)算主觸發(fā)保護(hù)單元左、后兩側(cè)的快門限和,再將兩側(cè)快門限和選大的結(jié)果取平均后與CFAR系數(shù)相乘,其結(jié)果與輸入脈沖的對(duì)應(yīng)距離單元的模值比較,若大于輸入脈沖值則輸出0,反之輸出值為脈沖當(dāng)前距離單元值。
雷達(dá)數(shù)據(jù)以脈組(一個(gè)脈組共8*1000=8000 μs)形式傳輸。當(dāng)算法選擇MTI處理時(shí),此時(shí)不需要視頻積累。經(jīng)耗時(shí)測(cè)試,平均每個(gè)脈組信號(hào)處理耗時(shí)3880 μs(<8000 μs),滿足系統(tǒng)實(shí)時(shí)性要求;而不選擇動(dòng)目標(biāo)處理時(shí)則需要視頻積累,此時(shí)平均每個(gè)脈組處理耗時(shí)6010 μs(<8000 μs),同樣滿足系統(tǒng)實(shí)時(shí)性要求??紤]到功能升級(jí)的需要,有必要對(duì)軟件進(jìn)行改進(jìn)和優(yōu)化。
3軟件的優(yōu)化
根據(jù)Amadahl定律,要提高整個(gè)算法的運(yùn)行速度,必須首先提高對(duì)運(yùn)行速度影響最大的那部分程序運(yùn)算速度[3]。由于本算法中MTI處理和視頻積累作為可選模塊,而CFAR則作為必選處理,同時(shí)經(jīng)測(cè)試CFAR執(zhí)行耗時(shí)668 μs,算法耗時(shí)占比較大,因此有著較大的優(yōu)化空間。本軟件中CFAR算法采用GOCA-CFAR[4],其基本原理如圖4所示。
圖4 兩側(cè)單元平均選大恒虛警率原理框圖
算法設(shè)定平均單元數(shù)為16個(gè),保護(hù)單元數(shù)為左右各1個(gè),平均單元和的計(jì)算可采用兩種方法:其一使用傳統(tǒng)方法逐個(gè)相加,其二使用滑窗相減技術(shù)。使用傳統(tǒng)方法求和,此方法簡(jiǎn)單直觀,但存在著冗余計(jì)算,其時(shí)間復(fù)雜度為O(mn),其中n為距離單元個(gè)數(shù),m為相加的平均單元數(shù);若采用滑窗相減方法,第i個(gè)單元zi的平均單元距離和s0,緊鄰后續(xù)單元zi+1的前后距離單元和可以用結(jié)果s0加上第i+16+1的距離單元值減去第i-16的距離單元值,后續(xù)單元的和以此類推。
相比傳統(tǒng)方法,滑窗相減法減少了計(jì)算量,其時(shí)間復(fù)雜度為O(n),運(yùn)行效率提高了m倍。但是,采用滑窗相減法需要一直計(jì)算左右單元和,程序的時(shí)間局部性,空間局部性并不理想,緩存的命中率比較低,仔細(xì)觀察不難發(fā)現(xiàn),第i個(gè)單元的右側(cè)和變成了其滑過(guò)16+1個(gè)單元后的第i+16+1個(gè)單元的左側(cè)和。因此,可以對(duì)滑窗相減法進(jìn)行改進(jìn),從第1個(gè)單元開(kāi)始,程序?qū)⒒胺ㄓ?jì)算過(guò)右側(cè)的和存儲(chǔ)到一個(gè)平均和數(shù)組中,當(dāng)計(jì)算到第i+16+1個(gè)單元的左側(cè)平均單元和即是平均和數(shù)組中的第1個(gè)值,而第i+16+1個(gè)單元右側(cè)的和則繼續(xù)用滑窗相減計(jì)算,并存到平均和數(shù)組中,供后面的計(jì)算左側(cè)平均單元和時(shí)直接調(diào)用。
相比滑窗相減法,改進(jìn)后的算法通過(guò)對(duì)平均和數(shù)組的調(diào)用即可完成相應(yīng)左側(cè)平均單元和的賦值,從而算法只需順序訪問(wèn)右側(cè)的平均單元即可完成右側(cè)和計(jì)算,并存入平均和數(shù)組中作為后續(xù)的左側(cè)平均和使用。顯然,改進(jìn)后滑窗相減法的工作集大小減半,不需頻繁訪問(wèn)左右兩側(cè)數(shù)據(jù),提高了緩存命中率,其時(shí)間局部性和空間局部性都得到了明顯的改善,運(yùn)行效率又提高了將近一倍。通過(guò)測(cè)試,優(yōu)化改進(jìn)后的CFAR算法耗時(shí)158 μs,相比優(yōu)化前提高了將近5倍,軟件的性能得到了顯著的提高。
4結(jié)束語(yǔ)
本文針對(duì)PowerPC處理器的主要特點(diǎn),實(shí)現(xiàn)了一個(gè)基于PowerPC平臺(tái)的主動(dòng)雷達(dá)信號(hào)處理典型流程的算法軟件設(shè)計(jì),并對(duì)PowerPC8640D存儲(chǔ)器山進(jìn)行建模分析。通過(guò)對(duì)算法的優(yōu)化,改善了程序運(yùn)行的局部性,提高了軟件運(yùn)行的效率,從而為后續(xù)在PowerPC平臺(tái)上進(jìn)行實(shí)時(shí)信號(hào)處理算法的優(yōu)化設(shè)計(jì)提供了新的思路。
參考文獻(xiàn):
[1]e600 PowerPC Core Reference Manual[Z].FreeScale Rev.0,2006.
[2]MPC8641 and MPC8641D Integrated Host Processor Hardware Specifications[Z].FreeScale,2008.
[3]Randal E Bryant,David O’Hallaron.深入理解計(jì)算機(jī)系統(tǒng)[M].北京:中國(guó)電力出版社,2004.
[4]Merrill I Skolnik.雷達(dá)手冊(cè)[M].北京:電子工業(yè)出版社,2010.
※※※※※※※※※※※※※※※※※※※※※※※※※
Design and implementation of signal processing software
based on PowerPC for active radar
WANG Ya-li1, TONG Wei-yong2, LU Wei-xiang2, JIANG Xiao-xiang2
(1.Unit 91404 of the PLA Navy, Qinhuangdao 066001, China;
2. No.724 Research Institute of CSIC, Nanjing 211153)
Abstract:The main characteristics of the PowerPC processor are introduced, and the signal processing algorithm software is designed and implemented based on the PowerPC platform for the active radar. The memory mountain of the PowerPC is analyzed by introducing the principle of locality, improving temporal and spatial locality and real-time operating capability of the software, and optimizing the software performance.
Keywords:radar; signal processing; PowerPC8640D; principle of locality; memory mountain
中圖分類號(hào):TN311.52
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1009-0401(2015)04-0064-04
作者簡(jiǎn)介:王亞莉(1973-),女,高級(jí)工程師,研究方向:雷達(dá)工程和雷達(dá)數(shù)據(jù)處理;童衛(wèi)勇(1981-),男,工程師,碩士,研究方向:數(shù)據(jù)處理;呂衛(wèi)祥(1975-),男,研究員,工程碩士,研究方向:雷達(dá)總體及信號(hào)處理;姜小祥(1984-),男,工程師,碩士,研究方向:雷達(dá)信號(hào)與數(shù)據(jù)處理。
收稿日期:2015-06-11;修回日期:2015-07-17