來源:單片機與嵌入式系統應用,作者:溫圣軍 , 張魯國 , 張國芳
信息社會中,基于密碼算法設計的安全芯片,能夠為用戶的敏感信息提供有效的機密性與完整性保護。信息化的不斷深入使得人們對信息安全服務的需求呈現使用簡單化、功能多樣化、高度集成化等趨勢。這要求安全芯片在單一的硬件平臺上,最大限度地提供多樣的密碼服務,并且具備標準統一的對外服務接口。功能多樣化與高度集成化,已經成為當前以及今后安全芯片設計的必然要求。
安全芯片的功能多樣化設計要求可以由軟件方式實現,也可通過集成多個硬件密碼算法IP核完成。由于密碼算法IP核集成安全性較高,在向外提供密碼服務時,數據處理速度較快,且不占用主控制器運算資源,相對于軟件實現方法,更適合于安全芯片的實際應用需要。因此,在已有的多功能安全芯片設計中,一般采取多密碼算法IP核集成,實現安全芯片功能多樣化。
1 密碼算法多IP核集成要求及方法
在單一硬件平臺上集成多個密碼算法IP核,需要滿足三條基本設計要求:
第一,硬件平臺運行頻率與IP核運算頻率的不一致要求。通常情況下,設計者在進行IP核實現時,出于數據處理速度的需要,一般都會盡量提高IP 核運算頻率,以實現對數據的高速處理。要求硬件平臺與IP核具備同樣的時鐘頻率是不現實的,因為硬件平臺的運行頻率往往依賴于這一平臺所采用的主控制器運行頻率,而要提高主控制器的運行頻率,以達到與不同IP核運算頻率一致,不具有實際可行性。在具體實現多IP核集成時,密碼算法IP核運算頻率會遠高于硬件平臺的運行頻率,各IP核的運算頻率也不盡相同。因此,要實現IP核與硬件平臺掛接集成,需首先解決硬件平臺與IP核的時鐘不一致問題。
第二,硬件平臺與IP核、不同IP核之間處理數據位寬的不一致要求。同樣是出于提高數據處理速度考慮,設計者在設計IP核時,一般采用較大的數據位寬。實現不同數據位寬的轉換,是IP核能否正確處理數據的基本條件。
第三,能夠靈活調用不同IP核的功能,對目標數據進行相應處理。單一硬件平臺與多IP核的掛接集成,需要相應機制來最終實現對不同IP核功能的靈活調用。通過IP功能調用機制,硬件平臺可以完成多個IP核對不同數據的同步運算處理,也可以單獨調用某一IP核進行數據處理。
基于上述多IP核集成設計要求,當前文獻中已有的實現方法主要有:
方法一,使用第三方專用系統總線,實現多IP核集成。采用第三方專用系統總線,將不同IP核與總線掛接,實現多IP核集成。其優點在于:專用系統總線功能強大,支持不同頻率、不同端口的IP核集成,能夠進行多個IP核對不同數據的同步運算處理,便于系統設計與實現。但由于需要采用第三方總線,因而芯片的研發成本會相應增加。
方法二,為每個IP核配備專用雙端口數據存儲器,實現多IP核集成。采用配備雙端口存儲器可以滿足硬件平臺與IP核異頻處理要求,能夠實現不同數據位寬之間的轉換,能夠進行多個IP核對不同數據的同步運算處理。在進行系統前端設計時,設計簡單且實現方便。但由于密碼服務是一個有序的過程,為每個 IP核均配備專用存儲區,會造成系統資源浪費,且極大地增加了芯片后端設計中的布局布線難度。
在分析上述兩種集成方法基礎上,本文基于方法二,給出了一種改進的多IP核集成設計方法。方法采用IP橋接技術,將同一雙端口存儲器與不同IP 核進行動態重構,實現多IP核集成。與方法一相比,采用IP橋接技術實現多IP核集成可以顯著減少芯片的研發成本;與方法二相比,改進方法不僅能夠有效整合芯片內部資源,還可以降低系統功耗,提高芯片的整體性能。
2 IP橋接技術設計原理與具體實現
IP橋接技術的核心是IP橋(IP_bridge)的設計與實現。IP_bridge是主控制器與各IP核協處理器的連接橋梁,同時也是各IP核協處理器與專用雙端口存儲器的連接橋梁。
2.1 IP橋接技術設計原理
IP_bridge是IP橋接技術設計與實現的核心,是主控制器與各IP核協處理器,以及各IP核協處理器與專用雙端口存儲器之間的連接橋梁。為實現這一目的,IP_bridge需完成以下功能:IP核選擇參數譯碼;不同IP核與同一數據處理區的動態可重構;根據IP選擇參數,配置選定IP核控制指令與運行時鐘。
在IP_bridge滿足上述設計要求的前提下,IP橋接技術具體設計原理可作如下表述:將各IP核與IP_bridge、 dual_ramx(雙端口存儲區)整合為系統的一個密碼算法IP核重構模塊,模塊輸入為系統輸出數據、地址、讀/寫使能、系統時鐘與IP時鐘、IP控制指令與IP選擇參數,輸出為 IP核處理完成數據與協處理器運行狀態標識。
在系統對某一IP核功能進行調用時,密碼算法IP 核重構模塊按如下步驟進行操作:a.根據系統的輸入地址與讀/寫使能,將輸入的待處理數據存儲于 dual_ramx中;b.IP橋譯碼IP選擇參數,重構選定IP核控制指令為輸入的IP控制指令,dual_ramx為選定IP核數據處理區.c.選定 IP核將duaLramx中數據讀入IP核內部,根據IP控制指令,完成數據處理;d.選定IP核將已處理數據輸出到dual_ramx中,置相應狀態完成信號為有效.e.系統判斷狀態信號有效,通過dual_ramx將處理完成數據讀出,完成IP功能調用。
與本文第一部分中方法二相比較,IP橋接技術增加了IP_bridge對選定IP核重構數據處理區與控制指令這一過程。該設計可以實現不同IP 核與 dual_ramx的動態重構,通過引入IP橋,對IP核調用指令進行解釋,進而配置被調用IP核的地址、數據、指令與時鐘等各種接口信號,完成系統對 IP核的功能調用。不同IP核與同一數據處理區的動態可重構可以有效節省片內存儲資源,提高存儲區利用效率。
采用IP橋接技術實現密碼算法多IP核集成,不僅可能節省系統資源消耗,在密碼服務提供方面也具有一定優勢。密碼服務通常是一個有序的過程,在提供密碼服務時,由于減少了在不同IP專用數據處理區之間的數據轉移操作,因而可以有效提高系統對數據的處理效率。例如,在完成一次簽名服務時,一般先對簽名數據進行雜湊值運算,再調用公鑰密碼算法對雜湊結果進行簽名,完成對簽名數據的簽名服務。在這一過程中,將簽名服務作為一個完整的基本服務功能進行調用,系統將簽名數據寫入dual_ramx后,僅需完成對IP選擇參數的配置與完成信號的判斷操作,便可實現數據簽名,極大地簡化了系統在向外提供密碼服務時的軟件控制過程,提高了服務的完成效率。相比較于方法二,所要完成的密碼服務越復雜,這一優勢越明顯。
2.2 IP橋接技術具體實現
以2.1中IP橋接技術設計原理為指導,本文在一個8位SoC系統上實現了TDES、SHA1、RSA三個IP核的系統集成設計。為簡化 IP_bridge設計,三個IP核的數據位寬均統一為32位,執行頻率統一為50 MHz。圖1為密碼算法IP核重構區RTL圖。
如圖1所示,密碼算法IP核重構區由TDES、SHA1、RSA三個IP核與IP_bridge、asis_ramx共同構成,根據輸入的控制參數,完成同一雙端口存儲區與不同IP核之間的動態重構。其輸入輸出如表1所列。
以調用SHA1為例,系統完成對數據塊雜湊值計算的操作步驟為:
①MCU執行指令
MOV FUNCCHOOSE,#05H
選擇當前調用IP核為SHA1。
②將一個16字節待處理數據塊輸入雙端口存儲區asis_ramx中,此時輸入數據長度必須為16字節。
③執行指令
MOV INSTUCT,#80H
MOV INSTRUCT,#01H
前一條指令將SHA1進行復位,后一條指令使能SHA1,將待處理數據讀入IP核內部寄存器,進而對其進行SHA1運算處理。
④對FUNCSTATE最低位進行判斷,為1時輸入下一個16字節數據塊,執行指令
MOV INSTRUCT,#01H
復位SHA1完成信號,繼續進行SHA1運算處理。
⑤最后一個16字節數據塊輸入,執行指令
MOV INSTRUCT,#01H
判斷FUNCSTATE最低位,為1時讀出雙端口存儲區中處理完成數據。
⑥執行指令
MOV INSTRUCT,#00H
關閉SHA1協處理器,完成SHA1調用。
對TDES及RSA的功能調用類似于SHA1,僅在指令配置時稍有不同。TDES增加了密鑰生成過程的指令配置與完成信號判斷,RSA增加了對模長與模冪的參數配置。由上可知,與方法二相比較,IP橋接技術在調用實現IP核功能時,需要增加的僅為一條IP選擇參數配置指令。
3 測試與仿真
本文采用軟件仿真與FPGA下載測試兩種手段,對2.2中的設計進行了功能正確性驗證。圖2給出了該設計中IP_bridge在quartus II 5.0下的仿真波形圖。
在圖2中,FUNCCHOOSE為系統功能區的IP選擇參數輸入,INSTRUCT為IP控制指令。當IP選擇參數值為07H、06H、05H 時,對應的選定IP為RSA、TDES、SHA1。以選定SHA1為例,當IP選擇參數為05H時,IP_bridge模塊重構asis_ramx為 SHA1專用數據處理區,且此時SHA1控制指令shal_instruct_o被配置為當前IN-STRUCT值,完成對SHA1的接口配置;當IP選擇參數為 06H、07H時,IP_bridge置SHA1控制指令shal_in-struct_o為00H,使SHA1協處理器處于休眠狀態。對 IP_bridge仿真波形圖的分析表明,其邏輯功能正確。由于在初次FPGA下載測試時發現,允許IP_bridge對IP核進行時鐘配置會導致協處理器功能不穩定,因而取消了IP_bridge的IP核時鐘配置功能。除此以外,其余部分均滿足本文2.1中的功能要求。
為進一步驗證設計的正確性,本文選用Altera公司Cyclone II系列EP2C35F672C6器件,對其進行了FPGA下載測試。在初次測試時發現,各IP核雖然可以完成功能調用,但執行結果不穩定,測試結果的最后5~10字節與標準測試對的結果不符。經分析發現,導致IP核功能錯誤的原因為IP_bridge在對時鐘進行配置時,會產生時鐘延遲。因此,取消了 IP_bridge的時鐘配置功能,在Qu-artus II 5.0下進行編譯仿真與綜合下載,再次進行FPGA下載測試。測試結果顯示,各IP核功能均正確無誤。采用選定器件,IP_bridge邏輯資源消耗為 200 LE,最大路徑延遲為16.838 ns。
結語
本文在總結多IP核集成設計方法的基礎上,提出了一種IP橋接技術,用于實現多IP核集成;并以其為指導,基于一個8位SoC系統,具體實現了三個IP核集成。功能仿真與FPGA 測試表明該技術具備實際可行性,且相比較于現有多IP核集成方法,IP橋接技術具備可有效提高片內資源利用率,降低系統功耗與開發成本等優勢;其缺點在于,當不同IP核的數據接口不一致時,IP_bridge的邏輯設計會比較復雜,且不能實現對IP核的變頻時鐘配置。初步分析表明,通過修改IP核的雙端口存儲區數據寫入環節,延長數據寫入完成至done信號有效這一時間段,可解決這一問題。方法的有效性檢測與具體實現,是筆者下一步工作的重點研究內容。
責任編輯:gt
-
芯片
+關注
關注
456文章
50936瀏覽量
424685 -
控制器
+關注
關注
112文章
16396瀏覽量
178513 -
IP核
+關注
關注
4文章
329瀏覽量
49542
發布評論請先 登錄
相關推薦
評論