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

一種用于可信計算的RISC-V 處理器設計

2022-02-17 12:11:28裴煥斗唐道光
電子設計工程 2022年3期
關鍵詞:指令設計

宮 健,裴煥斗,唐道光

(1.中北大學儀器與電子學院,山西太原 030051;2.山西百信信息技術有限公司,山西太原 030006)

可信計算是保障設備運算按照預期執(zhí)行的技術,而安全可信的計算環(huán)境由硬件平臺和操作系統(tǒng)共同組成[1],可信計算的核心思想是在執(zhí)行安全防護的同時進行運算[2]。我國進入可信計算3.0時代后,提出了主動防御思想,意在對系統(tǒng)實施主動監(jiān)控,確保應用程序按照預期結(jié)果執(zhí)行,使系統(tǒng)免于病毒、黑客威脅[3]。

可信計算的運算控制功能由處理器核實現(xiàn),對于處理器性能而言,絕對的硬件水平不是第一位的,指令集架構(gòu)同樣起到重要作用[4]。而在ARM和x86處于統(tǒng)治地位的同時,RISC-V 橫空出世,在世界各地及各種重要應用領域快速崛起。RISC-V 指令集易于移植,設計簡單方便,擁有完備的軟件開發(fā)工具鏈,方便進行嵌入式開發(fā),并且完全開源,無任何知識產(chǎn)權(quán)問題,任何公司或個人均可以根據(jù)其架構(gòu)進行處理器設計。這一特點很大程度上降低了處理器設計的準入門檻[5]。RISC-V 具有很好的穩(wěn)定性,因為其基準指令確定后不再發(fā)生改變[6]。

基于以上背景,文中在平衡性能、功耗的情況下,設計了一種適用于可信計算領域的32 位RISC-V 架構(gòu)處理器,通過了指令仿真測試,借助FPGA(Field-Programmable Gate Array)在國產(chǎn)操作系統(tǒng)深度下成功運行SM3 算法,并根據(jù)雜湊值計算比對結(jié)果,輸出對外部設備的主動控制信號。

1 整體架構(gòu)設計

文中采用無知識產(chǎn)權(quán)問題的開源指令集RISC-V設計適用可信計算的軟核處理器,其主要承擔設計的控制和運算功能,采用經(jīng)典5 級流水線設計可以顯著提高運算速度,提升數(shù)據(jù)吞吐率[7]。通過設備總線外接密碼模塊的方式,令處理器支持符合可信標準的國產(chǎn)密碼算法SM3,處理器通過SPI(Serial Peripheral Interface)接口對密碼模塊進行調(diào)用,計算雜湊值,并與預存雜湊值比對,根據(jù)比對結(jié)果正確的與否,可信主動控制邏輯將生成不同的I/O(Input/Output)控制信號,對外部可信設備發(fā)出控制命令[8]。圖1 為系統(tǒng)整體設計框圖。

圖1 整體設計框圖

1.1 處理器核設計

1.1.1 流水線設計

指令執(zhí)行效率直接關系到CPU的運算性能,將一條指令的處理過程拆分為5 個階段,每個階段設計專門的硬件單元完成,在經(jīng)過一段時間的“建立時間”后,每個時鐘周期每個單元保持滿負荷運行,從而大大提高指令執(zhí)行效率[9]。流水線時空圖如圖2所示。

圖2 流水線時空圖

由圖2 可知,5 級流水線處理3 條指令花費7 個時間單位,相比串行執(zhí)行花費15 個時間單位,效率顯著提高。相比2 級或3 級流水線執(zhí)行階段時間過長的問題,采用5 級流水線硬件單元分布更均衡,吞吐率更高。處理器核總體設計如圖3 所示。

圖3 處理器核結(jié)構(gòu)

取指階段包含簡單譯碼模塊,譯出所取指令是否為跳轉(zhuǎn)指令,這樣可以簡化電路單元設計,由于沒有配備硬件分支預測器,同時考慮到功耗影響,因此采用靜態(tài)分支預測方法,設定向后跳轉(zhuǎn)預測為需要跳轉(zhuǎn),反之則不跳轉(zhuǎn)[10]。

譯碼階段依據(jù)RISC-V 指令結(jié)構(gòu)完成對指令的解析,包括確定當前指令源操作數(shù)地址、寫回地址等,根據(jù)地址信息從通用寄存器組中取出所需操作數(shù),并借助相關性檢查模塊確定指令是否存在數(shù)據(jù)相關。

執(zhí)行階段主要負責普通運算指令的計算,如加減法、移位運算。多周期乘除法由專門運算單元完成。一般來說,32 位數(shù)據(jù)的除法需要花費32 個時鐘周期來完成。為了加快運算效率,采用兩位試商法計算,只需16 個時鐘周期即可完成,大大提高多周期指令的執(zhí)行效率。這一階段對于訪存指令不作任何處理,直接送到訪存階段處理[11]。

