專利名稱:基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法
技術領域:
本發(fā)明涉及數(shù)據(jù)加密和嵌入式系統(tǒng)架構領域,特別涉及一種基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法。
背景技術:
長期以來,人們對電子系統(tǒng)中計算密集型的工作往往會采用一些硬件的方法來實現(xiàn),這種方式的主要特征是由特定的ASIC(Application Specific Integrated Circuit) 芯片來完成系統(tǒng)主要的計算工作。ASIC是用硬件結構直接體現(xiàn)算法,所以速度較快,但也有其無法克服的缺點。設計和開發(fā)ASIC往往意味著較高的的設計成本和較長的開發(fā)周期。 另外,ASIC —般都是為特定應用設計的,缺乏通用性。因而近來,隨著微電子技術、計算機技術的發(fā)展,尤其是大規(guī)模高性能的可編程器件的出現(xiàn),可重構計算技術(reconfigurable computing technology)逐漸成為國際上計算系統(tǒng)研究中的一個新熱點。它的出現(xiàn)使過去傳統(tǒng)意義上的硬件和軟件界限變得模糊,使硬件系統(tǒng)具有像軟件系統(tǒng)一樣的靈活特性。計算密集型任務所面向的對象一般都具有數(shù)據(jù)量大,算法復雜,循環(huán)計算等特點。 這類應用主要面向如模式匹配、數(shù)據(jù)加密、濾波、圖像處理、仿真等領域。在目前廣泛使用的計算結構中,計算密集型任務主要由兩類實現(xiàn)方式軟件方式和硬件方式。軟件的方式是采用通用處理器來做計算。其主要特點是根據(jù)處理器的指令集,編寫相應的算法軟件來實現(xiàn)不同的計算功能,而不用去改動底層的硬件環(huán)境。但處理器要事先把計算任務按時間進行分解,使之變成數(shù)條的指令序列,這些指令序列形成程序保存于存儲器中,然后CPU讀出存儲器中的程序順序執(zhí)行。這樣導致運算速度要比ASIC慢很多。 另外,處理器的指令集是由處理器自身體系結構決定的,沒有用專門指令實現(xiàn)的操作只能使用已有的指令組合來處理,這也增加了執(zhí)行的開銷。硬件方式的主要特征是由特定的ASIC芯片來完成系統(tǒng)主要的計算工作,微處理器只起協(xié)調各部件工作的作用。但是硬件方法具有開發(fā)周期長,一次性投入大,缺乏靈活性,而且難以升級等缺點。
發(fā)明內容
本發(fā)明針對現(xiàn)有電子系統(tǒng)中計算密集型任務所采用的方法所存在的缺陷,而提供一種基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法。該方法能夠實現(xiàn)對各種模塊的狀態(tài)控制,并向用戶提供一個簡單易用、與底層實現(xiàn)無關的接口。并且在系統(tǒng)運行時,可實現(xiàn)各個功能模塊的實時在線切換,具備良好的通用性。為了達到上述目的,本發(fā)明采用如下的技術方案基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法,所述重構方法包括如下步驟(1)設計統(tǒng)一的硬件任務接口,用于連接總線和硬件模塊,通過所述硬件任務接口實現(xiàn)對硬件模塊的狀態(tài)控制和向硬件模塊提供一個與上層實現(xiàn)無關的接口;(2)模塊功能設計,實現(xiàn)系統(tǒng)任務模塊的組合和連接以及所有任務模塊的功能;
(3)對任務模塊占用的資源進行預估,并根據(jù)預估結果創(chuàng)建頂層設計的約束文件;(4)將每個任務模塊單獨實現(xiàn),在指定約束下將描述任務模塊的HDL語言或原理圖轉化成為對應FPGA內部資源設置和連接的文件;(5)任務模塊集成,將各個單獨的任務模塊按頂層設計合并起來形成一個完整的 FPGA設計,生成完整地比特流文件。所述步驟(1)中統(tǒng)一的硬件任務接口通過三條可逆數(shù)據(jù)通路來完成數(shù)據(jù)通路, 密鑰通路和狀態(tài)控制通路。所述步驟⑵中任務模塊之間的連接由總線宏完成。所述步驟(3)中進行預估時實現(xiàn)任務模塊布局、IOB布局以及全局邏輯布局,所述任務模塊布局把FPGA內部資源分配給每個任務模塊,所述全局邏輯布局使得底層的非模塊邏輯通過位置約束來指定邏輯在設備中具體的位置。所述約束文件包含所有全局的布局和時序約束。所述步驟(4)具體通過如下步驟實現(xiàn)(4-1)首先利用綜合工具將HDL語言或原理圖綜合成網(wǎng)表,而后轉換成能夠映射入FPGA內部的初始數(shù)據(jù)庫文件,(4-2)再對初始數(shù)據(jù)庫文件進行解析,布局布線工具將其在FPGA內部實現(xiàn),需要重構的模塊還必須生成對應的部分比特流文件,實現(xiàn)運行時配置。本發(fā)明基于動態(tài)可重構技術,充分利用FPGA的并行處理能力,實現(xiàn)對數(shù)據(jù)加密算法的硬件加速。采用基于統(tǒng)一加密硬件任務接口模型的設計方法,實現(xiàn)對加密模塊的狀態(tài)控制,并向用戶提供一個簡單易用、與底層實現(xiàn)無關的接口。并且在系統(tǒng)運行時,可實現(xiàn)不同算法模塊的實時在線切換。本發(fā)明利用可編程器件可多次配置邏輯狀態(tài)的特性,在運行時根據(jù)需要改變系統(tǒng)的電路結構,從而使系統(tǒng)兼具靈活、簡捷、硬件資源可復用、易于升級等多種優(yōu)良性能。一方面可重構計算機可根據(jù)不同的計算任務對系統(tǒng)做出相應的算法配置,從而具有很強的通用性和靈活性;另一方面在重構時,非重構部分仍然在運行,其中相關寄存器的內容不會丟失,不需要在重構時將寄存器的內容保存到FPGA外的存儲器中,從而縮短了系統(tǒng)重構的開銷,提高系統(tǒng)的運行效率。本發(fā)明利用FPGA的并行處理能力,實現(xiàn)圖像處理算法中的并行性。主要體現(xiàn)在兩個方面空間并行性和時間并行性,其中多種數(shù)據(jù)加密算法的可以同時以并行方式在多個流水線上進行各自的處理。本發(fā)明提供了一個功能總線OPB BUS,基于該總線的功能模塊能方便設計并靈活修改。本發(fā)明每個硬件任務在系統(tǒng)中分配唯一的地址標識,采用自頂而下的設計原則。 并且提供硬件任務的軟件調用接口。通過本發(fā)明提供了一個重構的模塊,一方面可重構模塊可根據(jù)不同的計算任務對系統(tǒng)做出相應的算法配置,從而具有很強的通用性和靈活性;另一方面在重構時,非重構部分仍然在運行,其中相關寄存器的內容不會丟失,不需要在重構時將寄存器的內容保存到 FPGA外的存儲器中,從而縮短了系統(tǒng)重構的開銷,提高系統(tǒng)的運行效率。
以下結合附圖和具體實施方式
來進一步說明本發(fā)明。
圖1為本發(fā)明基于統(tǒng)一硬件任務接口的平臺結構示意圖;圖2為本發(fā)明的統(tǒng)一硬件任務接口設計示意圖;圖3為AES加密模塊結構示意圖;圖4為加密模塊接口描述圖;圖5為AES加密控制信號映射示意圖;圖6為DES加密實現(xiàn)結構示意圖;圖7為加密系統(tǒng)重構流程示意圖。
具體實施例方式為了使本發(fā)明實現(xiàn)的技術手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結合具體圖示,進一步闡述本發(fā)明。本發(fā)明涉及一種基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法,通過其可實現(xiàn)對加密模塊的狀態(tài)控制,并向用戶提供一個簡單易用、與底層實現(xiàn)無關的接口。并且在系統(tǒng)運行時,可實現(xiàn)算法模塊的實時在線切換,具備良好的通用性。為了實現(xiàn)上述的目的,本發(fā)明實現(xiàn)的方法如下首先是設計硬件任務接口,硬件任務接口(Hardware Module Interface,簡稱 HMI)是總線和硬件模塊之間的橋梁。設計的統(tǒng)一 HMI,便于硬件模塊的設計和操作系統(tǒng)對硬件模塊的管理。設計的任務模塊接口主要是實現(xiàn)以下的目標1、實現(xiàn)硬件模塊的狀態(tài)控制;2、向用戶硬件模塊提供一個與上層實現(xiàn)無關的,簡單易用的接口。根據(jù)上述描述的加密模塊的共性和要求,硬件接口的設計需要具有三條可逆數(shù)據(jù)通路來完成數(shù)據(jù)通路,密鑰通路和狀態(tài)控制通路。整個系統(tǒng)實現(xiàn)采用基于模塊化的設計流程。模塊化設計總體分功能設計、資源預估、模塊實現(xiàn)、模塊集成四個階段進行。功能設計包括頂層設計和模塊設計。頂層設計實現(xiàn)模塊的組合和連接。項層邏輯在10、時鐘邏輯和模塊的實例化都要受到總線宏的約束,設計中必須保證模塊間通信的信號由總線宏傳遞。每個總線宏提供4位的模塊通信位。有多少位數(shù)據(jù)要進行通信,則必須要實例化相應個數(shù)的總線宏。模塊設計是具體實現(xiàn)模塊的功能。每個模塊作為獨立的工程, 相對頂層是“黑盒子”,只暴露和其它模塊的接口。在邏輯層次上,必須是自包含的模塊,所有的模塊端口必須明確定義為輸入或者輸出并且不能出現(xiàn)端口緩沖。所有模塊必須使用全局時鐘,模塊間不能直接共享除全局時鐘之外的任何信號,包括復位、使能等。完成頂層設計和模塊設計后就應該對模塊占用的資源進行預估,并根據(jù)預估結果創(chuàng)建頂層設計的約束文件(user constrain file,UCF)。預估階段必須實現(xiàn)模塊布局、IOB 布局以及全局邏輯的布局。模塊布局把FPGA內部資源分配給每個模塊。根據(jù)不同F(xiàn)PGA 特性,分配資源時應注意幾點資源的最小寬度;模塊邊界的對齊方式;部分可重構區(qū)域中配置的比特流屬性在約束文件中描述。全局邏輯布局底層的非模塊邏輯如總線宏必須通過位置約束來指定邏輯在設備中具體的位置,不允許存在非約束的非模塊邏輯。所有模塊的輸入輸出都與10、全局邏輯或者總線宏相連。預估階段產(chǎn)生約束文件,包含所有全局的布局和時序約束,具體模塊實現(xiàn)時還可能要修改約束文件來實現(xiàn)模塊獨立的布局和時序約
束ο模塊功能設計和資源預估完成后,需要將每個模塊單獨實現(xiàn),在指定約束下將描述模塊的HDL語言或原理圖轉化成為對應FPGA內部資源設置和連接的文件。具體流程和一般模塊實現(xiàn)方法類似,首先利用綜合工具將HDL語言或原理圖綜合成網(wǎng)表,而后轉換成能夠映射入FPGA內部的初始數(shù)據(jù)庫文件,再對此文件進行解析,布局布線工具將其在FPGA 內部實現(xiàn),需要重構的模塊還必須生成對應的部分比特流文件,實現(xiàn)運行時配置。每個模塊進行布局布線時,必須受到項層約束的限制,只能添加模塊內部的時序約束,不允許對頂層的約束進行改動。模塊實現(xiàn)時只考慮模塊內部的連接關系以及約束文件中規(guī)定的總線宏位置,不受其它模塊的影響。模塊集成時,因為重構模塊只能在特定重構區(qū)域進行配置,所以首先設計一個頂層的模塊,并在FPGA中正常運行,然后將所有的重構的邏輯放置并且鎖定,重構模塊才能正常運行在重構區(qū)域中。因此,必須將各個單獨的模塊按頂層設計合并起來形成一個完整的FPGA設計,生成完整地比特流文件。完成以上設計階段后,下載運行重構系統(tǒng)。該平臺的最大優(yōu)點在于結合了通用處理器和ASIC兩者的優(yōu)點,它既能夠提供硬件的效率又具備了軟件的可編程性。上述方案在具體實施時,可形成加密重構系統(tǒng)的硬件平臺,參見圖1,該平臺是采用XILINX的XUP (XiIinx University Program)開發(fā)板。重構的時候,首先將整個系統(tǒng)劃分成兩個大模塊固定模塊和重構模塊。固定模塊放置在固定區(qū)域,運行時不被重構,包含了程序運行的基本系統(tǒng)和所需的基本外設;而重構模塊放置在重構區(qū)域中,用以實現(xiàn)不同的硬件加速算法。固定模塊包含微處理器,以及系統(tǒng)運行所需的外設。當進行任務重構時,系統(tǒng)根據(jù)需求從CF(Compact Flash)卡中讀取密碼模塊1和密碼模塊2的配置信息,通過ICAP (Internal Configuration Access Port)對重構區(qū)域進行配置。兩個模塊均由統(tǒng)一的通信接口來與總線通信。由于器件的特性要求,ICAP只能放置在FPGA的右下腳。如圖1所示,系統(tǒng)結構圖中的虛線為總線宏(Bus Marco)。它是通過硬件布線得到的宏,編譯后放在固定的位置,它在重構時是固定不變,是模塊間的通信通道。ICAP模塊能夠對FPGA進行自配置,該模塊采用8位數(shù)據(jù)接口讀取或改變FPGA配置信息。1、接口設計硬件任務接口(Hardware Module Interface,簡稱HMI)是總線和硬件模塊之間的橋梁。設計的統(tǒng)一 HMI,便于硬件模塊的設計和操作系統(tǒng)對硬件模塊的管理。設計的硬件任務接口主要是實現(xiàn)以下的目標1、實現(xiàn)硬件模塊的狀態(tài)控制;2、向用戶硬件模塊提供一個與上層實現(xiàn)無關的,簡單易用的接口。用模塊化的方法設計重構系統(tǒng)時,整個FPGA被分多個區(qū)域,每個區(qū)域放置不同的任務模塊。模塊的接口布線是由總線宏來完成??偩€宏是通過硬件布線得到的宏,它是手動指定的模塊通信信道的物理連接。根據(jù)上述描述的加密模塊的共性和要求,硬件接口的設計需要具有三條可逆數(shù)據(jù)通路來完成數(shù)據(jù)通路,密鑰通路和狀態(tài)控制通路。由此定義了 5個32位寄存器來實現(xiàn)這些接口。時鐘統(tǒng)一采用系統(tǒng)時鐘,狀態(tài)控制需要根據(jù)具體的加密算法做部分修正。如圖2 所示。圖中從上至下依次為寄存器附、1 2、1 3、1 4、1 5針對加密算法有接口定義①寄存器1、2是用做數(shù)據(jù)的輸入和輸出;②寄存器3、4用作密鑰的輸入;③寄存器5用作狀態(tài)控制。五個寄存器的地址分別定義為0X00-0X03、0X04-0X07、0X08-0X11、0X12-0X15、 0X16-0X19。其中Command寄存器信號的地址根據(jù)具體的密碼算法可靈活定義,具體可參見以下AES實例。2、統(tǒng)一硬件任務接口驗證本例用AES、DES兩種加密算法對上述密碼模塊接口的功能進行了設計驗證?;隍炞C過的密碼模塊接口,在可重構平臺上對兩種密碼算法的重構進行了設計。其中詳述了 AES加密算法在此模塊接口中的設計與實現(xiàn)過程。DES算法可參照AES設計流程。(I)AES加密實現(xiàn)AES加密是美國的國家標準局所推薦的一種加密標準。AES模塊的硬件設計采用 VHDL語言,運用全同步的外部時鐘。該模塊接口符合上述密碼模塊的兩個共性。主要包含三個部分接口控制單元,加解解密運算單元,密鑰擴展單元,總體的結構如下圖3所示。圖中粗線代表數(shù)據(jù)線,細線代表控制線。除了數(shù)據(jù)總線接口以外,該模塊定義了 6個功能控制信號。具體的功能描述如圖 4所示。由于AES的加密解密數(shù)據(jù)處理位數(shù)為1 位,但是在可重構系統(tǒng)接口中兩個寄存器的位數(shù)和僅為64位。因此在AES模塊的硬件設計中增加了一個“LOAD”信號作為前64 位數(shù)據(jù)和后64位數(shù)據(jù)位的標識。當“LOAD”為高時讀取前64位數(shù)據(jù),為低讀取后64位數(shù)據(jù)。當1 位數(shù)據(jù)裝載完成后,啟動周期后加密完成。同時CPU也可以通過查詢“DONE”信號的跳變來判斷加密的進程。通過以上硬件任務接口的定義得到五個寄存器的地址。其中 Command寄存器定義了 5個控制狀態(tài)信號,其bit位地址映射如圖5所示。在重構平臺XUP上完成AES對加密模塊接口的連接和功能驗證。首先構建一個基本系統(tǒng),包含一些基本的外設如串口、定時器、片上內存等。然后通過修改用戶邏輯(user_ logic)文件完成模塊與接口的映射。最后下載運行驗證。O) DES加密實現(xiàn)DES加密算法是其中一種常用的算法,主要由三個模塊構成數(shù)據(jù)輸入、密鑰輸入、控制信號線。其總體結構如圖6所示。DES的數(shù)據(jù)位為64位,不需要有” LOAD”信號來做數(shù)據(jù)標識。寄存器1作為數(shù)據(jù)的輸入輸出,寄存器3作為密鑰的輸入輸出,寄存器5作為控制信號的定義。首先完成地址映射,然后在系統(tǒng)平臺上完成對DES加密的驗證。(3)兩種密碼的重構設計本重構系統(tǒng)采用基于模塊化的設計流程。模塊化設計總體分功能設計、資源預估、 模塊實現(xiàn)、模塊集成四個階段進行。首先進行硬件系統(tǒng)結構與模塊劃分,將AES、DES模塊對應的設計文件分別存放在獨立目錄下,每個模塊單獨綜合網(wǎng)表、布局布線。然后在FPGA編輯器中檢查各個模塊生成的文件,以保證每個模塊都被限制在約束文件指定的區(qū)域內??偩€宏也根據(jù)約束文件放在指定位置,且在每個模塊的生成文件中其占用的長線位置總是不變的。最后將所有功能完好的模塊通過頂層的設計封裝起來。所有的模塊對于頂層設計, 都是“黑盒子”。重構時首先初始化ACE (Advanced Configuration Environment)控制器和 ICAP0 然后從CF卡中選擇所需的密碼算法,并通過ICAP對重構區(qū)域進行配置。兩個模塊均由統(tǒng)一的密碼模塊接口與總線通信。具體重構流程如圖7。當某種密碼算法重構完成后,隨即進入加密狀態(tài)。如AES加密完成時,“DONE”信號變?yōu)椤?”,同時加密后的結果將保存在四個32位的寄存器中。對DES 在讀入數(shù)據(jù)后,經(jīng)過16個時鐘周期結束一次加密,結果保存前兩個32位數(shù)據(jù)寄存器中。每次任務結束后,回到功能模塊的選擇狀態(tài)。可重構計算技術在計算密集型中的應用結合了通用處理器和ASIC兩者的優(yōu)點。 它既能夠提供硬件的效率又具備了軟件的可編程性,因而廣受矚目。文章針對計算密集型中的加密計算設計了一種通用硬件任務接口。通過對AES、DES兩種加密計算的功能驗證和性能分析,可重構技術在計算密集型中的加速優(yōu)勢得到了體現(xiàn)。以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術人員應該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內。本發(fā)明要求保護范圍由所附的權利要求書及其等效物界定。
權利要求
1.基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法,其特征在于,所述重構方法包括如下步驟(1)設計統(tǒng)一的硬件任務接口,用于連接總線和硬件模塊,通過所述硬件任務接口實現(xiàn)對硬件模塊的狀態(tài)控制和向硬件模塊提供一個與上層實現(xiàn)無關的接口;(2)模塊功能設計,實現(xiàn)系統(tǒng)任務模塊的組合和連接以及所有任務模塊的功能;(3)對任務模塊占用的資源進行預估,并根據(jù)預估結果創(chuàng)建頂層設計的約束文件;(4)將每個任務模塊單獨實現(xiàn),在指定約束下將描述任務模塊的HDL語言或原理圖轉化成為對應FPGA內部資源設置和連接的文件;(5)任務模塊集成,將各個單獨的模塊按頂層設計合并起來形成一個完整的FPGA設計,生成完整地比特流文件。
2.根據(jù)權利要求1所述的基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法,其特征在于,所述步驟(1)中統(tǒng)一的硬件任務接口通過三條可逆數(shù)據(jù)通路來完成數(shù)據(jù)通路,密鑰通路和狀態(tài)控制通路。
3.根據(jù)權利要求1所述的基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法,其特征在于,所述步驟O)中任務模塊之間的連接由總線宏完成。
4.根據(jù)權利要求1所述的基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法,其特征在于,所述步驟(3)中進行預估時實現(xiàn)任務模塊布局、IOB布局以及全局邏輯布局,所述任務模塊布局把FPGA內部資源分配給每個任務模塊,所述全局邏輯布局使得底層的非模塊邏輯通過位置約束來指定邏輯在設備中具體的位置。
5.根據(jù)權利要求1所述的基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法,其特征在于,所述約束文件包含所有全局的布局和時序約束。
6.根據(jù)權利要求1所述的基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法,其特征在于,所述步驟(4)具體通過如下步驟實現(xiàn)(4-1)首先利用綜合工具將HDL語言或原理圖綜合成網(wǎng)表,而后轉換成能夠映射入 FPGA內部的初始數(shù)據(jù)庫文件,(4-2)再對初始數(shù)據(jù)庫文件進行解析,布局布線工具將其在FPGA內部實現(xiàn),需要重構的模塊還必須生成對應的部分比特流文件,實現(xiàn)運行時配置。
全文摘要
本發(fā)明公開了基于統(tǒng)一硬件任務接口的系統(tǒng)架構的重構方法,該方法首先是設計硬件任務接口,其整個系統(tǒng)實現(xiàn)采用基于模塊化的設計流程,模塊化設計總體分功能設計、資源預估、模塊實現(xiàn)、模塊集成四個階段進行。本發(fā)明針對數(shù)據(jù)加密應用中的大數(shù)據(jù)量處理和計算實時性需求,能夠實現(xiàn)對加密模塊的狀態(tài)控制,并向用戶提供一個簡單易用、與底層實現(xiàn)無關的接口。并且在系統(tǒng)運行時,可實現(xiàn)算法模塊的實時在線切換,具備良好的通用性。
文檔編號G06F15/78GK102279838SQ20111025466
公開日2011年12月14日 申請日期2011年8月31日 優(yōu)先權日2011年8月31日
發(fā)明者吳軼軒, 李萬才, 梅林 , 沈冬青, 陳建永 申請人:公安部第三研究所