謝寧波,張樂乾,高健超
(1.桂林電子科技大學信息與通信學院,廣西 桂林 541004;2.桂林市桂電中學教務處,廣西 桂林 541004)
自1958年第一顆集成電路芯片面世以來,集成電路產業從最簡單的小規模集成電路(SSI)起步,先后歷經了中規模(MSI)、大規模(LSI)、超大規模(VLSI)和巨大規模(ULSI),發展到如今的特大規模集成電路(GSI)以及高性能片上系統SoC,單個芯片上集成的晶體管數數以億計。隨著集成電路設計復雜度的提高以及器件特征尺寸的減小,高集成度、低功耗、高性能的片上系統(System on Chip,簡稱SoC)已成為應用最為廣泛的芯片解決方案。但是,由于目前絕大部分片上系統都采用總線互聯的方式實現資源IP間的數據通信,隨著功能IP數目增加,基于總線互連的片上系統在資源復用性、適應性和擴展性等方面無法滿足設計需求,成為了制約片上系統性能的瓶頸。
為了突破傳統SoC固有的局限性,來自歐洲瑞典皇家理工學院的科研團隊于2000年提出了一種全新的適用于大規模SoC的集成電路體系結構——片上網絡(Network on Chip,NoC),它把計算機網絡中的通信技術移植到片上系統的互連通信中來,從體系結構上解決了多核SoC在擴展性、復用性和通信效率等方面遇到的問題。本文從片上網絡的拓撲結構和通信協議設計出發,基于FPGA平臺構建并完成了一款5×5二維環面 NoC通信架構的片上網絡的設計。
學術界給NoC的定義是:NoC是基于網絡通訊的多核系統,用路由和報文交換技術完成通訊任務。NoC一般是由通信網絡將多個資源節點相連通構成,針對不同的資源節點,用一定的互聯拓撲結構搭建成為通訊通道,使資源節點間進行數據傳輸時選擇合適的通道,從源節點正確地傳輸到目的節點。在搭建NoC架構的過程中,需要對片上網絡進行優化設計,主要包括2個方面的內容,即拓撲結構和通信協議。拓撲結構指的是NoC中通信節點和資源節點的靜態分布方式與節點之間的連接方式,拓撲結構的選擇對網絡的延時、吞吐率、面積、功耗有著重要的影響。常見的拓撲結構可以分為網格結構(Mesh)、環面結構(Torus)、樹形結構(Tree)、環形結構(Ring)等。在上述幾種拓撲結構中,二維環面結構具有結構對稱,易于設計,擴展性優秀,路由算法簡單、高效等優點,所以,本設計以二維環面結構為NoC通信架構的拓撲結構模型。
通信協議,指的是系統中的通信雙方完成通信或服務所必須遵循的規則和約定,由通信時序、數據交換技術和路由算法三部分構成。為了滿足設計要求,本設計基于廣泛使用的OSI協議作為通信協議標準,采用全局時鐘策略下的同步握手協議、數據分包(package)的交換技術和維序XY路由算法構建NoC通信架構。
一個完整的NoC通信架構由資源節點、通信節點、資源網絡接口和連接整個網絡的通道構成。由于資源節點可以是設計好的IP,也可以是已有的SoC,在本設計中不涉及資源節點的設計,主要著眼于完整的通信網絡的連接設計以及底層的通信節點和資源網絡接口的設計實現。綜合考慮設計指標和資源成本,基于上述討論的通信架構模型,本設計構建如圖1所示的5×5二維環面網絡結構。
圖1所示的NoC架構包含25個路由節點和25個RNI接口,其中,路由器地址從(0,0)至(4,4)。網絡的擴展可通過添加更多的資源節點與路由節點實現。

