?

嵌入式可重構信號處理計算機設計技術

2020-11-17 06:56劉婷婷
計算機工程與設計 2020年11期
關鍵詞:信號處理嵌入式濾波

趙 謙,鄧 豹,劉婷婷

(中國航空工業集團公司 西安航空計算技術研究所,陜西 西安 710068)

0 引 言

動態可重構技術可以實現硬件資源的分時復用,能夠有效地解決嵌入式系統的小型化、低功耗、高可靠等問題,如何將動態可重構技術應用到嵌入式計算機中成為目前研究的熱點。文獻[1]討論了動態可重構技術如何滿足實時系統中的最壞執行時間;文獻[2,3]討論了利用動態可重構技術提高計算系統的容錯能力;文獻[4]討論了一種動態可重構系統的仿真工具,用于提高可重構計算系統的設計探索能力。隨著嵌入式SOC技術的發展,動態可重構技術在嵌入式系統中的應用更加廣泛。文獻[5]利用動態可重構技術減少可穿戴設備的SWaP;文獻[6]將動態可重構技術應用到無人機機載信號處理平臺中。但是,目前尚缺少對嵌入式動態可重構計算機的體系架構和控制方法的系統研究。因此,本文在研究動態可重構技術的基礎上,提出一種可重構信號處理計算機系統架構,在原型系統上討論計算機系統的重構方式和控制方法,并對其功能、性能進行驗證分析。

1 系統架構

1.1 動態可重構技術

動態可重構技術包括兩種典型的實現方法:部分可重構和軟件可編程重構,本文基于部分可重構方法討論嵌入式信號處理計算機的設計方法。Xilinx公司推出的Zynq UltraScale+等系列FPGA,提供了部分可重構的控制接口,為動態可重構技術的實現提供了可能。Xilinx公司在FPGA芯片中提供了一個ICAP(internal configuration access port)內部配置接口,該接口允許用戶控制和回讀配置文件,以此來完成對FPGA中部分邏輯區域的動態重構。同時,Xilinx公司XC5系列以后的FPGA,允許用戶通過IP重用技術快速地構建嵌入式SOC系統,以此實現嵌入式信號處理計算機的快速開發。圖1為典型的FPGA動態可重構結構圖,FPGA上構建嵌入式SOC用于控制管理,靜態區域實現公共的通用算法,可重構區域實現定制的專用算法,專用算法通過動態可重構技術分時共享可重構區域的硬件資源。FPGA可以有多個可重構區域,每個可重構區域可以被多個專用算法分時復用。嵌入式信號處理計算機中使用動態可重構技術可以提高系統的靈活性和可擴展性,有助于實現硬件資源的優化配置。

圖1 典型的FPGA動態可重構結構

1.2 可重構信號處理計算機系統架構

本文結合動態可重構技術、高速串行交換技術、嵌入式SOC技術以及多核技術,提出一種可重構信號處理計算機系統架構[7],如圖2所示,使用多核DSP和FPGA兩種計算單元:其中DSP為系統提供高效能的數字信號處理能力;FPGA配置嵌入式SOC系統和動態可重構區域,為系統提供簡單的通用處理能力和可重構能力,嵌入式SOC系統控制ICAP接口,實現對可重構區域中硬件任務的實時加載??芍貥嬓盘柼幚碛嬎銠C系統架構采用SRIO作為主要的內部互連網絡,通過RapidIO交換芯片實現DSP與FPGA之間的通信互連。同時,DSP與FPGA之間也采用其它方式互連,如PCIE、以太網、I2C總線等,用于系統的輔助通信,以增加系統的靈活性。RapidIO交換芯片配備配置管理器,可由CPU、單片機、CPLD等實現,用于交換網絡的監控、管理。

圖2 可重構信號處理計算機系統架構

2 設計技術

2.1 原型系統

根據可重構信號處理計算機系統架構實現可重構信號處理計算機原型系統,如圖3所示,原型系統由信號處理節點和可重構計算節點組成,兩者間通過SRIO交換網絡和I2C總線互連,SRIO交換網絡用于任務數據的傳輸[8],I2C總線用于控制命令和工作狀態的傳輸。原型系統中的應用任務被劃分為通用處理任務和可重構計算任務,可重構計算任務主要是信號處理應用中的特殊功能和專用算法。信號處理節點主要執行通用處理任務,并向可重構計算節點分配可重構計算任務??芍貥嬘嬎愎濣c主要執行定制的專用計算任務,根據信號處理節點的重構命令,實時地加載相應的配置位流來改變硬件功能,實現硬件專用算法的動態配置,在發揮硬件加速優勢的同時實現軟硬件算法的統一調度。原型系統中信號處理節點選用TI的TMS320C6678[9]作為主處理器件,可重構計算節點選用Xilinx的XC7K325T[10]作為主處理器件。

