本站小編為你精心準(zhǔn)備了密碼SOC并行處理技術(shù)研究參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
《計(jì)算機(jī)工程與設(shè)計(jì)雜志》2014年第七期
基于共享總線的SoC提供全局物理地址空間,所有功能模塊通過共享總線進(jìn)行互連通信。典型的基于總線架構(gòu)的多引擎密碼SoC有文獻(xiàn)[4]設(shè)計(jì)的AESTHEIC。共享總線結(jié)構(gòu)簡單,易于實(shí)現(xiàn),發(fā)展成熟,具有眾多的第三方IP核支持??梢园讯鄠€(gè)密碼處理引擎的地址空間映射到主機(jī)的內(nèi)存空間或I/O空間進(jìn)行統(tǒng)一訪問。但是,采用共享總線互連方式,當(dāng)處理器數(shù)目增加且處理器間數(shù)據(jù)交換頻繁時(shí),總線競爭會(huì)造成數(shù)據(jù)通信的傳輸瓶頸。同時(shí),將產(chǎn)生主處理器負(fù)擔(dān)過重的問題。而且,當(dāng)系統(tǒng)中處理模塊和存儲(chǔ)模塊數(shù)量增多時(shí),共享總線的延遲開銷就會(huì)變的很大,限制了總線帶寬和吞吐率的提高。通過以上分析,結(jié)合兩種多引擎密碼SoC互連方式的特點(diǎn)和密碼處理引擎的的工作方式,提出了一種采用非總線的結(jié)構(gòu)互連四個(gè)密碼處理引擎,通過AMBA總線連接各功能模塊的多引擎密碼SoC并行處理架構(gòu)。該架構(gòu)在滿足功能和性能需求的前提下,有效的控制了芯片面積和功耗,降低了設(shè)計(jì)復(fù)雜度。
2多引擎密碼SoC設(shè)計(jì)
2.1多引擎密碼SoC架構(gòu)在分析多引擎密碼SoC互連結(jié)構(gòu)的基礎(chǔ)上,本文提出了一種多引擎密碼SoC并行處理架構(gòu),如圖1所示。選用AMBA(advancedmicrocontrollerbusarchitec-ture)總線連接各IP核。AMBA總線規(guī)范是ARM公司為高性能嵌入式系統(tǒng)專門設(shè)計(jì)的一種總線標(biāo)準(zhǔn)。其中,AXI總線,是一種高性能、高帶寬、低延遲的片內(nèi)總線,它的地址/控制和數(shù)據(jù)相位是分離的,支持不對(duì)齊的數(shù)據(jù)傳輸,同時(shí)在突發(fā)傳輸中,只需要首地址。支持分離的讀寫數(shù)據(jù)通道、并支持顯著傳輸訪問和亂序訪問,更加容易進(jìn)行時(shí)序收斂[7]。AXI總線上掛接有主處理器、多引擎密碼運(yùn)算模塊(MultiPE)、DMA控制器、片上存儲(chǔ)器等。APB總線用于低功耗外設(shè)的連接。主要掛接有UART接口、JTAG、看門狗等。APB總線通過一個(gè)橋接(AXI-APB-Bridge)設(shè)備與AXI總線相連。主處理器主要用來運(yùn)行操作系統(tǒng)、管理程序和用戶應(yīng)用程序,并實(shí)現(xiàn)內(nèi)部各模塊的協(xié)調(diào)與控制。DMA控制器可以不經(jīng)過主處理器直接對(duì)內(nèi)存或總線從設(shè)備進(jìn)行讀寫操作,有效的減輕了數(shù)據(jù)交換對(duì)主處理器的依賴,降低了CPU的任務(wù)負(fù)載,保證系統(tǒng)有較高的吞吐率,提高了系統(tǒng)的整體性能。多引擎密碼運(yùn)算模塊是整個(gè)芯片的運(yùn)算核心部件,包含了4個(gè)密碼處理引擎。本文采用的密碼處理引擎可以根據(jù)需求,在嵌入式主處理器的調(diào)度下,運(yùn)行不同的算法程序,完成相應(yīng)的密碼處理任務(wù)。通信接口主要有位于AXI總線上的USB接口,能夠根據(jù)特定密碼應(yīng)用協(xié)議來實(shí)現(xiàn)與外部的高速數(shù)據(jù)通信,提供高效的密碼服務(wù)功能。位于APB總線上的低速通信接口,例如UART接口、SPI接口等通信單元,可用于與外部通信設(shè)備的連接,擴(kuò)展密碼SoC芯片的功能。
2.2多引擎密碼運(yùn)算模塊設(shè)計(jì)
2.2.1多引擎密碼運(yùn)算模塊的結(jié)構(gòu)多引擎密碼運(yùn)算模塊是密碼SoC的主要部件,其設(shè)計(jì)如圖2所示。多引擎密碼運(yùn)算模塊主要由:輸入輸出接口(AXIwrapper)、數(shù)據(jù)分配控制器(inMCU)、數(shù)據(jù)接收控制器(outMCU)、多算法密碼引擎(PE)、輸入緩存(inFIFO)和輸出緩存(outFIFO)等功能單元組成。為了提高數(shù)據(jù)的傳輸效率,多引擎密碼運(yùn)算模塊采用輸入輸出相分離的結(jié)構(gòu)。給每一個(gè)PE設(shè)計(jì)有輸入緩存和輸出緩存,用于數(shù)據(jù)收發(fā)緩沖存儲(chǔ),同時(shí)由數(shù)據(jù)分配控制器和數(shù)據(jù)接收控制器對(duì)數(shù)據(jù)包進(jìn)行源、目的地址譯碼并實(shí)現(xiàn)轉(zhuǎn)發(fā),輸出端輸出的結(jié)果可以反饋給輸入端做鏈接處理。這樣就構(gòu)成了一個(gè)簡單有效的分配-接收系統(tǒng)。設(shè)計(jì)輸入緩存和輸出緩存的目的是為了匹配總線數(shù)據(jù)傳輸速率和密碼引擎數(shù)據(jù)處理速率,提高總線帶寬利用率。輸入緩存和輸出緩存的深度是影響密碼處理性能的關(guān)鍵參數(shù)。當(dāng)密碼引擎完成一個(gè)數(shù)據(jù)包的加解密任務(wù)后,總線讀取輸出緩存中的計(jì)算結(jié)果,此時(shí)希望馬上有新的待加解密數(shù)據(jù)輸入PE供其處理,從而實(shí)現(xiàn)密碼運(yùn)算的無縫鏈接,提高計(jì)算的并行性。所以,可以將PE的輸入緩存設(shè)為輸出緩存的兩倍。根據(jù)統(tǒng)計(jì),分組密碼的最大分組一般小于64x32bit,序列密碼、雜湊密碼的輸入可以是多次輸入的組合。因此輸入緩存的大小設(shè)置為128x32bit,輸出緩存的大小設(shè)置為64x32bit。
2.2.2多引擎密碼運(yùn)算模塊控制機(jī)制多個(gè)密碼引擎之間的合理調(diào)度和控制是實(shí)現(xiàn)高效并行密碼處理的關(guān)鍵。數(shù)據(jù)分配控制器和數(shù)據(jù)接收控制器是多引擎密碼運(yùn)算模塊的“控制中樞”。它們的實(shí)質(zhì)是有限狀態(tài)機(jī),用來判斷輸入\輸出端的狀態(tài)和發(fā)出讀\寫控制信號(hào)。下面以數(shù)據(jù)分配控制器的設(shè)計(jì)來說明多引擎密碼運(yùn)算模塊的控制機(jī)制。數(shù)據(jù)分配控制器的控制原理是:通過解析數(shù)據(jù)包包頭的控制信息來配置控制寄存器,使其具有不同的數(shù)據(jù)分配方式。表1列出了數(shù)據(jù)分配控制器的控制寄存器。PE1、PE2、PE3、PE4的輸入計(jì)數(shù)器用來完成進(jìn)入相應(yīng)密碼引擎數(shù)據(jù)個(gè)數(shù)的計(jì)數(shù)工作。輸入引擎選擇寄存器用來選定數(shù)據(jù)包中的數(shù)據(jù)在那幾個(gè)PE中分配。輸入模式寄存器用來說明數(shù)據(jù)在選定的PE中采用何種方式來分配,包括串行分配方式和并行分配方式。圖3是數(shù)據(jù)分配控制器狀態(tài)設(shè)計(jì)。其中,IDLE是起始狀態(tài),PE1W、PE2W、PE3W、PE4W分別是PE1、PE2、PE3、PE4的寫狀態(tài)。inMCU可以根據(jù)控制信息的不同在選定的PE組合中串行或并行的分配數(shù)據(jù)。數(shù)據(jù)分配控制器首先解析包頭、配置IN_SEL、IN_M(jìn)OD以及各個(gè)輸入計(jì)數(shù)器的初始值。然后,inMCU按照配置信息分配數(shù)據(jù),若當(dāng)前輸入計(jì)數(shù)器從初始值自減為0時(shí),會(huì)重新復(fù)位為初始值,同時(shí)inMCU選擇下一個(gè)PE寫入數(shù)據(jù)。
3多引擎密碼SoC并行處理機(jī)制設(shè)計(jì)
3.1通信數(shù)據(jù)包的設(shè)計(jì)多引擎密碼SoC是一種數(shù)據(jù)流處理系統(tǒng),針對(duì)不同密碼算法的的工作特性和多引擎密碼運(yùn)算模塊互連的特點(diǎn),密碼SoC系統(tǒng)和各PE之間采用封裝數(shù)據(jù)包的方式進(jìn)行通信。為確保通信的高效率,數(shù)據(jù)包應(yīng)采取盡量簡單的封裝格式,本文采取的數(shù)據(jù)包格式如圖4所示。數(shù)據(jù)包包頭由32位的數(shù)據(jù)組成。32位的包頭含有與此次任務(wù)相關(guān)的關(guān)鍵信息。任務(wù)編號(hào)對(duì)任務(wù)隊(duì)列按順序編號(hào),便于區(qū)分不同任務(wù);數(shù)據(jù)包大小n指本次傳輸任務(wù)包中的數(shù)據(jù)個(gè)數(shù);讀寫標(biāo)志說明該數(shù)據(jù)包的是待加/解密數(shù)據(jù)還是加/解密結(jié)果;工作模式標(biāo)識(shí)數(shù)據(jù)在PE間傳輸?shù)姆绞?,包括串行傳輸、并行傳輸和鏈接傳?種方式;PE編碼指選中哪幾個(gè)PE;數(shù)據(jù)類型說明數(shù)據(jù)是密碼運(yùn)算中的哪類數(shù)據(jù),包括指令、密鑰、IV、命令、待加/解密數(shù)據(jù)等;源PEID和目的PEID用于說明PE間數(shù)據(jù)交互時(shí)源PE和目的PE。數(shù)據(jù)分配控制器根據(jù)包頭信息的不同采取不同的處理方式。如圖5所示,數(shù)據(jù)分配控制器處理基本數(shù)據(jù)包時(shí),通過解析包頭,在選定的PE組合中串行分配數(shù)據(jù)包中的數(shù)據(jù)。處理并行數(shù)據(jù)包時(shí),數(shù)據(jù)分配控制器連續(xù)解析兩個(gè)包頭,在兩組選定的PE組合中并行分配數(shù)據(jù)。處理鏈接數(shù)據(jù)包時(shí),數(shù)據(jù)接收控制器會(huì)將包頭1所帶數(shù)據(jù)處理結(jié)果作為包頭2的輸入,反饋到輸入端供鏈接處理。數(shù)據(jù)包的這種設(shè)計(jì)滿足了加解密模式靈活多變的需求。
3.2數(shù)據(jù)分配機(jī)制數(shù)據(jù)分配機(jī)制是影響多引擎密碼運(yùn)算模塊密碼處理性能的核心因素之一,根據(jù)密碼引擎結(jié)構(gòu)、不同算法工作模式特點(diǎn)以及系統(tǒng)傳輸帶寬大小,選擇一種合適的數(shù)據(jù)分配機(jī)制可以保證各密碼引擎負(fù)載均衡,有效提高多引擎密碼SoC芯片的并行處理性能[8]。本文采用的密碼處理引擎,可以通過編寫不同的程序,靈活、高效地實(shí)現(xiàn)多種不同的密碼算法,包括分組密碼、序列密碼、雜湊函數(shù)等。針對(duì)不同的密碼算法和不同工作模式進(jìn)行并行性分析,可以得出以下3種并行工作機(jī)制。圖6是報(bào)文內(nèi)并行工作模式,它的特點(diǎn)是不同報(bào)文順序執(zhí)行,同一報(bào)文的不同分組(或數(shù)據(jù)塊)分配到不同PE中并行執(zhí)行,每個(gè)數(shù)據(jù)包在PE中的通過時(shí)間較短。這種工作模式主要適用于分組密碼ECB(electroniccodebook)工作模式、分塊的序列密碼等無反饋工作模式。圖7是一種報(bào)文間并行工作模式,它的特點(diǎn)是不同報(bào)文被分配到不同PE中并行執(zhí)行,數(shù)據(jù)包由不同報(bào)文的不同分組(數(shù)據(jù)塊)按一定順序組合而成,不同報(bào)文的數(shù)據(jù)幾乎同時(shí)到達(dá)指定PE。因?yàn)閳?bào)文與PE一一對(duì)應(yīng),所以此種工作模式幾乎適合所有密碼算法工作模式,包括分組密碼帶反饋工作模式、序列密碼、雜湊函數(shù)等。圖8是另外一種報(bào)文間并行工作模式,它假設(shè)PE內(nèi)部已經(jīng)引入了n級(jí)(圖8中為三級(jí))流水,那么同一PE中最多可以流水處理n個(gè)報(bào)文的不同分組(或數(shù)據(jù)塊)。這種工作模式提高了PE中功能模塊的利用率,在工作PE數(shù)目較少的情況下也能取得一定的并行性。圖8報(bào)文間并行2
3.3系統(tǒng)運(yùn)行流程如何合理、高效地調(diào)度各功能模塊,開發(fā)系統(tǒng)運(yùn)行流程的并行性,將直接決定多引擎密碼SoC的密碼處理性能。在單個(gè)密碼處理引擎處理性能一定的情況下,希望多個(gè)引擎并行工作來提高系統(tǒng)的吞吐率,同時(shí)希望盡量減少數(shù)據(jù)傳輸所占用的時(shí)鐘周期,使密碼SoC的吞吐率最大限度接近多引擎密碼運(yùn)算模塊的吞吐率。也就是說,在一次加解密任務(wù)當(dāng)中,若單個(gè)密碼處理引擎處理性能一定,各個(gè)引擎并行計(jì)算時(shí)間越長,或計(jì)算時(shí)間占系統(tǒng)運(yùn)行時(shí)間比例越高,那么系統(tǒng)的吞吐率就越高。圖9給出了理想情況下,系統(tǒng)并行工作的流程。如圖9所示,先利用系統(tǒng)DMA向多引擎密碼運(yùn)算模塊輸入兩個(gè)數(shù)據(jù)包,之后系統(tǒng)總線可進(jìn)行其他操作。當(dāng)PE計(jì)算完成后,向DMA發(fā)送中斷請(qǐng)求,根據(jù)中斷請(qǐng)求等級(jí)的高低,可以進(jìn)入中斷程序執(zhí)行讀操作。與此同時(shí),PE會(huì)讀取緩存中的數(shù)據(jù)包2開始下一組計(jì)算。這樣就做到了PE計(jì)算的無縫連接,最大限度的開發(fā)了輸入輸出操作與計(jì)算并行。
4系統(tǒng)綜合與仿真驗(yàn)證
為了驗(yàn)證設(shè)計(jì)的正確性、分析多引擎密碼SoC的整體性能,本文采用CMOS65nm工藝對(duì)多引擎密碼運(yùn)算模塊進(jìn)行了綜合,其時(shí)鐘頻率可以達(dá)到200MHz。為了提高系統(tǒng)傳輸效率,仿真時(shí)采用多時(shí)鐘域的設(shè)計(jì),具體設(shè)置見表2。然后搭建了驗(yàn)證測(cè)試平臺(tái),計(jì)算了它的吞吐率。將計(jì)算結(jié)果與相關(guān)設(shè)計(jì)做性能對(duì)比,并分析了他們的優(yōu)劣和造成這種差異的原因。將4個(gè)PE配置成AES算法,采用報(bào)文間并行1的工作模式。表3中列出了本設(shè)計(jì)與文獻(xiàn)[4]中提出的AES-THEIC密碼處理引擎的性能對(duì)比。將4個(gè)PE配置成SMS4算法,采用報(bào)文間并行1的工作模式。表4中列出了本設(shè)計(jì)與文獻(xiàn)[5]中提出的Soph-SEC密碼處理引擎的性能對(duì)比。通過性能對(duì)比發(fā)現(xiàn),由于AESTHEIC和SophSEC密碼處理引擎采用了專用的算法結(jié)構(gòu),對(duì)于特定算法的處理性能相對(duì)較高。而本設(shè)計(jì)基于可重構(gòu)密碼協(xié)處理器,它的特點(diǎn)在于可以根據(jù)配置信息重構(gòu)為分組、序列、雜湊、ECC等任意密碼算法,對(duì)于特定算法的針對(duì)性有待提升,吞吐率受限。針對(duì)多密碼處理引擎的情況,本設(shè)計(jì)更多的關(guān)注如何優(yōu)化數(shù)據(jù)的分配調(diào)度以及各密碼處理引擎之間的通信,因此達(dá)到了系統(tǒng)設(shè)計(jì)的目標(biāo)。
5結(jié)束語
提出了一種高效、靈活的多引擎密碼SoC并行處理構(gòu),重點(diǎn)介紹了多引擎密碼運(yùn)算模塊的設(shè)計(jì)。為了提升系統(tǒng)的處理效率,針對(duì)不同的密碼算法和不同工作模式,研究了3種并行工作機(jī)制。與同類設(shè)計(jì)相比,本文提出的多引擎密碼SoC每個(gè)引擎可以重構(gòu)為不同的密碼算法,具有更高的靈活性;數(shù)據(jù)在各引擎間分配和調(diào)度更高效,取得了較高的數(shù)據(jù)吞吐率。
作者:李軍偉戴紫彬南龍梅戴樂育李偉單位:信息工程大學(xué)