?

基于FPGA和多核DSP的雷達信號處理架構設計

2023-07-15 14:33鄭東衛白亞莉
火控雷達技術 2023年2期
關鍵詞:信號量存儲空間中斷

鄭東衛 白亞莉

(1.西安電子工程研究所 西安 710100;2.西安昆侖工業(集團)有限責任公司 西安 710043)

0 引言

系統架構設計是實時信號處理系統設計中的重要組成部分。目前雷達信號處理典型硬件平臺為FPGA加多核DSP。根據系統輸入參數設計出合理高效的信號處理機會面臨諸多問題,例如如何選擇合理的處理平臺,設計合理的拓撲結構,優化傳輸鏈路和數據存儲空間分配等。信號處理開發設計流程如圖1所示。根據信號處理任務書指標,選擇相應的軟件算法和硬件平臺,安排相應的算法在哪個平臺實現,根據實現平臺設計拓撲結構,然后計算傳輸鏈路帶寬分析,計算存儲空間分析等,接著進行算法實現,實現完后再計算實時性是否滿足指標要求。如果不滿足需要調整硬件平臺或硬件底層拓撲結構及系統架構。所以發揮FPGA和多核DSP的各自的最優性能,開發高效實用的系統架構是十分必要的。

1 算法分析及硬件平臺選擇

地面雷達信號處理算法一般包含:數字下變頻、數字波束形成、脈沖壓縮、動目標檢測、恒虛警檢測、點跡凝聚、方位俯仰測角、目標上報等環節。由于動目標檢測之前這些算法需要用到大量的乘法器加法器等,這些算法適合在FPGA中實現,之后的算法需要大量的邏輯判斷適合在DSP中完成。

在DSP中實現動目標檢測之后的算法,DSP可以選用應用廣泛的TI公司多核TMS320C6678芯片。此DSP包含8個內核,核工作速率可達1.25GHz,每個核包含存儲區32KB的L1P,32KB的L1D,512KB的L2,8核共享4MB的MSMC,可外接8GByte的DDR3,支持最大5Gbps的SRIO接口[1]。雖然單個DSP功能很強大,但當FPGA送來的數據量很大時,單個DSP無法在一個相參處理時間內實時完成檢測計算,就需要多片DSP并行計算完成。計算時間統計可在DSP中使用C語言庫中的clock函數對各個功能的信號處理計時。需要多片DSP多個核并行處理才能完成時,需要考慮到多核并行操作有一定的效率損失,需要增加一定的冗余量。

在FPGA中實現動目標檢測求模之前算法,需要根據系統參數估算所占的FPGA資源,選擇合適型號的FPGA。一般選用FPGA型號主要參考內部乘法器數量,存儲器數量,GTX模塊數量等。

數字下變頻單元主要有混頻和濾波組成,所需的乘加器資源由下列公式決定:

1)使用非對稱系數Fir濾波器M路數字下變頻所需乘加器數為

M×N×Fs/(Fclk×D)×2+2

(1)

2)使用對稱系數Fir濾波器M路數字下變頻所需乘加器數為

M×N×Fs/(Fclk×D)+2

(2)

數字波束形成主要是乘累加運算,所用乘法器由公式(3)決定:

3×M×B×Fs/Fclk

(3)

數字脈沖壓縮采用時域處理方式時,時域實現方式即為復數的卷積運算。一個復數的乘法運算可由4個乘法或3個乘法來實現。比較4個乘法和3個乘法的運算式可以看到,3個乘法的運算式雖然少了1個乘法,但需要5個加法,因此,四個乘法的運算式更適合FPGA運算。所需的乘加器資源如下:

1)使用非對稱脈壓系數B路脈壓所需乘加器數:

B×N×Fs/Fclk×4+2

(4)

2)使用對稱脈壓系數B路脈壓所需乘加器數:

B×N×Fs/Fclk×2+2

(5)

動目標檢測采用FFT加窗實現,FFT所用乘法器可通過調用開發軟件的IP核來得出,加窗所用乘法器數為

B×FFT×Fs/Fclk

(6)

其中:M表示通道個數;B表述波束個數;N表示Fir濾波器階數;Fs表示輸入數據率;Fclk表示工作時鐘頻率;D表示抽取率;FFT表示積累點數。

