摘 要:可重構計算具有應用靈活、性能高、功耗低、成本低等優勢。動態重構技術作為可重構計算的配置方法,具有配置方法靈活、耗時短、任務實時響應能力強等特點。文章首先提出了可重構系統原型的設計思路,并著重分析了可重構計算單元、存儲單元、可重構管理單元等關鍵模塊的設計理念。然后分析了動態配置技術的實現原理,并且基于可編程邏輯陣列,搭建了“嵌入式處理器+總線+可重構計算單元”的硬件系統,并實現了兩種圖像處理IP核的動態配置。
關鍵詞:可重構計算;系統原型;動態配置技術
引言
可重構系統一般由主處理器耦合一組可重構的硬件部件,處理器負責任務的調度,而可重構的硬件部件負責執行算法[1]。可重構架構的研究主要集中在以下幾個方面:不同粗細粒度的架構研究、處理單元結構研究、處理單元的互聯方式研究、新型存儲結構研究等。可重構系統的重構方法主要包含兩大類:靜態重構技術、動態重構技術。靜態重構需要整個系統復位,往往需要斷電重啟;動態重構技術是在系統不斷電的情況下,可以完成對指定計算資源、邏輯資源的模塊級或電路級重構,具有功能實時切換、資源可復用等優勢。
動態重構技術作為一種計算系統的新型配置設計思路,從傳統的追求計算資源“大而全”,向追求資源的利用率轉變。與傳統的靜態配置或完全配置方法相比,動態重構技術無需對所有計算資源重構,可以有選擇性的進行重構資源加載,一方面,能夠保證系統在其他單元正常工作的同時,根據待處理任務需求及數據特點完成自適應配置,保證了對邏輯資源的時分復用;另一方面,能夠大大縮短功能切換單元的配置時間,保證任務的無縫對接及實時處理。
文章組織結構如下:首先提出了可重構系統原型的設計思路,從可重構計算單元、存儲單元、可重構控制單元等多個方面做了細化闡述;然后分析了動態配置技術的實現原理,并基于Xilinx開發平臺,搭建了“嵌入式處理器+可重構計算單元”的驗證系統,實現了粗化、細化兩種邊緣提取IP核的動態配置;最后對試驗結果進行評估。
1 可重構計算系統架構設計方案
可重構計算原型系統的體系架構采用RISC架構通用處理器(CPU)、可重構控制單元、可重構計算陣列、可重構I/O接口和存儲系統等部分組成。CPU與可重構計算陣列之間為并行處理關系。從系統設計復雜度和靈活度考慮,兩者采用總線結構耦合。因此,在系統平臺架構中,通用處理器、計算單元和接口單元之間采用總線連接方式。其系統架構見圖1。
系統變換形態流程如下:系統進行計算功能變換時,通用處理器向可重構控制單元發送重構命令,可重構控制單元管理、調度硬件資源,并上報系統工作狀態;當系統資源準備就緒后,通用處理器控制可重構硬件讀取硬件配置數據并加載到器件中,以變換可重構計算單元或接口單元的形態,統一變換系統中全局存儲空間的劃分、管理及訪問控制,各計算模塊共享內存區的映射關系圖;同時,根據新的計算形態加載相應的軟件和數據,最終完成整個系統形態變換流程。功能切換時,只對可重構硬件的一部分進行重新配置,其他部分可繼續執行任務。動態部分重構可以減少配置數據,加快了計算形態變換速度,提高了系統的適應性和靈活性。
通用處理器運行操作系統,負責系統的控制、計算形態管理、計算資源管理和任務調度;處理那些控制比較復雜、不便映射到硬件上,且計算量較少的計算任務,如變長循環、分支控制、存儲器讀寫等。可重構硬件則用于處理計算量大、并行度高、任務相關度低的部分,執行程序中擁有規則的數據訪問模式,控制簡單的那部分“計算密集型”代碼,主要由可重構控制單元、可重構計算單元、可重構I/O接口及片上高速總線組成。其中計算單元及I/O接口可根據應用需求重構為不同的計算形態。
1.1 可重構系統計算單元模型設計
可重構系統計算單元的基本思想要求將計算和存儲兩部分進行解耦合,因此采用了數據和指令存儲物理分離的哈佛結構,將數據訪問模塊、指令組織與調度模塊和指令執行模塊分離。同時,根據流處理模型中生產者消費者局部性的特點,將數據訪問模塊劃分成軟件可管理的多個存儲層次,各自保持獨立運行。可重構系統計算單元主要有三個部分組成:控制單元、存儲單元、可重構處理單元陣列。
控制單元。執行算法時,控制單元對可重構系統計算單元進行總體控制,協調可重構處理單元陣列、配置存儲器、本地存儲器、數據分配單元、數據合并單元的運行,根據系統運行狀態和各個單元內部控制信號的反饋信息,改變各個單元的狀態,保證系統正確運行。
存儲單元。存儲單元分為三部分:數據存儲,寄存器堆以及配置存儲。數據存儲包括本地存儲器,數據分配單元以及數據合并單元。本地存儲器用于存儲可重構處理單元陣列計算需要的輸入數據和輸出數據;數據分配單元用于從本地存儲器或寄存器堆中讀取數據;數據合并單元用于向本地存儲器或寄存器堆寫入計算單元的輸出數據。寄存器堆用于存儲中間數據,并向陣列發送配置字。
可重構計算基礎單元。可重構計算單元是可重構陣列的核心部分,可以理解為粗粒度的最小計算單元。為了能夠執行更多類型的算法,需要支持盡量更多的功能。例如,對于常用的計算密集型運算,需要支持FFT、FIR、DCT和點積等功能。因此成熟的可重構系統中,應該包含足夠多基礎功能、不同粒度需求的可重構計算資源庫,以便于更加靈活的資源組合。
1.2 可重構系統存儲單元模型設計
可重構計算系統的存儲單元由CPU和可重構陣列共同訪問操作。因此,存儲單元主要研究CPU和可重構計算單元對內存訪問的協調與控制機制,存儲單元的模型設計需要主要解決如下問題:避免內存訪問沖突、解決多個處理器模塊并行工作會降低主存的訪問效率的問題、解決可重構計算單元面臨的端口和速度的限制。
存儲管理單元主要解決多個模塊并行工作時會降低訪存效率的問題:多個模塊共享片外內存會引起訪問沖突從而導致等待;訪問片外內存的端口數量非常有限,不利于數據通路中的并行訪問。主要采取如下改進措施:(1)為可重構硬件平臺增加內存管理單元,實現片外和片上內存的映射,保持數據一致性;(2)為內存訪問提供多端口流水化處理或數據預讀取;為應用提供定制化的緩存結構。
1.3 可重構管理單元模型設計
可重構管理單元負責控制任務,它主要接收通用處理器指令,完成系統形態管理和資源管理;計算單元的軟件加載、配置管理和數據交換等任務。
其主要完成的工作有:(1)實現全局存儲空間的劃分、管理及訪問控制,解決數據訪問沖突,阻止非法訪問;將各模塊傳遞的數據存儲在統一的存儲區,以并行方式協同完成計算任務;(2)接收通用處理器的指令,將共享存儲系統中的操作系統及應用軟件加載到計算單元;(3)對系統內部可重構硬件資源進行管理,確保相應可重構計算單元或I/O接口功能變換時,不影響系統正常運行功能;(4)用于實現對可重構計算單元的動態配置,可以根據應用任務需求修改計算單元架構和計算模塊的功能,并將計算單元、I/O接口的總線轉換為統一的內部互連總線,提高了對外連接的適應性。
2 基于可編程邏輯陣列的動態配置技術實現
2.1 動態配置技術原理
動態配置技術是實現可重構計算單元切換的關鍵技術,保證邏輯資源的時分復用,在優化資源配置的基礎上實現對不同任務的響應。動態配置技術支持的配置階段及配置策略,直接決定了不同重構單元是否能夠實現無縫切換,進而影響了任務實時響應能力。目前成熟的動態配置技術需要提前編譯待重構的邏輯資源、定義各硬件模塊的接口和時序約束、明確各模塊在可編程邏輯陣列上的實現區域及模塊之間的物理連線。動態配置技術主要包括三個階段,即設計階段、編譯階段、運行階段[2]。
設計階段,根據任務處理需求,需要設計不同計算任務對應的功能電路,每種計算任務可能對應一種功能電路,或者是若干個功能電路的組合。在基于可編程邏輯陣列的邏輯設計中,電路設計采用硬件語言描述或者原理圖描述的方法;頂層設計文件通過綜合器生成網表文件,在布局/布線階段,依舊可以對流處理器進行優化設計。
編譯階段,基于配置文件的生成工具,生成初始配置文件及若干動態配置文件;初始配置文件包含了非重構區域的系統或電路描述,每個動態配置文件對應一種計算任務。動態配置文件經過重構文件生成器,生成最終可以動態加載的配置文件。
運行階段,非重構區域的處理器或者控制電路,可以自行分析待處理數據的特點或依據頂層控制指令,完成配置文件的動態加載。加載過程往往通過重構控制器及動態配置接口完成,重構配置器在重構數據庫中選擇相應計算任務對應的配置文件,通過動態配置接口將其加載到可重構平臺中,并將可重構分區內的邏輯資源重構。
2.2 基于ICAP動態配置技術實現
Xilinx公司提供支持動態配置技術的整套開發工具,包括用于動態配置的配置接口IP硬核及相應的加載配置函數。開發者需要基于標準開發流程,搭建硬件平臺并制作可重構計算單元的IP核;根據可重構部分的資源占用情況,在FPGA內部劃分可重構區域資源的大小、位置及種類。ICAP(Internal Config Access Port)是可重構資源的內部配置接口,可以掛在到內部總線上;硬件平臺搭建完成之后,編譯系統會為ICAP提供唯一尋址地址,作為從外部存儲空間向內部可重構區域加載的數據入口和通道。
如圖2所示,基于ICAP的動態配置技術主要包含如下步驟:創建處理器硬件系統、創建頂層設計、創建布局/布線工程、定義可重構分區、添加可重構模塊、設計規則檢測、自定義配置、生成比特流、生成啟動文件。創建處理器硬件系統及頂層設計后,需要對模塊占用的資源進行預估,并根據預估結果創建頂層設計的約束文件。定義可重構分區、添加可重構模塊階段,需要充分考慮布局布線的時序及資源要求。圖3為可重構系統的布局圖,主要包括處理器、可重構分區、數據總線及其他非重構IP核等,處理器負責資源調度、可重構接口控制等;可重構分區用于實現流處理器的多形態變換;數據總線同時用作動態配置文件加載、各模塊數據通信通道。
2.3 可重構計算系統平臺搭建
如圖4所示,基于動態配置技術的可重構架構的驗證系統包括上位機、可重構計算系統(主要由可編程邏輯陣列組成),兩者之間通過通信總線連接。主要包含以下模塊:(1)可重構控制單元。該單元包含:內嵌通用處理器PowerPC、Linux操作系統、PLB總線等,主要負責可重構單元的控制、數據傳輸、資源調度等。(2)通信單元。該單元主要包含:以太網接口及串口,用于圖像傳輸及控制指令傳輸。(3)內存管理單元。該單元主要包含片內定制的乒乓存儲單元,用于源圖像及中間處理數據的緩存。(4)可重構邏輯單元。可重構控制單元根據待處理數據的信息特征,通過動態重構方式加載不同配置文件。如可重構硬件模塊1支持圖像邊緣的粗提取,可重構硬件模塊2支持圖像邊緣的精細化提取。
上位機負責可重構配置單元的加載控制,能夠根據待處理任務的數據特點和大小以及處理內容,選擇最適應的可重構加載文件,并向可重構計算系統發出重構指令。可重構計算系統通過加載不同配置信息,可重構計算單元來并完成處理任務。在任務處理過程中,可重構計算系統可將任務狀態信息、任務處理結果等用戶關心的參數上報給上位計算機并打印輸出。
文章實現的圖像邊緣提取算法包括如下步驟:圖像平滑、圖像銳化、邊緣提取、邊緣連接,最終得到完整的邊緣圖像。高斯平滑與LOG銳化過程采用空間域濾波方法,二值處理采用自適應閾值分離方法,邊緣細化采用形態學變換的方法。其中粗提取模塊主要包含以下三個步驟:圖像平滑、圖像銳化、二值處理。精細提取模塊包括以下四個步驟:圖像平滑、圖像銳化,二值處理和邊緣細化四個步驟。
3 試驗結果分析
3.1 試驗環境
可重構計算系統的試驗平臺基于Xilinx提供的ML507開發板,處理器采用PowerPC440,操作系統采用Linux,處理器通過PLB總線與可重構配置區域及其他IP核通信。具體配置參數如表1所示。
3.2 試驗結果評估
配置文件規模評估。實驗結果表明,如果將“PowerPC處理器+PLB總線+圖像處理IP核”的硬件系統全部重構,需要配置的比特流文件為1914KB;而圖像處理IP核的重構只需285KB。由此可以看出,與靜態配置技術相比,動態配置技術能夠在保證大部分邏輯資源不變的情況下,選擇性的完成資源重構。
配置時間評估。動態配置技術實現中采用的內部配置訪問接口ICAP的時鐘頻率為50MHz,數據帶寬8bit,理論配置速度為0.5× 108B/s。實驗結果表明,動態配置技術無論在配置數據的加載時間還是重構總耗時,都大大減少。配置時間的減少,保證了計算資源的無縫切換,提高了不同任務的響應速度及實時處理能力。
4 結束語
文章主要有如下貢獻:(1)提出了可重構計算原型系統的設計思路,著重介紹了可重構系統計算單元、可重構系統存儲單元、可重構管理單元等關鍵模塊的設計理念。(2)搭建驗證平臺,并實現了動態配置技術。文章基于Xilinx開發平臺,搭建了“PowerPC處理器+PLB總線+可重構計算單元”的驗證系統,設計了邊緣提取的自主知識產權核,實現了基于ICAP動態配置接口的可重構計算。實驗結果表明該驗證平臺不僅具有較高的計算能力和計算靈活性,而且具有較強的資源調度能力,能夠大大縮短資源重構的占用時間。
未來工作包括以下幾方面:(1)進一步完善體系結構設計方案和系統計算模型;(2)結合可重構硬件的發展,進一步開展可重構支撐技術的研究,如:任務時域劃分模型、軟硬件劃分及調度模型、硬件資源管理模型等;(3)深入研究可重構計算基礎模型,建立多種架構的可重構單元模型庫,以適用于更多的應用場景。
參考文獻
[1]方琛,等.粗粒度可重構處理器的結構研究與設計[D].上海:上海交通大學,2010.
[2]徐新民,等.FPGA動態部分重構的研究及位流信息重構的實現[J].科技通報,2008,24(2):236-230.
[3]Krill B,Amira A,Ahmad A,Rabah H.A new FPGA-based dynamic partial reconfiguration design flow and environment for image processing applications[J]. Visual Information Processing (EUVIP),2010.
[4]Interoperability and performance standards for data modems[Z]. MIL-STD-188-110B,2000.
[5]Giovanni D M,Gupta R K.Hardware-software codesign[J]. Readings in Hardware/Software Co-Design,2002
[6]KchuaiWu,JanMadsen.Run-timedynamic reconfiguration:Areality che
ck based on FPGA Architectures form Xilinx[J]. Norchip Conferenc
e,2005.
[7]Sergios Theodoridis,Konstantinos Koutroumbas.Pattern Recogntion,20
06.
[8]ChristianFdaSilva,AliceM.Tokarnia.RECASTER:Synthesis of Fault-Tolerant Embedded Systems based on Dynamically Reconfigurable FPGAs[J].Proceedings of the 18th International Parallel and Distributed Processing Symposium,2004.
[9]Dimos V. Dimarogonas,Kostas J. Kyriakopoulos. A connection bet
ween formation infeasibility and velocity alignment in kinematic multi-agent systems[J].Automatica,2008(10).