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