引言:隨著單個芯片上集成的晶體管數量超過10億數量級,能量消耗已經逐漸成為芯片設計的首要限制因素。集成電路的設計重點也從芯片的功能需求轉變為功耗需求。NoC作為未來芯片設計的發展方向,研究其功耗問題意義重大。
1功耗模型
1.1CMOS邏輯電路的功耗模型
集成電路的功耗主要由動態功耗、短路功耗、靜態功耗和漏電流功耗4個方面組成。
(1)動態功耗是電路中的節點電容充放電行為產生的,可以由以下表達式表述:
式中:Vdd為電源電壓;Ci為被充放電的節點電容;i為節點活性因子(表示節點電容充放電的平均次數與開關頻率的比值);f為開關頻率。
(2)短路功耗是在一定條件下電源到地產生的短路電流形成的,其表達式為:
式中:k由工藝和電壓決定;W為晶體管的寬度;τ為輸入信號的上升/下降時間;f為開關頻率。
(3)靜態功耗是電路在穩定時所形成的功耗。
(4)漏電流功耗是指由亞閥值電流和反向偏壓電流造成的功耗。
以靜態CMOS電路為主的集成電路中,動態功耗是整個電路功耗的主要組成部分,其次為短路功耗,而靜態功耗和漏電流功耗在大多數情況下可以忽略不計[23]。
分析動態功耗的構成公式可以得出降低電源電壓、減小電路節點電容和節點開關活性等方法,從而降低集成電路的功耗。
集成電路的動態功耗與電源電壓的平方成正比關系,因此,降低電源電壓可以大幅度減少功耗。但一般電源電壓Vdd應不小于閥值電壓Vt的2~3倍,如果電源電壓小到接近閥值電壓,電路的延遲會明顯加大,因此,為了保證電路的性能,可以采用適當低的閥值電壓Vt。但Vt也不能無限制的降低,必須保持一定的噪聲裕度,而且當Vt下降時,漏電流造成的功耗也會相應增加。
從另一方面考慮動態功耗是電路中節點電容的充放電行為產生的,節點充放電的頻率是一個重要的參數,而節點活性因子正是反映節點充放電的頻率的參數,電路的有效電容是節點活性因子與節點電容的乘積。避免無用的充放電行為,采用各種低活性的電路結構可以降低功耗。
1.2片上網絡通訊功耗模型:
Orion提出的功耗模型(PowerModel),是首次提出的運用在網絡中的功耗模型。片上網絡(NoC)將網絡通信的原理引入到片上系統的設計中,適用PowerModel功耗模型。片上網絡通訊功耗是指片上網絡的任意資源節點間的數據通訊所產生的功耗,在PowerModel功耗模型中傳輸一個數據片(flit)的功耗用Eflit表示。
式中:Ebuf表示緩沖器的功耗;Earb表示仲裁的功耗;Exb表示交叉開關(Crossbar)的功耗;Ecn=Ebuf+Earb+Exb表示通訊節點內部的功耗;Elnk表示通道(link)的功耗。假設H表示數據片經過的網絡跳數,數據片(flit)從資源節點Ri傳輸到資源節點Rj的功耗:
當H=D時,此時的功耗為最低,即:
這里的D是源節點到目的節點采用最短路由算法所得的曼哈頓距離(ManhattanDistance)。
2降低功耗的辦法:
2.1集成電路不同的設計層次:
文獻[5]介紹了工藝級低功耗設計和優化技術這一設計層次的低功耗方法。版圖級低功耗設計和優化技術基于Elmore模型,優化電路的主要功耗是互連線的功耗。布局布線技術從只考慮面積和延時的因素,發展到通過加入來自設計前端的信號活動信息以實現對功耗的優化。門級低功耗設計和優化技術包括時序調整、公因子提取、工藝映射、門尺寸優化和路徑平衡等方法[67]。文獻[6]介紹的時序調整(Retiming)方法通過插入新的寄存器或重新安排寄存器的位置,達到減少門的翻轉頻率或減少通過流水線的最長段延遲,以此減少功耗。文獻[7]利用公因子提取方法實現了多級電路的低功耗。工藝映射方法把翻轉率高的節點隱藏到負載電容小的門單元的內部,從而降低功耗。門尺寸優化方法是對非關鍵路徑的門縮小尺寸從而減小面積和功耗。路徑平衡方法通過避免多余的偽跳變從而節省功耗。RTL結構級低功耗設計及優化技術這一層次的低功耗方法包括邏輯綜合和優化技術及并行設計(Parallelism)和流水線設計(Pipeline)技術。并行設計和流水線設計是通過增大面積來提升性能和減低功耗,采用并行設計后,電路面積每增長n倍,電容增大n倍,對應的頻率和電壓下降n倍,因為功耗與電壓的平方成正比,所以功耗可以降低n2倍。系統級低功耗設計和優化技術這一層次的低功耗技術包括軟硬件劃分、存儲器優化[8]、指令級優化、動態功耗管理[9]和總線低功耗設計等。
2.2片上網絡通訊方面:
2.2.1內部緩沖器功耗:
發生競爭時,需要內部緩存臨時儲存低優先級的分組。在開關結構電路中,緩存通常用共享的靜態RAM或者動態RAM儲存器實現。存儲器訪問消耗的能量由輸入分組之間的競爭決定。目的地競爭是獨立于應用的,不管是用何種開關結構體系。互連線競爭依賴于開關結構體系,不同的體系拓撲會產生不同的競爭,因此,可以通過優化拓撲結構設計改善儲存器訪問的功耗。
2.2.2通道的功耗:
假設有一個基于RailtoRail結構的撥動開關,通道上的位能量Elnk可以通過以下公式計算:
其中:Cwire為通道的線電容,Cinput為連接到互連線上的輸入門的總電容。Cw=Cwire+Cinput為位傳播的總負載電容。
互連線電容的充放電行為決定了通道互連線的功耗。因此,兩方面的技術可以采用,一是盡可能減小開關活性,二是采用基于漢明距離的低功耗編碼技術。
2.2.3開關功耗:
不同的開關結構對網絡性能(如延遲、吞吐量、功耗等)的影響不同。下面分析交換結構中功耗問題和對具有不同數目出口和入口的交換結構體系的功耗估計方法。
2.2.3.1Crossbar開關結構[10]
Crossbar拓撲對輸入輸出之間的連接使用空間劃分多路選擇器。如圖2所示,每個輸入輸出連接有自己的專用數據路徑,因此,Crossbar結構沒有互連競爭。隨著輸入和輸出端口數的增加,開關功耗將呈現線性增加,對端口數多的開關結構,功耗將非常高。
2.2.3.2全連接網絡[10]:
與Crossbar網絡相似,全連接網絡中也沒有互連競爭,在它們的功耗模型中沒有使用內部緩沖器。每個全連接開關網絡的位能量消耗在互連線和多路選擇器上,多路選擇器的復雜度伴隨著輸入端數量的增加而更為復雜,其功耗也隨之增大。
2.2.3.3Banyan網絡[10]:
n維Banyan網絡有N=2n個輸入和N=2n個輸出,在n個階段開關的總數是1/2N!log2N,每個階段用i表示(0?i?n)。Banyan網絡中同一互連可能被不同的數據路徑共享,從而存在互連競爭問題,在每個內部節點開關中需要設置一個緩沖器。
Banyan網絡中的二進制開關比Crossbar中的交叉節點開關更復雜,當位數據從輸入端口交換到輸出端口,二進制開關消耗的能量更多。
2.2.3.4BatcherBanyan網絡[10]:
該結構由Batcher排序網絡和Banyan網絡組合構成,其中,競爭問題由Batcher排序網絡解決,后面跟著Banyan網絡。在排序網絡中,每個輸入輸出競爭都有自己的專用路徑,從而不存在互連競爭問題。
盡管BatcherBanyan網絡解決了互連競爭問題,但它是以增加輸入和輸出之間階段數為代價的,它共有1/2(log2N)(log2N+1)階段,這將增加位能量在開關和互連上的消耗。
互連競爭在內部緩沖器中引起大量的能量消耗,隨著吞吐量的增加,緩沖器中的功耗將急劇增加。對端口數少的開關結構,內部節點開關功耗是主要的,對于端口數非常大的開關結構,互連線功耗將占支配地位。
不同的開關交換結構體系其各自的功耗消耗主體不同,可以根據不同的應用要求,將芯片從整體上分成幾大部分,各部分采用不同的拓撲結構,以期實現芯片性能、面積和功耗的有機統一。
2.3NoC映射問題:
NoC映射是在給定IP核庫和任務圖的基礎上,以某些設計約束(如延遲和功耗等)為限制條件,將每個任務分配到合適的IP核上以及安排各個IP核上任務的執行順序,然后再決定每個IP核在NoC拓撲結構中的位置。在映射時,搜索空間隨著網絡尺寸的增長呈現階乘遞增,對于一個包含N個IP核的NoC,映射有N!種可能結果,因此,映射問題是一個NPcomplete問題。
功耗優先的映射問題就是在給定應用特征圖和NoC拓撲結構圖的基礎上,將應用特征圖中的每個處理單元分配到NoC的資源節點上,并且使整個系統的通訊功耗最小。以蟻群算法為典型的生物仿生算法在解決NoC映射問題方面應用比較廣泛。
3結束語:
NoC是未來芯片發展的方向,而功耗問題是Noc設計的一個關鍵問題。本研究從不同的功耗模型出發,從集成電路不同的設計層次、片上網絡通訊功方面以及NoC映射問題來討論NoC的低功耗設計,綜合現有功耗解決的最新方案,對NoC的功耗研究做了一個比較全面的歸類分析。