999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ECC專用指令處理器軟硬件協同設計

2012-07-25 06:49:22徐勁松王志新嚴迎建
計算機工程與設計 2012年3期
關鍵詞:指令設計

徐勁松,王志新,嚴迎建

(解放軍信息工程大學 電子技術學院,河南 鄭州450004)

0 引 言

橢圓曲線密碼體制 (ECC)是一種基于代數曲線的公開密碼體制,需要進行高強度的密碼學運算,而通用處理器在運算性能上有明顯的局限性,難以滿足實際應用需求。因此,一般使用硬件加速的方法來實現ECC。傳統的硬件加速方法是用專用集成電路實現ECC算法,對特定的ECC算法進行硬件優化來獲得高性能,這種方法處理速度快,但只能針對特定ECC算法,可配置性和可擴展性十分欠缺,且成本較高。目前專用指令集處理器 (ASIP)作為一種新的硬件加速方案,得到了廣泛的研究[1-3],出現了多款各具特色的ECC專用指令集處理器[4-6]。本文設計了一款能實現多種ECC算法的ASIP,能夠完成160~576-bit二元域和素數域上的有限域運算。

1 軟硬件協同設計流程

ASIP設計通常分為4個關鍵步驟:應用分析、體系結構設計、代碼綜合和硬件綜合[7]。本文對此4個關鍵步驟進行了細化與擴展,采用了軟硬件協同的方法設計了一款專用指令ECC處理器,具體流程如圖1所示。設計采用自頂向下的設計方法,從系統驗證、RTL硬件仿真和FPGA硬件原型測試3個不同的層次對處理器的設計工作進行了驗證。

設計一款ECC專用指令處理器,要綜合考慮不同ECC算法的對性能、面積、功耗等參數的需求,對軟硬件進行合理地劃分,硬件方面主要進行處理器指令集體系結構(ISA)模型設計,包含指令設計、寄存器設計等;軟件方面主要進行ECC算法程序設計以及與處理器配套的軟件開發、調試工具的設計,包括指令集模擬器 (ISS)、匯編器等。ISS、匯編器不僅可以作為處理器的開發、調試工具,而且還可以作為處理器的仿真器來使用。系統設計完成后需要對處理器進行系統驗證,并根據仿真結果重新對軟硬件進行劃分,調整處理器體系結構,優化指令集,修改寄存器堆大小,使系統滿足設計需求和約束。系統驗證通過后可進行硬件RTL設計,將匯編程序編譯后的機器碼作為激勵,對電路結構進行仿真,并進行優化。RTL仿真通過后,建立FPGA硬件模型,對整個系統進行完備性驗證。

圖1 處理器設計流程

2 處理器指令集結構模型設計

橢圓曲線有加密、解密、數字簽名、簽名認證等多種應用協議,定義的有限域通常采用素數域和二元域,且運算長度可變。為了滿足ECC多種運算形式的需要,結合硬件的約束,對軟硬件進行了劃分,采用了硬件實現ECC底層運算,軟件實現ECC算法流程的形式。

2.1 指令系統設計

ECC各種應用協議都以點加、倍點以及點乘運算規則為基礎,具有層次性[8],如表1所示。上層算法可以通過調用下層的算法來實現,點乘運算可以由多次調用點加和倍點操作完成,而點加、倍點運算則可以通過調用有限域上的模運算而實現,包括模加/減、模約減、模乘、模平方及模逆等運算。在此基礎上,增加了移位、邏輯運算、比較等指令,從而構成了處理器的運算指令。此外還設計了數據傳輸指令、控制指令、配置指令等,共4大類指令。其中配置指令為運算單元重構而設計。

表1 ECC算法層次結構