訪存階段只進行訪存指令的地址計算及數(shù)據(jù)存取,對其余指令不作處理,直接送到下一階段即可。由于每個時鐘周期都需要取出一條指令,采用分離的指令存儲器和數(shù)據(jù)存儲器設計可以避免一個周期內(nèi)產(chǎn)生兩個訪問請求,產(chǎn)生存儲器結(jié)構(gòu)沖突。

寫回階段將指令計算結(jié)果按序送回通用寄存器,完成指令的最后處理。

1.1.2 數(shù)據(jù)相關處理

提高流水線級數(shù)在提升處理器性能的同時,也不可避免地引發(fā)了數(shù)據(jù)相關問題。由于該設計使用的是順序處理器,所以存在寫后讀相關,即假設指令x比指令y先進入指令隊列,而指令y需要指令x的計算結(jié)果,但指令x需要經(jīng)過寫回階段寫入通用寄存器,指令y才能讀到正確的數(shù)值,如此在鄰近指令中便產(chǎn)生了數(shù)據(jù)相關。

為此,該設計采用定向前推技術來解決流水線中的數(shù)據(jù)相關問題,即不等待數(shù)據(jù)被寫回通用寄存器,在相關數(shù)據(jù)產(chǎn)生時就將數(shù)據(jù)定向前推至所需單元[12]。譯碼-執(zhí)行相關解決方法如圖4 所示。

圖4 定向前推過程

指令x在執(zhí)行階段結(jié)束就計算出了寫回結(jié)果,按流水線進行,需等待寫回階段結(jié)束才能得到計算結(jié)果,可以在執(zhí)行階段結(jié)束將結(jié)果直接送入譯碼階段,這樣就避免了譯碼-執(zhí)行相關。同理,譯碼-訪存相關、譯碼-寫回相關也可以通過這樣的方式來解決。判斷是否存在譯碼-執(zhí)行相關的代碼如下:

對于加載指令,從數(shù)據(jù)存儲器中讀出結(jié)果才可以送回譯碼階段,所以當譯碼模塊檢測到當前是訪存指令后,流水線需要暫停一個時鐘周期,至訪存階段取出數(shù)據(jù),送回譯碼階段,否則會出現(xiàn)錯誤。

1.2 外設接口設計

該設計外設部分通過SPI 接口外接密碼模塊,支持可信標準SM3 算法,具有可移植性強的優(yōu)點。密碼模塊完成SM3算法的執(zhí)行及計算結(jié)果的比對功能,最終通過可信主動控制邏輯實現(xiàn)對電源接口和IO接口的控制,完成對外部可信設備的控制與度量。UART(Universal Asynchronous Receiver/Transmitter)接口用來發(fā)送接收數(shù)據(jù),在深度系統(tǒng)終端上打印計算比對結(jié)果。GPIO(General-Purpose Input/Output)擴展接口作為處理器的JTAG(Joint Test Action Group)接口,完成對處理器的調(diào)試下載功能[13]。總線地址分配如圖5 所示。

圖5 總線地址分配

1.3 SM3算法原理

SM3 算法是我國自主設計的密碼算法,安全性高,全稱為SM3 密碼雜湊算法,其本質(zhì)上是一種哈希算法[14]。對于長度小于264bit的數(shù)據(jù),SM3 算法能將其轉(zhuǎn)化為256 bit的哈希值。其主要流程如下:

1)填充

首先在長度為X的數(shù)據(jù)后添加1 個“1”和Y個“0”,使其滿足1+X+Y=448mod512,其中Y取最小非負整數(shù)[15]。最后,將表示X長度的64 位2 進制比特串添加至數(shù)據(jù)末尾,構(gòu)成n組512 比特的數(shù)據(jù)格式。數(shù)據(jù)“ab”的填充結(jié)果如圖6 所示。

圖6 數(shù)據(jù)填充結(jié)果

2)迭代壓縮

將填充后的消息劃分為n組,每組長度為512 bit,例如消息“ab”只有1組,n取(X+Y+65)/512。

將填充后的消息進行迭代:

其中,CF是壓縮函數(shù),V(0)為256 bit 初始值IV:7380166f_4914b2b9_172442d7_da8a0600_a96f30bc_163138aa_e38dee4d_b0fb0e4e。

3)消息擴展

將消息分組B(i)(256 bit)進行擴展生成132 個字(132×32=4 224 bit)。

W0至W15:消息分組平均劃分為W0至W15,共16個字;

W16至W67:

其中,P1為置換函數(shù),⊕為異或運算,<<<為循環(huán)左移操作。置換函數(shù)算法步驟如下所示。

4)壓縮函數(shù)

A~H為8個32位寬數(shù)據(jù),F(xiàn)Fj、GGj為布爾函數(shù),其余為中間變量,計算步驟如下所示:

2 仿真驗證

