亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        宮 健,裴煥斗,唐道光

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

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

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

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

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

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

        圖1 整體設(shè)計框圖

        1.1 處理器核設(shè)計

        1.1.1 流水線設(shè)計

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

        圖2 流水線時空圖

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

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

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

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

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

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

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

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

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

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

        圖4 定向前推過程

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

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

        1.2 外設(shè)接口設(shè)計

        該設(shè)計外設(shè)部分通過SPI 接口外接密碼模塊,支持可信標準SM3 算法,具有可移植性強的優(yōu)點。密碼模塊完成SM3算法的執(zhí)行及計算結(jié)果的比對功能,最終通過可信主動控制邏輯實現(xiàn)對電源接口和IO接口的控制,完成對外部可信設(shè)備的控制與度量。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 算法是我國自主設(shè)計的密碼算法,安全性高,全稱為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 仿真驗證

        設(shè)計完成后,對處理器進行指令驗證。通過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é)果均與預(yù)期一致,處理器功能正常[16]。部分仿真波形如圖7所示。

        圖7 仿真結(jié)果

        3 FPGA原型驗證

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

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

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

        4 結(jié)論

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

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

        猜你喜歡
        指令設(shè)計
        聽我指令:大催眠術(shù)
        何為設(shè)計的守護之道?
        《豐收的喜悅展示設(shè)計》
        流行色(2020年1期)2020-04-28 11:16:38
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        瞞天過?!律O(shè)計萌到家
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        殺毒軟件中指令虛擬機的脆弱性分析
        一種基于滑窗的余度指令判別算法
        胳膊肘上有白色的小疙瘩| 正在播放东北夫妻内射| 国产内射性高湖| 亚洲人成18禁网站| 男的和女的打扑克的视频| 男人天堂这里只有精品| 麻豆国产在线精品国偷产拍| 熟女性饥渴一区二区三区| 久久精品中文字幕亚洲| 亚洲国产精品国自产拍性色| 欧美大屁股xxxx高跟欧美黑人| 日本一区午夜艳熟免费| 九月色婷婷免费| 与最丰满美女老师爱爱视频| 精品久久久无码人妻中文字幕豆芽| 国内揄拍国内精品少妇国语| 色偷偷亚洲第一综合网| 精品一区二区av在线| 无码视频在线观看| 欧美日韩亚洲精品瑜伽裤| 日本女优一区二区在线免费观看| 亚洲精品国产成人久久av| 亚洲国产av玩弄放荡人妇系列 | 精品国产综合区久久久久久 | 亚洲色欲色欲综合网站| 亚洲 无码 制服 丝袜 自拍| 高清不卡av在线播放| 人人妻人人做人人爽| 国产熟妇搡bbbb搡bbbb搡| 国产一区二区精品网站看黄| 美女视频一区二区三区在线| 午夜福利试看120秒体验区| 国产精品久久码一区二区| 久久精品亚洲成在人线av| 精品精品国产高清a毛片| 双乳被一左一右吃着动态图| 中文亚洲AV片在线观看无码| 国产白色视频在线观看| 狠狠综合久久av一区二区 | 国产日产一区二区三区四区五区| 精品淑女少妇av久久免费|