數字下變頻所用片內存儲器主要由濾波器系數長度、數據位寬和數據緩存大小決定。波束形成所用片內存儲器由通道個數、波數個數、數據位寬以及數據緩存大小決定。脈沖壓縮采用時域脈壓時,所用片內存儲器由脈壓系數長度、數據位寬、數據緩存大小決定。動目標檢測采用FFT加窗實現時,所用存儲器由窗系數大小、數據位寬、數據緩存大小決定。

GTX模塊需求數量大小由與FPGA通信傳輸帶寬和接口數量來決定。FPGA與DSP之間采用SRIO通信,單片DSP與FPGA之間可最大支持4X的SRIO,即最大傳輸帶寬可達20Gbps。如果單片DSP數據傳輸帶寬不夠就需要多片DSP并行處理,既可提高傳輸帶寬又可提高處理速度。

FPGA的主要廠商有Xilinx公司、Altera公司、Lattice公司等,其中Xilinx公司的FPGA在中高端市場占有率遙遙領先,可結合自己使用習慣選擇不同廠商。圖2列出了Xilinx公司的Kintex-7系列的FPGA器件手冊截圖[2]。根據所用的乘法器數量,存儲區數量及GTX數量,再結合FPGA廠家的器件手冊可以選出合適的FPGA型號。

圖2 Xilinx公司的Kintex-7系列FPGA資源

2 硬件底層拓撲結構

2.1 數據傳輸劃分

每片DSP內8個核在并行處理時如何分工配合,多核DSP程序開發中兩種常用的任務分配模式為主從模式和數據流模式[3]。

1)主從模式

將核0作為主核,主要用于任務分配、調度和觸發,接收FPGA數據,寫DDR3操作。

其它核為從核,主要用于讀DDR3操作,并行處理檢測數據,核間同步等。這種分配方式需要主核和從核進行頻繁地消息通信。

2)數據流模式

各DSP核以流水線的方式按照數據處理的流程執行各任務。不同DSP核間有很強的數據依賴關系。這種分配方式需要考慮不同核之間的任務劃分的均衡,否則任務較多的核會出現處理瓶頸。

FPGA處理完后,一個CPI內包含的處理數據有距離單元維,多普勒通道維,波束個數維的三維數據。當多核DSP程序開發按主從模式進行任務分配時,如何將這些數據分給不同DSP或不同核來完成相應的運算使計算效率和傳輸效率更高,現按三個維度劃分來分析。

1)按多普勒通道劃分

若按多普勒通道劃分,將不同的多普勒通道維數據分給不同的DSP不同的核處理,每一個DSP核處理完整的距離單元維和波束維數據。若沒有多普勒維恒虛警,不需要考慮多普勒維交疊。多普勒維點跡凝聚時需要匯總所有多普勒通道數據。

2)按距離單元劃分

若按距離段劃分,將不同的距離單元維數據分給不同的DSP不同的核處理,每一個DSP核處理完整的多普勒維和波束維數據。需要考慮在距離維恒虛警檢測時片間距離段交疊,距離維點跡凝聚時需要匯總所有距離段數據。

3)按波束劃分

若按波束劃分,將不同的波束個數維數據分給不同的DSP不同的核處理,每一個DSP核處理完整的距離單元維和多普勒維數據。需要考慮在目標方位或俯仰測角時片間需要波束交疊,波束間凝聚需要匯總所有波束數據。

按何種方式劃分,首先看不同模式積累點數,距離單元個數,波束個數這些參數哪個參數變化小,劃分能兼顧各個模式,其次按某種方式劃分看是否帶來數據傳輸冗余計算復雜。當按一維劃分單核還不能實時完成處理運算時,也可進行第二維的再次劃分。

2.2 乒乓流水傳輸

前面敘述了芯片的選擇及功能劃分,而芯片內部鏈接關系及傳輸方式也影響系統處理效率。整個處理過程按流水方式操作,不同芯片之間,不同核之間都需要采用乒乓方式傳輸處理。