ECC算法具有計算密集型的特點,而且在調用有限域上的模運算來實現點加、倍點運算的過程中,有限域上的模運算操作存在較大數據并行性[9]。超長指令字(VLIW)體系結構是目前常用的一種指令級并行處理方案[10],廣泛地應用于DSP等計算密集型的處理器設計。VLIW結構中硬件提供若干個運算單元,各運算單元可并行執行處理器指令,通過編譯器靜態分析程序中指令的依賴關系將可并行的指令一起發射執行,把通常由硬件實現的功能交由軟件實現。VLIW一次發射的最大指令條數由處理器內部運算單元的數量決定,運算單元越多,其對應的寄存器結構就越復雜。因此,運算單元的個數需要根據處理器應用范圍來合理設置,做到成本與效率的平衡。

由于ECC底層運算指令較少,基于有限域操作的各種ECC算法流程比較固定,其運算流程的數據并行性可利用編寫匯編代碼的形式手動挖掘。因此,處理器采用VLIW結構可簡化硬件設計,使處理器能夠達到較高的并行性能。

在各種ECC算法中,點乘是最主要的運算,決定了ECC算法的實現效率。設計對 Double-and-Add、m-ary、Montgomery、窗口NAF、固定基窗口、固定基的Comb等多種點乘調度算法進行了數據相關性分析,研究了運算單元數量對運算速度、資源消耗的影響,計算出不同并行度下時間開銷與資源開銷,表2列出了不同并行度下Montgomery點乘算法一輪迭代的時間與資源開銷。

表2 不同并行度下Montgomery點乘算法的時間和資源開銷

從表2可以看出,用4個運算單元的時間和資源的開銷分別是用2個運算單元的1/2和2倍。同時由于運算過程中的數據相關性約束,當運算單元增加時,并不能減少時間開銷。

2.2 相關寄存器設計

在現代高性能的微處理器設計過程中,設置適當的存儲空間為處理器中的多條指令流提供充足和連續的數據,成為提高處理器性能的關鍵。存儲容量的大小從根本上影響著各運算處理單元之間的數據交互速度,在某種程度上也決定了處理器的靈活性和性能提升空間。這里根據ECC運算數據占用空間的大小,設計了兩類寄存器:

(1)靜態配置寄存器:主要存儲模數/不可約多項式、運算長度、有限域類型、模乘運算常數、功能單元的模式等。這類數據所需存儲容量較小,且一旦算法確定,數據一般不會發生變化,因此寄存器端口設置、尋址模式比較簡單。

(2)通用寄存器:主要存儲外部輸入,橢圓曲線相關的常數值,計算過程中的臨時數據,輸出的數據等。這類數據需要較大的存儲容量,主要是運算過程中的臨時數據,且某些數據在運算完畢后,就很少再次使用,可以直接覆蓋,因此寄存器端口設置、尋址模式比較復雜。對應設計中的4個功能單元,將通用數據寄存器分成4組,每組設有1個寫端口,2個讀端口;支持直接尋址、增量尋址、寄存器間接尋址等尋址模式。通過對ECC算法進行統計,可以確定通用數據寄存器的容量。表3列出了二元域上部分坐標系下點加/倍點運算所需要的最大儲存容量,其中Len表示模運算的數據位寬。

表3 不同坐標系下存儲容量需求

2.3 處理器整體結構

依據上面的設計,處理器的結構圖如圖2所示,主要有控制單元、接口單元及數據通路等3部分組成。控制單元主要完成指令存取、指令譯碼、指令存儲器地址生成等過程中的信號生成工作,負責協調處理器內部指令和外部用戶命令的正確執行。接口單元則主要完成外部指令/命令及運算數據的輸入以及運算結果的輸出。數據通路是ECC處理器的數據執行部分,包含FU0~FU3共4個可并行執行的功能單元、通用向量寄存器堆、靜態配置寄存器、回寫單元等4個主要部分。4個功能單元是處理器執行指令運算的核心,其功能是可配置的,由靜態配置寄存器提供必要的配置參數,來完成不同參數下的運算處理。

圖2 ECC專用指令處理器整體結構

3 軟硬件協同驗證

