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