FPGA將數據發送到DSP的共享存儲區中,由于單片DSP的共享存儲區空間僅有4MB,共享存儲區需要給全局變量及操作系統等留有一定的存儲空間,所以給數據傳輸留得空間有限,FPGA需要分包給DSP發送數據,如果采用乒乓方式,需要的存儲空間要翻倍。FPGA采用分包的方式通過SRIO給DSP共享存儲區空間搬移數據,按乒乓方式將相鄰包發到DSP的不同共享存儲區。DSP主核乒乓將共享存儲區中數據通過EDMA方式搬移到DSP外接的DDR3中。DDR3中也需開辟的乒乓存儲空間,當一個滑窗CPI所有數據包都寫入DDR3后,DSP主核給從核發送IPC中斷,從核每個滑窗CPI從DDR3中乒乓讀取數據到從核的L2中,從核處理完檢測數據后再寫入乒乓共享存儲區中供主核使用。數據乒乓傳輸過程如圖3所示。

圖3 數據乒乓流水架構

2.3 運算板DSP內核間通信與同步

DSP片內8個核在處理過程中存在通信和同步的問題。核間中斷(IPC)與硬件信號量(Semaphore)是多核DSP內實現核間通信與同步的兩種主要方式[4]。片上系統設計了核間中斷的映射中斷號與中斷向量,通過片上中斷控制器來完成內核間的同步操作。而硬件信號量則是結合了中斷與查詢兩種方式實現核間的同步與數據傳遞,下面將就這兩種方式分別做一概述。

核間中斷專門用作處理器內部各核之間的通信與同步等操作。C6678的每個內核均可以向其他核發送中斷,每個內核也都可以接收任何主控制核的中斷請求操作。IPC中斷的觸發和接收過程設置簡單,只需要操作各核的IPC中斷產生寄存器(IPCGRx)和IPC中斷響應寄存器(IPCARx),其中x代表核ID號0~7。將IPC中斷產生寄存器的IPCG位置1即會觸發相應核的IPC中斷,將寄存器中SRCCn置1會清除相應的中斷標志[5]。

在主核程序中初始化核間中斷,當主核接收完FPGA發來的數據寫入DDR3后依次觸發給從核的核間中斷。從核完成各自檢測運算處理,通過信號量進行核間同步,同步完后由核1給核0發送核間中斷。核0收到核1的核間中斷后讀取從核的檢測數據。圖4示意了主核與從核之間的核間中斷。

圖4 多核DSP的核間中斷

DSP中信號量可用于同步多核處理流程或用來避免多個DSP核同時操作某一共享資源時產生的沖突問題。利用硬件信號量可以在某一共享資源正在備占用或修改時,拒接或阻塞其他DSP核訪問請求。信號量的操作主要有等待信號量CSL_semIsFree,獲取信號量CSL_semAcquireDirect,釋放信號量CSL_semReleaseSemaphore。這三個ARI函數可調用庫函數實現[6]。

從核處理完后可采用信號量的方式完成核間同步。設置兩個信號量,一個為處理信號量SEM_PROCESS_BASE_ID,一個為同步信號量SEM_SYNC_BASE_ID+DNUM。7個從核之間信號量過程如圖5所示。核1在處理檢測之前先獲取處理信號量SEM_PROCESS_BASE_ID,處理完檢測數據后再獲取核1的同步信號量SEM_SYNC_BASE_ID+1,然后判斷所有從核何時會全部釋放各自的同步信號量SEM_SYNC_BASE_ID+DNUM,如果全部釋放了說明所有從核都完成了檢測處理,這時核1給主核發送核間IPC中斷,如果判斷沒有全部釋放同步信號量,則進行等待。核2~7在檢測處理完后獲取各自的同步信號量SEM_SYNC_BASE_ID+DNUM,然后判斷核1是否釋放處理信號量SEM_PROCESS_BASE_ID,如果核1釋放了處理信號量,則核2~7釋放各自的同步信號量SEM_SYNC_BASE_ID+DNUM,否則判斷等待核1的處理信號量。

圖5 信號量處理流程

3 DSP的存儲空間和傳輸時間計算時間分析

現結合實例來分析DSP的存儲空間和傳輸時間及計算時間。某地面雷達有1024個距離單元,16個多普勒通道,5個和波束數據,5個差波束數據,一個相參處理時間CPI為3ms。FPGA將處理后的MTD數據通過4X的SRIO送給多核DSP做后續檢測處理。DSP按主從模式處理,FPGA按波束劃分給DSP傳輸,5個和波束需要一個主核和5個從核處理,每個從核完成一個和波束的檢測處理。