設計完成后,對處理器進行指令驗證。通過Vivado 2020.1 加載.coe 文件至指令存儲器完成初始化,并修改仿真環(huán)境調(diào)用第三方工具Modelsim 進行仿真,完成處理器整數(shù)指令驗證。當pc為0時,取指階段取出的指令碼為002081b3,可以得知此為ADD 指令,譯碼階段取出的兩個操作數(shù)分別為1和2,這條指令在訪存階段不作操作。經(jīng)過5 級流水后在寫回階段輸出結(jié)果為3,結(jié)果正確;經(jīng)過一個時鐘周期后,pc加4,取出下一條指令為SLT,比較操作數(shù)1和操作數(shù)2的大小,由于操作數(shù)1大于操作數(shù)2,輸出結(jié)果為0,結(jié)果正確。對不同類型的指令進行仿真驗證后,結(jié)果均與預期一致,處理器功能正常[16]。部分仿真波形如圖7所示。

圖7 仿真結(jié)果

3 FPGA原型驗證

該設計借助Vivado 2020.1 軟件將比特流文件燒寫至FPGA 開發(fā)板,型號選擇XI-LINX Artix-7 系列的XC7A100T-2FGG484。在國產(chǎn)操作系統(tǒng)深度下,安裝GNU 工具鏈,配置下載器及flash 鏈接腳本,將SM3 算法程序燒錄至外接flash 中,輸入明文計算出256 bit 雜湊值,與程序內(nèi)預存的雜湊值進行比對,最后通過可信主動控制邏輯實現(xiàn)對LED 燈的亮滅控制,并在終端上打印比對計算結(jié)果。終端打印結(jié)果如圖8 所示。

圖8 終端打印結(jié)果

該設計輸入abc 值模擬從外部可信設備中獲取的明文,通過計算比對,在結(jié)果正確的情況下控制FPGA 開發(fā)板的LED 燈,完成對IO 接口的控制。經(jīng)驗證,處理器控制功能正常。

4 結(jié)論

文中提出一種用于可信計算的RISC-V 處理器方案,對內(nèi)核、外設以及算法原理進行了介紹。在國產(chǎn)操作系統(tǒng)深度下搭建交叉編譯環(huán)境,最終通過FPGA 實現(xiàn)軟件與硬件的交互。經(jīng)過驗證,處理器能流暢執(zhí)行SM3 密碼算法并完成雜湊值比對,輸出相關控制信號,達到預期目標,對可信計算領域有較高的應用價值。

未來將通過外接可信設備進行進一步驗證,并支持更多可信標準密碼算法,實現(xiàn)完備的可信計算體系。

猜你喜歡
指令設計
聽我指令:大催眠術
何為設計的守護之道?
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產(chǎn)品歐盟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人人妻人人做人人爽男同 | 99成人在线观看| 精品一区二区三区视频免费观看| 久久午夜夜伦鲁鲁片不卡| 亚洲综合色婷婷| 成人午夜免费视频| 国产人成网线在线播放va| 亚洲系列中文字幕一区二区| 久久精品免费国产大片| 香蕉eeww99国产精选播放| 欧美性天天| 国产精品成人AⅤ在线一二三四| 重口调教一区二区视频| 99久久99这里只有免费的精品| 亚洲美女AV免费一区| 鲁鲁鲁爽爽爽在线视频观看 | 亚洲乱强伦| 国产一级精品毛片基地| 制服丝袜一区二区三区在线| 亚洲AV人人澡人人双人| 久久精品人妻中文系列| 国产精品福利导航| a亚洲视频| 亚洲欧美日韩视频一区| 一级不卡毛片| 国产女主播一区| 福利片91| 中文字幕首页系列人妻| 欧美成人综合视频| 欧美A级V片在线观看| 国产精品一区不卡| 91精品啪在线观看国产60岁| 精品伊人久久久久7777人| 97成人在线观看| 亚洲美女一区二区三区| 波多野结衣中文字幕一区| 久久综合成人| 中国一级毛片免费观看| 国产成人精品高清在线| 免费在线国产一区二区三区精品| 日本高清免费不卡视频| 亚洲黄色成人| 日韩一级二级三级| 日韩精品一区二区三区大桥未久 | 国产一级小视频| 国产精品亚洲αv天堂无码| 欧美精品高清| 国产第一页屁屁影院| 不卡网亚洲无码| 国产高清毛片| 国产无遮挡猛进猛出免费软件| 国产精品人人做人人爽人人添| 欧洲高清无码在线| 国产在线日本| 全部免费毛片免费播放| 欧美一区二区三区国产精品| 久久99国产综合精品女同| 亚洲妓女综合网995久久 | 福利在线一区| 国产精品粉嫩| 91探花在线观看国产最新| 日韩AV无码免费一二三区| 中文字幕在线视频免费| 中文字幕亚洲精品2页| 中文字幕久久精品波多野结| 色屁屁一区二区三区视频国产| 在线观看免费国产| 美女扒开下面流白浆在线试听| 久久精品丝袜| 久久综合国产乱子免费| 1769国产精品视频免费观看| 亚洲欧洲AV一区二区三区| 香蕉eeww99国产在线观看| 97超碰精品成人国产| 精品无码视频在线观看| 亚洲伊人天堂| 久久亚洲美女精品国产精品| 美女高潮全身流白浆福利区| 在线看片中文字幕|