文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.05.008
中文引用格式: 趙宗國(guó),李偉,,戴紫彬,,等. 基于3D-Mesh互連網(wǎng)絡(luò)的粗粒度邏輯陣列研究[J].電子技術(shù)應(yīng)用,2016,,42(5):27-31.
英文引用格式: Zhao Zongguo,,Li Wei,Dai Zibin,,et al. Research on 3D-Mesh topology interconnection network in the coarse grained reconfigurable cryptographic logic array[J].Application of Electronic Technique,,2016,42(5):27-31.
0 引言
目前,隨著PCI-E,、USB3.0等高速接口協(xié)議的出現(xiàn),,SoC接口的數(shù)據(jù)傳輸已經(jīng)可以達(dá)到幾吉比特每秒的速率,但是原始的SoC中單核密碼處理引擎幾十兆比特每秒的處理速度已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足需求,。許多研究機(jī)構(gòu)為解決密碼處理引擎處理速度慢的問題,,提出了很多解決方案,其中可重構(gòu)多核密碼處理引擎的研究是現(xiàn)如今比較熱衷的一個(gè)方向,,但是由于隨著處理引擎核心數(shù)目的增多,,面積功耗密度急劇增大,限制了多核密碼處理引擎的處理速度,,同時(shí)也限制了多核密碼處理引擎發(fā)展速度,。
為解決限制多核密碼處理引擎發(fā)展的問題,許多研究機(jī)構(gòu)開始轉(zhuǎn)向粗粒度可重構(gòu)邏輯陣列(Coarse-Grained Reconfigurable Array,,CGRA)研究,。如圖1所示,CGRA擁有通用處理器(GPPs)的靈活性和專用集成電路(ASICs)性能的折中,。CGRA運(yùn)算單元的粒度大多按照密碼算法的數(shù)據(jù)寬度確定,,一般8 bit、16 bit,、32 bit最為常見,。CGRA中不需要大容量指令RAM存儲(chǔ)指令,不存在譯碼處理指令,,因此CGRA便能夠省去大量的讀寫RAM功耗,,在一定程度上極大地降低了功耗。并且CGRA中的硬件資源按照一定的調(diào)度適配算法進(jìn)行適配,,可以達(dá)到最高的硬件資源利用率與最優(yōu)的性能指標(biāo)?,F(xiàn)在國(guó)內(nèi)外有許多類似的研究,例如:卡內(nèi)基梅隆大學(xué)提出了基于線性陣列的可重構(gòu)系統(tǒng)PipeRench[1],;斯坦福大學(xué)開發(fā)了可重構(gòu)多媒體陣列協(xié)處理器REMARC(Reconfigurable Multimedia Array Coprocessor)[2];解放軍信息工程大學(xué)楊曉輝等人提出了基于二維陣列的可重構(gòu)密碼處理模型RCPA[3]等,。這些處理架構(gòu)都是基于同構(gòu)處理單元設(shè)計(jì),,其拓?fù)浠ミB架構(gòu)都是基于二維結(jié)構(gòu)拓?fù)浠ミB的,,這會(huì)導(dǎo)致適配時(shí)數(shù)據(jù)路徑擁堵、硬件資源利用率低等問題,。
若CGRA中可重構(gòu)處理單元采用異構(gòu)布局,,會(huì)導(dǎo)致適配時(shí)不能連續(xù)適配,降低了適配靈活性,。為解決異構(gòu)運(yùn)算單元的影響,,本文設(shè)計(jì)了一種基于3D-Mesh的異構(gòu)粗粒度可重構(gòu)邏輯陣列,其數(shù)據(jù)網(wǎng)絡(luò)吞吐率可以達(dá)到76.8 Gb/s,?;谠揑CGRA適配AES算法性能可以達(dá)到3.8 Gb/s,適配SM3算法性能可以達(dá)到5.5 Gb/s,。能夠很好地解決密碼SoC中高速接口速率高而處理引擎速率低的瓶頸,。
1 3D-Mesh拓?fù)浣Y(jié)構(gòu)
為了更好地研究拓?fù)浠ミB形式,本章首先討論了不同的拓?fù)浠ミB方案與數(shù)據(jù)路徑組織方案,,然后提出了一種快速3D-Mesh互連架構(gòu),,接下來描述了3D架構(gòu)中雙層網(wǎng)絡(luò)的設(shè)計(jì)思想與原理,最后給出了粗粒度密碼邏輯陣列的總體結(jié)構(gòu)設(shè)計(jì)方案,。
1.1 數(shù)據(jù)流組織方案研究
在現(xiàn)有的研究中,,Mesh拓?fù)溆捎谄湟?guī)整性與易擴(kuò)展性被大量采用[4]。Tour拓?fù)浣Y(jié)構(gòu)由于其具有更大的網(wǎng)絡(luò)連通性也廣受研究人員鐘愛[5],。
采用以上兩種形式互連結(jié)構(gòu)的陣列中數(shù)據(jù)處理單元(PEs)采用異構(gòu)設(shè)計(jì)會(huì)嚴(yán)重影響硬件利用率,。但是由于密碼運(yùn)算流程的特殊性,需要設(shè)計(jì)大量的可重構(gòu)配置存儲(chǔ)部件S盒(SBox),,為了縮小硬件面積,,這些存儲(chǔ)部件多是用RAM實(shí)現(xiàn),但是就算這樣,,其面積還是不可小覷,。因此這部分硬件資源不能像其他普通處理單元那樣設(shè)置比較多的數(shù)目,因此本文設(shè)計(jì)了一種異構(gòu)粗粒度密碼邏輯陣列ICGRA,。圖2為ICGRA的數(shù)據(jù)路徑流圖,,圖中的可重構(gòu)處理單元(RPE)為密碼核心運(yùn)算單元,其內(nèi)部是由4類基本的粗粒度密碼運(yùn)算單元以Crossbar全互連的形式互連而成,,可以完成密碼算法流程中的大部分計(jì)算性任務(wù),。可重構(gòu)存儲(chǔ)單元(RSE)可以配置成基本數(shù)據(jù)存儲(chǔ)部件,,存儲(chǔ)運(yùn)算過程中的輪密鑰以及輪運(yùn)算結(jié)果等數(shù)據(jù),,還可以配置完成密碼算法中的S盒運(yùn)算等查表類運(yùn)算操作。
由于S盒等查表類運(yùn)算操作在密碼流程中所占比例為25%左右,因此本文設(shè)計(jì)的ICGRA中RPE與RSE交錯(cuò)設(shè)置,,并且RPE的數(shù)量是RSE的兩倍,。這樣能夠達(dá)到最大的硬件資源利用效率。
1.2 拓?fù)溥壿嬔芯?/strong>
在現(xiàn)有的研究中,,粗粒度密碼邏輯陣列中Mesh拓?fù)浣Y(jié)構(gòu)大多是基于2維坐標(biāo)的,,Mesh網(wǎng)絡(luò)中運(yùn)算單元進(jìn)行異構(gòu)設(shè)計(jì),必須考慮解決以下問題:
(1)布線通道占用運(yùn)算單元,,降低硬件資源利用率,。如圖3所示,如果首先在L2列進(jìn)行運(yùn)算單元的適配,,接下來需要L4列硬件資源(假設(shè)L3與L4是異構(gòu)單元),,此時(shí)就必須占用L3的布線通道,導(dǎo)致L3的部分運(yùn)算單元無法使用,。
(2)增大適配軟件與適配算法的設(shè)計(jì)困難性,。由于各列相鄰的運(yùn)算單元是不同的,所以適配軟件所看到的可用資源就是不同的,,因此設(shè)計(jì)軟件和算法時(shí)就增加了極大的困難性,。
為了解決以上兩個(gè)方面的問題,本文提出了一種3D-Mesh拓?fù)浠ミB架構(gòu),。如圖3所示,,設(shè)置了上下兩層Mesh互連網(wǎng)絡(luò),兩層網(wǎng)絡(luò)在特定的數(shù)據(jù)節(jié)點(diǎn)可以進(jìn)行數(shù)據(jù)交互,。本文設(shè)計(jì)的雙層網(wǎng)絡(luò)中,,下層網(wǎng)絡(luò)為異構(gòu)Mesh網(wǎng)絡(luò),內(nèi)部包含運(yùn)算單元,、布線通道,、配置單元以及數(shù)據(jù)方向轉(zhuǎn)換單元;上層沒有運(yùn)算單元,,并且其數(shù)據(jù)方向轉(zhuǎn)換單元與配置單元數(shù)量為下層網(wǎng)絡(luò)的50%,。這樣設(shè)計(jì)可以最大程度提高網(wǎng)絡(luò)內(nèi)部異構(gòu)單元的利用率。
采用該3D拓?fù)浠ミB架構(gòu),,L1與L3,、L2與L4之間都存在快速數(shù)據(jù)交互通道,如果將L1數(shù)據(jù)交換到L3,,可以采用頂層數(shù)據(jù)交互通道,,不影響L2資源的正常使用,極大地提高了硬件資源的利用率,;其次所有的布線通道在適配軟件看來是完全相同的可用資源,,即適配軟件和適配算法設(shè)計(jì)的過程中,資源相當(dāng)于同構(gòu)存在,降低了軟件的設(shè)計(jì)困難性,。
1.3 網(wǎng)絡(luò)微結(jié)構(gòu)研究
圖4所示是本文設(shè)計(jì)的3D-Mesh拓?fù)浼軜?gòu)網(wǎng)絡(luò)微結(jié)構(gòu),。該拓?fù)渚W(wǎng)絡(luò)共有兩層,,底層是標(biāo)準(zhǔn)的Mesh拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu),,如圖4(a)所示,內(nèi)部有數(shù)據(jù)方向轉(zhuǎn)換單元和數(shù)據(jù)計(jì)算單元,。上層是數(shù)據(jù)通道層,,如圖4(b)所示,有隔行或列的快速數(shù)據(jù)交換通道,,能夠完成數(shù)據(jù)的快速交換且不占用計(jì)算單元周邊的數(shù)據(jù)交換通道,。
兩層網(wǎng)絡(luò)可以靠雙層網(wǎng)絡(luò)連接點(diǎn)電路進(jìn)行數(shù)據(jù)交換,如圖4(c)所示,。底層對(duì)應(yīng)位置的CB結(jié)構(gòu)增加一個(gè)輸出端口,,通過雙層網(wǎng)絡(luò)連接點(diǎn)連接至對(duì)應(yīng)頂層CB一個(gè)輸入端口。頂層CB輸出的數(shù)據(jù)通過雙層網(wǎng)絡(luò)連接點(diǎn)接至RPE(或RSE)的數(shù)據(jù)層數(shù)據(jù)選擇器的輸入端,,選擇之后再進(jìn)入RPE(或RSE),。因此每一個(gè)RPE(或RSE)數(shù)據(jù)輸入來源雖然增加了,但是其輸入端口并沒有增多,。設(shè)計(jì)適配軟件和適配算法時(shí),,僅是增加了可利用的數(shù)據(jù)通路資源,并不會(huì)增加設(shè)計(jì)復(fù)雜度,。
在進(jìn)行陣列設(shè)計(jì)時(shí),,充分考慮了其易擴(kuò)展性,底層Mesh網(wǎng)絡(luò)設(shè)計(jì)時(shí)進(jìn)行了方向無差別設(shè)計(jì),,即底層網(wǎng)絡(luò)中任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)(除陣列邊緣)可以與其上,、下、左,、右任意方向的相鄰節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互,。特別設(shè)計(jì)了如圖4(d)所示的SB(Switch Box)數(shù)據(jù)方向轉(zhuǎn)換節(jié)點(diǎn),可完成任意方向輸入數(shù)據(jù)向其它3個(gè)方向進(jìn)行數(shù)據(jù)分配的功能,。
1.4 陣列架構(gòu)研究
基于前文設(shè)計(jì)的3D-Mesh網(wǎng)絡(luò)結(jié)構(gòu),,設(shè)計(jì)了如圖5所示的粗粒度密碼邏輯陣列結(jié)構(gòu)。為了充分發(fā)揮3D-Mesh網(wǎng)絡(luò)結(jié)構(gòu)的靈活性以及其計(jì)算單元的性能優(yōu)勢(shì),。必須有一個(gè)合理的粗粒度陣列架構(gòu)支撐,。
(1)動(dòng)態(tài)配置信息切換機(jī)制
在設(shè)計(jì)粗粒度密碼邏輯陣列架構(gòu)的過程中,設(shè)計(jì)了分頁(yè)式的配置信息存儲(chǔ)結(jié)構(gòu):Conf.reg0和Conf.reg1,,可支持配置信息動(dòng)態(tài)切換,。兩頁(yè)配置存儲(chǔ)結(jié)構(gòu)中的配置信息互不影響,在一頁(yè)配置信息應(yīng)用時(shí),另一頁(yè)可以更換,。根據(jù)適配算法由主控制器MCU動(dòng)態(tài)選擇所需要的配置頁(yè)面,,并將其內(nèi)部配置信息寫入到3D-Mesh網(wǎng)絡(luò)結(jié)構(gòu)中,完成硬件結(jié)構(gòu)動(dòng)態(tài)重組,。
(2)分離式節(jié)點(diǎn)控制網(wǎng)絡(luò)
由于3D-Mesh拓?fù)渚W(wǎng)絡(luò)中的數(shù)據(jù)方向控制節(jié)點(diǎn)分立于網(wǎng)絡(luò)中,,通過配置可以完成數(shù)據(jù)方向的改變,但是密碼算法的典型特征就是輪運(yùn)算形式,。通常一輪運(yùn)算中硬件結(jié)構(gòu)是不需要改變的,,且循環(huán)迭代多輪,如何實(shí)現(xiàn)輪數(shù)控制,,這在3D-Mesh數(shù)據(jù)網(wǎng)絡(luò)中是不能完成的,。基于此,,本文為3D-Mesh數(shù)據(jù)網(wǎng)絡(luò)上層特別設(shè)計(jì)了一層分立式節(jié)點(diǎn)控制網(wǎng)絡(luò),。其可以完成輪數(shù)計(jì)數(shù)、比較,、判斷等控制性操作,。由于該層控制結(jié)構(gòu)獨(dú)立于數(shù)據(jù)網(wǎng)絡(luò),并且分立式設(shè)置,,因此更大地增加了數(shù)據(jù)網(wǎng)絡(luò)的靈活性,。
2 路由算法研究
本文設(shè)計(jì)時(shí),對(duì)提出的3D-Mesh網(wǎng)絡(luò)理論上進(jìn)行了合理性分析與論證,。但要想能夠發(fā)揮架構(gòu)的性能,,還需要一種合理的適配路由機(jī)制?;诖?,本文針對(duì)提出的3D-Mesh拓?fù)渚W(wǎng)絡(luò),設(shè)計(jì)了一種硬件資源尋路適配算法,,如表1所示,。
在使用算法1進(jìn)行算法適配時(shí),如果數(shù)據(jù)需要隔行或列跳轉(zhuǎn),,如圖6中所示,,從R1直接跳至R3。此時(shí)有兩條可用選擇路徑,,其中路徑A為:R1→C1→C2→C3→R3,;另一條路徑B為:R1→C1→C4→C5→C3→R3。雖然路徑B經(jīng)過4個(gè)CB節(jié)點(diǎn),,而路徑A只經(jīng)過3個(gè)CB節(jié)點(diǎn),,但是路由算法還是會(huì)選擇路徑B,。因?yàn)槁窂紸中C1、C2,、C3都是直接與RPE(或RSE)相連接的CB節(jié)點(diǎn),,其路徑長(zhǎng)度為3,路徑B中只有C1和C3是直接與RPE(或RSE)相連接的CB節(jié)點(diǎn),,其路徑長(zhǎng)度為2,,所以從此處看來路徑B相比于A為最短路徑。
3 性能分析與對(duì)比
表2描述了本文設(shè)計(jì)的3D-Mesh拓?fù)浣Y(jié)構(gòu)與相關(guān)的文獻(xiàn)中的Mesh(或Tours)拓?fù)浣Y(jié)構(gòu)在粗粒度邏輯陣列中應(yīng)用的對(duì)比,。由于拓?fù)溥壿嫿Y(jié)構(gòu)不同,,尋找相同的對(duì)照點(diǎn)是非常困難的。表2中展示了一些相似的關(guān)鍵性能參數(shù),。由于不同設(shè)計(jì)所采用的工藝不同,且針對(duì)領(lǐng)域和功能單元數(shù)量不同,,設(shè)計(jì)總面積沒有可比性,。但是通過表中數(shù)據(jù)可以看出,本文設(shè)計(jì)的3D-Mesh互連網(wǎng)絡(luò)所占整個(gè)ICGRA面積的3.8%,,比文獻(xiàn)[7]中2D-Mesh的7%節(jié)省一半,。功耗評(píng)估結(jié)果顯示,互連網(wǎng)絡(luò)占ICGRA總功耗的2.8%,,相比同類設(shè)計(jì),,網(wǎng)絡(luò)功耗所占比例也大幅度降低。在300 MHz系統(tǒng)時(shí)鐘主頻下,,對(duì)網(wǎng)絡(luò)數(shù)據(jù)吞吐率進(jìn)行了評(píng)估,,可以達(dá)到76.8 Gb/s。因?yàn)楸疚闹胁捎昧藙?dòng)態(tài)重構(gòu)設(shè)計(jì),,可以支持系統(tǒng)運(yùn)行時(shí)重構(gòu),,且重構(gòu)僅用5個(gè)系統(tǒng)時(shí)鐘周期左右,是文獻(xiàn)[5]動(dòng)態(tài)重構(gòu)速度的2倍,,是文獻(xiàn)[6]重構(gòu)速度的60倍,。
4 總結(jié)
本文針對(duì)粗粒度可重構(gòu)邏輯陣列提出了一種3D-Mesh拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu),通過與相關(guān)設(shè)計(jì)進(jìn)行對(duì)比,,可以看出該ICGRA具有更高的數(shù)據(jù)吞吐率和更低的功耗,,且其支持動(dòng)態(tài)可重構(gòu)配置,配置速率相比于同類設(shè)計(jì)提高2倍~60倍,。在SoC系統(tǒng)設(shè)計(jì)中,,非常適合內(nèi)部嵌入該ICGRA,打破了密碼SoC中接口速率快而處理引擎速率低下的瓶頸,。
參考文獻(xiàn)
[1] GOLDSTEIN S C.PipeRench:A coprocessor for streaming multimedia acceleration[C].Proc.of the 26th Annual Int’l Symp.on Conputer Architecture,,IEEE CS Press,,Los Atlamtos,Calif.2000.
[2] MIYAMORI T,,OLUKOTUN K.REMARC:Recongurable multimedia array coprocessor[C].IEICE Trans,,Information System,1999:389-397.
[3] 楊曉輝.面向分組密碼處理的可重構(gòu)設(shè)計(jì)技術(shù)研究[D].鄭州:解放軍信息工程大學(xué),,2007.
[4] Kunjan Patel.SYSCORE:A coarse grained reconfigurable array architecture for low energy biosignal processing[J].IEEE International Symposium on Field-Programmable Custom Computing Machines,,2011:109-112.
[5] PHAM P H.An on-chip network fabric supporting coarse-grained processor array[J].IEEE T ransactions on very large scale integration(VLSI) systems,2013:178-182.
[6] ROSSI D,,CAMPI F,,SPOLZINO S,et al.A heterogeneous digital signal processor for dynamically reconfigurable computing[J].IEEE J.Solid-State Circuits,,2010,,45(8):1615-1626.
[7] TRUONG D N,CHENG W H,,MOHSENIN T,,et al.A 167-Processor computational platform in 65 nm CMOS[J].Solid-State Circuits,IEEE Journal of,,2009,,44(4):1130-1144.