美章網(wǎng) 資料文庫 密碼SOC并行處理技術(shù)研究范文

密碼SOC并行處理技術(shù)研究范文

本站小編為你精心準(zhǔn)備了密碼SOC并行處理技術(shù)研究參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

密碼SOC并行處理技術(shù)研究

《計算機工程與設(shè)計雜志》2014年第七期

1多引擎密碼soc互連結(jié)構(gòu)分析

基于共享總線的SoC提供全局物理地址空間,所有功能模塊通過共享總線進行互連通信。典型的基于總線架構(gòu)的多引擎密碼SoC有文獻[4]設(shè)計的AESTHEIC。共享總線結(jié)構(gòu)簡單,易于實現(xiàn),發(fā)展成熟,具有眾多的第三方IP核支持。可以把多個密碼處理引擎的地址空間映射到主機的內(nèi)存空間或I/O空間進行統(tǒng)一訪問。但是,采用共享總線互連方式,當(dāng)處理器數(shù)目增加且處理器間數(shù)據(jù)交換頻繁時,總線競爭會造成數(shù)據(jù)通信的傳輸瓶頸。同時,將產(chǎn)生主處理器負擔(dān)過重的問題。而且,當(dāng)系統(tǒng)中處理模塊和存儲模塊數(shù)量增多時,共享總線的延遲開銷就會變的很大,限制了總線帶寬和吞吐率的提高。通過以上分析,結(jié)合兩種多引擎密碼SoC互連方式的特點和密碼處理引擎的的工作方式,提出了一種采用非總線的結(jié)構(gòu)互連四個密碼處理引擎,通過AMBA總線連接各功能模塊的多引擎密碼SoC并行處理架構(gòu)。該架構(gòu)在滿足功能和性能需求的前提下,有效的控制了芯片面積和功耗,降低了設(shè)計復(fù)雜度。

2多引擎密碼SoC設(shè)計

2.1多引擎密碼SoC架構(gòu)在分析多引擎密碼SoC互連結(jié)構(gòu)的基礎(chǔ)上,本文提出了一種多引擎密碼SoC并行處理架構(gòu),如圖1所示。選用AMBA(advancedmicrocontrollerbusarchitec-ture)總線連接各IP核。AMBA總線規(guī)范是ARM公司為高性能嵌入式系統(tǒng)專門設(shè)計的一種總線標(biāo)準(zhǔn)。其中,AXI總線,是一種高性能、高帶寬、低延遲的片內(nèi)總線,它的地址/控制和數(shù)據(jù)相位是分離的,支持不對齊的數(shù)據(jù)傳輸,同時在突發(fā)傳輸中,只需要首地址。支持分離的讀寫數(shù)據(jù)通道、并支持顯著傳輸訪問和亂序訪問,更加容易進行時序收斂[7]。AXI總線上掛接有主處理器、多引擎密碼運算模塊(MultiPE)、DMA控制器、片上存儲器等。APB總線用于低功耗外設(shè)的連接。主要掛接有UART接口、JTAG、看門狗等。APB總線通過一個橋接(AXI-APB-Bridge)設(shè)備與AXI總線相連。主處理器主要用來運行操作系統(tǒng)、管理程序和用戶應(yīng)用程序,并實現(xiàn)內(nèi)部各模塊的協(xié)調(diào)與控制。DMA控制器可以不經(jīng)過主處理器直接對內(nèi)存或總線從設(shè)備進行讀寫操作,有效的減輕了數(shù)據(jù)交換對主處理器的依賴,降低了CPU的任務(wù)負載,保證系統(tǒng)有較高的吞吐率,提高了系統(tǒng)的整體性能。多引擎密碼運算模塊是整個芯片的運算核心部件,包含了4個密碼處理引擎。本文采用的密碼處理引擎可以根據(jù)需求,在嵌入式主處理器的調(diào)度下,運行不同的算法程序,完成相應(yīng)的密碼處理任務(wù)。通信接口主要有位于AXI總線上的USB接口,能夠根據(jù)特定密碼應(yīng)用協(xié)議來實現(xiàn)與外部的高速數(shù)據(jù)通信,提供高效的密碼服務(wù)功能。位于APB總線上的低速通信接口,例如UART接口、SPI接口等通信單元,可用于與外部通信設(shè)備的連接,擴展密碼SoC芯片的功能。

2.2多引擎密碼運算模塊設(shè)計

