劉傳波
(武漢藏龍北路1號 武漢 430205)
基于單邊通信協(xié)議的片上網(wǎng)絡(luò)傳輸接口設(shè)計*
劉傳波
(武漢藏龍北路1號 武漢 430205)
為了提升處理單元與片上網(wǎng)絡(luò)之間的數(shù)據(jù)交互能力,基于單邊通信協(xié)議設(shè)計了一款片上網(wǎng)絡(luò)傳輸接口。該接口通過直接存儲訪問實現(xiàn)了存儲器與網(wǎng)絡(luò)接口間的高效數(shù)據(jù)搬移,降低了數(shù)據(jù)包的發(fā)送和接收延時,同時減少了CPU的干預(yù)。16核片上多處理器環(huán)境下的實驗結(jié)果表明,對比CPU干預(yù)型的片上網(wǎng)絡(luò)傳輸接口,論文設(shè)計的網(wǎng)絡(luò)接口能有效提升片上多核處理器的并行計算性能。
片上網(wǎng)絡(luò); 網(wǎng)絡(luò)接口; 單邊通信; 直接存儲訪問
Class Number TP302
在多核處理器時代,隨著集成電路工藝技術(shù)的進一步發(fā)展,芯片集成度仍在不斷提高。為了向芯片內(nèi)的多核甚至眾核處理器提供高效可擴展的通信互連手段,片上網(wǎng)絡(luò)(Network on-Chip,NoC)[1]技術(shù)已成為熱點問題被廣泛研究。路由器和網(wǎng)絡(luò)接口是片上網(wǎng)絡(luò)的重要組成:路由器通過數(shù)據(jù)鏈路相互連接組成特定的網(wǎng)絡(luò),并按照一定的路由算法和交換策略實現(xiàn)數(shù)據(jù)包的轉(zhuǎn)發(fā);網(wǎng)絡(luò)接口則負(fù)責(zé)處理單元與路由器之間的數(shù)據(jù)交互,根據(jù)通信協(xié)議完成數(shù)據(jù)包的打包和解包工作。路由器決定了片上網(wǎng)絡(luò)的通信能力,而網(wǎng)絡(luò)接口則決定了處理單元與片上網(wǎng)絡(luò)的交互能力。在實際應(yīng)用中,網(wǎng)絡(luò)接口往往更加容易成為通信瓶頸而限制整個片上多處理器的性能,因此值得進一步對其開展優(yōu)化設(shè)計。
目前,Radulescu[2]針對A thereal片上網(wǎng)絡(luò)設(shè)計了一款網(wǎng)絡(luò)接口,能為處理單元提供保證服務(wù)質(zhì)量和盡力服務(wù)兩種QoS策略,且兼容AXI、OCP等事務(wù)級總線協(xié)議。Daneshtalab[3]以優(yōu)化訪存帶寬為目標(biāo)設(shè)計了一種自適應(yīng)網(wǎng)絡(luò)接口,除了能提供QoS策略之外,還具有對數(shù)據(jù)包進行重排序的功能。此外,Saponara[4]設(shè)計了一款片上網(wǎng)絡(luò)接口,集成了QoS策略、數(shù)據(jù)包重排序、錯誤處理及功耗管理等功能,具有較好的通用性。
本文從減少處理器干預(yù)、提高數(shù)據(jù)搬移效率的角度出發(fā),設(shè)計了一款片上網(wǎng)絡(luò)傳輸接口,通過定制網(wǎng)絡(luò)單邊通信協(xié)議和直接存儲訪問(DMA)手段對網(wǎng)絡(luò)接口的數(shù)據(jù)包傳輸能力進行了優(yōu)化。實驗結(jié)果表明,對比不具備DMA傳輸功能的網(wǎng)絡(luò)接口,本文設(shè)計的網(wǎng)絡(luò)接口能有效提升片上多核處理器的并行計算性能。
片上網(wǎng)絡(luò)借鑒了大規(guī)模并行計算機的網(wǎng)絡(luò)互連結(jié)構(gòu),以數(shù)據(jù)包的形式進行處理器核間通信,圖1以3×3的mesh網(wǎng)絡(luò)為例示意了其基本結(jié)構(gòu),主要包括如下組件:
1) 處理單元(Process Element,PE):處理單元負(fù)責(zé)具體的計算及數(shù)據(jù)包的發(fā)起和接收,其中可包含處理器核(Core),協(xié)處理器(CP),存儲器(Mem)及I/O等資源;
2) 路由器(Router,R):路由器通過數(shù)據(jù)鏈路相互連接組成特定的網(wǎng)絡(luò),并按照一定的路由算法和交換策略實現(xiàn)數(shù)據(jù)包的轉(zhuǎn)發(fā);
3) 網(wǎng)絡(luò)接口(Network Interface,NI):網(wǎng)絡(luò)接口負(fù)責(zé)處理單元和路由器之間的數(shù)據(jù)交互,根據(jù)雙方的協(xié)議完成數(shù)據(jù)包的打包和解包工作;
4) 數(shù)據(jù)鏈路(Link):數(shù)據(jù)鏈路連接相鄰的路由器,是信號傳輸?shù)妮d體。
圖1 片上網(wǎng)絡(luò)結(jié)構(gòu)示意圖
當(dāng)處理器間需要進行通信時,數(shù)據(jù)包首先通過源節(jié)點的網(wǎng)絡(luò)接口進入路由器的輸入隊列,路由器再根據(jù)數(shù)據(jù)包中的路由信息計算其輸出方向,并將其轉(zhuǎn)發(fā)到相鄰的路由器,然后重復(fù)該過程直到數(shù)據(jù)包到達(dá)其目的節(jié)點。最后,數(shù)據(jù)包被目的節(jié)點的網(wǎng)絡(luò)接口接收,經(jīng)過解析之后,其數(shù)據(jù)被存放到處理單元的存儲器中供計算使用。
根據(jù)蟲孔(Wormhole)交換策略[5],一個數(shù)據(jù)包被劃分為若干個微片(flit),其中位于數(shù)據(jù)包最前端和最尾端的微片分別被稱為頭微片(head flit,HF)和尾微片(tail flit,TF),中間部分的微片則被稱為體微片(body flit,BF),這三種微片可進一步通過微片類型編碼進行區(qū)分。數(shù)據(jù)包的頭微片主要包含相關(guān)的路由信息,如源節(jié)點坐標(biāo)(src_x和src_y)、目的節(jié)點坐標(biāo)(dst_x和dst_y),以及數(shù)據(jù)包長度、冗余校驗碼等信息,尾微片和體微片則包含了具體待傳輸?shù)臄?shù)據(jù)。此外,在具有多個虛通道的片上網(wǎng)絡(luò)中,微片中還包含了其所屬的虛通道號(vcid),以使不同數(shù)據(jù)包的微片可以在數(shù)據(jù)鏈路上混合傳輸,從而提高數(shù)據(jù)鏈路的帶寬利用率。
圖2 數(shù)據(jù)包格式
為了減少處理器的干預(yù)、提高數(shù)據(jù)傳輸效率,本文對片上網(wǎng)絡(luò)采用單邊通信協(xié)議,其主要思想是在數(shù)據(jù)包中顯式地包含數(shù)據(jù)的目的地址。圖2示意了本文使用的數(shù)據(jù)包格式:一個數(shù)據(jù)包由至多16個微片組成,每個微片的數(shù)據(jù)負(fù)荷為32位;第一個微片為頭微片,包含了路由信息及數(shù)據(jù)包長度信息;第二個微片包含了一個32位的目的地址,該地址指定了后續(xù)數(shù)據(jù)在目的節(jié)點中應(yīng)被存放的位置;后續(xù)微片則包含了具體傳輸?shù)臄?shù)據(jù)。這種將目的地址包含在數(shù)據(jù)包中的單邊通信方式使網(wǎng)絡(luò)接口能直接將接收到的數(shù)據(jù)存入存儲器,而無需處理器進行干預(yù),因此有助于提升網(wǎng)絡(luò)接口的數(shù)據(jù)接收能力。
網(wǎng)絡(luò)接口(NI)負(fù)責(zé)數(shù)據(jù)包的發(fā)送和接收工作,是處理單元與片上網(wǎng)絡(luò)通信的接口。一方面,NI監(jiān)聽從網(wǎng)絡(luò)到達(dá)該節(jié)點的微片,組裝成完整的數(shù)據(jù)包,然后通知DMA控制器根據(jù)接收到的目的地址將數(shù)據(jù)存放到存儲器中;另一方面,NI從處理器接收數(shù)據(jù),將數(shù)據(jù)進行打包后傳入片上網(wǎng)絡(luò)。因此,NI的處理器端和網(wǎng)絡(luò)端需分別滿足嵌入式總線協(xié)議(本文采用AHB總線[6])和基于信用量(credit)的流控協(xié)議。
以具有兩個虛通道(分別用VC0和VC1表示)的片上網(wǎng)絡(luò)為例,圖3示意了本文設(shè)計的網(wǎng)絡(luò)接口結(jié)構(gòu),其中上半部為網(wǎng)絡(luò)接收部分,下半部為網(wǎng)絡(luò)發(fā)送部分。在網(wǎng)絡(luò)接收部分,每個虛通道都對應(yīng)了一個接收隊列、數(shù)據(jù)包隊列、目的地址寄存器和DMA寫控制器(wDMA)。數(shù)據(jù)包的解析和接收是由接收控制狀態(tài)機和wDMA控制器協(xié)同實現(xiàn)的,圖4示意了兩者的狀態(tài)轉(zhuǎn)換關(guān)系與協(xié)同工作方式。一方面,接收控制狀態(tài)機對接收隊列中的微片進行解析,剝離vcid和微片類型等信息后,將有效數(shù)據(jù)存入數(shù)據(jù)包隊列;接收控制狀態(tài)機檢測到一個完整的數(shù)據(jù)包后,就通知相關(guān)的wDMA控制器直接將接收到的數(shù)據(jù)搬移到存儲器中。另一方面,DMA寫控制器(wDMA)接收到DMA傳輸請求之后,首先從數(shù)據(jù)包隊列中讀取出第一個微片,并將其記錄為后續(xù)數(shù)據(jù)的目的地址;然后,wDMA控制器向AHB仲裁器發(fā)送總線請求信號,申請對總線的所有權(quán);接下來,wDMA控制器發(fā)起AHB總線傳輸操作,將數(shù)據(jù)包隊列中的數(shù)據(jù)按照先前記錄的目的地址連續(xù)地存入存儲器中;等到數(shù)據(jù)包隊列為空之后,接收控制狀態(tài)機和wDMA控制器均返回空閑狀態(tài)。
圖3 網(wǎng)絡(luò)接口結(jié)構(gòu)
在網(wǎng)絡(luò)發(fā)送部分,處理器將待發(fā)送數(shù)據(jù)的起始地址(針對發(fā)送節(jié)點而言)和數(shù)據(jù)長度寫入相關(guān)的DMA讀控制器(rDMA)中,再由rDMA將數(shù)據(jù)從存儲器搬移到發(fā)送端的數(shù)據(jù)包隊列。發(fā)送控制狀態(tài)機再將數(shù)據(jù)包的目的地址(針對目的節(jié)點而言)與數(shù)據(jù)包隊列中的數(shù)據(jù)進行打包后傳入網(wǎng)絡(luò)。另外,由于VC0和VC1可能同時發(fā)送數(shù)據(jù)包,因此在發(fā)送控制狀態(tài)機中還進行了虛通道間的仲裁,仲裁的結(jié)果用于選擇相應(yīng)的數(shù)據(jù)進入網(wǎng)絡(luò)。
圖4 接收控制狀態(tài)機及wDMA控制器狀態(tài)轉(zhuǎn)換圖
為了簡化接收控制狀態(tài)機對完整數(shù)據(jù)包的探測過程,規(guī)定網(wǎng)絡(luò)中數(shù)據(jù)包的長度不能大于NI中數(shù)據(jù)包隊列的深度,以使數(shù)據(jù)包隊列可以存放一個完整的數(shù)據(jù)包。在本文中,NI接收部分和發(fā)送部分的數(shù)據(jù)包隊列深度均被設(shè)置為16,因此網(wǎng)絡(luò)中的數(shù)據(jù)包最長不能超過16個微片。
5.1 驗證及測試環(huán)境
為了對設(shè)計的片上網(wǎng)絡(luò)傳輸接口進行驗證及性能測試,本文將網(wǎng)絡(luò)接口集成到了一個4×4 mesh片上多處理器驗證環(huán)境中,圖5示意了該多處理器的結(jié)構(gòu):每個節(jié)點均為一個基于AHB總線的小型系統(tǒng),其中包含了一個小型RISC處理器(μP)、私有SRAM存儲器、片上網(wǎng)絡(luò)路由器及網(wǎng)絡(luò)接口。
圖5 4×4 mesh片上多處理器驗證環(huán)境
為了對網(wǎng)絡(luò)接口的性能進行對比分析,本文選取了并行FFT計算[7~10]作為應(yīng)用案例來對該16核系統(tǒng)進行性能測試。其中,測試組采用本文設(shè)計的網(wǎng)絡(luò)接口,數(shù)據(jù)在存儲器和網(wǎng)絡(luò)接口間的搬移采用DMA方式實現(xiàn);而對比組采用非DMA操作的網(wǎng)絡(luò)接口,數(shù)據(jù)的搬移是以中斷的方式通知處理器μP干預(yù)實現(xiàn)。
5.2 案例測試
圖6給出了在16核系統(tǒng)中進行單精度浮點FFT計算的結(jié)果,其中橫軸表示輸入序列長度的對數(shù),縱軸為計算過程所消耗的時鐘周期。從圖5可以看出,對比采用CPU干預(yù)型網(wǎng)絡(luò)接口的16核系統(tǒng),采用DMA傳輸型網(wǎng)絡(luò)接口的16核系統(tǒng)具備了更高的并行計算性能。當(dāng)FFT序列長度為1024時,本文設(shè)計的網(wǎng)絡(luò)接口使FFT計算耗時降低了20%左右,且隨著FFT序列長度的增加,DMA傳輸型網(wǎng)絡(luò)接口對16核系統(tǒng)并行計算性能的提升更加明顯。
圖6 16核片上多處理器環(huán)境下的FFT并行計算耗時
導(dǎo)致FFT計算性能提升的原因主要有兩點。1) 由于本文設(shè)計的網(wǎng)絡(luò)接口通過DMA方式實現(xiàn)數(shù)據(jù)負(fù)荷的搬移,而非通過CPU進行顯式的搬移,因此縮減了數(shù)據(jù)包的發(fā)送和接收延時,減低了處理器核間通信帶來的性能損耗; 2) 網(wǎng)絡(luò)接口采用的DMA傳輸方式減少了CPU對數(shù)據(jù)包的干預(yù),使得CPU能更加專注地進行數(shù)據(jù)運算,因此應(yīng)用程序的并行計算性能得到了提升。
本文設(shè)計了一款片上網(wǎng)絡(luò)傳輸接口,實現(xiàn)了處理單元與片上網(wǎng)絡(luò)間的高效數(shù)據(jù)通信。通過定制單邊通信協(xié)議和直接存儲訪問,降低了數(shù)據(jù)包傳輸延時并減少了處理器的干預(yù)。16核片上多處理器環(huán)境下的并行FFT計算結(jié)果表明,對比CPU干預(yù)型的片上網(wǎng)絡(luò)傳輸接口,本文設(shè)計的網(wǎng)絡(luò)接口能將并行計算性能提升16%~20%。
[1] Dally W J, Towles B. Route packets, not wires: on-chip interconnection networks[C]//Proc.of Design Automation Conference. Las Vegas, USA: ACM Press,2001:684-689.
[2] Radulescu A, Dielissen J, Pestana S G, et al. An efficient on-chip NI offering guaranteed services, shared-memory abstraction, and flexible network configuration[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2005,24(1):4-17.
[3] Daneshtalab M, Ebrahimi M, Lilieberg P, et al. Memory-efficient on-chip network with adaptive interfaces[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2012,31(1):146-159.
[4] Saponara S, Bacchillone T, Petrle E, et al. Design of a NoC interface macrocell with hardware support of advanced networking functionalities[J]. IEEE Transactions on Computers,2014,63(3):609-621.
[5] Dally W J, Towles B P. Principles and practices of interconnection networks[M]. San Francisco, USA: Morgan Kaufmann,2004:237-244.
[6] AMBA Specification[EB/OL]. http://www.arm.com/.
[7] 張林波,遲學(xué)斌,莫則堯,等.并行計算導(dǎo)論[M].北京:清華大學(xué)出版社出版,2006:164-268.
[8] 朱曉靜.片上網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計與性能分析[D].合肥:中國科學(xué)技術(shù)大學(xué),2008.
[9] 付方發(fā).基于片上網(wǎng)絡(luò)的MPSoC關(guān)鍵技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2012.
[10] 胡哲琨.面向片上多處理器的互連網(wǎng)絡(luò)路由技術(shù)研究[D].北京:中國科學(xué)院大學(xué),2013.
A NoC Network Interface Based on One-Side-Communicating Protocol
LIU Chuanbo
(No.1 Canglong North Road, Wuhan 430205)
In order to improve the data exchanging capability between Process Elements(PE) and Network on-Chip(NoC), a NoC Network Interface(NI) is designed based on the one-side-communicating protocol. Through Direct Memory Accessing(DMA), an efficient data movement between NI and memory is achieved. Also, the packet sending and receiving latency is reduced and the CPU interference is cut down. Experimental results in a 16-core Chip Multi-Processor(CMP) environment show that, compared with a NI that needs the CPU to interfere, the designed NI can efficiently improve the parallel computation performance of CMPs.
network on-chip, network interface, one-side-communication, direct memory access
2014年5月10日,
2014年6月15日 作者簡介: 劉傳波,男,博士,研究方向:系統(tǒng)工程。
TP302
10.3969/j.issn1672-9730.2014.11.031