楊 碩,狄長安,李大海,張永建
(南京理工大學(xué) 機(jī)械工程學(xué)院,南京 210094)
某型火炮進(jìn)行連續(xù)射擊時(shí),火力系統(tǒng)的PHM系統(tǒng)[1-2]需要在射擊的間隔內(nèi)完成故障診斷與健康評估,考慮到信號采集與健康評估時(shí)間,信號預(yù)處理與特征提取功能需要在2 s 之內(nèi)處理復(fù)雜信號約9 MB 數(shù)據(jù),每秒需要處理的數(shù)據(jù)量可達(dá)到500 M次MAC 運(yùn)算。
通用CPU 平臺[3-4]、數(shù)字信號處理器(DSP)[5-6]、現(xiàn)場可編程邏輯門陣列(FPGA)[7]是PHM 系統(tǒng)處理器的典型代表。通用CPU 計(jì)算平臺設(shè)計(jì)靈活,適應(yīng)性強(qiáng),但是計(jì)算能力較弱,無法滿足實(shí)時(shí)性要求;DSP 具有較強(qiáng)的信號處理能力,但是一般需要使用FPGA 擴(kuò)展以實(shí)現(xiàn)信號采集,這導(dǎo)致了硬件設(shè)計(jì)上的復(fù)雜化,提高了系統(tǒng)成本。因此,如何低成本地實(shí)現(xiàn)大量測量數(shù)據(jù)的快速預(yù)處理成為某型火炮火力系統(tǒng)PHM 亟需解決的瓶頸問題之一[8-9]。
FPGA 上集成了豐富的資源,具有很高的靈活性與并行處理能力,目前已經(jīng)廣泛應(yīng)用到了雷達(dá)信號處理[10]、5G 通信[11]、神經(jīng)網(wǎng)絡(luò)加速[12]等 前沿領(lǐng)域。ZYNQ 芯片在一個芯片上集成了PS(processing system,處理系統(tǒng),即ARM)和PL(programmable logic,可編程邏輯,即FPGA)這兩個可編程部分,并通過AXI 總線實(shí)現(xiàn)高速互聯(lián)互通,具有較高性能和較高可擴(kuò)展性。引入ZYNQ 有望以較低成本解決某型火炮火力系統(tǒng)PHM 的大量測量數(shù)據(jù)的快速預(yù)處理問題[13-14]。
本文研究PHM 信號預(yù)處理典型算法,分析其熱點(diǎn)計(jì)算部分,研究一種基于ZYNQ 軟硬件協(xié)同計(jì)算的PHM 系統(tǒng)信號快速處理方法。該方法將PS 端的卷積運(yùn)算offload 至PL 端,并對卷積運(yùn)算電路進(jìn)行了速度與精度優(yōu)化,以期達(dá)到提升計(jì)算效率的目的。最后使用鄰域均值算法與現(xiàn)在常用的PC 端通用CPU 平臺進(jìn)行了實(shí)驗(yàn)對比。
PHM 需用不同采樣速率采集液壓、應(yīng)力應(yīng)變、溫度、加速度等信號,每秒鐘采集數(shù)據(jù)量約4 MB,采集時(shí)間為2 s。以PHM 預(yù)處理時(shí)常用的3 層小波變換為例,總的計(jì)算量可達(dá)到約1 GMAC。
某型火炮兩次射擊最短時(shí)間間隔約為7.5 s,其中為PHM 總機(jī)處理和交互預(yù)留3.5 s 時(shí)間,實(shí)際處理時(shí)間約為2 s,故PHM 信號預(yù)處理的處理速率應(yīng)大于0.75 GMAC/s。
火炮射擊作業(yè)時(shí)產(chǎn)生強(qiáng)烈的沖擊振動,PHM 中模數(shù)轉(zhuǎn)換芯片采集到的信號中往往包含著高頻的沖擊信號。采集到的信號可做如下表示:

式中:t 為時(shí)間變量;f(t)為含噪信號;s(t)為原始不含噪信號;n(t)為噪聲。
這給特征值的自動化提取帶來了困難。一般使用鄰域去噪、小波去噪等方法去除信號中的噪聲[1]。鄰域均值去噪可做如下表示:

式中:g(t)為濾波后信號;h(k)為鄰域算子。
小波去噪的分解過程可做如下表示:

式中:h0[k]與h1[k]是一組Mallat 分解濾波器組;cj[k]、dj[k]、cj-1[n]均為小波展開系數(shù)。
小波去噪的重構(gòu)過程可做如下表示:

式中:h0[k]與h1[k]是一組Mallat 重構(gòu)濾波器組。
通過分析可以發(fā)現(xiàn),上述算法均需要高頻的離散卷積計(jì)算。離散卷積公式可做如下表示:

式中:x(n)、h(n)是卷積前序列;y(n)為卷積后序列。
PHM 系統(tǒng)的信號預(yù)處理過程中需要高頻的卷積計(jì)算,提高卷積計(jì)算的速度是提高PHM 系統(tǒng)信號預(yù)處理速度的核心。
圖1是本文所設(shè)計(jì)軟硬件協(xié)同計(jì)算卷積加速器的流程,PS 通過參數(shù)配置控制PL 的計(jì)算流程。