軟硬件協同驗證[11-12]是一種在硬件設計確認制造之前,驗證軟件能在設計硬件上正確運行的過程,需要軟硬件同時進行設計驗證,及時在硬件和軟件之間交換需要的數據。由于ECC專用指令集處理器規模龐大、結構復雜,為了確保設計的正確性,需要從系統驗證、RTL硬件仿真和FPGA硬件原型測試等不同層次對處理器的設計工作進行驗證。

3.1 系統驗證

系統驗證是處理器設計過程中不可或缺的重要環節,進行系統驗證就是在系統仿真驗證平臺上運行算法程序的過程。系統級驗證一方面用來驗證算法的正確性以及該算法在硬件結構上實現的可行性,另一方面用來對處理器的設計空間進行探索研究[13],例如修改功能單元設置,優化指令集,調整寄存器堆容量等。

算法程序設計根據處理器的體系結構,對ECC算法進行并行調度算法研究,充分挖掘運算流程的數據并行性,用設計的專用指令編寫并行調度算法作為目標程序代碼。仿真驗證平臺主要是指用C++進行對系統的功能和性能進行描述,建立系統中處理器的虛擬原型;通過匯編器、調試器和仿真器來模擬處理器體系結構,實現算法程序的驗證。在本設計中,仿真器主要通過ISS來實現。ISS建立了處理器的ISA模型,通過模擬每條指令在目標處理器上的執行效果來模擬目標機程序[14],能滿足處理器在指令精確級的仿真驗證,同時配合匯編器、調試器,能夠實現處理器配套的軟件開發工具。

系統驗證的過程如圖3所示。算法程序經過匯編器編譯得到二進制指令文件,將該文件輸入到ISS,對系統進行驗證。在驗證過程中,通過ISS可以查看目標處理器的內部狀態,例如寄存器、程序計數器值等。將輸出結果與Certicom Research提供的 測試向 量文件 Test Vectors for SEC1比對,可以驗證算法是否正確以及硬件設計是否可行,同時可以根據驗證過程中的一些統計數據,對系統進行調整。

圖3 系統驗證過程

3.2 RTL硬件仿真

在系統驗證過程中,采用了ISS逐條模擬用戶指令的形式,只能夠提供精確到指令邊界的處理器狀態,無法確定處理器在每個時鐘周期的狀態。因此,在系統級驗證通過之后,有必要進行軟件代碼與硬件RTL代碼的協同仿真驗證,通過RTL硬件仿真,來觀察電路運行的時序,做到時鐘周期精確級的仿真。

進行RTL硬件仿真,需要將系統級設計的ISA模型以硬件描述語言的形式表示出來,同時編寫RTL仿真驗證的測試文件。測試文件調用與匯編程序相對應二進制文件,作為RTL仿真中的測試向量,通過ModelSim對系統進行硬件代碼仿真驗證,如圖4所示。同時將ModelSim的輸出結果與系統驗證得到的結果進行比對,以確保RTL描述與ISA模型的設計一致。

圖4 RTL仿真過程

3.3 FPGA硬件原型測試

在RTL硬件仿真中,只對設計的RTL硬件描述代碼進行仿真,它無法確定設計真實的物理實現與設計描述之間的區別,和硬件實際工作狀態還有很大的差別。FPGA硬件原型測試將通過RTL硬件仿真的RTL代碼經過綜合,下載到FPGA系統中,利用FPGA系統為處理器提供硬件環境,使硬件工作狀態更真實,速度更快[15]。

這里采用基于Altera公司EP3SL340H1152C3N芯片的DE3開發板,PC機通過USB接口發送命令,控制器作為開發板上的控制邏輯,通過USB接口接收命令,并對命令進行解析后傳給ECC處理器,處理器根據命令對數據進行ECC運算處理,并將最終的運算結果存儲到ECC處理器中或將數據通過USB接口傳回PC機。如圖5所示。

圖5 FPGA驗證系統組成框架

4 結束語

