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