特約通訊員羅麗
NoC現(xiàn)在尚處于早期研究階段,但是從計(jì)算機(jī)發(fā)展的歷史可以看到NoC必將是SoC之后的下一代主流技術(shù),現(xiàn)在大力開(kāi)展NoC的基礎(chǔ)理論研究將是十分必要的,本文將介紹NoC的出現(xiàn)背景、基本架構(gòu)及現(xiàn)在的研究狀況等等,讓您將對(duì)NoC有著更為詳盡的了解。
SoC通常指在單一芯片上實(shí)現(xiàn)的數(shù)字計(jì)算機(jī)系統(tǒng),總線結(jié)構(gòu)是該系統(tǒng)的主要特征,由于其可以提供高性能的互連而被廣泛運(yùn)用。然而隨著半導(dǎo)體工藝技術(shù)的持續(xù)發(fā)展,出現(xiàn)了一些與總線相關(guān)的問(wèn)題:總線地址空間有限,由于使用單一時(shí)鐘整個(gè)芯片均同步的限制。因而在20世紀(jì)末幾個(gè)研究小組提出了一種全新的集成電路體系結(jié)構(gòu)NoC(Network on Chip),其核心思想是將計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)移植到芯片設(shè)計(jì)中來(lái),從體系結(jié)構(gòu)上徹底解決總線架構(gòu)帶來(lái)的問(wèn)題。
NoC可以定義為在單一芯片上實(shí)現(xiàn)的基于網(wǎng)絡(luò)通訊的多處理器系統(tǒng),是用來(lái)設(shè)計(jì)IP內(nèi)核和系統(tǒng)芯片之間的通信子系統(tǒng)的方法。NoC包括計(jì)算和通訊兩類(lèi)節(jié)點(diǎn)。計(jì)算節(jié)點(diǎn)(又稱(chēng)為資源,Resource)完成廣義的計(jì)算任務(wù),它們既可以是SoC,也可以是各種單一功能的IP;通訊節(jié)點(diǎn)(又稱(chēng)交換開(kāi)關(guān),Switch)負(fù)責(zé)計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通訊。通訊節(jié)點(diǎn)及其之間的網(wǎng)絡(luò)稱(chēng)為OCN(On—ChipNetwork),它借鑒了分布式計(jì)算機(jī)系統(tǒng)的通訊方式,用路由和分組交換技術(shù)替代傳統(tǒng)的總線技術(shù)完成通訊任務(wù)。
NoC是一個(gè)在單一硅芯片上為大型積體電路系統(tǒng)之間通訊時(shí)而出現(xiàn)的新興模式,我們把它稱(chēng)為“片上核交互通信網(wǎng)絡(luò)芯片的分層堆棧方法設(shè)計(jì)?!痹谝粋€(gè)片上網(wǎng)絡(luò)系統(tǒng),如處理器核心、內(nèi)存條和專(zhuān)門(mén)的IP塊等模塊,交換數(shù)據(jù)使用的是網(wǎng)絡(luò)作為公共交通的子系統(tǒng)來(lái)傳遞系統(tǒng)信息。一個(gè)片上網(wǎng)絡(luò)是由交換機(jī)(或路由器)來(lái)連通多條點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)鏈路交互構(gòu)建而成,使得信息在交換機(jī)中可以從任何源模塊通過(guò)不同的鏈路轉(zhuǎn)發(fā)到任何目的模塊。
NoC能夠跨越同步和異步時(shí)鐘域或者使用不受時(shí)間約束的異步邏輯。NoC將網(wǎng)絡(luò)原理和方法用于芯片的通訊上,并給傳統(tǒng)的總線交互帶來(lái)了便利。NoC相比于其它設(shè)計(jì)來(lái)說(shuō)提高了系統(tǒng)芯片的可擴(kuò)展性及復(fù)雜系統(tǒng)芯片的功率。
NoC的電線的鏈接中有許多共享的信號(hào)。因?yàn)镹oC上所有鏈接都可以同時(shí)傳送不同的數(shù)據(jù)包,從而達(dá)到很高的并行水平。因此,隨著集成系統(tǒng)的復(fù)雜性不斷增加,NoC相比之前的通信架構(gòu)(如專(zhuān)用的點(diǎn)對(duì)點(diǎn)信號(hào)線、共享總線、用網(wǎng)橋連接的分段總線等)提供了更強(qiáng)的性能(如吞吐量)和可擴(kuò)展性。當(dāng)然,一個(gè)好的算法必須設(shè)計(jì)以提供大量的并行性和也能更好地利用片上網(wǎng)絡(luò)的潛力。
傳統(tǒng)上,集成電路在專(zhuān)用點(diǎn)對(duì)點(diǎn)連接上設(shè)計(jì)的是每一個(gè)信號(hào)用一條線路來(lái)傳遞。對(duì)于大型設(shè)計(jì)來(lái)說(shuō),特別是從物理設(shè)計(jì)的角度來(lái)說(shuō),這已經(jīng)有較多的限制因素了,導(dǎo)線會(huì)占用不少的芯片面積。在納米級(jí)的Cmos技術(shù)中,導(dǎo)線主宰著性能和動(dòng)態(tài)功率損耗,因?yàn)樵谛酒g進(jìn)行電線上的信號(hào)傳輸需要多個(gè)時(shí)鐘周期。
NoC鏈路的速度、功耗、噪聲、可靠性等性能均可預(yù)測(cè),我們可以利用預(yù)測(cè)值設(shè)計(jì)易于控制的結(jié)構(gòu)從而減少設(shè)計(jì)的復(fù)雜度。從系統(tǒng)設(shè)計(jì)的角度,隨著多核處理器系統(tǒng)的出現(xiàn),網(wǎng)絡(luò)是一個(gè)自然而然的架構(gòu)選擇。片上網(wǎng)絡(luò)提供了計(jì)算和通信的隔離,通過(guò)一個(gè)標(biāo)準(zhǔn)接口支持模塊化和IP復(fù)用,處理同步問(wèn)題,為系統(tǒng)測(cè)試提供平臺(tái)服務(wù),并因此提高工程效率。
NoC與SoC有兩點(diǎn)本質(zhì)的區(qū)別:處理器數(shù)量的不同和通訊機(jī)制的不同。前者是多處理器系統(tǒng),而后者是單一處理器系統(tǒng);前者使用網(wǎng)路通訊,而后者用總線通訊。從體系結(jié)構(gòu)的角度來(lái)看,NoC使用網(wǎng)絡(luò)替代總線有如下優(yōu)點(diǎn):具有良好的地址空間可擴(kuò)展性,理論上可集成的資源節(jié)點(diǎn)的數(shù)目不受限制;提供良好的并行通訊能力,從而提高數(shù)據(jù)吞吐率及整體性能;使用全局異步局部同步(GlobalAsynchronous LocalSynchronous,GALS)機(jī)制,每一個(gè)資源節(jié)點(diǎn)都工作在自己的時(shí)鐘域,而不同的資源節(jié)點(diǎn)之間則通過(guò)OCN進(jìn)行異步通訊,很好地解決了總線結(jié)構(gòu)的單一時(shí)鐘同步問(wèn)題,從而徹底解決了龐大的時(shí)鐘樹(shù)所帶來(lái)的功耗和面積問(wèn)題。
NoC技術(shù)從體系結(jié)構(gòu)上徹底解決了SoC的總線結(jié)構(gòu)所固有的三大問(wèn)題:由于地址空間有限而引起的擴(kuò)展性問(wèn)題,由于分時(shí)通訊而引起的通訊效率問(wèn)題,以及由于全局同步而引起的功耗和面積問(wèn)題。
值得注意的是,NoC技術(shù)雖然移植了計(jì)算機(jī)網(wǎng)絡(luò)中的關(guān)鍵技術(shù),但是,由于通訊媒介存在著根本差異以及納米級(jí)工藝條件下芯片設(shè)計(jì)的特定需求,使得NoC在以下幾個(gè)方面與傳統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)之間存在著明顯的不同:連線資源遠(yuǎn)較計(jì)算機(jī)網(wǎng)絡(luò)豐富;流量分布函數(shù)的差別(傳統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)的流量服從泊松分布);資源節(jié)點(diǎn)的異類(lèi)性(NoC可在整個(gè)系統(tǒng)芯片內(nèi)進(jìn)行計(jì)算,而不僅僅是一個(gè)固定IP);顯著的低功耗需求(納米級(jí)工藝條件下任何芯片都無(wú)法回避的最重要的問(wèn)題之一)。
經(jīng)過(guò)近十年的發(fā)展,NoC技術(shù)的領(lǐng)域框架已經(jīng)基本成形,上圖給出了NoC基礎(chǔ)理論的體系。NoC技術(shù)領(lǐng)域包括體系結(jié)構(gòu)、納米設(shè)計(jì)技術(shù)、EDA實(shí)現(xiàn)理論與工具等幾個(gè)主要方面?!绑w系結(jié)構(gòu)”研究NoC的基本軟硬件結(jié)構(gòu),是當(dāng)前學(xué)術(shù)界的研究重點(diǎn)。其中的“OCN結(jié)構(gòu)”研究NoC的基礎(chǔ)通訊架構(gòu)(backbone);“拓?fù)浣Y(jié)構(gòu)”研究NoC通訊系統(tǒng)的拓?fù)淇蚣?;“通訊協(xié)議”著眼于基礎(chǔ)架構(gòu)中的高效通信;“NoC軟件”側(cè)重于操作系統(tǒng);“NoC基礎(chǔ)元件庫(kù)”相當(dāng)于SoC時(shí)代的IP庫(kù),庫(kù)元件既包括SoC、IP等傳統(tǒng)元件,也包括鏈接通道(1ink)、接口、路由器、電開(kāi)關(guān)等NoC時(shí)代的特有元件;“系統(tǒng)集成和驗(yàn)證技術(shù)”研究如何在上述基礎(chǔ)上設(shè)計(jì)NoC芯片。
盡管NoC能夠從已經(jīng)確定下來(lái)的計(jì)算機(jī)網(wǎng)絡(luò)定義借用概念和技術(shù),但是盲目地重復(fù)使用經(jīng)典計(jì)算機(jī)網(wǎng)絡(luò)和對(duì)稱(chēng)多處理器的特征是不切實(shí)際的。特別是NoC對(duì)交換機(jī)的要求更高,需要體積小、節(jié)能高效且快速。早期的NoC研究忽略了這些方面,但現(xiàn)在應(yīng)該更詳細(xì)地考慮。路由算法應(yīng)該能夠用簡(jiǎn)單的邏輯來(lái)執(zhí)行,數(shù)據(jù)緩沖區(qū)應(yīng)該要達(dá)到最低限度。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和屬性應(yīng)該是由具體相應(yīng)的程序而定。
一些研究者認(rèn)為,NoC需要支持服務(wù)質(zhì)量(QoS),即在吞吐量上實(shí)現(xiàn)各方面的要求,端至端的延誤和最后期限。NoC環(huán)境下的實(shí)時(shí)計(jì)算,如音頻和視頻播放,都需要服務(wù)質(zhì)量的保證。但是目前的系統(tǒng)實(shí)現(xiàn)如VxWorks,RTLinux或QNX都能夠?qū)崿F(xiàn)實(shí)時(shí)計(jì)算子毫秒而無(wú)需特殊硬件支持。這表明對(duì)于許多實(shí)時(shí)應(yīng)用程序來(lái)說(shuō)現(xiàn)有的片上互連的基礎(chǔ)設(shè)施的服務(wù)質(zhì)量是足夠的,專(zhuān)用硬件邏輯將會(huì)實(shí)現(xiàn)微秒的精度,在實(shí)際應(yīng)用中終端用戶(hù)是不需要這么精確的(只需要十分之一毫秒級(jí)就能保證聲音或視頻的不抖動(dòng))。
此外NoC的研究動(dòng)機(jī)之一是在公共云計(jì)算基礎(chǔ)設(shè)施中提供多個(gè)并發(fā)用戶(hù)在單一多處理器芯片上的資源共享的支持。在這種情況下,硬件的服務(wù)質(zhì)量將會(huì)提供有保障的服務(wù)水平,這將是一些公司或政府客戶(hù)端所期盼的特性。迄今為止,在學(xué)術(shù)界和工業(yè)界已經(jīng)設(shè)計(jì)和分析了一些NoC原型,但只有少數(shù)已實(shí)施。然而,從物理鏈路層到網(wǎng)絡(luò)層,并一路攀升到系統(tǒng)架構(gòu)層和應(yīng)用軟件層,不同級(jí)別均有許多具有挑戰(zhàn)性的研究問(wèn)題有待解決。
http://en.wikipedia.org/wiki/Network_On_Chip