亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于多核CPU的雷達信號并發(fā)處理架構設計

        2021-11-09 11:50:36楊思軍
        艦船電子對抗 2021年5期
        關鍵詞:信號量處理速度數據流

        楊思軍

        (中國船舶重工集團公司第七二三研究所,江蘇 揚州 225101)

        0 引 言

        智能化是電子裝備未來發(fā)展的必然趨勢,而要將當前的數字化裝備發(fā)展為智能化裝備,“軟件化”是必由之路,也是未來構建智能化電子裝備的基礎和平臺。雷達作為主要的電子裝備產品,其軟件化設計更能適應任務需求的多樣性和多功能一體化的要求,并可實現(xiàn)軟硬件解耦和功能重構,完成無人值守等任務需求。而要實現(xiàn)軟件化雷達信號處理,首先要解決的就是雷達信號處理的實時性問題,為此在硬件平臺的選擇、軟件的架構設計以及數據實時傳輸等方面都要考慮周全,才能確保處理的實時性。

        隨著計算機多核中央處理器(CPU)、高速存儲器以及多任務多線程編程技術的快速發(fā)展,計算機的計算能力、處理能力和運行效率得到了很大提高,強大的浮點運算能力和易于開發(fā)的軟件技術使計算機能夠更靈活、快速、準確地完成數據處理工作,為雷達信號處理軟件編程帶來極大的方便,將逐步取代傳統(tǒng)的硬件平臺,實現(xiàn)雷達系統(tǒng)的軟件化設計。

        1 多核超算CPU

        多核超算CPU的每個處理器核支持2個硬件線程,也稱為“超線程”CPU[1]。它可以對相互不依賴的操作指令打亂順序執(zhí)行,提高CPU處理速度。多核CPU從最初的2核、4核,跨越到目前的8核、16核,甚至到32核,然而多核CPU要想充分發(fā)揮其效能,在軟件設計上必須充分利用其并發(fā)處理技術,這已成為計算機設計和應用中不可回避的問題。如何實現(xiàn)多核CPU的并發(fā)處理能力,可以參考圖形處理器(GPU)的設計和處理模式。

        最初CPU的設計主要是針對執(zhí)行大量離散而不相關任務的系統(tǒng),而GPU的設計主要是解決那些可以分成成千上萬個小塊并可獨立運行的問題[1]。根據這個思路,在雷達信號處理軟件設計上,可將模數(AD)采樣后的雷達數字回波按脈沖重復時間(PRT)或波束相參組進行數據打包,分成適合多核CPU處理的多個小塊可獨立運行的數據包,進行并發(fā)處理。

        2 數據流驅動模式

        數據流驅動機制則允許任何指令均由數據可用性來驅動。指令的執(zhí)行完全受數據流的驅動,其順序只受指令中數據相關性的制約,而與指令在程序中出現(xiàn)的先后無關。只要數據不相關且資源可利用,就可以并行,從而有利于并行性的開發(fā)[2]。

        雷達信號處理流程最顯著的特點就是各功能模塊的流水性,其前后數據的迭代性和相關性較弱,不同于航跡處理是一個閉環(huán)迭代的過程。雷達信號處理流程可以劃分為一些功能模塊,其中某一個或幾個模塊的輸出作為下一個或幾個模塊的輸入,這是一種粗粒度的數據流驅動方式,各模塊之間的輸入輸出關系就是數據流驅動關系。采用數據流驅動機制,相應數據包到達,即可執(zhí)行各功能模塊的處理指令。一個完整的雷達信號處理流程大體可分為艦速補償、脈沖壓縮、副瓣對消或副瓣匿影、雜波抑制、恒虛警等模塊。各模塊可獨立工作,模塊之間每次輸出的各距離單元或脈沖數據無關聯(lián),適合CPU并發(fā)編程。

        在架構設計時,將雷達信號處理系統(tǒng)采用數據流驅動機制,目的在于摒棄硬件同步信號,充分利用CPU多核資源并發(fā)編程,實現(xiàn)系統(tǒng)的并行性處理,使系統(tǒng)盡可能高速有效地工作。

        3 線程池加速處理技術

        就像在單核處理器中,操作系統(tǒng)的任務是分時、輪流運行的,每個任務只能運行一小段時間,仿照GPU線程模型的設計思路,分配實際數量多于物理CPU核數的多個任務同時運行的并發(fā)處理模式。并發(fā)處理模式同時可以解決CPU處理失速狀態(tài),這種現(xiàn)象通常是由I/O操作和內存獲取引起的,CPU在上下文切換時會出現(xiàn)此類現(xiàn)象,假定此時有足夠多的任務,線程的運行時間也較長,那么它將正常地運轉,從用戶的角度上就感覺不出CPU失速的狀態(tài)[3]。

        多核處理器主要用于實現(xiàn)任務并行,這是一種基于操作系統(tǒng)的并行處理,主要方式是利用多線程來發(fā)揮處理器中的多核作用。線程是程序中的一個獨立執(zhí)行流,它可以在主執(zhí)行流的要求下分出和聚合。通常情況下,CPU程序擁有的活動線程數量不超過其包含的物理處理核數量的2倍,來實現(xiàn)線程池加速技術。

        線程池技術是指程序開始時創(chuàng)建若干個線程,當有任務時交給池中的空閑線程執(zhí)行,執(zhí)行完畢后線程不銷毀而是備用。當執(zhí)行大量異步任務時,線程池能夠提供較好的性能,這是因為線程池復用了線程,可以使每個任務的調用開銷減少。從實時性考慮,線程級處理要比進程處理快得多,線程操作的是一個共享的內存空間。這可以帶來不借助消息就可以完成數據交換的便利,線程代碼的上下文由操作系統(tǒng)保存,數據空間是共享的,缺點是缺乏對共享數據的保護。另一方面,線程池提供了一種資源限制和管理的手段。線程池加速技術不同于OpenMP設計標準,采用OpenMP程序設計相對容易,大多數底層的線程代碼都采用Windows線程庫函數或POSIX線程庫函數實現(xiàn),而線程池加速技術要用戶自己根據實際情況進行多線程并發(fā)代碼編寫。

        并發(fā)性的首要內涵是,對于一個特定的問題,無須考慮用哪個并行計算機來求解,而只需關注求解方法中哪些操作是可以并行執(zhí)行的。并發(fā)編程會涉及到較多系統(tǒng)資源競爭,比如同時讀寫共享內容、操作系統(tǒng)層面的線程調度等,因此代碼編寫要格外小心。下面以脈沖壓縮模塊為例,設計線程池加速技術:

        (1) 在脈沖壓縮模塊的初始化函數rspl_pulse_compress_init()中事先開辟好脈沖壓縮過程中需用到的各種變量和內存空間,即為每個線程開辟好獨立的環(huán)境變量,避免同時讀寫共享內容,導致數據不同步。對于脈沖壓縮模塊來說,環(huán)境變量主要包含存儲各種碼型的匹配濾波器系數、進行快速傅里葉變換(FFT)需要的內存空間,以及艦速補償等的系數空間。

        (2) 根據硬件平臺的處理速度和特性,初始化需要開辟線程函數Thread_Function(),建立線程池緩沖區(qū)。

        (3) 在數據接收線程函數rspl_pulse_compress_entry()中,將接收的數據進行整合處理,根據功能模塊特性,分割成適合線程處理的子任務,添加到線程池任務鏈表中,并釋放信號量,激活線程池中的線程處理函數。

        (4) 多個線程子函數Thread_Function()并發(fā)處理,通過信號量,激活線程池中空閑的線程接收整合的數據塊,并調用每個線程的環(huán)境變量和空間,進行脈沖壓縮處理,并將處理的結果數據整合成數據包,發(fā)送給下個模塊,實現(xiàn)數據流驅動。

        4 仿真驗證

        圖1是采用超算CPU實現(xiàn)的軟件化雷達信號處理并發(fā)設計架構框圖,有脈沖壓縮組件、副瓣匿影組件、目標檢測組件、恒虛警組件和和差測角組件5個組件,實現(xiàn)了雷達信號處理的基本功能。各個組件之間不進行互聯(lián),而是通過通信中間件進行數據交互。通信中間件屏蔽應用層與底層硬件的差異,實現(xiàn)數據的傳輸。通信中間件主要包含2種傳輸模式:一種是組件間的數據傳輸,在同一個CPU內,采用傳址模式保證數據傳輸的實時性;另一種組件間的數據傳輸不在同一個CPU內,采用發(fā)布訂閱傳輸機制,通過萬兆網進行數據傳輸。采用通信中間件進行數據傳輸,盡可能少地實現(xiàn)數據搬移,提高處理效率;實現(xiàn)軟件的模塊化設計,迭代升級;屏蔽IP地址、網絡端口等一系列參數,方便實現(xiàn)組件級重構。

        圖1 軟件化雷達信號處理并發(fā)設計架構框圖

        圖1中每個組件都有一個或多個輸入輸出端口和一個線程池,組件將接收的數據壓入線程池,釋放信號量,等待空閑線程進行處理。根據功能模塊算法的復雜度和處理速度,對每個組件合理設置多個并行處理線程。使整個信號處理應用程序達到最佳處理效果,如圖2的14個CPU核中,除了第1個CPU核,其余都有50%左右的利用率。第1個CPU核主要由操作系統(tǒng)控制,負責完成CPU處理流程的串行操作。圖1中所有組件組合在一起形成一個進程級應用程序,實際占用的CPU數量由設備的數據通過量和使用的CPU線程數決定,它打破了CPU界限的分布。

        圖2 多核CPU資源利用率

        多核超算CPU相對數字信號處理(DSP)芯片主頻高、內存大、浮點運算能力強,更能滿足雷達信號處理的精度要求,但是CPU都帶操作系統(tǒng),一般無法太快響應外部中斷,因此軟件設計應揚長避短,將數據以數據流模式傳輸,以包為單位,以1個脈沖重復時間或者1個相參組脈沖的數據為1包,去掉硬件信號的同步,采用大包傳輸,多緩沖區(qū)緩存,保證數據處理的平均速度滿足要求即可。實際測試下來,緩存區(qū)過多,也會影響CPU資源利用率及處理速度。

        線程池加速技術采用多線程并發(fā)處理模式,以數據流驅動模塊級聯(lián),勢必導致亂序執(zhí)行,因此在需要同步和按順序執(zhí)行的功能模塊時,需要對零散的數據塊進行數據同步、排序處理,以保證功能模塊執(zhí)行的正確。

        圖1中脈沖壓縮組件接收以1個PRT為1包的數字波束合成(DBF)數據或AD采樣數據,將接收的整形數據轉化為浮點數據,存入多級緩存中,采用第3節(jié)中介紹的線程池加速處理技術,實現(xiàn)目標艦速補償功能和各種調頻相位編碼的脈沖壓縮功能。由于數據是以1個PRT為1包的完整數據,因此不需要排序同步處理,直接壓入線程池中等待處理。每個PRT中包含左、中、右3個和波束,1個俯仰角差波束和1個匿影波束總共5個波束數據,每個波束2 048個距離單元的復數數據。脈壓后的數據以相同的數據包格式發(fā)送到副瓣匿影組件中。每包PRT數據中包含相參組流水號和每個相參組中脈沖的編號,用于實現(xiàn)副瓣匿影組件中的數據同步和排序。同步排序后的數據是以某個波束的相參組為1包的數據流,同樣通過線程池加速處理技術,實現(xiàn)副瓣匿影功能,輸出只包含主通道的數據,用于后續(xù)的目標檢測。

        目標檢測組件接收的數據是按照相參組排好一包包數據流,因此不需要進行同步和排序,通過線程池加速處理技術直接進行動目標檢測(MTD)、動目標指示(MTI)和非相參積累(NCA)處理。目標檢測組件分2個端口輸出,一個端口輸出和波束模的數據到恒虛警處理組件,另一個端口輸出和波束和差波束的復數數據到和差測角組件。

        恒虛警處理組件需要根據左、中、右3個波束的編號和相參組流水號進行數據同步,同步后的數據壓入線程池,進行恒虛警處理,處理結果送入和差測角組件。和差測角組件將接收的恒虛警處理數據和目標檢測輸出的復數數據先通過相參組流水號進行數據同步,同步后的數據壓入線程池進行和差測角處理。

        每個組件設計都采用多線程并發(fā)處理,要保證整個應用程序達到最佳處理速度,每個組件的線程數的合理設計就顯得尤為重要,表1是在X86下采用英特爾數學核心函數庫(MKL)和綜合性能圖元函數庫(IPP)實現(xiàn)的單線程雷達信號處理組件的處理速度,可以根據每個組件的處理速度來設置各組件的處理線程數。

        表1 單線程各組件處理時間

        5 雷達信號處理實時性問題

        英特爾至強芯片除了CPU的超線程,還搭載了巨大的三級緩存,并且配合英特爾開發(fā)的高度優(yōu)化、線程安全的MKL函數庫和實現(xiàn)了一維信號處理的函數庫IPP函數庫,同時利用線程池加速處理技術,在圖1的軟件化雷達信號處理并發(fā)設計架構框下,可以實現(xiàn)雷達信號實時處理。至強E5(主頻1.8 GHz)系列CPU實現(xiàn)16組1 024點快速傅里葉變換(FFT),單核只需三十幾微秒,其處理速度都達到了一般現(xiàn)場可編程門陣列(FPGA)的處理速度。除了速度快,MKL和IPP是線程安全的,MKL或IPP函數無論是在單個線程中調用,還是在多個線程中同時使用Intel,都能夠確保函數正確的計算結果。

        6 結束語

        多核CPU采用線程池加速技術,在并發(fā)處理模式下,可實現(xiàn)雷達回波的實時處理;但要實現(xiàn)最優(yōu)設計,還需根據不同的硬件平臺和實際情況進行分析。

        (1) 信號量的切換

        多線程并發(fā)處理必然需要使用同步信號。在不同的硬件平臺下,信號量時間的切換各不相同。以計數信號量為例,在X86的架構下,計數信號量的切換平均1 μs即可,而在ARM架構下FT1500A處理器中需要20~30 μs,為此要考慮任務塊大小的劃分,避免過小的任務塊信號量使用頻繁,浪費時間。或者在FT1500A處理器平臺上,采用互斥信號量配合條件信號量替代計數信號量。

        (2) 線程數設置

        CPU通過使用寄存器重命名和棧來執(zhí)行多線程,為了運行一個新任務,CPU需要進行上下文切換,將當前所有寄存器的狀態(tài)保存到棧上,然后從棧中恢復當前需要指向的新線程上次的執(zhí)行狀態(tài)。這些操作通常需要花費上百個CPU時鐘周期。如果在CPU上開啟過多的線程,時間幾乎都花費在上下文切換過程中寄存器內容的換進/換出操作上,有效工作吞吐量將會快速降低。因此并不是線程數越多越好,一般不超過其包含的物理處理核數量的2倍。

        雖然雷達信號并發(fā)處理架構很多設計思想來源于GPU的設計思路,采用多核處理器,仿照GPU線程模型,同一時刻可以存在大量同時執(zhí)行的線程,以期帶來高吞吐量。但是,由于GPU架構中計算能力較強,邏輯控制單元較弱,GPU不適合開發(fā)邏輯較為復雜的并發(fā)程序[4]。作為通用處理模塊,多核CPU是一個很不錯的選擇。

        帶有特定算法硬件加速的多核超算CPU,配備相應的操作系統(tǒng),既具備浮點強運算能力,又具備高效管理流程,相較DSP、FPGA和GPU,具有更高的處理時鐘和內存,可以完成算法更復雜、消耗內存更大的自適應副瓣對消、二維合成孔徑雷達/逆合成孔徑雷達(SAR/ISAR)成像、多參數波形分集抗干擾以及多域多維度特征無監(jiān)督學習與檢測識別技術等復雜算法。

        同時帶操作系統(tǒng)的硬件平臺可以實現(xiàn)軟硬件解耦,通過通信中間件、計算中間件以及存儲中間件等實現(xiàn)軟件的迭代升級、快速移植和產品的研發(fā)。

        猜你喜歡
        信號量處理速度數據流
        基于STM32的mbedOS信號量調度機制剖析
        汽車維修數據流基礎(下)
        大數據視角下信息管理與信息系統(tǒng)專業(yè)建設分析
        智富時代(2019年2期)2019-04-18 07:44:42
        Nucleus PLUS操作系統(tǒng)信號量機制的研究與測試
        測控技術(2018年8期)2018-11-25 07:42:12
        一種提高TCP與UDP數據流公平性的擁塞控制機制
        看電視太多 損害認知功能
        老同志之友(2016年5期)2016-05-14 07:10:19
        基于數據流聚類的多目標跟蹤算法
        北醫(yī)三院 數據流疏通就診量
        μC/OS- -III對信號量的改進
        Linux操作系統(tǒng)信號量機制的實時化改造
        午夜毛片不卡免费观看视频| 91在线观看国产自拍| 国产精品11p| 亚洲人成网站18男男| 日本av一区二区在线| 秋霞在线视频| 色偷偷久久一区二区三区| 91美女片黄在线观看| 中文字幕一区韩国三级| 国产在线一区二区三区香蕉| 少妇伦子伦情品无吗| 醉酒后少妇被疯狂内射视频 | 91久久香蕉国产熟女线看| 人妻丰满熟av无码区hd| 精品久久久久久中文字幕大豆网| 国产亚洲欧美在线播放网站| 成人av一区二区三区四区 | 亚洲欧美激情精品一区二区| 麻豆国产av尤物网站尤物| 色综合久久人妻精品日韩| 成人无码av免费网站| 中文字幕无码不卡一区二区三区| 久久99久久99精品免观看不卡 | 日韩免费视频| 人人狠狠综合久久亚洲| 白色橄榄树在线免费观看| av成人综合在线资源站| 欧美人妻aⅴ中文字幕| 日韩AV不卡六区七区| 国产一区二区三区视频了| 国产日本精品一二三四区| 女人下面毛多水多视频| 欧美亚洲韩国国产综合五月天| 日本在线一区二区免费| 中文字幕日韩三级片| 自拍偷自拍亚洲精品播放| 久久精品人妻嫩草av蜜桃| 国产情侣自拍一区视频| 亚洲中文字幕无码爆乳| 日本a在线天堂| 美丽小蜜桃1一3在线观看|