本站小編為你精心準備了片上網(wǎng)絡(luò)傳輸接口設(shè)計論文參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
1片上網(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)處理單元(ProcessElement,PE):處理單元負責具體的計算及數(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ò)接口(NetworkInterface,NI):網(wǎng)絡(luò)接口負責處理單元和路由器之間的數(shù)據(jù)交互,根據(jù)雙方的協(xié)議完成數(shù)據(jù)包的打包和解包工作;4)數(shù)據(jù)鏈路(Link):數(shù)據(jù)鏈路連接相鄰的路由器,是信號傳輸?shù)妮d體。當處理器間需要進行通信時,數(shù)據(jù)包首先通過源節(jié)點的網(wǎng)絡(luò)接口進入路由器的輸入隊列,路由器再根據(jù)數(shù)據(jù)包中的路由信息計算其輸出方向,并將其轉(zhuǎn)發(fā)到相鄰的路由器,然后重復該過程直到數(shù)據(jù)包到達其目的節(jié)點。最后,數(shù)據(jù)包被目的節(jié)點的網(wǎng)絡(luò)接口接收,經(jīng)過解析之后,其數(shù)據(jù)被存放到處理單元的存儲器中供計算使用。
2單邊通信協(xié)議
根據(jù)蟲孔(Wormhole)交換策略[5],一個數(shù)據(jù)包被劃分為若干個微片(flit),其中位于數(shù)據(jù)包最前端和最尾端的微片分別被稱為頭微片(headflit,HF)和尾微片(tailflit,TF),中間部分的微片則被稱為體微片(bodyflit,BF),這三種微片可進一步通過微片類型編碼進行區(qū)分。數(shù)據(jù)包的頭微片主要包含相關(guān)的路由信息,如源節(jié)點坐標(src_x和src_y)、目的節(jié)點坐標(dst_x和dst_y),以及數(shù)據(jù)包長度、冗余校驗碼等信息,尾微片和體微片則包含了具體待傳輸?shù)臄?shù)據(jù)。此外,在具有多個虛通道的片上網(wǎng)絡(luò)中,微片中還包含了其所屬的虛通道號(vcid),以使不同數(shù)據(jù)包的微片可以在數(shù)據(jù)鏈路上混合傳輸,從而提高數(shù)據(jù)鏈路的帶寬利用率。為了減少處理器的干預、提高數(shù)據(jù)傳輸效率,本文對片上網(wǎng)絡(luò)采用單邊通信協(xié)議,其主要思想是在數(shù)據(jù)包中顯式地包含數(shù)據(jù)的目的地址。圖2示意了本文使用的數(shù)據(jù)包格式:一個數(shù)據(jù)包由至多16個微片組成,每個微片的數(shù)據(jù)負荷為32位;第一個微片為頭微片,包含了路由信息及數(shù)據(jù)包長度信息;第二個微片包含了一個32位的目的地址,該地址指定了后續(xù)數(shù)據(jù)在目的節(jié)點中應(yīng)被存放的位置;后續(xù)微片則包含了具體傳輸?shù)臄?shù)據(jù)。這種將目的地址包含在數(shù)據(jù)包中的單邊通信方式使網(wǎng)絡(luò)接口能直接將接收到的數(shù)據(jù)存入存儲器,而無需處理器進行干預,因此有助于提升網(wǎng)絡(luò)接口的數(shù)據(jù)接收能力。
3網(wǎng)絡(luò)接口設(shè)計
網(wǎng)絡(luò)接口(NI)負責數(shù)據(jù)包的發(fā)送和接收工作,是處理單元與片上網(wǎng)絡(luò)通信的接口。一方面,NI監(jiān)聽從網(wǎng)絡(luò)到達該節(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)。在網(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ò)。為了簡化接收控制狀態(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個微片。
4驗證及性能分析
4.1驗證及測試環(huán)境為了對設(shè)計的片上網(wǎng)絡(luò)傳輸接口進行驗證及性能測試,本文將網(wǎng)絡(luò)接口集成到了一個4×4mesh片上多處理器驗證環(huán)境中,圖5示意了該多處理器的結(jié)構(gòu):每個節(jié)點均為一個基于AHB總線的小型系統(tǒng),其中包含了一個小型RISC處理器(μP)、私有SRAM存儲器、片上網(wǎng)絡(luò)路由器及網(wǎng)絡(luò)接口。為了對網(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干預實現(xiàn)。
4.2案例測試圖6給出了在16核系統(tǒng)中進行單精度浮點FFT計算的結(jié)果,其中橫軸表示輸入序列長度的對數(shù),縱軸為計算過程所消耗的時鐘周期。從圖5可以看出,對比采用CPU干預型網(wǎng)絡(luò)接口的16核系統(tǒng),采用DMA傳輸型網(wǎng)絡(luò)接口的16核系統(tǒng)具備了更高的并行計算性能。當FFT序列長度為1024時,本文設(shè)計的網(wǎng)絡(luò)接口使FFT計算耗時降低了20%左右,且隨著FFT序列長度的增加,DMA傳輸型網(wǎng)絡(luò)接口對16核系統(tǒng)并行計算性能的提升更加明顯。導致FFT計算性能提升的原因主要有兩點。1)由于本文設(shè)計的網(wǎng)絡(luò)接口通過DMA方式實現(xiàn)數(shù)據(jù)負荷的搬移,而非通過CPU進行顯式的搬移,因此縮減了數(shù)據(jù)包的發(fā)送和接收延時,減低了處理器核間通信帶來的性能損耗;2)網(wǎng)絡(luò)接口采用的DMA傳輸方式減少了CPU對數(shù)據(jù)包的干預,使得CPU能更加專注地進行數(shù)據(jù)運算,因此應(yīng)用程序的并行計算性能得到了提升。
5結(jié)語
本文設(shè)計了一款片上網(wǎng)絡(luò)傳輸接口,實現(xiàn)了處理單元與片上網(wǎng)絡(luò)間的高效數(shù)據(jù)通信。通過定制單邊通信協(xié)議和直接存儲訪問,降低了數(shù)據(jù)包傳輸延時并減少了處理器的干預。16核片上多處理器環(huán)境下的并行FFT計算結(jié)果表明,對比CPU干預型的片上網(wǎng)絡(luò)傳輸接口,本文設(shè)計的網(wǎng)絡(luò)接口能將并行計算性能提升16%~20%。
作者:劉傳波單位:武漢藏龍北路1號