片上互聯的需求與片上網絡的研究意義——詳說片上網絡之三

來源:內容來自「知乎」,作者:黃樂天,謝謝。

隨著期末的臨近,事情現在也是越來越多。為了不拖更,現在也只能把原來比較宏偉的寫作計劃往簡化了去搞。(此處應該有一配圖,但是找不到那張圖了所以先暫時空在這裡)目的呢還是能儘快的把片上網絡的相關內容都給大家過一遍。

本次將重點來討論一下芯片進入深亞微米以後片上互聯出現的新情況和新需求,反過來再討論片上網絡研究的意義何在。

首先來看一個圖:

片上互聯的需求與片上網絡的研究意義——詳說片上網絡之三

圖1 數字信號的傳播延遲

對於數字信號而言,其0到1/1到0的變換過程不是瞬間完成的,是需要有時間的。在圖1中為我們展示了這樣一個變化的過程。從輸入變化(上面的波形)到引起輸出變化(下面的波形)是有一個時間間隔的。圖中的tPHL表示從高電平(通常表示邏輯1)到低電平(通常表示邏輯0)的變化時間間隔,而tPLH表示從低電平到高電平的變化時間間隔。這個時間間隔被稱為延遲(Delay)。

延遲是由於底層器件的物理因素引起的,主要可以分為由於晶體管(Transistor)和互連線(wire)兩種器件的物理性質引起的延遲。由於晶體管引起的延遲主要是晶體管的寄生參數(主要是電容)導致的充放電時間和晶體管自身導通關斷的特性造成的。而線延遲則是由於連線非理想特性引入的阻容效應以及電磁信號在導體中傳播速度的限制等因素引起的。具體的延遲分析涉及到大量的數學公式和微電子器件相關的知識點,在這裡我就不詳細解釋了。有興趣的同學可以去翻閱數字集成電路與系統設計相關的書籍。

在集成電路工藝沒有進入深亞微米(100nm以下)之前,晶體管特性造成的延遲遠遠高於互連線造成的延遲。隨著工藝不斷的演進,晶體管的尺寸在不斷縮小。因此帶來的效果是晶體管的開關速度不斷變快,在本系列的第一講對此做過簡要的分析和介紹。但工藝演進造成的特徵尺寸縮小反過來是造成了互連線橫截面和線之間的距離縮小。前者增大了等效電阻而後者則對於寄生電容有較大影響。而隨著工藝的進步,單位面積上晶體管數目的增加,使得互連線的總長度和互連結構的複雜性是在不斷提升的。這就使得互連線延遲在總延遲中所佔比重越來越高,已經成為影響芯片性能提升的瓶頸。最典型的就是在最新的幾代FPGA中,由於互連線造成延遲早已到了80%以上的比重。這是因為FPGA這種可編程器件互連結構更為複雜且為了滿足可編程需求內部要插入可編程的互連晶體管節點,這使得其互連線延遲要高於普通的數字集成電路。

減少互連線延遲可以從材料、器件、電路優化和互連結構等多個方面來優化。例如,在130nm工藝以後,銅就取代了更為廉價的鋁作為互連線的材料。這是由於銅有更小的電阻率和更強的抗電遷移能力,在降低連線延遲的同時延長了連線的使用壽命。又如Intel在其FPGA中採用了HyperFlex技術,在在FPGA的佈線網絡上,加入很多名為hyper-register的小型寄存器,這樣可以把原本比較長的時序路徑分割成多個較短的路徑,從而達到頻率提升的作用。

從物理設計的角度來看,片上網絡的作用其實和hyper-register思想類似。即把較為複雜的“全局性”互連線劃分為路由器之間的“局部性”連線,這樣在佈局佈線時會顯著的降低複雜性。除了將全局性連線“局部化”之外,片上網絡還起到了協議的“封裝”和“轉換”的作用。這樣可以使得大規模的集成電路被劃分為若干個Block,每個Block內部實現自己的局部互連,當需要長距離互連的時候則通過片上網絡。目前由於片上互連延遲已經發展到了難以控制的地步,FPGA也在開始使用片上網絡來解決互連問題。從2014年左右由多倫多大學提出NoC-FPGA,到Xilinx最新推出的ACAP中使用了片上網絡來解決多核異構互連。如何在FPGA中使用片上網絡也一直在被探索和權衡。

綜上所述,減少全局性長互連線,簡化大規模集成電路的互連結構,最終減少大規模集成電路中越來越嚴重的互連線延遲是片上網絡研究的第一個出發點。從這一點出發開展的研究主要關注片上網絡的“物理層面”,也就是電氣特性、信號傳播和電路組織。發展到後期,各種新的片上通信技術也在被嘗試引入到片上網絡的研究中來。例如片上光通信的基礎上,討論如何引入光路設計和光器件的結構實現交換結構從而實現“光片上網絡”的。在3D-IC的基礎上討論如何結合TSV的特性,實現3D片上網絡的。以及我覺得無比扯淡的“無線片上網絡”的。從這個視角出發開展研究的人一般具備很強的微電子/芯片設計背景,對於芯片自身的電氣特性和物理現象瞭解得較為深刻。通常研究會從連接器件/電氣特性/信號收發等“物理層”研究出發,配合一部分電路和架構設計。西安電子科技大學楊銀堂教授團隊就是這種研究思路的典型代表。由於我本人對這個方向研究的瞭解有限,所以就不繼續展開討論了。

