美章網 資料文庫 密碼SOC并行處理技術研究范文

    密碼SOC并行處理技術研究范文

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

    密碼SOC并行處理技術研究

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

    1多引擎密碼soc互連結構分析

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

    2多引擎密碼SoC設計

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

    2.2多引擎密碼運算模塊設計

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

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

    3多引擎密碼SoC并行處理機制設計

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

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

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

    4系統綜合與仿真驗證

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

    5結束語

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

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

    主站蜘蛛池模板: 中文字幕久久亚洲一区 | 国模视频一区二区| 在线播放偷拍一区精品| 男人免费视频一区二区在线观看| 精品亚洲综合在线第一区| 免费无码A片一区二三区| 亚洲一区二区三区夜色 | 亚洲国产系列一区二区三区| 国产麻豆精品一区二区三区v视界| 国产成人无码精品一区不卡| 在线成人一区二区| 亚洲大尺度无码无码专线一区| 无码人妻精品一区二区三| 久久久久一区二区三区| 亲子乱AV视频一区二区| 国偷自产av一区二区三区| 一区二区三区杨幂在线观看| 午夜精品一区二区三区在线观看| 天美传媒一区二区三区| 国精产品一区一区三区MBA下载 | 人妻精品无码一区二区三区| 国产成人久久精品区一区二区| 久久久久人妻一区精品性色av| 青青青国产精品一区二区| 精品人妻中文av一区二区三区| 精品一区二区三区免费毛片爱| 亚洲一区二区成人| 亚洲一区精彩视频| 韩国精品一区二区三区无码视频| 日韩在线视频一区| 一区二区三区视频在线播放| 久久免费视频一区| 成人精品一区二区三区不卡免费看| 中文字幕一区二区免费| 亚洲AV无码一区二区二三区软件| 人体内射精一区二区三区| 亚洲日韩AV无码一区二区三区人 | 国产一区二区福利| 亚洲午夜电影一区二区三区| 久久久国产精品无码一区二区三区| 无码人妻一区二区三区兔费 |