圖1 加速器加速流程Fig.1 Accelerated flow chart of the accelerator
圖2為本文所設(shè)計(jì)的軟硬件協(xié)同計(jì)算加速器的總體結(jié)構(gòu),PL 端主要由2 個并行的卷積IP 核(intellectual property core)組成,兩個IP 共用時(shí)鐘與復(fù)位信號,并通過AXI GPIO INTR 電路連接PS端GIC(general interrupt controller,通用中斷控制器)。

圖2 加速器總體結(jié)構(gòu)Fig.2 Overall structure of the accelerator
圖3為卷積IP 核內(nèi)部結(jié)構(gòu),主要包括核心控制電路AXI CTRL、AXI HP 端口控制電路AXI Master、下行數(shù)據(jù)緩沖FIFO DOWN、上行數(shù)據(jù)緩沖FIFO UP以及硬件運(yùn)算單元PE(processing elements)。

圖3 卷積IP 核內(nèi)部結(jié)構(gòu)Fig.3 Convolutional IP core internal structure
為了提高硬件運(yùn)算電路的兼容性,本文在數(shù)據(jù)緩沖FIFO 中設(shè)計(jì)了圖3所示并行的多種數(shù)據(jù)格式,并利用MUX 進(jìn)行數(shù)據(jù)切換,在卷積運(yùn)算開始前,PS 將直接配置MUX 參數(shù),該參數(shù)保持不變直至PS 再次配置。
下行FIFO 中的數(shù)據(jù)位寬轉(zhuǎn)換電路主要應(yīng)用于原始數(shù)據(jù)卷積計(jì)算的場景。
下行FIFO 中的上采樣電路主要應(yīng)用于Mallat重構(gòu)計(jì)算的場景。
下行FIFO 中的無操作模塊主要應(yīng)用于PE 輸出數(shù)據(jù)再次進(jìn)行卷積計(jì)算的場景。
上行FIFO 中的下采樣模塊主要應(yīng)用于Mallat分解計(jì)算的場景。
上行FIFO 中的無操作模塊主要應(yīng)用于純卷積運(yùn)算的場景。
為了最大限度提高軟硬件協(xié)同計(jì)算的帶寬,本文的AXI Master 電路選用了256 的突發(fā)傳輸長度,即最大帶寬。為了優(yōu)化時(shí)序,AXI 傳輸時(shí)鐘與PE 時(shí)鐘設(shè)為相同,此時(shí)時(shí)鐘頻率為180 MHz。
PE 在工作時(shí),每個時(shí)鐘周期都會有單個數(shù)據(jù)流入和流出。而在AXI 端口讀寫操作時(shí),每次AXI 突發(fā)傳輸需要約290 個時(shí)鐘周期。這是因?yàn)镻S 端的PL to Memory(PLM)Interconnect、Memory Interconnect以及PL 端的AXI Interconnect 需要一定時(shí)間處理緩沖區(qū)數(shù)據(jù)。
PE 吞吐率大于AXI 端口傳輸吞吐率,故對PE進(jìn)行了流水線暫停設(shè)計(jì)。并設(shè)置上下數(shù)據(jù)緩沖FIFO深度為兩倍于突發(fā)傳輸長度,即512 深,便可實(shí)現(xiàn)無損數(shù)據(jù)緩沖。
為了進(jìn)一步提高軟硬件協(xié)同計(jì)算速度,本文主要從兩部分進(jìn)行優(yōu)化,PE 并行化設(shè)計(jì)和高吞吐率PE 設(shè)計(jì)。
(1)PE 并行化設(shè)計(jì)。軟硬件協(xié)同計(jì)算的處理速度取決于AXI 端口數(shù)據(jù)傳輸速度。單個IP 計(jì)算時(shí),AXI 理論傳輸速度約為1.2 GB/s,此時(shí)AXI 端口帶寬未被最大限度利用,因此設(shè)計(jì)了2 個IP 核進(jìn)行并行計(jì)算。
(2)高吞吐率PE 設(shè)計(jì)。目前常見的卷積加速單元的結(jié)構(gòu)主要是加法樹結(jié)構(gòu)和行緩存結(jié)構(gòu)。加法樹結(jié)構(gòu)對計(jì)算資源和帶寬的要求更高,但是結(jié)構(gòu)更加簡單,更加便于實(shí)現(xiàn),與步進(jìn)形式的一維卷積計(jì)算更加契合[15]。
為了加快硬件運(yùn)算速度,提高系統(tǒng)吞吐率,簡化設(shè)計(jì)難度,本文選用了樹形卷積運(yùn)算電路的設(shè)計(jì)。
圖4所示的4×4 卷積運(yùn)算電路是本文所設(shè)計(jì)的16×16 卷積PE 的簡化表示。其中,在卷積運(yùn)算開始前,PS 將直接配置卷積核數(shù)據(jù)core,該數(shù)據(jù)保持不變直至PS 再次配置。各級計(jì)算使用DSP48E1 資源,并在各級計(jì)算之間插入了寄存器以實(shí)現(xiàn)流水線。