本文提出了一種軟硬件協同設計方法,完成了不同設計階段的仿真驗證,并使用該方法設計了一款專用指令ECC處理器。該處理器可配置性強、速度快、靈活性高,能夠完成160~576bit二元域和素數域上的有限域運算,能實現多種ECC應用協議,在不同的應用條件下具有良好的適應性。使用DC工具,采用SIMC 0.18μm CMOS工藝標準單元庫,對所設計的ECC處理器進行邏輯綜合,在4ns的約束條件下,處理器規模達到了225.89萬門,最高時鐘頻率可以達到250MHz。

[1]Kimmo Puusaari.Application specific instruction set processor microarchitecture for UTMS-FDD cell search [C].Tampere:Proceedings International Symposium on System-on-Chip,2005:46-49.

[2]SHEN Bilong,ZHAO Peng,CHEN Xucan,et al.Research and realization on analysis method of application features faced instruction set design of specific processor [J].Computer Engineering & Science,2009,31 (A01):115-119 (in Chinese).[沈弼龍,趙鵬,陳旭燦,等.面向專用處理器指令集設計的應用特征分析方法研究與實現 [J].計算機工程與科學,2009,31 (A01):115-119.]

[3]REN Kun,YAN Xiaolang,SUN Lingling.An ASIP compiler design and implementation [J].Journal of Circuits and Systems,2009,14 (6):59-62 (in Chinese). [任坤,嚴曉浪,孫玲玲.ASIP編譯器設計和實現 [J].電路與系統學報,2009,14 (6):59-62.]

[4]LAI Jyuyuan,HUANG Chihtsun.Elixir:high-throughput cost-effective dual-field processors and the design framework for elliptic curve cryptography [J].IEEE Transaction on VeryLarge Scale Integration Systems,2008,16 (11):1567-1580.

[5]Tim Guneysu,Christof Paar.Ultra high performance ECC over NIST primes on commercial FPGAs [C].Berlin,Heidelberg:Proceeding Sof the 10th International Workshop on Cryptographic Hardware and Embedded Systems,2008:62-78.

[6]CAI Liang,DAI Zibin,CHEN Lu.Design and implementation of general ECC coprocessor [J].Computer Engineering,2009,34 (4):140-142 (in Chinese). [蔡亮,戴紫彬,陳璐.一種通用ECC協處理器的設計與實現 [J].計算機工程,2009,34 (4):140-142.]

[7]YANG Jun.Research on application specific instruction set processor (ASIP)architecture design [D].Hefei:University of Scinece and Technology of China,2006 (in Chinese). [楊君.專用指令集處理器 (ASIP)體系結構設計研究 [D].合肥:中國科學技術大學,2006.]

[8]ZHANG Jun.Research on technology of application specific instruction and reconfigurable unit of Eliptic curve cryptography processor [D].Zhengzhou:PLA Information Engineering U-niversity,2010 (in Chinese).[張軍.ECC處理器專用指令與可重構單元設計技術研究 [D].鄭州:解放軍信息工程大學,2010.]

[9]CAI Liang.Research and design of the dual-field ECC coprocessor architecture [D].Zhengzhou:PLA Information Engineering University,2008 (in Chinese).[蔡亮.雙域ECC協處理器體系結構研究與設計 [D].鄭州:解放軍信息工程大學,2008.]

[10]SHEN Zheng,SUN Yihe.Architecture design of simultaneous multithreading VLIW DSP [J].Acta Electronica Sinica,2010,38 (2):352-358 (in Chinese). [沈鉦,孫義和.一種支持同時多線程的 VLIW DSP架構 [J].電子學報,2010,38 (2):352-358.]

[11]ZHAO Gang,HOU Ligang,LIU Yuan.Methodology of SoC design using hardware/software cosimulation [J].Microelectronics & Computer,2006,23 (6):24-26 (in Chinese).[趙剛,侯立剛,劉源.基于SoC設計的軟硬件協同驗證方法學 [J].微電子學與計算機,2006,23 (6):24-26.]

[12]BAO Hua,HONG Yi,GUO Erhui.Design of HW/SW coverification platform for SoC [J].Computer Engineering,2009,35 (8):271-273 (in Chinese). [鮑華,洪一,郭二輝.面向SoC的軟硬件協同驗證平臺設計 [J].計算機工程,2009,35 (8):271-273.]

