使用 NoC 可以大大簡化 SoC的開發(fā),但這在很大程度上取決于誰在開發(fā)NoC
除了最簡單的產(chǎn)品以外,幾乎所有的現(xiàn)代系統(tǒng)級芯片 (SoC) 設(shè)備都將利用片上網(wǎng)絡(luò) (NoC) 來實(shí)現(xiàn)其片上通信。有些人質(zhì)疑是否有必要使用 NoC,或者采用更基本的方法是否能足夠滿足需要。
SoC中有什么?
SoC 是一種集成電路 (IC),它集成了計(jì)算機(jī)或其他電子系統(tǒng)的大部分或全部組件。SoC 由稱為知識(shí)產(chǎn)權(quán) (IP) 模塊的多個(gè)功能單元組成。其中有許多模塊將來自第三方供應(yīng)商;剩下的部分 - 那些提供“秘密武器”,將此SoC與競爭產(chǎn)品區(qū)分開來 - 將由自己內(nèi)部開發(fā)創(chuàng)建。
這些 IP 模塊可以包括處理器內(nèi)核,如微處理器單元 (MPU)、圖形處理單元 (GPU) 和神經(jīng)處理單元 (NPU)。除了各種類型的存儲(chǔ)器 IP 外,其他 IP 模塊還可以執(zhí)行通信、實(shí)用程序、外設(shè)和加速功能。
總線、crossbar switch和NoC
每個(gè) IP 塊都表示在系統(tǒng)內(nèi)存空間中的某個(gè)位置。術(shù)語“事務(wù)” (transaction) 是指從系統(tǒng)內(nèi)存空間的地址中寫入或讀取數(shù)據(jù)字節(jié)的操作。為了使SoC發(fā)揮其魔力,IP塊必須使用事務(wù)通過某種形式的互連來相互“交談”。術(shù)語“啟動(dòng)器” (initiator) 和“目標(biāo)” (target) 是指生成或響應(yīng)事務(wù)的 IP 塊。
1990年代SoC上使用的主要互連機(jī)制是總線 (bus)。高度簡化的表示如圖 1 所示。請注意,標(biāo)記為“總線”的線路將包括多條實(shí)現(xiàn)數(shù)據(jù)總線、地址總線和相關(guān)控制信號(hào)的線路。
圖1:簡化的總線互連結(jié)構(gòu)。
在許多早期的SoC設(shè)計(jì)中,只有一個(gè)中央處理器 (CPU) 形式的啟動(dòng)器IP塊。當(dāng)啟動(dòng)器在地址總線上放置一個(gè)地址時(shí),所有的目標(biāo) IP 塊都會(huì)看到它,其中一個(gè)會(huì)對自己說:“這是我”。當(dāng)啟動(dòng)器隨后發(fā)出讀取命令時(shí),或者當(dāng)它將數(shù)據(jù)放在數(shù)據(jù)總線上并發(fā)出寫命令時(shí),相應(yīng)的目標(biāo)將做出響應(yīng)。
有一些早期的 SoC 可能會(huì)使用多個(gè)啟動(dòng)器。例如,CPU 可能附帶直接內(nèi)存訪問 (DMA) 功能,該功能可用于在不同內(nèi)存區(qū)域和外圍設(shè)備之間快速傳輸大型數(shù)據(jù)塊。隨著設(shè)計(jì)中啟動(dòng)器數(shù)量的增加,有必要實(shí)施某種形式的仲裁方案,允許它們協(xié)商總線的控制。
在 2000 年代初期,隨著 SoC 設(shè)計(jì)變得越來越復(fù)雜 (包含越來越多的 IP 模塊并采用多個(gè)啟動(dòng)器),使用基于 crossbar switch交叉開關(guān)的互連架構(gòu)變得很普遍 (圖 2)。同樣,此圖中的每一條線代表一條包含數(shù)據(jù)、地址和控制信號(hào)的多線總線。
圖2:簡化的 crossbar switch互連架構(gòu)。
在這種情況下,任何啟動(dòng)器都可以與任何目標(biāo)通信。當(dāng)事務(wù)從啟動(dòng)器傳遞到目標(biāo)并再次返回時(shí),switch交叉開關(guān)對事務(wù)進(jìn)行路由,并且多個(gè)事務(wù)可以隨時(shí)在“進(jìn)行中”。每個(gè)switch都具有緩沖事務(wù)的能力,因此如果許多事務(wù)同時(shí)到達(dá),它可以決定哪個(gè)事務(wù)具有更高的優(yōu)先級。
SoC 設(shè)計(jì)的規(guī)模和復(fù)雜性持續(xù)增長。大約在 1990 年代初期,SoC 可能只包含幾十個(gè) IP 模塊,整個(gè)設(shè)備可能只包含 20,000 到 50,000 個(gè)邏輯門和寄存器。相比之下,如今,SoC 可以包含數(shù)百個(gè) IP 模塊,每個(gè)模塊包含數(shù)十萬甚至數(shù)百萬個(gè)邏輯門和寄存器。
在同一時(shí)期,數(shù)據(jù)總線的寬度從8位增加到16位,32位,64位,甚至更高。事實(shí)上,目前數(shù)據(jù)傳輸?shù)牡湫痛笮∈?64 字節(jié) (512 位) 緩存行,這很快就會(huì)導(dǎo)致路由擁塞問題。盡管硅芯片工藝的發(fā)展已經(jīng)使晶體管縮小了幾個(gè)數(shù)量級,但由于芯片上導(dǎo)線的寬度沒有以同樣的速度減小,這些問題變得更加嚴(yán)重。
為了解決這些問題,今天的設(shè)計(jì)人員采用了片上網(wǎng)絡(luò) (NoC) 的概念。圖 3 是一個(gè)簡單的 NoC 示例。在這種情況下,事務(wù)就由傳遞的信息包承擔(dān)。每個(gè)數(shù)據(jù)包包含一個(gè)反映目標(biāo)地址的標(biāo)頭和一個(gè)包含數(shù)據(jù)、指令、請求類型等的正文。
圖3:簡化的片上網(wǎng)絡(luò)(NoC)互連架構(gòu)。
多個(gè)信息包可以在任何特定時(shí)間“傳輸”,并且switch再次具有緩沖事務(wù)并確定事務(wù)優(yōu)先級的能力。由于每個(gè)啟動(dòng)器不需要能夠與每個(gè)目標(biāo)通信,這可以反映在架構(gòu)中,從而進(jìn)一步降低了互連要求。
使用成品還是“自己動(dòng)手”?
從一個(gè)角度來看,使用 NoC 極大地簡化了 SoC 的設(shè)計(jì),但這在很大程度上取決于誰在開發(fā) NoC。術(shù)語“套接字” (socket) 是指IP塊與NoC之間的物理接口 (例如,數(shù)據(jù)寬度) 和通信協(xié)議。SoC行業(yè)已經(jīng)定義并采用了幾種socket協(xié)議 (OCP,APB,AHB,AXI,STBus,DTL等)。
除了不同的數(shù)據(jù)寬度外,同一設(shè)計(jì)中的IP模塊可能以不同的頻率計(jì)時(shí)。由于 SoC 設(shè)計(jì)可能涉及數(shù)百個(gè) IP 塊,其中許多來自其他第三方供應(yīng)商,因此 IP 可能使用不同的socket協(xié)議。為了適應(yīng)這種多樣性,可能需要在啟動(dòng)器和目標(biāo)socket之間轉(zhuǎn)換事務(wù)。
支持多個(gè) SoC 項(xiàng)目的內(nèi)部 NoC 需要多個(gè)維度的可配置性和靈活性。因此,從頭開始開發(fā) NoC 可能與設(shè)計(jì) SoC 的其余部分一樣復(fù)雜和耗時(shí)。此外,開發(fā)人員現(xiàn)在有兩件事需要驗(yàn)證和調(diào)試 - NoC和設(shè)計(jì)的其余部分。
解決措施是使用現(xiàn)成的NoC解決方案,例如 Arteris的FlexNoC。在這種情況下,F(xiàn)lexNoC直觀的界面使設(shè)計(jì)人員能夠識(shí)別構(gòu)成架構(gòu)的IP模塊以及每個(gè)模塊的socket特性 (寬度、協(xié)議、頻率等)。開發(fā)人員還可以指定哪些啟動(dòng)器需要與哪些目標(biāo)通信。此時(shí),生成NoC實(shí)際上是一個(gè)“按鈕”操作。
SoC 到底有多復(fù)雜?
回到SoC設(shè)計(jì)何時(shí)需要片上網(wǎng)絡(luò)的問題。直覺的答案可能是較小的設(shè)計(jì)可能被豁免。但是,在最近與Semico Research的Rich Wawrzyniak的討論中,他證實(shí)我們已經(jīng)在客戶那里看到的情況是:即使在工業(yè)和物聯(lián)網(wǎng)領(lǐng)域的較小設(shè)計(jì)中,用戶也經(jīng)常面臨數(shù)十到數(shù)百個(gè)必須組裝和協(xié)調(diào)的IP塊。
如圖 4 所示,Semico 定義了四類 SoC。其中三種 - 具有100-200個(gè)離散模塊和1+互連的基本SoC,具有200-275個(gè)模塊和4+復(fù)雜互連的特定價(jià)值多核SoC,以及具有>275模塊和5+復(fù)雜互連的高性能SoC - 是NoC自動(dòng)化的明確靶心目標(biāo)。但是除此之外,即使是最簡單的商用控制器,設(shè)計(jì)人員也要面臨著10到100個(gè)需要交互的離散模塊。
對于較小的設(shè)計(jì),工程師傾向于“自己做NoC”。但通常情況下,他們很快就會(huì)意識(shí)到:他們應(yīng)該打電話給Arteris來利用NoC自動(dòng)化。
圖4:Semico根據(jù)復(fù)雜性將SoC分為四類。
審核編輯:劉清
-
soc
+關(guān)注
關(guān)注
38文章
4122瀏覽量
217955 -
片上網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
33瀏覽量
11796 -
OCP
+關(guān)注
關(guān)注
0文章
77瀏覽量
16404 -
NoC
+關(guān)注
關(guān)注
0文章
38瀏覽量
11721
原文標(biāo)題:我的SoC設(shè)計(jì)何時(shí)需要NoC ?
文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論