文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.05.008
中文引用格式: 趙宗國,李偉,戴紫彬,等. 基于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)可以達到幾吉比特每秒的速率,但是原始的SoC中單核密碼處理引擎幾十兆比特每秒的處理速度已經(jīng)遠遠不能滿足需求。許多研究機構(gòu)為解決密碼處理引擎處理速度慢的問題,提出了很多解決方案,其中可重構(gòu)多核密碼處理引擎的研究是現(xiàn)如今比較熱衷的一個方向,但是由于隨著處理引擎核心數(shù)目的增多,面積功耗密度急劇增大,限制了多核密碼處理引擎的處理速度,同時也限制了多核密碼處理引擎發(fā)展速度。
為解決限制多核密碼處理引擎發(fā)展的問題,許多研究機構(gòu)開始轉(zhuǎn)向粗粒度可重構(gòu)邏輯陣列(Coarse-Grained Reconfigurable Array,CGRA)研究。如圖1所示,CGRA擁有通用處理器(GPPs)的靈活性和專用集成電路(ASICs)性能的折中。CGRA運算單元的粒度大多按照密碼算法的數(shù)據(jù)寬度確定,一般8 bit、16 bit、32 bit最為常見。CGRA中不需要大容量指令RAM存儲指令,不存在譯碼處理指令,因此CGRA便能夠省去大量的讀寫RAM功耗,在一定程度上極大地降低了功耗。并且CGRA中的硬件資源按照一定的調(diào)度適配算法進行適配,可以達到最高的硬件資源利用率與最優(yōu)的性能指標?,F(xiàn)在國內(nèi)外有許多類似的研究,例如:卡內(nèi)基梅隆大學提出了基于線性陣列的可重構(gòu)系統(tǒng)PipeRench[1];斯坦福大學開發(fā)了可重構(gòu)多媒體陣列協(xié)處理器REMARC(Reconfigurable Multimedia Array Coprocessor)[2];解放軍信息工程大學楊曉輝等人提出了基于二維陣列的可重構(gòu)密碼處理模型RCPA[3]等。這些處理架構(gòu)都是基于同構(gòu)處理單元設(shè)計,其拓撲互連架構(gòu)都是基于二維結(jié)構(gòu)拓撲互連的,這會導致適配時數(shù)據(jù)路徑擁堵、硬件資源利用率低等問題。
若CGRA中可重構(gòu)處理單元采用異構(gòu)布局,會導致適配時不能連續(xù)適配,降低了適配靈活性。為解決異構(gòu)運算單元的影響,本文設(shè)計了一種基于3D-Mesh的異構(gòu)粗粒度可重構(gòu)邏輯陣列,其數(shù)據(jù)網(wǎng)絡(luò)吞吐率可以達到76.8 Gb/s?;谠揑CGRA適配AES算法性能可以達到3.8 Gb/s,適配SM3算法性能可以達到5.5 Gb/s。能夠很好地解決密碼SoC中高速接口速率高而處理引擎速率低的瓶頸。
1 3D-Mesh拓撲結(jié)構(gòu)
為了更好地研究拓撲互連形式,本章首先討論了不同的拓撲互連方案與數(shù)據(jù)路徑組織方案,然后提出了一種快速3D-Mesh互連架構(gòu),接下來描述了3D架構(gòu)中雙層網(wǎng)絡(luò)的設(shè)計思想與原理,最后給出了粗粒度密碼邏輯陣列的總體結(jié)構(gòu)設(shè)計方案。
1.1 數(shù)據(jù)流組織方案研究
在現(xiàn)有的研究中,Mesh拓撲由于其規(guī)整性與易擴展性被大量采用[4]。Tour拓撲結(jié)構(gòu)由于其具有更大的網(wǎng)絡(luò)連通性也廣受研究人員鐘愛[5]。
采用以上兩種形式互連結(jié)構(gòu)的陣列中數(shù)據(jù)處理單元(PEs)采用異構(gòu)設(shè)計會嚴重影響硬件利用率。但是由于密碼運算流程的特殊性,需要設(shè)計大量的可重構(gòu)配置存儲部件S盒(SBox),為了縮小硬件面積,這些存儲部件多是用RAM實現(xiàn),但是就算這樣,其面積還是不可小覷。因此這部分硬件資源不能像其他普通處理單元那樣設(shè)置比較多的數(shù)目,因此本文設(shè)計了一種異構(gòu)粗粒度密碼邏輯陣列ICGRA。圖2為ICGRA的數(shù)據(jù)路徑流圖,圖中的可重構(gòu)處理單元(RPE)為密碼核心運算單元,其內(nèi)部是由4類基本的粗粒度密碼運算單元以Crossbar全互連的形式互連而成,可以完成密碼算法流程中的大部分計算性任務(wù)??芍貥?gòu)存儲單元(RSE)可以配置成基本數(shù)據(jù)存儲部件,存儲運算過程中的輪密鑰以及輪運算結(jié)果等數(shù)據(jù),還可以配置完成密碼算法中的S盒運算等查表類運算操作。
由于S盒等查表類運算操作在密碼流程中所占比例為25%左右,因此本文設(shè)計的ICGRA中RPE與RSE交錯設(shè)置,并且RPE的數(shù)量是RSE的兩倍。這樣能夠達到最大的硬件資源利用效率。
1.2 拓撲邏輯研究
在現(xiàn)有的研究中,粗粒度密碼邏輯陣列中Mesh拓撲結(jié)構(gòu)大多是基于2維坐標的,Mesh網(wǎng)絡(luò)中運算單元進行異構(gòu)設(shè)計,必須考慮解決以下問題:
(1)布線通道占用運算單元,降低硬件資源利用率。如圖3所示,如果首先在L2列進行運算單元的適配,接下來需要L4列硬件資源(假設(shè)L3與L4是異構(gòu)單元),此時就必須占用L3的布線通道,導致L3的部分運算單元無法使用。
(2)增大適配軟件與適配算法的設(shè)計困難性。由于各列相鄰的運算單元是不同的,所以適配軟件所看到的可用資源就是不同的,因此設(shè)計軟件和算法時就增加了極大的困難性。
為了解決以上兩個方面的問題,本文提出了一種3D-Mesh拓撲互連架構(gòu)。如圖3所示,設(shè)置了上下兩層Mesh互連網(wǎng)絡(luò),兩層網(wǎng)絡(luò)在特定的數(shù)據(jù)節(jié)點可以進行數(shù)據(jù)交互。本文設(shè)計的雙層網(wǎng)絡(luò)中,下層網(wǎng)絡(luò)為異構(gòu)Mesh網(wǎng)絡(luò),內(nèi)部包含運算單元、布線通道、配置單元以及數(shù)據(jù)方向轉(zhuǎn)換單元;上層沒有運算單元,并且其數(shù)據(jù)方向轉(zhuǎn)換單元與配置單元數(shù)量為下層網(wǎng)絡(luò)的50%。這樣設(shè)計可以最大程度提高網(wǎng)絡(luò)內(nèi)部異構(gòu)單元的利用率。
采用該3D拓撲互連架構(gòu),L1與L3、L2與L4之間都存在快速數(shù)據(jù)交互通道,如果將L1數(shù)據(jù)交換到L3,可以采用頂層數(shù)據(jù)交互通道,不影響L2資源的正常使用,極大地提高了硬件資源的利用率;其次所有的布線通道在適配軟件看來是完全相同的可用資源,即適配軟件和適配算法設(shè)計的過程中,資源相當于同構(gòu)存在,降低了軟件的設(shè)計困難性。
1.3 網(wǎng)絡(luò)微結(jié)構(gòu)研究
圖4所示是本文設(shè)計的3D-Mesh拓撲架構(gòu)網(wǎng)絡(luò)微結(jié)構(gòu)。該拓撲網(wǎng)絡(luò)共有兩層,底層是標準的Mesh拓撲網(wǎng)絡(luò)結(jié)構(gòu),如圖4(a)所示,內(nèi)部有數(shù)據(jù)方向轉(zhuǎn)換單元和數(shù)據(jù)計算單元。上層是數(shù)據(jù)通道層,如圖4(b)所示,有隔行或列的快速數(shù)據(jù)交換通道,能夠完成數(shù)據(jù)的快速交換且不占用計算單元周邊的數(shù)據(jù)交換通道。
兩層網(wǎng)絡(luò)可以靠雙層網(wǎng)絡(luò)連接點電路進行數(shù)據(jù)交換,如圖4(c)所示。底層對應(yīng)位置的CB結(jié)構(gòu)增加一個輸出端口,通過雙層網(wǎng)絡(luò)連接點連接至對應(yīng)頂層CB一個輸入端口。頂層CB輸出的數(shù)據(jù)通過雙層網(wǎng)絡(luò)連接點接至RPE(或RSE)的數(shù)據(jù)層數(shù)據(jù)選擇器的輸入端,選擇之后再進入RPE(或RSE)。因此每一個RPE(或RSE)數(shù)據(jù)輸入來源雖然增加了,但是其輸入端口并沒有增多。設(shè)計適配軟件和適配算法時,僅是增加了可利用的數(shù)據(jù)通路資源,并不會增加設(shè)計復(fù)雜度。
在進行陣列設(shè)計時,充分考慮了其易擴展性,底層Mesh網(wǎng)絡(luò)設(shè)計時進行了方向無差別設(shè)計,即底層網(wǎng)絡(luò)中任意一個數(shù)據(jù)節(jié)點(除陣列邊緣)可以與其上、下、左、右任意方向的相鄰節(jié)點進行數(shù)據(jù)交互。特別設(shè)計了如圖4(d)所示的SB(Switch Box)數(shù)據(jù)方向轉(zhuǎn)換節(jié)點,可完成任意方向輸入數(shù)據(jù)向其它3個方向進行數(shù)據(jù)分配的功能。
1.4 陣列架構(gòu)研究
基于前文設(shè)計的3D-Mesh網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計了如圖5所示的粗粒度密碼邏輯陣列結(jié)構(gòu)。為了充分發(fā)揮3D-Mesh網(wǎng)絡(luò)結(jié)構(gòu)的靈活性以及其計算單元的性能優(yōu)勢。必須有一個合理的粗粒度陣列架構(gòu)支撐。
(1)動態(tài)配置信息切換機制
在設(shè)計粗粒度密碼邏輯陣列架構(gòu)的過程中,設(shè)計了分頁式的配置信息存儲結(jié)構(gòu):Conf.reg0和Conf.reg1,可支持配置信息動態(tài)切換。兩頁配置存儲結(jié)構(gòu)中的配置信息互不影響,在一頁配置信息應(yīng)用時,另一頁可以更換。根據(jù)適配算法由主控制器MCU動態(tài)選擇所需要的配置頁面,并將其內(nèi)部配置信息寫入到3D-Mesh網(wǎng)絡(luò)結(jié)構(gòu)中,完成硬件結(jié)構(gòu)動態(tài)重組。
(2)分離式節(jié)點控制網(wǎng)絡(luò)
由于3D-Mesh拓撲網(wǎng)絡(luò)中的數(shù)據(jù)方向控制節(jié)點分立于網(wǎng)絡(luò)中,通過配置可以完成數(shù)據(jù)方向的改變,但是密碼算法的典型特征就是輪運算形式。通常一輪運算中硬件結(jié)構(gòu)是不需要改變的,且循環(huán)迭代多輪,如何實現(xiàn)輪數(shù)控制,這在3D-Mesh數(shù)據(jù)網(wǎng)絡(luò)中是不能完成的?;诖耍疚臑?D-Mesh數(shù)據(jù)網(wǎng)絡(luò)上層特別設(shè)計了一層分立式節(jié)點控制網(wǎng)絡(luò)。其可以完成輪數(shù)計數(shù)、比較、判斷等控制性操作。由于該層控制結(jié)構(gòu)獨立于數(shù)據(jù)網(wǎng)絡(luò),并且分立式設(shè)置,因此更大地增加了數(shù)據(jù)網(wǎng)絡(luò)的靈活性。
2 路由算法研究
本文設(shè)計時,對提出的3D-Mesh網(wǎng)絡(luò)理論上進行了合理性分析與論證。但要想能夠發(fā)揮架構(gòu)的性能,還需要一種合理的適配路由機制?;诖耍疚尼槍μ岢龅?D-Mesh拓撲網(wǎng)絡(luò),設(shè)計了一種硬件資源尋路適配算法,如表1所示。
在使用算法1進行算法適配時,如果數(shù)據(jù)需要隔行或列跳轉(zhuǎn),如圖6中所示,從R1直接跳至R3。此時有兩條可用選擇路徑,其中路徑A為:R1→C1→C2→C3→R3;另一條路徑B為:R1→C1→C4→C5→C3→R3。雖然路徑B經(jīng)過4個CB節(jié)點,而路徑A只經(jīng)過3個CB節(jié)點,但是路由算法還是會選擇路徑B。因為路徑A中C1、C2、C3都是直接與RPE(或RSE)相連接的CB節(jié)點,其路徑長度為3,路徑B中只有C1和C3是直接與RPE(或RSE)相連接的CB節(jié)點,其路徑長度為2,所以從此處看來路徑B相比于A為最短路徑。
3 性能分析與對比
表2描述了本文設(shè)計的3D-Mesh拓撲結(jié)構(gòu)與相關(guān)的文獻中的Mesh(或Tours)拓撲結(jié)構(gòu)在粗粒度邏輯陣列中應(yīng)用的對比。由于拓撲邏輯結(jié)構(gòu)不同,尋找相同的對照點是非常困難的。表2中展示了一些相似的關(guān)鍵性能參數(shù)。由于不同設(shè)計所采用的工藝不同,且針對領(lǐng)域和功能單元數(shù)量不同,設(shè)計總面積沒有可比性。但是通過表中數(shù)據(jù)可以看出,本文設(shè)計的3D-Mesh互連網(wǎng)絡(luò)所占整個ICGRA面積的3.8%,比文獻[7]中2D-Mesh的7%節(jié)省一半。功耗評估結(jié)果顯示,互連網(wǎng)絡(luò)占ICGRA總功耗的2.8%,相比同類設(shè)計,網(wǎng)絡(luò)功耗所占比例也大幅度降低。在300 MHz系統(tǒng)時鐘主頻下,對網(wǎng)絡(luò)數(shù)據(jù)吞吐率進行了評估,可以達到76.8 Gb/s。因為本文中采用了動態(tài)重構(gòu)設(shè)計,可以支持系統(tǒng)運行時重構(gòu),且重構(gòu)僅用5個系統(tǒng)時鐘周期左右,是文獻[5]動態(tài)重構(gòu)速度的2倍,是文獻[6]重構(gòu)速度的60倍。
4 總結(jié)
本文針對粗粒度可重構(gòu)邏輯陣列提出了一種3D-Mesh拓撲網(wǎng)絡(luò)結(jié)構(gòu),通過與相關(guān)設(shè)計進行對比,可以看出該ICGRA具有更高的數(shù)據(jù)吞吐率和更低的功耗,且其支持動態(tài)可重構(gòu)配置,配置速率相比于同類設(shè)計提高2倍~60倍。在SoC系統(tǒng)設(shè)計中,非常適合內(nèi)部嵌入該ICGRA,打破了密碼SoC中接口速率快而處理引擎速率低下的瓶頸。
參考文獻
[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è)計技術(shù)研究[D].鄭州:解放軍信息工程大學,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.