2.2.1多引擎密碼運算模塊的結(jié)構(gòu)多引擎密碼運算模塊是密碼SoC的主要部件,其設(shè)計如圖2所示。多引擎密碼運算模塊主要由:輸入輸出接口(AXIwrapper)、數(shù)據(jù)分配控制器(inMCU)、數(shù)據(jù)接收控制器(outMCU)、多算法密碼引擎(PE)、輸入緩存(inFIFO)和輸出緩存(outFIFO)等功能單元組成。為了提高數(shù)據(jù)的傳輸效率,多引擎密碼運算模塊采用輸入輸出相分離的結(jié)構(gòu)。給每一個PE設(shè)計有輸入緩存和輸出緩存,用于數(shù)據(jù)收發(fā)緩沖存儲,同時由數(shù)據(jù)分配控制器和數(shù)據(jù)接收控制器對數(shù)據(jù)包進行源、目的地址譯碼并實現(xiàn)轉(zhuǎn)發(fā),輸出端輸出的結(jié)果可以反饋給輸入端做鏈接處理。這樣就構(gòu)成了一個簡單有效的分配-接收系統(tǒng)。設(shè)計輸入緩存和輸出緩存的目的是為了匹配總線數(shù)據(jù)傳輸速率和密碼引擎數(shù)據(jù)處理速率,提高總線帶寬利用率。輸入緩存和輸出緩存的深度是影響密碼處理性能的關(guān)鍵參數(shù)。當(dāng)密碼引擎完成一個數(shù)據(jù)包的加解密任務(wù)后,總線讀取輸出緩存中的計算結(jié)果,此時希望馬上有新的待加解密數(shù)據(jù)輸入PE供其處理,從而實現(xiàn)密碼運算的無縫鏈接,提高計算的并行性。所以,可以將PE的輸入緩存設(shè)為輸出緩存的兩倍。根據(jù)統(tǒng)計,分組密碼的最大分組一般小于64x32bit,序列密碼、雜湊密碼的輸入可以是多次輸入的組合。因此輸入緩存的大小設(shè)置為128x32bit,輸出緩存的大小設(shè)置為64x32bit。

2.2.2多引擎密碼運算模塊控制機制多個密碼引擎之間的合理調(diào)度和控制是實現(xiàn)高效并行密碼處理的關(guān)鍵。數(shù)據(jù)分配控制器和數(shù)據(jù)接收控制器是多引擎密碼運算模塊的“控制中樞”。它們的實質(zhì)是有限狀態(tài)機,用來判斷輸入\輸出端的狀態(tài)和發(fā)出讀\寫控制信號。下面以數(shù)據(jù)分配控制器的設(shè)計來說明多引擎密碼運算模塊的控制機制。數(shù)據(jù)分配控制器的控制原理是:通過解析數(shù)據(jù)包包頭的控制信息來配置控制寄存器,使其具有不同的數(shù)據(jù)分配方式。表1列出了數(shù)據(jù)分配控制器的控制寄存器。PE1、PE2、PE3、PE4的輸入計數(shù)器用來完成進入相應(yīng)密碼引擎數(shù)據(jù)個數(shù)的計數(shù)工作。輸入引擎選擇寄存器用來選定數(shù)據(jù)包中的數(shù)據(jù)在那幾個PE中分配。輸入模式寄存器用來說明數(shù)據(jù)在選定的PE中采用何種方式來分配,包括串行分配方式和并行分配方式。圖3是數(shù)據(jù)分配控制器狀態(tài)設(shè)計。其中,IDLE是起始狀態(tài),PE1W、PE2W、PE3W、PE4W分別是PE1、PE2、PE3、PE4的寫狀態(tài)。inMCU可以根據(jù)控制信息的不同在選定的PE組合中串行或并行的分配數(shù)據(jù)。數(shù)據(jù)分配控制器首先解析包頭、配置IN_SEL、IN_MOD以及各個輸入計數(shù)器的初始值。然后,inMCU按照配置信息分配數(shù)據(jù),若當(dāng)前輸入計數(shù)器從初始值自減為0時,會重新復(fù)位為初始值,同時inMCU選擇下一個PE寫入數(shù)據(jù)。

3多引擎密碼SoC并行處理機制設(shè)計