當芯片規模大了以後,所遭遇的另一大問題就是多個模塊相互通信時會產生較為嚴重的衝突。解決衝突的最普通辦法就是把多個模塊之間的通信從簡單的總線互連向複雜的互連方式演進。

片上互聯的需求與片上網絡的研究意義——詳說片上網絡之三

圖2 ST公司的某款基於Cortex M7的SoC芯片

圖2給出了ST公司所設計的某個基於Cortex M7的SoC芯片。這款新品中包含了多個主模塊(Master)和多個從模塊(Slave)。為了滿足不同模塊之間的互連需求,在主-從模塊之間設計了交換矩陣這種連接方式。由於實現全互連開銷過大且很多模塊之間並無通信的需求,因此在這個交換矩陣中之採取了部分互連的方式,在圖中打紅圈的地方表示二者可以互連。可以看出,和各個從模塊互連最多的不是處理器核而是DMA2。

雖然部分互連可以在一定程度上減少硬件複雜度,降低硬件電路面積。但是這種多對多的模式仍然會導致交換電路的面積過大、仲裁電路過於複雜等問題。當主模塊超過8個以後,這種依靠交換矩陣的互連方式就將存在較大的困難。而在片上多核系統中,各種各樣的主模塊非常的多(包括但不限於各種處理器、各種DMA、各種接口控制器等)。這樣直接使用交換矩陣會造成電路面積過大且仲裁電路過於複雜,最終會給物理設計造成困難並導致芯片整體的頻率難以提升。

從邏輯結構看,片上網絡就是把一個大的交換矩陣拆分成若干個具備獨立仲裁的能力的路由器。這樣可以極大的降低交換電路的複雜性。以一個常見的Mesh結構的片上網絡為例,

片上互聯的需求與片上網絡的研究意義——詳說片上網絡之三

圖3 一個典型Mesh結構的片上網絡

從圖3可以看出,一個典型的Mesh結構的片上網絡,其中部的路由器為5個端口(與四周路由器接口並與本地的功能單元接口),而其邊緣的路由器為4個(邊路由器)或3個(角路由器)。相比於採用交換矩陣直連其端口數量大大降低,相應的交換電路和仲裁電路也更加簡單。

片上互聯的需求與片上網絡的研究意義——詳說片上網絡之三

圖4 Intel公司早期發佈的5端口路由器微架構[1]

圖4為Intel公司2011年在JSSC上報道的一種5端口片上路由器結構。在第4級的Crossbar中可以看出,5端口的路由器的每個輸出端口通過一個4選1多路複用器和其它方向的輸入端口互連。根據仲裁電路的仲裁結果,選擇一個請求輸出的輸入端口的數據輸出到輸出端口。這樣我們就把互連的複雜程度從圖3的16選1降低到了4選1(實際上功能單元內部一般不止一個主模塊,而這裡僅做簡單類比)。

當然,這樣拆分也不是無代價的,不可避免的會引入一些問題。首要的問題就是如果使用交換矩陣互連,當兩個通信的主從模塊一定,可以通過直連的方式通信。而在片上網絡中將交換矩陣拆分成多個路由器互連,本身存在一個“多跳”傳輸的問題,即有時候需要經過多個路由器才能到達目的地。而這就會引入一個如何知道應該通過拿幾個路由器才能把信息傳遞到目的地的問題。解決這個問題的過程其實是和傳統的通信網絡解決的方法一致:依靠路由算法。因此,研究路由算法就成為了片上網絡很主要的一個研究內容。但其實大家研究(灌水)多年,真正有用的也主要是就是XY路由算法及其簡單的變形。這是因為XY路由算法實現簡單高效,並且對於預防死鎖比較有效(關於死鎖的問題以後再討論)。

圖4雖然給出了一種經典的路由器結構,但實際上這個經典的路由器還可以繼續拆分。圖5給出了一種按X方向和Y方向拆分路由器的方法。

片上互聯的需求與片上網絡的研究意義——詳說片上網絡之三

圖5 按X方向和Y方向拆分路由器[2]


這是一篇發表在2009年Micro的論文,我個人認為其實這篇論文一出片上網絡微架構的討論應該進入一個新的時代了。對於按照Tile方式組織的片上多核系統,採用這種微架構將獲得極好的性能。這種微架構採取了X方向入,Y方向出的策略。數據進入到X方向的子路由器,先沿著X方向傳播。當傳播到X方向的盡頭以後再轉入Y方向傳播直到到達目的地。這種微架構和XY路由方式高度契合,因而路由算法實現極為簡單。而且由於被拆分成為了兩個方向的子路由器,使用2選1或3選1的多路複用器就可以實現數據包交換。從電路結構上被大大的簡化了,在最後實現時可以跑出很高的時鐘頻率。而很多所謂的採用了很複雜的微架構的片上路由器真正到了電路實現環節根本跑不快,最終的實際性能是很難看的(造成這種情況的原因主要是因為搞Architecture的人發文章單位通常都是Cycle而不是s或者ms,而且一般電路綜合的時候都不寫狀態機和控制邏輯)。在近年來Intel等公司在ISSCC等固態電路頂級會議和期刊上發表的片上互連結構,在很大程度上是借鑑和參考了這篇論文。