圖4 4×4 卷積計(jì)算樹形結(jié)構(gòu)示意Fig.4 4×4 convolution calculation tree structure diagram
為了提高硬件運(yùn)算電路的吞吐率與并行度,降低訪存開銷,減小硬件實(shí)現(xiàn)難度,本文將復(fù)雜的浮點(diǎn)小數(shù)運(yùn)算轉(zhuǎn)化為10 位定點(diǎn)小數(shù)運(yùn)算。通過損失一部分理論精度,換取運(yùn)行速度的提升。
圖5為計(jì)算過程精度變化示意圖。其中,輸入數(shù)據(jù)為28 位寬,其中最高位是符號位,低10 位是定點(diǎn)小數(shù)位,中間17 位為整數(shù)位,此17 位中的高5位是預(yù)留位,因此針對小波變換而言,最高可支持到10 層;卷積核數(shù)據(jù)為11 位寬,其中最高位是符號位,低10 位是定點(diǎn)小數(shù)位。

圖5 近似計(jì)算精度示意圖Fig.5 Schematic diagram of approximate calculation accuracy
輸出數(shù)據(jù)為28 位寬,其中最高位是符號位,低10 位是定點(diǎn)小數(shù)位,中間17 位為整數(shù)位。通過將乘法運(yùn)算得到的20 位小數(shù)位截掉低10 位得到輸出數(shù)據(jù)的10 位小數(shù)位。
圖6為本文設(shè)計(jì)的PHM 實(shí)驗(yàn)平臺。該板卡板載ZYNQ 7020 芯片,擁有85 k 邏輯單元、4.9 Mb Block RAM 和220 個乘法器,該板卡還預(yù)置了1 GB DDR3 內(nèi)存,數(shù)據(jù)速率為1066 Mbps。下面將討論實(shí)驗(yàn)結(jié)果和性能比較。

圖6 PHM 預(yù)處理實(shí)驗(yàn)平臺Fig.6 PHM pretreatment experiment platform
圖7列出了FPGA 的資源使用情況。FPGA 工作在180 MHz 下。由于乘法部分和加法部分全部使用了DSP 資源,且使用加法樹結(jié)構(gòu)比較耗費(fèi)DSP資源,DSP 使用率達(dá)到了42.73%。本方法的硬件部分僅用于數(shù)據(jù)交互與卷積計(jì)算,使用了較少的硬件資源。

圖7 FPGA 資源使用情況Fig.7 FPGA resource usage
在180 MHz 工作頻率下,單個PE 的理論處理速度為2.88 GMAC/s,但是由于AXI 傳輸?shù)南拗疲浻布f(xié)同計(jì)算的整體理論處理速度將低于4.98 GMAC/s。
基于上述實(shí)驗(yàn)平臺,創(chuàng)建不同數(shù)據(jù)量的模擬數(shù)據(jù),基于鄰域均值算法進(jìn)行處理速度測試。各計(jì)算方法與平臺均專注于該數(shù)據(jù)的計(jì)算,未被其他功能占用資源。ARM 采用A9 計(jì)算平臺;通用CPU 采用目前常用的PC 端CPU AMD 5800H 模擬。
表1為不同平臺處理不同大小數(shù)據(jù)所需時(shí)間。可以看出本文卷積加速處理方法的計(jì)算時(shí)間明顯少于通用CPU 和ARM 的處理時(shí)間。

表1 各平臺模擬數(shù)據(jù)計(jì)算用時(shí)Tab.1 Simulation data calculation time for each platform
圖8是根據(jù)表1得到的速度對比分析示意圖,其中本文方法的平均處理速度約為1.62 GMAC/s,這遠(yuǎn)低于理論計(jì)算速度,這主要受到了AXI 端口傳輸帶寬的限制。

圖8 各平臺計(jì)算速度對比Fig.8 Comparing the calculation speed of each platform
通過對比可以發(fā)現(xiàn),本文加速處理方法相對于通用CPU 計(jì)算的加速比約為5;相對于ARM A9 計(jì)算的加速比大于1200。
AMD 5800H 功耗為45 W;根據(jù)Vivado 軟件功耗分析報(bào)告,此時(shí)FPGA 功率僅為1.918 W。相比之下,F(xiàn)PGA 功率僅為通用CPU 的4.3%。
本文針對某型火炮火力系統(tǒng)PHM 進(jìn)行信號預(yù)處理時(shí)計(jì)算量大、實(shí)時(shí)性要求高的特點(diǎn),研究了一種基于ZYNQ 軟硬件協(xié)同計(jì)算的數(shù)字信號快速的處理方法。
(1)與PHM 常用的DSP+FPGA 方案相比,該方法硬件復(fù)雜度更低,降低了成本。
(2)與PHM 常用的FPGA 方案相比,該方法靈活性更強(qiáng),具有較強(qiáng)的通用性與兼容性,能夠適應(yīng)不同的信號預(yù)處理場景。
(3)與PHM 常用的嵌入式通用CPU 相比,該方法約是其計(jì)算速度的5 倍;與嵌入式平臺處理器相比,該方法速度優(yōu)勢極其顯著。