圖1 NoC通信網絡總體結構
在NoC中,路由器(Router)的功能包括了數據的存儲轉發、報文交換和路由選擇等,所以,其性能在很大程度上決定了NoC架構的性能。完整的路由器由輸入緩存(InputBuffer)、路由抉擇(RouterOpt)、路由仲裁(Arbiter)和輸出緩存(OnputBuffer)4個分立模塊構成。路由器接收到從上一級路由節點傳來的數據包以后,先把數據緩存在輸入緩存中,提取有效路由信息進行地址判斷,然后向正確的輸出通道發出轉發請求,如果輸出通道空閑,該方向的仲裁模塊返回允許應答,同時,開放輸出通道,最后經由輸出緩存把數據包傳輸到下一級路由節點的輸入通道。完整的數據存儲轉發過程如圖2所示。

圖2 NoC路由器結構及數據傳輸過程示意圖
片上網絡與傳統總線相比具有通信帶寬高、數據吞吐量大的優勢,所以,片上網絡在處理多對設備并行通信時,往往會出現多組通信同時競爭同一個路由節點的某個輸出通道的問題,因此,需要設計1個合理的仲裁(Arbiter)模塊來處理多組請求,并分時返回準許(grant)信號。
本設計采用NoC中廣泛應用的輪循調度仲裁機制,輪循調度的基本思想是調度器循環地為隊列中的實體提供服務,具有公平、靈活的優點,其功能基于圖3所示的狀態機實現。

圖3 路由仲裁狀態機
仿真和驗證的功能是檢查設計的正確性,仿真驗證是設計流程中極為重要的環節,同時,也是系統不斷修正、改進和優化的過程。我們為NoC通信架構設計了一套比較完善的驗證方法,驗證了各部件的邏輯以及整個通信架構的功能。
一般來說,基于FPGA的設計與驗證流程包括功能驗證和時序驗證2個方面,功能驗證是指使用Modelsim、VCS和NC Verilog等EDA軟件模擬電路的工作行為;時序驗證則是利用FPGA、CPLD等可編程邏輯器件實現設計的功能,同時,輔以外設搭建一個系統環境,通過對該系統施加測試向量驗證設計的時序是否滿足設計需求。
為了設計一套有效的功能驗證方案,我們通過構建不同數據吞吐量下的通信網絡數據交換測試,實現功能驗證的完備性。通過無阻塞的點對點節點通信驗證,驗證路由算法的邏輯、鏈路的連通性和NoC通信架構傳輸的正確性,通過設計多節點并行通信驗證,驗證架構中緩沖隊列的讀寫時序以及輪循調度的路由仲裁機制是否符合設計規范。
本設計的時序驗證基于Altera公司的FPGA開發板驗證平臺進行。與功能驗證類似,時序驗證以數據存儲ROM作為資源IP為NoC通信架構加載測試向量,在原基礎上增添1個UART傳輸過程,通過UART傳輸把目的節點中的數據以串口數據讀到PC端,通過比對實際電路板的輸出結果與在仿真平臺下得到的預期結果是否一致來判斷設計的時序是否正確。
本設計最終基于Altera公司的Stratix II EP2S90 FPGA開發版完成物理實現。通過FPGA平臺進行電路綜合,該系統的物理實現共使用了18 046個組合運算器、15 134個邏輯寄存器和21 600個存儲單元,整個系統共占用FPGA平臺邏輯資源的32%和極少量的存儲資源,且綜合得到系統的最高時鐘頻率可達118.79 MHz。資源開銷以及設計時序均符合預期設定的設計需求。
本設計基于FPGA平臺設計實現了一款5×5的二維環面結構的片上網絡,具有可復用、并行通信、擴展性好、低開銷等優點,可應用于對資源復用性、適應性和擴展性有較高需求的多核片上系統的設計,具有廣泛的應用前景和較高的價值。
[1]高明倫,杜高明.NoC:下一代集成電路主流設計技術[J].微電子學,2006,36(4):461-466.
[2]顧華璽,劉增基,王琨,等.Torus網絡中分布式自適應路由算法[J].西安電子科技大學學報,2006,33(3):352-358.
[3]Benini L,De Micheli G.Networks on chips:a new SoC paradigm[J].Computer,2002,35(1):70-78.