3.1通信數(shù)據(jù)包的設(shè)計多引擎密碼SoC是一種數(shù)據(jù)流處理系統(tǒng),針對不同密碼算法的的工作特性和多引擎密碼運算模塊互連的特點,密碼SoC系統(tǒng)和各PE之間采用封裝數(shù)據(jù)包的方式進行通信。為確保通信的高效率,數(shù)據(jù)包應(yīng)采取盡量簡單的封裝格式,本文采取的數(shù)據(jù)包格式如圖4所示。數(shù)據(jù)包包頭由32位的數(shù)據(jù)組成。32位的包頭含有與此次任務(wù)相關(guān)的關(guān)鍵信息。任務(wù)編號對任務(wù)隊列按順序編號,便于區(qū)分不同任務(wù);數(shù)據(jù)包大小n指本次傳輸任務(wù)包中的數(shù)據(jù)個數(shù);讀寫標(biāo)志說明該數(shù)據(jù)包的是待加/解密數(shù)據(jù)還是加/解密結(jié)果;工作模式標(biāo)識數(shù)據(jù)在PE間傳輸?shù)姆绞剑ù袀鬏敗⒉⑿袀鬏敽玩溄觽鬏?種方式;PE編碼指選中哪幾個PE;數(shù)據(jù)類型說明數(shù)據(jù)是密碼運算中的哪類數(shù)據(jù),包括指令、密鑰、IV、命令、待加/解密數(shù)據(jù)等;源PEID和目的PEID用于說明PE間數(shù)據(jù)交互時源PE和目的PE。數(shù)據(jù)分配控制器根據(jù)包頭信息的不同采取不同的處理方式。如圖5所示,數(shù)據(jù)分配控制器處理基本數(shù)據(jù)包時,通過解析包頭,在選定的PE組合中串行分配數(shù)據(jù)包中的數(shù)據(jù)。處理并行數(shù)據(jù)包時,數(shù)據(jù)分配控制器連續(xù)解析兩個包頭,在兩組選定的PE組合中并行分配數(shù)據(jù)。處理鏈接數(shù)據(jù)包時,數(shù)據(jù)接收控制器會將包頭1所帶數(shù)據(jù)處理結(jié)果作為包頭2的輸入,反饋到輸入端供鏈接處理。數(shù)據(jù)包的這種設(shè)計滿足了加解密模式靈活多變的需求。

3.2數(shù)據(jù)分配機制數(shù)據(jù)分配機制是影響多引擎密碼運算模塊密碼處理性能的核心因素之一,根據(jù)密碼引擎結(jié)構(gòu)、不同算法工作模式特點以及系統(tǒng)傳輸帶寬大小,選擇一種合適的數(shù)據(jù)分配機制可以保證各密碼引擎負載均衡,有效提高多引擎密碼SoC芯片的并行處理性能[8]。本文采用的密碼處理引擎,可以通過編寫不同的程序,靈活、高效地實現(xiàn)多種不同的密碼算法,包括分組密碼、序列密碼、雜湊函數(shù)等。針對不同的密碼算法和不同工作模式進行并行性分析,可以得出以下3種并行工作機制。圖6是報文內(nèi)并行工作模式,它的特點是不同報文順序執(zhí)行,同一報文的不同分組(或數(shù)據(jù)塊)分配到不同PE中并行執(zhí)行,每個數(shù)據(jù)包在PE中的通過時間較短。這種工作模式主要適用于分組密碼ECB(electroniccodebook)工作模式、分塊的序列密碼等無反饋工作模式。圖7是一種報文間并行工作模式,它的特點是不同報文被分配到不同PE中并行執(zhí)行,數(shù)據(jù)包由不同報文的不同分組(數(shù)據(jù)塊)按一定順序組合而成,不同報文的數(shù)據(jù)幾乎同時到達指定PE。因為報文與PE一一對應(yīng),所以此種工作模式幾乎適合所有密碼算法工作模式,包括分組密碼帶反饋工作模式、序列密碼、雜湊函數(shù)等。圖8是另外一種報文間并行工作模式,它假設(shè)PE內(nèi)部已經(jīng)引入了n級(圖8中為三級)流水,那么同一PE中最多可以流水處理n個報文的不同分組(或數(shù)據(jù)塊)。這種工作模式提高了PE中功能模塊的利用率,在工作PE數(shù)目較少的情況下也能取得一定的并行性。圖8報文間并行2

3.3系統(tǒng)運行流程如何合理、高效地調(diào)度各功能模塊,開發(fā)系統(tǒng)運行流程的并行性,將直接決定多引擎密碼SoC的密碼處理性能。在單個密碼處理引擎處理性能一定的情況下,希望多個引擎并行工作來提高系統(tǒng)的吞吐率,同時希望盡量減少數(shù)據(jù)傳輸所占用的時鐘周期,使密碼SoC的吞吐率最大限度接近多引擎密碼運算模塊的吞吐率。也就是說,在一次加解密任務(wù)當(dāng)中,若單個密碼處理引擎處理性能一定,各個引擎并行計算時間越長,或計算時間占系統(tǒng)運行時間比例越高,那么系統(tǒng)的吞吐率就越高。圖9給出了理想情況下,系統(tǒng)并行工作的流程。如圖9所示,先利用系統(tǒng)DMA向多引擎密碼運算模塊輸入兩個數(shù)據(jù)包,之后系統(tǒng)總線可進行其他操作。當(dāng)PE計算完成后,向DMA發(fā)送中斷請求,根據(jù)中斷請求等級的高低,可以進入中斷程序執(zhí)行讀操作。與此同時,PE會讀取緩存中的數(shù)據(jù)包2開始下一組計算。這樣就做到了PE計算的無縫連接,最大限度的開發(fā)了輸入輸出操作與計算并行。