另一種“拆分”方法是從整個片上網絡的構造上面來劃分,面向專門的多核片上系統設計更為合理的拓撲結構並在此基礎上定義更為合理和精細的片上網絡微架構。這種專用的片上網絡一般針對MPSoC,也可能是針對其它用途的芯片。考慮到後端設計的合理性,這種片上網絡往往需要設計方法學上的創新,需要利用類似“綜合”和“佈局佈線”的方法來生成一個符合實際互連需求的片上網絡。這一部分我們後面講到片上網絡分層的時候再詳細討論。

那麼現在再來簡單總結一下,從另外一個視角來看片上網絡實際上是再尋找一種片上多模塊互連的結構,通過這種新的互連結構以較低的複雜度實現較高擴展性的互連方案。在尋找互連方案的時候需要考慮儘可能的降低數據包傳輸衝突並提升互連的性能。因此這是一種“自頂而下”的研究視角,更多的是從芯片整體架構和應用需求出發來討論片上網絡。其涉及到的研究內容主要包括了拓撲、路由算法以及路由器微架構設計。而在一個成功的片上網絡設計中,這三者往往是缺一不可的。從這一視角開展研究的研究者往往是計算機體系結構出身,對於片上系統的整體架構和互連需求有較為清楚的認識。但比較諷刺的是,最終決定他們研究高度的限制條件往往是對於電路特性本身的理解。如果對於電路電氣特性的理解不夠深入,最後往往會做出一些“紙上談兵”的結果。

從上面的分析我們可以看出,從“自頂向下”和“自底向上”兩個方向都可以來研究片上網絡。而有趣的是研究者自身不同的背景往往會決定研究的起點,但決定他們研究深度的往往卻是他們是否具備補足自己知識背景盲點的能力。要想做出一個有深度的片上網絡研究或者說設計出一個比較成功的片上網絡電路,往往需要從物理設計到系統架構的綜合能力。此外,片上網絡是否具有實用性,還需要考慮到片上多核系統整體性的配合。要做好片上網絡的研究和設計其實並不容易。當然,由於片上網絡相對於數字集成電路的其他研究方向而已門檻較低(比信號處理電路要求的數學功底低,比處理器要求的系統規模小),所以在這個領域摸魚的研究也不少。尤其在2010年以前,有大量無意義的垃圾論文存在。這一方面炒熱了這個研究方向,另一方面也造就了過多的泡沫。反而是在浮躁中堅持下來的那幾個做片上網絡IP的創業公司最終看到了曙光。

當然,以上的研究方向分析主要還是從功能和性能設計的角度出發討論片上網絡的。片上網絡本身作為一種特定的數字電路,也可以針對其自身的特點研究低功耗、可靠性以及可測試性等一般數字電路的研究內容(也是我這幾年賴以“起家”的研究方向)。這些後面有機會我再慢慢介紹。

這次先介紹到這裡,下次介紹片上網絡的分層結構與實際的電路對應關係。讓大家理解片上網絡的“片上屬性”和“網絡屬性”是如何影響其設計的。

內容回顧:

名家專欄 | 詳說片上網絡之二:片上多核系統的互聯需求

名家專欄 | 詳說片上網絡之一:片上多核系統與片上網絡的發展

片上互聯的需求與片上網絡的研究意義——詳說片上網絡之三


參考文獻

[1] SalihundamP , Jain S , Jacob T , et al. A 2 tb/s 64 mesh network for a single-chip cloud computer with dvfsin 45 nm cmos[J]. IEEE Journal of Solid-State Circuits, 2011, 46(4):757-766.

[2]Kim J . Low-cost router microarchitecture for on-chip networks[C]// 42st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-42 2009), December 12-16, 2009, New York, New York, USA. ACM, 2009.

作者簡介:

黃樂天,電子科技大學電子科學與工程學院,副教授, 電子科技大學博士。主要研究方向為計算機系統架構與系統級芯片設計,已在IEEE Transactions on Computers (CCF A 類期刊)等高水平期刊和CODE+ISSS、FCCM、ASPDAC、ISCAS等頂級會議上發表高水平論文50 餘篇,申請專利11項,出版學術著作1部。參加工作以來主持和參與過國家自然科學基金項目重點項目、裝備預研重點項目、國家科技重大專項、國家“863”重點研究計劃等國家級重點科研項目,曾榮獲Altera公司(Intel PSG)金牌培訓師、 第七、第八、第十二屆研究生電子設計大賽優秀指導教師、電子科大網絡名師等稱號。先後擔任過國際會議ICICM 2016年Publicity Chair, ISOCC 2016年Session Co-Chair、APCCAS2018 Special Session Chair等學術職務。

相關推薦

推薦中...