謝寧波,張樂(lè)乾,高健超
(1.桂林電子科技大學(xué)信息與通信學(xué)院,廣西 桂林 541004;2.桂林市桂電中學(xué)教務(wù)處,廣西 桂林 541004)
自1958年第一顆集成電路芯片面世以來(lái),集成電路產(chǎn)業(yè)從最簡(jiǎn)單的小規(guī)模集成電路(SSI)起步,先后歷經(jīng)了中規(guī)模(MSI)、大規(guī)模(LSI)、超大規(guī)模(VLSI)和巨大規(guī)模(ULSI),發(fā)展到如今的特大規(guī)模集成電路(GSI)以及高性能片上系統(tǒng)SoC,單個(gè)芯片上集成的晶體管數(shù)數(shù)以億計(jì)。隨著集成電路設(shè)計(jì)復(fù)雜度的提高以及器件特征尺寸的減小,高集成度、低功耗、高性能的片上系統(tǒng)(System on Chip,簡(jiǎn)稱SoC)已成為應(yīng)用最為廣泛的芯片解決方案。但是,由于目前絕大部分片上系統(tǒng)都采用總線互聯(lián)的方式實(shí)現(xiàn)資源IP間的數(shù)據(jù)通信,隨著功能IP數(shù)目增加,基于總線互連的片上系統(tǒng)在資源復(fù)用性、適應(yīng)性和擴(kuò)展性等方面無(wú)法滿足設(shè)計(jì)需求,成為了制約片上系統(tǒng)性能的瓶頸。
為了突破傳統(tǒng)SoC固有的局限性,來(lái)自歐洲瑞典皇家理工學(xué)院的科研團(tuán)隊(duì)于2000年提出了一種全新的適用于大規(guī)模SoC的集成電路體系結(jié)構(gòu)——片上網(wǎng)絡(luò)(Network on Chip,NoC),它把計(jì)算機(jī)網(wǎng)絡(luò)中的通信技術(shù)移植到片上系統(tǒng)的互連通信中來(lái),從體系結(jié)構(gòu)上解決了多核SoC在擴(kuò)展性、復(fù)用性和通信效率等方面遇到的問(wèn)題。本文從片上網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和通信協(xié)議設(shè)計(jì)出發(fā),基于FPGA平臺(tái)構(gòu)建并完成了一款5×5二維環(huán)面 NoC通信架構(gòu)的片上網(wǎng)絡(luò)的設(shè)計(jì)。
學(xué)術(shù)界給NoC的定義是:NoC是基于網(wǎng)絡(luò)通訊的多核系統(tǒng),用路由和報(bào)文交換技術(shù)完成通訊任務(wù)。NoC一般是由通信網(wǎng)絡(luò)將多個(gè)資源節(jié)點(diǎn)相連通構(gòu)成,針對(duì)不同的資源節(jié)點(diǎn),用一定的互聯(lián)拓?fù)浣Y(jié)構(gòu)搭建成為通訊通道,使資源節(jié)點(diǎn)間進(jìn)行數(shù)據(jù)傳輸時(shí)選擇合適的通道,從源節(jié)點(diǎn)正確地傳輸?shù)侥康墓?jié)點(diǎn)。在搭建NoC架構(gòu)的過(guò)程中,需要對(duì)片上網(wǎng)絡(luò)進(jìn)行優(yōu)化設(shè)計(jì),主要包括2個(gè)方面的內(nèi)容,即拓?fù)浣Y(jié)構(gòu)和通信協(xié)議。拓?fù)浣Y(jié)構(gòu)指的是NoC中通信節(jié)點(diǎn)和資源節(jié)點(diǎn)的靜態(tài)分布方式與節(jié)點(diǎn)之間的連接方式,拓?fù)浣Y(jié)構(gòu)的選擇對(duì)網(wǎng)絡(luò)的延時(shí)、吞吐率、面積、功耗有著重要的影響。常見(jiàn)的拓?fù)浣Y(jié)構(gòu)可以分為網(wǎng)格結(jié)構(gòu)(Mesh)、環(huán)面結(jié)構(gòu)(Torus)、樹(shù)形結(jié)構(gòu)(Tree)、環(huán)形結(jié)構(gòu)(Ring)等。在上述幾種拓?fù)浣Y(jié)構(gòu)中,二維環(huán)面結(jié)構(gòu)具有結(jié)構(gòu)對(duì)稱,易于設(shè)計(jì),擴(kuò)展性優(yōu)秀,路由算法簡(jiǎn)單、高效等優(yōu)點(diǎn),所以,本設(shè)計(jì)以二維環(huán)面結(jié)構(gòu)為NoC通信架構(gòu)的拓?fù)浣Y(jié)構(gòu)模型。
通信協(xié)議,指的是系統(tǒng)中的通信雙方完成通信或服務(wù)所必須遵循的規(guī)則和約定,由通信時(shí)序、數(shù)據(jù)交換技術(shù)和路由算法三部分構(gòu)成。為了滿足設(shè)計(jì)要求,本設(shè)計(jì)基于廣泛使用的OSI協(xié)議作為通信協(xié)議標(biāo)準(zhǔn),采用全局時(shí)鐘策略下的同步握手協(xié)議、數(shù)據(jù)分包(package)的交換技術(shù)和維序XY路由算法構(gòu)建NoC通信架構(gòu)。
一個(gè)完整的NoC通信架構(gòu)由資源節(jié)點(diǎn)、通信節(jié)點(diǎn)、資源網(wǎng)絡(luò)接口和連接整個(gè)網(wǎng)絡(luò)的通道構(gòu)成。由于資源節(jié)點(diǎn)可以是設(shè)計(jì)好的IP,也可以是已有的SoC,在本設(shè)計(jì)中不涉及資源節(jié)點(diǎn)的設(shè)計(jì),主要著眼于完整的通信網(wǎng)絡(luò)的連接設(shè)計(jì)以及底層的通信節(jié)點(diǎn)和資源網(wǎng)絡(luò)接口的設(shè)計(jì)實(shí)現(xiàn)。綜合考慮設(shè)計(jì)指標(biāo)和資源成本,基于上述討論的通信架構(gòu)模型,本設(shè)計(jì)構(gòu)建如圖1所示的5×5二維環(huán)面網(wǎng)絡(luò)結(jié)構(gòu)。
圖1所示的NoC架構(gòu)包含25個(gè)路由節(jié)點(diǎn)和25個(gè)RNI接口,其中,路由器地址從(0,0)至(4,4)。網(wǎng)絡(luò)的擴(kuò)展可通過(guò)添加更多的資源節(jié)點(diǎn)與路由節(jié)點(diǎn)實(shí)現(xiàn)。
圖1 NoC通信網(wǎng)絡(luò)總體結(jié)構(gòu)
在NoC中,路由器(Router)的功能包括了數(shù)據(jù)的存儲(chǔ)轉(zhuǎn)發(fā)、報(bào)文交換和路由選擇等,所以,其性能在很大程度上決定了NoC架構(gòu)的性能。完整的路由器由輸入緩存(InputBuffer)、路由抉擇(RouterOpt)、路由仲裁(Arbiter)和輸出緩存(OnputBuffer)4個(gè)分立模塊構(gòu)成。路由器接收到從上一級(jí)路由節(jié)點(diǎn)傳來(lái)的數(shù)據(jù)包以后,先把數(shù)據(jù)緩存在輸入緩存中,提取有效路由信息進(jìn)行地址判斷,然后向正確的輸出通道發(fā)出轉(zhuǎn)發(fā)請(qǐng)求,如果輸出通道空閑,該方向的仲裁模塊返回允許應(yīng)答,同時(shí),開(kāi)放輸出通道,最后經(jīng)由輸出緩存把數(shù)據(jù)包傳輸?shù)较乱患?jí)路由節(jié)點(diǎn)的輸入通道。完整的數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)過(guò)程如圖2所示。
圖2 NoC路由器結(jié)構(gòu)及數(shù)據(jù)傳輸過(guò)程示意圖
片上網(wǎng)絡(luò)與傳統(tǒng)總線相比具有通信帶寬高、數(shù)據(jù)吞吐量大的優(yōu)勢(shì),所以,片上網(wǎng)絡(luò)在處理多對(duì)設(shè)備并行通信時(shí),往往會(huì)出現(xiàn)多組通信同時(shí)競(jìng)爭(zhēng)同一個(gè)路由節(jié)點(diǎn)的某個(gè)輸出通道的問(wèn)題,因此,需要設(shè)計(jì)1個(gè)合理的仲裁(Arbiter)模塊來(lái)處理多組請(qǐng)求,并分時(shí)返回準(zhǔn)許(grant)信號(hào)。
本設(shè)計(jì)采用NoC中廣泛應(yīng)用的輪循調(diào)度仲裁機(jī)制,輪循調(diào)度的基本思想是調(diào)度器循環(huán)地為隊(duì)列中的實(shí)體提供服務(wù),具有公平、靈活的優(yōu)點(diǎn),其功能基于圖3所示的狀態(tài)機(jī)實(shí)現(xiàn)。
圖3 路由仲裁狀態(tài)機(jī)
仿真和驗(yàn)證的功能是檢查設(shè)計(jì)的正確性,仿真驗(yàn)證是設(shè)計(jì)流程中極為重要的環(huán)節(jié),同時(shí),也是系統(tǒng)不斷修正、改進(jìn)和優(yōu)化的過(guò)程。我們?yōu)镹oC通信架構(gòu)設(shè)計(jì)了一套比較完善的驗(yàn)證方法,驗(yàn)證了各部件的邏輯以及整個(gè)通信架構(gòu)的功能。
一般來(lái)說(shuō),基于FPGA的設(shè)計(jì)與驗(yàn)證流程包括功能驗(yàn)證和時(shí)序驗(yàn)證2個(gè)方面,功能驗(yàn)證是指使用Modelsim、VCS和NC Verilog等EDA軟件模擬電路的工作行為;時(shí)序驗(yàn)證則是利用FPGA、CPLD等可編程邏輯器件實(shí)現(xiàn)設(shè)計(jì)的功能,同時(shí),輔以外設(shè)搭建一個(gè)系統(tǒng)環(huán)境,通過(guò)對(duì)該系統(tǒng)施加測(cè)試向量驗(yàn)證設(shè)計(jì)的時(shí)序是否滿足設(shè)計(jì)需求。
為了設(shè)計(jì)一套有效的功能驗(yàn)證方案,我們通過(guò)構(gòu)建不同數(shù)據(jù)吞吐量下的通信網(wǎng)絡(luò)數(shù)據(jù)交換測(cè)試,實(shí)現(xiàn)功能驗(yàn)證的完備性。通過(guò)無(wú)阻塞的點(diǎn)對(duì)點(diǎn)節(jié)點(diǎn)通信驗(yàn)證,驗(yàn)證路由算法的邏輯、鏈路的連通性和NoC通信架構(gòu)傳輸?shù)恼_性,通過(guò)設(shè)計(jì)多節(jié)點(diǎn)并行通信驗(yàn)證,驗(yàn)證架構(gòu)中緩沖隊(duì)列的讀寫時(shí)序以及輪循調(diào)度的路由仲裁機(jī)制是否符合設(shè)計(jì)規(guī)范。
本設(shè)計(jì)的時(shí)序驗(yàn)證基于Altera公司的FPGA開(kāi)發(fā)板驗(yàn)證平臺(tái)進(jìn)行。與功能驗(yàn)證類似,時(shí)序驗(yàn)證以數(shù)據(jù)存儲(chǔ)ROM作為資源IP為NoC通信架構(gòu)加載測(cè)試向量,在原基礎(chǔ)上增添1個(gè)UART傳輸過(guò)程,通過(guò)UART傳輸把目的節(jié)點(diǎn)中的數(shù)據(jù)以串口數(shù)據(jù)讀到PC端,通過(guò)比對(duì)實(shí)際電路板的輸出結(jié)果與在仿真平臺(tái)下得到的預(yù)期結(jié)果是否一致來(lái)判斷設(shè)計(jì)的時(shí)序是否正確。
本設(shè)計(jì)最終基于Altera公司的Stratix II EP2S90 FPGA開(kāi)發(fā)版完成物理實(shí)現(xiàn)。通過(guò)FPGA平臺(tái)進(jìn)行電路綜合,該系統(tǒng)的物理實(shí)現(xiàn)共使用了18 046個(gè)組合運(yùn)算器、15 134個(gè)邏輯寄存器和21 600個(gè)存儲(chǔ)單元,整個(gè)系統(tǒng)共占用FPGA平臺(tái)邏輯資源的32%和極少量的存儲(chǔ)資源,且綜合得到系統(tǒng)的最高時(shí)鐘頻率可達(dá)118.79 MHz。資源開(kāi)銷以及設(shè)計(jì)時(shí)序均符合預(yù)期設(shè)定的設(shè)計(jì)需求。
本設(shè)計(jì)基于FPGA平臺(tái)設(shè)計(jì)實(shí)現(xiàn)了一款5×5的二維環(huán)面結(jié)構(gòu)的片上網(wǎng)絡(luò),具有可復(fù)用、并行通信、擴(kuò)展性好、低開(kāi)銷等優(yōu)點(diǎn),可應(yīng)用于對(duì)資源復(fù)用性、適應(yīng)性和擴(kuò)展性有較高需求的多核片上系統(tǒng)的設(shè)計(jì),具有廣泛的應(yīng)用前景和較高的價(jià)值。
[1]高明倫,杜高明.NoC:下一代集成電路主流設(shè)計(jì)技術(shù)[J].微電子學(xué),2006,36(4):461-466.
[2]顧華璽,劉增基,王琨,等.Torus網(wǎng)絡(luò)中分布式自適應(yīng)路由算法[J].西安電子科技大學(xué)學(xué)報(bào),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.