一種高效網(wǎng)絡(luò)接口的設(shè)計
摘要:為了得到比傳統(tǒng)片上網(wǎng)絡(luò)的網(wǎng)絡(luò)資源接口(NI)更高的數(shù)據(jù)傳輸效率和更加穩(wěn)定的數(shù)據(jù)傳輸效果,提出了一種新的高效網(wǎng)絡(luò)接口的設(shè)計方法,并采用Verilog HDL語言對相關(guān)模塊進行編程,實現(xiàn)了高效傳輸功能,同時又滿足核內(nèi)路由的設(shè)計要求。最終通過仿真軟件Xilinx ISE Design Suite 12.3和ModelSim SE 6.2b得到了滿足設(shè)計要求的仿真結(jié)果。
關(guān)鍵詞:片上網(wǎng)絡(luò);網(wǎng)絡(luò)資源接口;核內(nèi)路由;Verilog HDL
O 引言
隨著納米時代的到來,集成電路工藝不斷的發(fā)展,特別是VISI設(shè)計技術(shù)的進步,系統(tǒng)級芯片的設(shè)計迎來了巨大的挑戰(zhàn),而這個挑戰(zhàn)的的關(guān)鍵就是怎么樣實現(xiàn)更高的通信效率。這個問題的出現(xiàn)也預示著多核技術(shù)時代的到臨。為了應(yīng)對這個挑戰(zhàn),人們提出了片上網(wǎng)絡(luò)(Network On Chip,NoC)的概念。片上網(wǎng)絡(luò)(NoC)移植了網(wǎng)絡(luò)通信的方式,進而來解決多核時代的IP核互聯(lián)通信的問題。
由于片上網(wǎng)絡(luò)(NoC)具有優(yōu)秀的可擴展性和相對較好的功耗效率,目前已經(jīng)被大多數(shù)人認為是解決當前甚至未來芯片設(shè)計中關(guān)于通信問題的最重要的技術(shù)之一。
1 NoC簡介
圖1為傳統(tǒng)2D-MESH結(jié)構(gòu)的NoC示意圖。圖中明顯可以看出片上網(wǎng)絡(luò)(NoC)主要由4部分組成:資源節(jié)點(IP核)、路由節(jié)點、網(wǎng)絡(luò)接口NI(Network Interface)和全局鏈路。其中網(wǎng)絡(luò)接口NI就是連接IP核與通信網(wǎng)絡(luò)的橋梁,同時網(wǎng)絡(luò)接口NI的設(shè)計也是片上網(wǎng)絡(luò)(NoC)設(shè)計技術(shù)中重要的一環(huán)。
網(wǎng)絡(luò)接口NI使NoC實現(xiàn)了計算資源與通信網(wǎng)絡(luò)部分的分離,允許IP核和網(wǎng)絡(luò)通信結(jié)構(gòu)分別獨立進行設(shè)計,使計算資源相對網(wǎng)絡(luò)更加透明,從而實現(xiàn)不同資源間的互聯(lián),提高了設(shè)計的重用性。網(wǎng)絡(luò)接口NI主要面向地址信號,數(shù)據(jù)的打包、解包、編碼,同步等方面的問題。文獻提出的是一種既滿足擔保服務(wù)又滿足最大努力服務(wù)的網(wǎng)絡(luò)接口NI,但是此網(wǎng)絡(luò)接口NI主要應(yīng)用于AEthereal系統(tǒng)中。文獻介紹了一種以O(shè)CP從模塊存在的網(wǎng)絡(luò)接口,應(yīng)用于XpIPes系統(tǒng)。
2 通用網(wǎng)絡(luò)接口NI的結(jié)構(gòu)及模塊功能
網(wǎng)絡(luò)接口的作用主要基于網(wǎng)絡(luò)中關(guān)于信息包信息的傳輸,并且將其轉(zhuǎn)換成資源模塊可用的形式。它的主要功能包括3個方面:提取關(guān)于IP核與網(wǎng)絡(luò)之間的通信協(xié)議;支持任何IP核與網(wǎng)絡(luò)接口連接;對數(shù)據(jù)進行打包和解包。
當數(shù)據(jù)在NoC中傳輸時,網(wǎng)絡(luò)接口將主IP核中的數(shù)據(jù)進行打包,并進行校驗,然后將其傳輸?shù)铰酚晒?jié)點進入網(wǎng)絡(luò),最后由目的IP核的網(wǎng)絡(luò)接口進行解包,校驗進入到目的IP核中。圖2是通用網(wǎng)絡(luò)接口的結(jié)構(gòu)模塊圖,如圖2所示其主要由通用核接口、數(shù)據(jù)打包單元、數(shù)據(jù)解包單元、存儲單元和異步FIFO構(gòu)成。數(shù)據(jù)打包單元主要將來自IP核的信息進行打包,其首先將信息轉(zhuǎn)換成流控單元(flit),然后在網(wǎng)絡(luò)中進行傳輸,其主要由包頭編碼單元,數(shù)據(jù)處理單元和FIFO控制單元構(gòu)成。而解包單元主要是將數(shù)據(jù)包進行轉(zhuǎn)換,滿足目的IP核所需要的數(shù)據(jù)形式。數(shù)據(jù)打包單元和數(shù)據(jù)解包單元共享網(wǎng)絡(luò)接口中的存儲單元,這樣做主要是易于鏈接不同模塊。
3 高效網(wǎng)絡(luò)接口的設(shè)計
3.1 總體結(jié)構(gòu)的設(shè)計與分析
本文主要是設(shè)計一種高效的網(wǎng)絡(luò)接口使其滿足數(shù)據(jù)的快速傳輸,同時能承受高的通信壓力,使其也可用于核內(nèi)路由的數(shù)據(jù)傳輸。核內(nèi)路由及將傳統(tǒng)的路由節(jié)點嵌入到IP核中,與IP核共享存儲單元,益于IP核與網(wǎng)絡(luò)通信部分數(shù)據(jù)傳輸加速,以便于加快整個NoC的網(wǎng)絡(luò)通信速率。據(jù)文獻可知,核內(nèi)路由也將是NoC發(fā)展的重要方向之一。如圖3所示,本文設(shè)計的網(wǎng)絡(luò)接口主要包含數(shù)據(jù)接收,數(shù)據(jù)發(fā)送,緩沖區(qū)模塊和寄存器控制組4部分。
當原始數(shù)據(jù)從IP核傳輸?shù)奖揪W(wǎng)絡(luò)接口,首先由數(shù)據(jù)接收模塊將原始數(shù)據(jù)打包,并將其分為多個片(flit)。通常數(shù)據(jù)包被分為:Head flit,Datel flit,Date2 flit,Tailflit等4部分,而本網(wǎng)絡(luò)接口將其壓縮為Head flit,Datel flit,Date2 and control flit三部分,主要是將Tailflit壓縮到傳統(tǒng)Data2 flit中,因為Tail flit中只含有一個完成控制信號,所以將其合并到最后一個數(shù)據(jù)片上,通過寄存器控制模塊控制發(fā)送,通過網(wǎng)絡(luò)到達目的網(wǎng)絡(luò)接口,由其將接受到的數(shù)據(jù)包進行解包,滿足目的IP核的需求,同時傳輸?shù)侥康腎P核。由于本網(wǎng)絡(luò)接口也可以嵌入到IP核中,因此可以提前將Head flit發(fā)送出去,使Head flit的發(fā)送與數(shù)據(jù)打包并行處理。這樣就加速了數(shù)據(jù)的傳輸速率。
3.2 數(shù)據(jù)接收模塊的設(shè)計
此模塊主要是完成接收路由節(jié)點發(fā)出來的數(shù)據(jù)包以及本地IP核發(fā)出的數(shù)據(jù)包。其結(jié)構(gòu)如圖4所示,由數(shù)據(jù)接收邏輯控制模塊和數(shù)據(jù)接收狀態(tài)機模塊。
此模塊主要工作流程為:接收控制邏輯模塊→產(chǎn)生緩存地址和有效信號→狀態(tài)機模塊→產(chǎn)生接收數(shù)據(jù)的狀態(tài)。簡單狀態(tài)圖如圖5所示。
當系統(tǒng)復位,整個狀態(tài)機處于空狀態(tài)(idle),當同時接收到有效的數(shù)據(jù)信號和信道控制信號時,進入接收數(shù)據(jù)長狀態(tài)(r_length)。隨著clk上升沿的到達,順序進入接收數(shù)據(jù)目的地址的狀態(tài)(r_desti_addr),接收源地址狀態(tài)(r_source_addr),接收數(shù)據(jù)狀態(tài)(r_receive)。數(shù)據(jù)接收完成后,置數(shù)據(jù)傳輸完成信號無效后,狀態(tài)機恢復初始狀態(tài)(idle)。
3.3 數(shù)據(jù)發(fā)送模塊的設(shè)計
此模塊主要是將從路由節(jié)點得到的數(shù)據(jù)發(fā)送給IP核,或者是將從IP核得到的數(shù)據(jù)傳輸?shù)酵ㄐ啪W(wǎng)絡(luò)中去。設(shè)計思路同數(shù)據(jù)接收模塊相似。結(jié)構(gòu)圖如圖6所示分為2部分:數(shù)據(jù)發(fā)送控制邏輯模塊和數(shù)據(jù)發(fā)送狀態(tài)機模塊。其狀態(tài)機的轉(zhuǎn)移圖如圖7所示。簡述:idle→(有效數(shù)據(jù)發(fā)送信號)ask(信道請求信號)→(響應(yīng)信道請求)buf_en→(clk上沿)t_length→t_date→(數(shù)據(jù)信號完成響應(yīng))idle。
3.4 寄存器控制組模塊的設(shè)計
此模塊主要分為:狀態(tài)寄存器,邏輯控制寄存器,接收數(shù)據(jù)長寄存器,接收數(shù)據(jù)源地址寄存器。4個寄存器都為8位寄存器。滿足了各節(jié)點對網(wǎng)絡(luò)接口的控制。表1為狀態(tài)寄存器。
當前網(wǎng)絡(luò)接口的工作狀態(tài)有表中寄存器的低兩位所代表。“0”代表處于r_date,“1”代表處于s_date。
4 系統(tǒng)仿真與驗證結(jié)果
本文設(shè)計的網(wǎng)絡(luò)接口主要是使用Xilinx ISE Design suite 12.3和ModelSim SE 6.2b仿真軟件進行仿真和驗證。圖8是網(wǎng)絡(luò)接口中數(shù)據(jù)接收模塊功能仿真圖,圖9是數(shù)據(jù)發(fā)送模塊功能仿真圖。實驗主要是通過主時鐘控制數(shù)據(jù)的發(fā)送,采用50 MHz的時鐘,每2個時鐘發(fā)送一個IP核數(shù)據(jù),發(fā)送完成的到flag標識。從結(jié)果可以看出此設(shè)計便于加快數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸效率。實驗中源IP核輸出數(shù)據(jù)為32位,通過NI1把數(shù)據(jù)分為高16位和低16位輸出,到達目的NI2,通過NI2把數(shù)據(jù)合并為32位,最終輸入到目的IP核內(nèi)。結(jié)果顯示,數(shù)據(jù)傳輸過程數(shù)據(jù)保持了較強的穩(wěn)定性,同時發(fā)送與接收都準確的做出了應(yīng)答,達到了設(shè)計要求。
5 結(jié)語
本文設(shè)計的網(wǎng)絡(luò)接口主要是針對對數(shù)據(jù)傳輸速率要求較高,對傳輸效果穩(wěn)定性要求較高的NoC體系。通過實驗基本實現(xiàn)了設(shè)計要求,同時此網(wǎng)絡(luò)接口具有較強的實用性,對與今后核內(nèi)路由的研究具有重要的意義。
評論