4系統(tǒng)綜合與仿真驗證

為了驗證設(shè)計的正確性、分析多引擎密碼SoC的整體性能,本文采用CMOS65nm工藝對多引擎密碼運算模塊進行了綜合,其時鐘頻率可以達到200MHz。為了提高系統(tǒng)傳輸效率,仿真時采用多時鐘域的設(shè)計,具體設(shè)置見表2。然后搭建了驗證測試平臺,計算了它的吞吐率。將計算結(jié)果與相關(guān)設(shè)計做性能對比,并分析了他們的優(yōu)劣和造成這種差異的原因。將4個PE配置成AES算法,采用報文間并行1的工作模式。表3中列出了本設(shè)計與文獻[4]中提出的AES-THEIC密碼處理引擎的性能對比。將4個PE配置成SMS4算法,采用報文間并行1的工作模式。表4中列出了本設(shè)計與文獻[5]中提出的Soph-SEC密碼處理引擎的性能對比。通過性能對比發(fā)現(xiàn),由于AESTHEIC和SophSEC密碼處理引擎采用了專用的算法結(jié)構(gòu),對于特定算法的處理性能相對較高。而本設(shè)計基于可重構(gòu)密碼協(xié)處理器,它的特點在于可以根據(jù)配置信息重構(gòu)為分組、序列、雜湊、ECC等任意密碼算法,對于特定算法的針對性有待提升,吞吐率受限。針對多密碼處理引擎的情況,本設(shè)計更多的關(guān)注如何優(yōu)化數(shù)據(jù)的分配調(diào)度以及各密碼處理引擎之間的通信,因此達到了系統(tǒng)設(shè)計的目標(biāo)。

5結(jié)束語

提出了一種高效、靈活的多引擎密碼SoC并行處理構(gòu),重點介紹了多引擎密碼運算模塊的設(shè)計。為了提升系統(tǒng)的處理效率,針對不同的密碼算法和不同工作模式,研究了3種并行工作機制。與同類設(shè)計相比,本文提出的多引擎密碼SoC每個引擎可以重構(gòu)為不同的密碼算法,具有更高的靈活性;數(shù)據(jù)在各引擎間分配和調(diào)度更高效,取得了較高的數(shù)據(jù)吞吐率。

作者:李軍偉戴紫彬南龍梅戴樂育李偉單位:信息工程大學(xué)

主站蜘蛛池模板: 动漫成年美女黄漫网站国产| 久热中文字幕在线精品首页| 网站正能量www正能量视频| 国产私人尤物无码不卡| a级国产乱理伦片在线播放| 成年人在线免费观看视频网站| 乱中年女人伦av三区| 欧美日韩一区二区视频图片| 免费在线观看a视频| 中文字幕乱码无码人妻系列蜜桃| 李老汉的性生生活2| 亚洲第一页综合图片自拍| 精品亚洲麻豆1区2区3区| 国产一级免费片| 91久久打屁股调教网站| 国产精品亚洲一区二区无码 | 中文字幕免费播放| 激情内射亚洲一区二区三区 | 精品久久久一二三区| 国产一区二区在线|播放| 久久精品国产亚洲AV香蕉| а√在线地址最新版| 日本不卡免费新一二三区| 亚洲av无码一区二区三区在线播放| 欧美金发大战黑人wideo| 交换交换乱杂烩系列yy| 精品中文字幕在线| 又色又污又黄无遮挡的免费视| 蜜桃成熟时33d在线| 天堂在线免费观看mv| 一本色道久久88亚洲精品综合| 扒开双腿猛进入喷水免费视频 | 日韩人妻无码精品无码中文字幕| 亚洲丁香婷婷综合久久| 欧美性色欧美a在线播放| 亚洲爆乳精品无码一区二区| 玉蒲团之偷情宝鉴电影| 国产单亲乱l仑视频在线观看| 国产4tube在线播放| 国产男人的天堂| 亚洲综合色区中文字幕|