李 飛 宋 慧 徐敏超
(武漢濱湖電子有限責(zé)任公司 武漢 430205)
對(duì)于高速的雷達(dá)實(shí)時(shí)信號(hào)處理而言,僅靠單處理機(jī)系統(tǒng)已經(jīng)很難達(dá)到理想的計(jì)算速度,必須通過并行處理技術(shù)來實(shí)現(xiàn)。尤其是對(duì)于如今功能強(qiáng)大的信號(hào)處理系統(tǒng),其信號(hào)處理方式及其結(jié)構(gòu)都比較復(fù)雜,系統(tǒng)對(duì)實(shí)時(shí)性、運(yùn)算精度、數(shù)據(jù)吞吐量和負(fù)載均衡提出了更高要求,因此使用具有每秒幾十億甚至幾百億次運(yùn)算速度的大規(guī)模實(shí)時(shí)并行處理系統(tǒng)勢(shì)在必行[1]。
雷達(dá)信號(hào)處理就是典型的實(shí)時(shí)信號(hào)處理,其信號(hào)數(shù)據(jù)具有連續(xù)性、吞吐量大以及快速性的特征,隨著多核處理器的發(fā)展以及實(shí)時(shí)操作系統(tǒng)的不斷優(yōu)化,使得多核框架多線程并行運(yùn)算下的實(shí)時(shí)信號(hào)處理具有很高的性能[2]。VPX服務(wù)器是將多個(gè)高性能的多核處理器通過高速傳輸總線互聯(lián)構(gòu)成大規(guī)模的嵌入式并行處理機(jī),具有強(qiáng)大的計(jì)算能力和大容量高速內(nèi)存,同時(shí)具有Serial RapidIO(SRIO)、萬兆以太網(wǎng)等多種高速數(shù)據(jù)接口,能夠滿足雷達(dá)信號(hào)處理對(duì)運(yùn)算量、存儲(chǔ)量及吞吐量的要求,在VPX服務(wù)器下進(jìn)行并行實(shí)時(shí)信號(hào)處理系統(tǒng)的研究,具有重要的研究意義與價(jià)值[3]。
基于VPX架構(gòu),將多個(gè)高性能的多核處理器通過高速傳輸總線互聯(lián)構(gòu)成大規(guī)模的嵌入式并行處理機(jī),能夠大大提升系統(tǒng)的處理性能,其高速的處理能力,以及特殊考慮的加固方法,可很好的滿足雷達(dá)信號(hào)處理系統(tǒng)的需求。另外,考慮雷達(dá)系統(tǒng)標(biāo)準(zhǔn)化、模塊化、可擴(kuò)展的發(fā)展潮流,基于標(biāo)準(zhǔn)的VPX硬件平臺(tái),結(jié)合雷達(dá)信號(hào)處理系統(tǒng)的特點(diǎn)及需求構(gòu)建標(biāo)準(zhǔn)化、通用化、系統(tǒng)規(guī)??蓴U(kuò)放的嵌入式并行處理系統(tǒng)成為提高雷達(dá)系統(tǒng)性能的關(guān)鍵,能夠滿足雷達(dá)對(duì)系統(tǒng)功能、系統(tǒng)靈活性、系統(tǒng)可靠性以及系統(tǒng)開發(fā)時(shí)間周期等各方面的需求。
該服務(wù)器的內(nèi)部布局如圖1所示,支持12插槽+雙電源的VPX系統(tǒng),計(jì)算模塊、交換模塊和交換后插模塊采用熱備份設(shè)計(jì),其中計(jì)算模塊支持多種備份模式,交換模塊和交換后插模塊整體支持1+1備份,多種備份模式的設(shè)計(jì),方便使用者根據(jù)環(huán)境需要進(jìn)行剪裁和靈活配置,具有廣泛的使用性;服務(wù)器將交換單元和機(jī)箱管理單元集成在交換模塊上,減少了整機(jī)板卡數(shù)量,大大縮小結(jié)構(gòu)尺寸;服務(wù)器支持遠(yuǎn)程媒體重定向和遠(yuǎn)程管理功能,通過網(wǎng)絡(luò)可在遠(yuǎn)端實(shí)時(shí)操作各計(jì)算模塊單元,監(jiān)控服務(wù)器板卡電壓、溫度等情況,根據(jù)需要開關(guān)機(jī)等操作,減少對(duì)操作空間的局限。
圖1 刀片式加固服務(wù)器內(nèi)部布局圖
雷達(dá)數(shù)據(jù)由交換模塊分發(fā)給各個(gè)計(jì)算模塊進(jìn)行信息處理,數(shù)據(jù)交換支持20G的SRIO交換和40G網(wǎng)絡(luò)交換,其數(shù)據(jù)業(yè)務(wù)原理框圖如2所示。當(dāng)數(shù)據(jù)從自定義光協(xié)議接口進(jìn)入服務(wù)器,數(shù)據(jù)首先經(jīng)數(shù)據(jù)接口模塊解碼并打包成SRIO數(shù)據(jù)幀,預(yù)處理后發(fā)送到交換模塊中的SRIO交換芯片,SRIO交換芯片根據(jù)預(yù)先配置好的分發(fā)策略將數(shù)據(jù)發(fā)送到各個(gè)計(jì)算模塊進(jìn)行計(jì)算和處理。通過配置分發(fā)策略,各個(gè)計(jì)算模塊可以協(xié)同或者獨(dú)立處理同一業(yè)務(wù)標(biāo)識(shí)的數(shù)據(jù),增加了數(shù)據(jù)處理的靈活性。40G以太網(wǎng)用于實(shí)現(xiàn)計(jì)算模塊之間的數(shù)據(jù)交互和信號(hào)處理系統(tǒng)與數(shù)據(jù)處理系統(tǒng)之間的數(shù)據(jù)交互,而且以太網(wǎng)編程易實(shí)現(xiàn)可靈活配置,并且可以遵循OpenDDS規(guī)范,方便基于以太網(wǎng)開發(fā)通信中間件。
圖2 刀片式加固服務(wù)器數(shù)據(jù)業(yè)務(wù)原理框圖
雷達(dá)信號(hào)處理系統(tǒng)主要功能是通過光纖接收數(shù)字接收機(jī)下行的實(shí)時(shí)數(shù)據(jù),進(jìn)行脈沖壓縮、副瓣對(duì)消、動(dòng)目標(biāo)檢測(cè)、雜波圖處理、恒虛警檢測(cè)、干擾分析等處理后,將處理結(jié)果送至數(shù)據(jù)處理和終端顯示[4]。
根據(jù)信號(hào)處理流程和實(shí)時(shí)性的要求,把信號(hào)處理系統(tǒng)按照以下準(zhǔn)則劃分為多個(gè)標(biāo)準(zhǔn)模塊。首先,根據(jù)上一章介紹的服務(wù)器的對(duì)外接口,由于SRIO的實(shí)時(shí)性比40G以太網(wǎng)高,使用SRIO傳輸數(shù)字接收機(jī)下行的實(shí)時(shí)數(shù)據(jù),同時(shí)40G以太網(wǎng)的帶寬比SRIO大,并且網(wǎng)絡(luò)編程簡(jiǎn)單易實(shí)現(xiàn),用于計(jì)算模塊之間數(shù)據(jù)交互和信號(hào)處理系統(tǒng)與數(shù)據(jù)處理系統(tǒng)之間的數(shù)據(jù)交互。
然后,測(cè)試服務(wù)器計(jì)算模塊的CPU計(jì)算性能,計(jì)算模塊采用Intel Xeon E5-2648L v4處理器(14核心,主頻1.8GHz),浮點(diǎn)理論峰值計(jì)算能力403GFLOPs,使用單精度FFT測(cè)試該CPU的單核心計(jì)算性能,測(cè)試結(jié)果見表1所示。
表1 單核心FFT性能測(cè)試
FFT點(diǎn)數(shù)綁定單核心計(jì)算結(jié)果(ms)10240.00320480.00640960.01181920.023163840.047327680.096
最后考慮信號(hào)處理各個(gè)流程之間的并行性,將信號(hào)處理系統(tǒng)大致按功能分割為各個(gè)功能模塊:數(shù)據(jù)接收模塊、脈沖壓縮模塊、副瓣對(duì)消模塊、動(dòng)目標(biāo)檢測(cè)模塊、雜波圖模塊、恒虛警模塊、干擾分析、數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)交互模塊等。
數(shù)據(jù)接收模塊負(fù)責(zé)把數(shù)字接收機(jī)下行的實(shí)時(shí)數(shù)據(jù)傳輸?shù)椒?wù)器,即把自定義協(xié)議的光纖數(shù)據(jù)轉(zhuǎn)換為SRIO數(shù)據(jù)包組播給各個(gè)計(jì)算模塊,其中最大支持4路4.5G光纖。在上一節(jié)中的圖2數(shù)據(jù)業(yè)務(wù)原理框圖,數(shù)據(jù)接口模塊中的FPGA把自定義光纖數(shù)據(jù)轉(zhuǎn)換為SRIO數(shù)據(jù)包,并對(duì)多路光纖數(shù)據(jù)進(jìn)行同步,通過交換模塊廣播到各個(gè)計(jì)算模塊,計(jì)算模塊上使用DMA設(shè)計(jì)一個(gè)環(huán)形緩存區(qū),緩存SRIO數(shù)據(jù)包,再由應(yīng)用程序循環(huán)讀取SRIO數(shù)據(jù)包。
數(shù)據(jù)交互模塊負(fù)責(zé)計(jì)算模塊之間經(jīng)過交換模塊1使用40G以太網(wǎng)進(jìn)行數(shù)據(jù)交互,基于OpenDDS設(shè)計(jì)通信中間件,如圖3通信中間件原理示意圖所示,通信中間件是一個(gè)基于分布式系統(tǒng)的網(wǎng)絡(luò)環(huán)境中的復(fù)雜需求設(shè)計(jì)出來的一個(gè)通信方案以及相關(guān)的實(shí)現(xiàn),通訊中間件具備DDS數(shù)據(jù)收發(fā)功能,脫離地址的數(shù)據(jù),通訊無中心節(jié)點(diǎn)的數(shù)據(jù)通訊,提供可靠持久的通訊能力,支持QoS等功能。
圖3 通信中間件原理示意圖
脈沖壓縮模塊、副瓣對(duì)消模塊、動(dòng)目標(biāo)檢測(cè)模塊、雜波圖模塊、恒虛警模塊和干擾分析等模塊主要是由FFT、IFFT和矩陣乘加運(yùn)算等基礎(chǔ)運(yùn)算構(gòu)成,調(diào)用Intel公司開發(fā)的科學(xué)計(jì)算庫(MKL)來實(shí)現(xiàn)基礎(chǔ)運(yùn)算,然后再通過基礎(chǔ)運(yùn)算實(shí)現(xiàn)信號(hào)處理的各個(gè)模塊。把信號(hào)處理分割成標(biāo)準(zhǔn)的子模塊,不僅有利于工程實(shí)現(xiàn),可靈活調(diào)用,而且利于信號(hào)處理系統(tǒng)的擴(kuò)展。
雷達(dá)信號(hào)處理對(duì)實(shí)時(shí)性要求很高,采用多線程并行計(jì)算開發(fā)信號(hào)處理程序,并對(duì)每個(gè)線程綁定CPU核心,每個(gè)線程執(zhí)行一個(gè)或多個(gè)任務(wù)模塊。線程作為操作系統(tǒng)的最小調(diào)度單元,具有輕量化,創(chuàng)建回收方便等特點(diǎn)?;诙嗑€程的并行計(jì)算有MPI、OpenMP、Pthreads等多種規(guī)范,在本文中采用Pthreads規(guī)范編程。
實(shí)現(xiàn)線程同步保證數(shù)據(jù)安全,在線程間加互斥鎖和信號(hào)量。當(dāng)多個(gè)線程同時(shí)需要讀取共享內(nèi)存的數(shù)據(jù)時(shí),采用信號(hào)量同時(shí)觸發(fā)多線程,多線程并發(fā)訪問該內(nèi)存的數(shù)據(jù);當(dāng)多個(gè)線程不僅需要讀取同一內(nèi)存的數(shù)據(jù),而且需要修改該內(nèi)存的數(shù)據(jù)的時(shí)候,使用互斥量控制同一時(shí)間內(nèi)只允許一個(gè)線程操作共享數(shù)據(jù),其它需要操作數(shù)據(jù)的線程進(jìn)行等候,這樣排除了多線程對(duì)共享數(shù)據(jù)并發(fā)操作。
通過整機(jī)雷達(dá)驗(yàn)證該信號(hào)處理系統(tǒng)的性能,該雷達(dá)是二維相控陣?yán)走_(dá),常規(guī)工作模式下在方位上從-45°到+45°范圍內(nèi)相掃,每0.5°一個(gè)波位,每個(gè)波位駐留25個(gè)脈沖。使用兩塊計(jì)算模塊,在每個(gè)計(jì)算模塊上分別進(jìn)行初始化和創(chuàng)建線程池,然后調(diào)用線程池中線程,分配信號(hào)處理任務(wù)模塊,并為每個(gè)調(diào)用的線程綁定一個(gè)CPU核心。
圖4 信號(hào)處理系統(tǒng)功能流程圖
如圖4所示,根據(jù)常規(guī)模式所需要的線程和計(jì)算量,為每個(gè)線程分配任務(wù)模塊,采用如下步驟:
步驟1:兩個(gè)計(jì)算模塊分別調(diào)用一個(gè)線程綁定數(shù)據(jù)接收模塊,接收雷達(dá)數(shù)字接收機(jī)的下行數(shù)據(jù),該下行數(shù)據(jù)使用一路4.5G光纖傳輸,包含10路主通道數(shù)據(jù)和4路輔助通道數(shù)據(jù);
步驟2:計(jì)算模塊1調(diào)用兩個(gè)線程綁定脈沖壓縮模塊,每個(gè)線程實(shí)現(xiàn)5路主通道的脈沖壓縮,計(jì)算模塊2調(diào)用一個(gè)線程綁定4路輔助通道的脈沖壓縮;
步驟3:計(jì)算模塊1調(diào)用一個(gè)線程綁定數(shù)據(jù)交互模塊,接收計(jì)算模塊2送來的輔助通道脈沖壓縮數(shù)據(jù),同時(shí)計(jì)算模塊2調(diào)用一個(gè)線程綁定數(shù)據(jù)交互模塊,發(fā)送輔助通道脈沖壓縮數(shù)據(jù);
步驟4:計(jì)算模塊調(diào)用一個(gè)線程綁定副瓣對(duì)消模塊,每個(gè)線程實(shí)現(xiàn)5路主通道的副瓣對(duì)消;
步驟5:計(jì)算模塊1調(diào)用兩個(gè)線程綁定動(dòng)目標(biāo)檢測(cè)模塊,每個(gè)線程實(shí)現(xiàn)5路動(dòng)目標(biāo)檢測(cè);
步驟6:計(jì)算模塊1調(diào)用兩個(gè)線程綁定雜波圖模塊和恒虛警檢測(cè)模塊,每個(gè)線程實(shí)現(xiàn)5路主通道的雜波圖和恒虛警檢測(cè);
步驟7:計(jì)算模塊1調(diào)用1個(gè)線程綁定數(shù)據(jù)發(fā)送模塊,實(shí)現(xiàn)與數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)交互。
計(jì)算模塊1和計(jì)算模塊2中的每一個(gè)方框代表一個(gè)線程,每個(gè)線程綁定一個(gè)CPU核心,線程之間是并行的并通過互斥量和信號(hào)量進(jìn)行線程同步。通過整機(jī)實(shí)測(cè),常規(guī)工作模式下信號(hào)處理系統(tǒng)的結(jié)果送到終端顯示如圖5連續(xù)相掃8圈的終端界面截圖所示,168個(gè)波位分別對(duì)應(yīng)雷達(dá)的-42°到+41.5°,每0.5°對(duì)應(yīng)一個(gè)波位,連續(xù)相掃8圈,信號(hào)處理系統(tǒng)能夠?qū)崟r(shí)連續(xù)地跟蹤目標(biāo)。
經(jīng)過整機(jī)測(cè)試表明該信號(hào)處理系統(tǒng)能夠持續(xù)、穩(wěn)定地運(yùn)行。當(dāng)需要增加光纖路數(shù)或者面對(duì)不同型號(hào)雷達(dá)需求的時(shí)候,由于已經(jīng)把信號(hào)處理系統(tǒng)分成標(biāo)準(zhǔn)的模塊,并且可以根據(jù)計(jì)算量增添計(jì)算模塊,這樣就可快速構(gòu)建信號(hào)處理系統(tǒng),降低了開發(fā)難度和開發(fā)周期。
圖5 相掃8圈終端畫面
本文提出了一種基于VPX刀片加固服務(wù)器和多線程并行計(jì)算的雷達(dá)實(shí)時(shí)并行信號(hào)處理系統(tǒng),該信號(hào)處理系統(tǒng)采用標(biāo)準(zhǔn)的模塊化設(shè)計(jì),實(shí)現(xiàn)了基于多CPU多線程實(shí)時(shí)信號(hào)處理并行軟件的研制,并通過模塊化信號(hào)處理系統(tǒng)以及線程間的同步來提高實(shí)時(shí)信號(hào)處理的并行處理性能。實(shí)際運(yùn)行時(shí)間表明系統(tǒng)不僅能夠保證需求的性能要求,也能保證CPU的運(yùn)行負(fù)載不會(huì)持續(xù)高負(fù)載運(yùn)行,具有良好的健壯性,能夠持續(xù)、穩(wěn)定地進(jìn)行高性能并行運(yùn)算,并且可根據(jù)雷達(dá)信號(hào)處理的需求進(jìn)行靈活配置,具有很強(qiáng)的擴(kuò)展性和廣闊的工程應(yīng)用前景。