[13]SHAO Yang,LIU Hongjin,HE Xing.A system level methodology for ASIP design [J].Microelectronics & Computer,2007,24 (7):102-104 (in Chinese). [邵洋,劉鴻瑾,何星.專用指令集處理器系統級設計方法 [J].微電子學與計算機,2007,24 (7):102-104.]

[14]YAN Yingjian,YE Jiansen,LIU Junwei.VLIW processor ISA modeling and aided software optimization technology [J].Computer Engineering and Design,2009,30 (11):2727-2729(in Chinese).[嚴迎建,葉建森,劉軍偉.VLIW處理器ISA建模與輔助軟件優化技術 [J].計算機工程與設計,2009,30 (11):2727-2729.]

[15]WANG Peidong,LI Fengwei,YANG Juncheng.Hardware/Software coverification solution integrated FPGA and ISS [J].Computer Engineering and Application,2009,45 (30):73-74(in Chinese).[王培東,李鋒偉,楊俊成.一種融合FPGA和ISS技術的軟硬件協同驗證方法 [J].計算機工程與應用,2009,45 (30):73-74.]

猜你喜歡
指令設計
聽我指令:大催眠術
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
一種基于滑窗的余度指令判別算法
主站蜘蛛池模板: 人妻精品久久无码区| 国产一二三区在线| 亚洲中文久久精品无玛| 91精品国产情侣高潮露脸| 一级香蕉人体视频| 乱码国产乱码精品精在线播放| 日本影院一区| 久久男人视频| 一级爱做片免费观看久久| 国产一区成人| 精品综合久久久久久97超人| 亚洲精品视频在线观看视频| 亚洲福利片无码最新在线播放| 国产无码制服丝袜| 久无码久无码av无码| 国产91无码福利在线| 四虎永久免费在线| 中文字幕精品一区二区三区视频| 成AV人片一区二区三区久久| 久久精品午夜视频| 欧美午夜网站| 国产流白浆视频| 亚洲无码37.| 91蝌蚪视频在线观看| 影音先锋丝袜制服| 伊人大杳蕉中文无码| 国产精品尤物在线| 全午夜免费一级毛片| 久久精品66| 国产欧美在线| 亚洲男人天堂网址| 国内精品视频在线| 三区在线视频| 久久精品无码中文字幕| 国产99免费视频| 全午夜免费一级毛片| 久久精品无码国产一区二区三区| 亚洲女同欧美在线| 久久久久久国产精品mv| 国产小视频a在线观看| 青青草一区| 亚洲一级毛片在线观播放| 无码专区在线观看| 亚洲欧美另类日本| 免费Aⅴ片在线观看蜜芽Tⅴ| 色播五月婷婷| 国产高清无码麻豆精品| 国产一区二区影院| 99在线视频网站| 一级毛片中文字幕| 黄色成年视频| 欧美成人h精品网站| 福利小视频在线播放| 日韩福利在线观看| 久久99国产乱子伦精品免| 欧洲亚洲一区| 国产高清在线精品一区二区三区 | 国产91丝袜在线播放动漫 | 国产原创演绎剧情有字幕的| 欧美笫一页| 久久国产精品麻豆系列| 亚洲高清在线天堂精品| 青青青视频蜜桃一区二区| 欧美精品啪啪| 亚洲国产系列| 国产欧美网站| 国产一区二区丝袜高跟鞋| 亚卅精品无码久久毛片乌克兰| 中文字幕人成乱码熟女免费| 久青草国产高清在线视频| 精品日韩亚洲欧美高清a| 国产91无码福利在线| 亚洲日韩精品伊甸| 国产一区二区三区精品欧美日韩| 亚洲有码在线播放| 午夜国产大片免费观看| 五月婷婷综合在线视频| 国产一级毛片yw| 国产一区二区人大臿蕉香蕉| 五月丁香伊人啪啪手机免费观看| 国产一区免费在线观看| 91久久精品国产|