信號處理節點中多核DSP上執行信號處理應用的主程序,可重構計算節點作為協處理器和加速單元執行專用算法。一般的處理流程中,信號處理節點通過I2C通信接口向可重構計算節點發送專用算法的重構命令,并通過SRIO通信接口將相應的任務數據傳輸到可重構計算節點??芍貥嬘嬎愎濣c接收到命令后,完成專用算法的調度、配置和執行,通過SRIO通信接口返回處理結果,并通過I2C通信接口上報節點狀態和任務執行情況??芍貥嬘嬎愎濣c中構建的嵌入式SOC系統,包括MicroBlaze處理器、存儲器控制器、SRIO接口、ICAP接口等,以提供通用的控制處理功能,用于執行系統監控、計算控制、重構控制和數據交換等功能單元。系統監控功能單元用于監控本地計算功能單元的執行狀態與重配置狀態。計算控制功能單元根據通信接口傳遞的計算任務發起響應,并結合系統監控情況,以確定在可重構區域加載相應的功能單元。

2.2 重構方式

原型系統支持兩種重構方式:自重構方式和被重構方式,如圖4所示,自重構方式由可重構計算節點上的嵌入式SOC完成重構任務的調度,重構任務的配置位流存儲在可重構計算節點本地,通過本地存儲接口實現重構任務的加載;被重構方式由信號處理節點中的多核DSP或者嵌入式信號處理計算機外部互連的其它處理器完成重構任務的調度,重構任務的配置位流存儲在可重構計算節點外部的存儲體中,通過互連總線實現重構任務的加載。兩種重構方式中,最終均由ICAP接口實現可重構區域任務的重加載。原型系統中,自重構方式用于實現本地專用計算功能的動態重配置,被重構方式用于實現系統功能重構或者任務故障遷移時其它計算功能的動態重配置。本地專用計算功能的配置位流存放在FPGA的PROM中,可通過EMC控制器實現加載,系統功能重構或任務故障遷移時的配置位流存放在DSP的FLASH或者外部控制節點的存儲器中,通過SRIO接口實現加載。一般地,可重構計算節點的嵌入式SOC系統根據信號處理節點的重構命令或者規劃的配置藍圖,采用自重構方式實現可重構區域任務的動態重加載。信號處理節點的DSP或者外部處理器根據系統的重構命令或者故障遷移策略,采用被重構方式實現可重構區域的動態重加載。

圖4 原型系統的重構方式

2.3 控制方法

原型系統中任務重構的控制管理流程,如圖5(a)所示,主要分為4個階段:命令解析階段,信號處理節點或嵌入式SOC系統接收重構命令,并解析重構命令、識別重構任務;重配置階段,根據命令讀取相應的位流文件頭部,解析位流頭部獲取位流文件的長度以及初始地址,并控制ICAP控制器實現位流的加載;任務執行階段,初始化重構的功能單元,并執行功能任務;狀態反饋階段,監控功能任務的執行狀態,根據重構功能任務的執行情況,向應用程序反饋相應的執行狀態。

圖5 控制方法

圖5(b)和圖5(c)詳細定義了原型系統的重構命令,可以實現任務的動態重構、位流校驗、功能任務狀態獲取等。重構命令由Start、Command、Reconfig和Stop這4部分組成:Start和Stop標識重構命令的開始和結束;Command標識命令的任務內容,圖5(c)中定義了6種命令和7種狀態,并可支持16種命令和16種狀態的擴展;Reconfig可以有多個,標識不同重構區域對應的功能任務??芍貥嬘嬎愎濣c接收到讀取狀態命令時,通過上報狀態命令回復相應區域的任務狀態,上報狀態命令中任務號的 4 bit 編碼表示當前區域的狀態碼。

3 功能驗證

在原型系統中采用自重構方式,實現中值濾波和均值濾波信號處理算法的動態重構。中值濾波[8],它是典型的非線性信號處理技術,對消除椒鹽噪聲非常有效;均值濾波[9],它是典型的線性信號處理技術,對消除高斯噪聲非常有效。原型系統驗證如圖6所示,DSP信號處理節點接收高斯噪聲圖像時,信號處理節點通過I2C接口向可重構計算節點發送自重構加載均值濾波算法的命令,可重構計算節點的嵌入式SOC系統接收到命令后,加載并初始化均值濾波算法,最后可重構區域中運行均值濾波位流完成高斯噪聲圖像的處理,并送VGA接口顯示。同樣,DSP信號處理節點接收椒鹽噪聲圖像時,發送加載中值濾波算法的命令,可重構計算節點完成中值濾波算法重構,并實現椒鹽噪聲圖像的濾波處理,最后送VGA接口顯示。當可重構區域沒有重構任務時,可以在該區域加載空位流,可以有效降低可重構計算節點的功耗。

圖6 原型系統的實驗驗證

4 性能評估

強實時的嵌入式信號處理計算機中引入動態可重構技術,在提高硬件資源利用率的同時,還需要考慮系統的實時性要求。

4.1 實時性