3.1 DSP的存儲空間分析

DSP的存儲空間主要包含內部L1D,L1P,L2,共享存儲區,外部DDR3。在設計中為了提高代碼運行效率,一般將DSP的每個核L1D,L1P全部設為cache。L2有512MB空間,分128KB空間用于堆棧存放,剩下384KB空間用于buffer緩存,主要是運算過程中臨時數據緩存。共享存儲區中預留512KB用于程序代碼的存放,預留2MB用于接收FPGA發來的MTD數據,預留1.5MB用于程序中全局變量,數組,結構體的存放。DDR3中主要放從共享存儲區中搬來的MTD數據,以及處理完的MTD模值數據,重排數據,雜波圖數據,原始視頻數據等。由于DSP的1個主核和5個從核共享DDR3,每個從核讀取一個和波束和一個差波束數據,MTD總共存儲數據為1024距離單元,16個多普勒通道,10個波束,MTD實部虛部,數據位寬32bit,如果再考慮乒乓存儲,所以共計大小為20Mbit。雜波圖設計為5維雜波圖,數據為1024距離單元,16個多普勒通道,5個和波束,3個參差的prf,256個方位單元,數據位寬為32bit,所以共計大小為1.875Gbit。而單片DSP可外掛8GByte的DDR3,完全滿足存儲空間要求。

3.2 傳輸時間分析

FPGA按一包64個距離單元,16個多普勒通道數據搬移到DSP的共享存儲區中,DSP主核收到一包數據后將共享存儲區中數據搬移到DDR3中,實測每一包數據傳輸最大耗時Max_SRIO_Transmit_Time為9.174μs,如圖6所示,圖中時間單位為ns。一個滑窗CPI內需要搬移的數據為160包(每個波束分為16包,5個和波束,5個差波束,共計160包),所以DSP主核搬移一個滑窗CPI數據耗時為160×9.174μs(1467.84μs)小于一個滑窗CPI時間3000μs,所以傳輸時間滿足要求。

圖6 DSP傳輸數據時間統計

3.3 計算時間分析

DSP的單個從核處理一個有效和波束的檢測,實測單個波束檢測運行時間如圖7所示:單位為ns,恒虛警采用單元平均選大恒虛警時整個檢測最大處理時間Max_PD_Process_Time為629.053μs。DSP多核并行計算5個和波束的目標檢測,計算時間遠小于一個滑窗CPI時間,滿足系統實時性要求。

圖7 單個波束DSP單核檢測時間統計

由于整個檢測處理過程中采用乒乓處理,每個節點最大處理時間都是一個滑窗CPI時間,所以整個信號處理過程流水會延時多個滑窗CPI時間。

4 結束語

合理的系統架構設計是雷達信號處理設計中優先考慮的問題。硬件平臺設計冗余會導致系統資源浪費,成本增加。硬件平臺設計小于算法實現要求時會導致部分功能不能實現,設計反復,增大了設計時間,拖延了項目進度。軟件算法在已有的硬件平臺上實現時如果沒有規劃好算法和數據流分配,會導致設計復雜,通信交互繁瑣,資源競爭等問題。本文根據系統參數估算出所需的硬件資源,選擇合適的硬件平臺,在硬件平臺上合理分配算法,結合硬件,重點討論了多核DSP在并行運算情況下軟件架構設計的相關問題。根據多核DSP硬件結構特點合理安排算法流程與資源分配,避免核間沖突與總線沖突,發揮多核DSP的最優性能。值得一提的是文中按流水處理會延時多個CPI,在后續目標點的方位測角時需要與碼盤信息修正對應。系統架構設計中的其它相關問題還需在以后的工程應用中進一步探索。

猜你喜歡
信號量存儲空間中斷
基于多種群協同進化算法的數據并行聚類算法
蘋果訂閱捆綁服務Apple One正式上線
用好Windows 10保留的存儲空間
Nucleus PLUS操作系統信號量機制的研究與測試
跟蹤導練(二)(5)
千里移防,衛勤保障不中斷
硬件信號量在多核處理器核間通信中的應用
μC/OS- -III對信號量的改進
Linux操作系統信號量機制的實時化改造
AT89C51與中斷有關的寄存器功能表解
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合