可重構信號處理計算機中,多個硬件任務分時共享同一個可重構區域,在系統運行時可進行硬件任務的動態切換。但是,在強實時嵌入式信號處理系統中,一般的軟件任務切換時間為數10 μs,而使用動態可重構的方法進行硬件任務切換時,切換時間為數10 ms。在可重構信號處理計算機中需要減小硬件任務切換時間,以保證滿足系統的實時性要求。硬件任務的切換時間包括任務調度時間、動態重構時間和任務初始化時間,其中硬件任務切換的時間開銷主要用于實現任務的動態重構,硬件任務的調度時間、初始化時間和軟件任務的時間開銷一致,所以減小硬件任務的動態重構時間是提高可重構信號處理計算機實時性的主要途徑。

一般地,可以通過縮小配置文件的規模和提高配置帶寬來縮短硬件任務的重構時間。在可重構硬件任務的設計初期,通過合理的任務劃分和可重構區域的選擇,可以有效地縮小配置文件的規模。系統的配置帶寬取決于硬件任務加載的路徑,可重構信號處理計算機原型系統中,硬件任務位流存放在NOR FLASH中,由嵌入式SOC系統讀入并從ICAP接口寫入FPGA的配置空間,其中NOR FLASH的實測讀帶寬為2 MB/s,ICAP接口的實測寫帶寬是300 MB/s,系統設計中可以通過掛接NAND FLASH等快速存儲設備來提高配置帶寬,同時可以使用配置緩沖的方法來提高配置帶寬。

表1為計算機原型系統“中/均值濾波”動態重構的時間,中/均值濾波算法的位流大小為100.8 KB,分別測試了無緩沖、BRAM緩沖和DDR3緩沖時的動態重構時間,雖然BRAM緩沖能獲得較高的配置帶寬,但是FPGA芯片內部BRAM容量有限,能夠容納的配置位流規模較小,在嵌入式信號處理系統的設計中實用性有限。DDR3的存儲容量較大,實用性更強,更加符合嵌入式環境的應用需求。一般地,以Xilinx公司的Kintex-7系列FPGA為例,FPGA 位流總大小為10 MB,動態重構功能單元的位流按 1 MB 估算(實際應用中動態重構功能單元的位流遠小于該數值),使用DDR3緩沖方式,動態重構時間約8 ms,遠小于一般的圖像信號一幀處理時間33 ms,均能滿足嵌入式信號處理系統的實時性要求。如果能夠采用流水技術,將重構時間隱藏到處理流程中,可以更好提高嵌入式信號處理系統的實時性。

表1 動態重構時間

4.2 硬件資源利用率

本文提出一種資源利用率提升比的量化分析方法,評估可重構信號處理計算機中采用中值/均值濾波算法時的硬件資源利用率提升情況。表2為可重構區域中兩種濾波算法對FPGA這3種資源的占用情況。

表2 中/均值濾波FPGA資源占用情況

定義資源利用率U,r為任務使用資源,R為任務占用資源

(1)

定義資源利用率提升比A,U1為重構方式資源利用率,U2為非重構方式利用率

(2)

(3)

(4)

類似,可以推算出SLICEL和SLICEM的資源利用率提升比,由此,可以得到FPGA這3種資源的利用率提升比曲線(SLICEL和LUT的利用率提升比曲線近似,圖中大部分重疊),如圖7所示??梢夾LUT至少為21.7%(當Tx=33 ms時),即至少可以將LUT資源的利用率提升21.7%。同時,同一可重構區域中多個硬件任務占用的資源越接近,任務占用可重構區域時間越短,則可重構區域資源利用率提升比越高。所以,在系統設計中應當將任務時間短、功能耦合度低、占用硬件資源接近的功能任務劃分到同一個可重構區域中,可以更好提高硬件資源的利用率。

圖7 資源利用率提升比

5 結束語

本文在可重構信號處理計算機原型系統上討論了系統的重構方式和控制方法,采用典型算法對信號處理計算機原型系統進行了功能驗證,并對系統的實時性和資源利用率提升情況進行了量化分析,得出以下結論。

(1)可重構信號處理計算機,可以正確執行典型的嵌入式信號處理應用任務,能實現系統功能的動態重配置。

(2)采用BRAM或DDR3等配置緩沖的方法,可以減小硬件任務的動態重構時間,使得可重構信號處理計算機能夠滿足系統的實時性要求。

(3)可重構信號處理計算機可以有效地提高硬件資源的利用率。

同時,可重構信號處理計算機在嵌入式系統工程中成熟應用,還需要解決計算機系統的可靠性設計、復雜應用中重構任務劃分、軟硬件任務統一調度等技術難點,這些問題都留待下一階段的研究工作進行解決。

猜你喜歡
信號處理嵌入式濾波
Focal&Naim同框發布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
TS系列紅外傳感器在嵌入式控制系統中的應用
《信號處理》征稿簡則
《信號處理》第九屆編委會
《信號處理》征稿簡則
《信號處理》第九屆編委會
搭建基于Qt的嵌入式開發平臺
一種GMPHD濾波改進算法及仿真研究
基于自適應Kalman濾波的改進PSO算法
RTS平滑濾波在事后姿態確定中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合