石輝,黃朝兵
(武漢理工大學信息工程學院,武漢430070)
隨著晶體管的技術的不斷發展,它的尺寸和提供的電壓都越來越小,這使得漏電的現象越來越嚴重,在所有種類的漏電中,靜態能量的損耗占了漏電中的大部分。例如,當65 納米工藝中片上網絡的功耗在整個系統能量損耗中占到了11.2%,到了32 納米時片上網絡占到的功耗已經達到了33.5%,在22 納米技術時,在靜態功耗在片上網絡所有的損耗中更是占到了高達74%[1]。為了提高多處理器芯片的運行能力,讓多核芯片運行時有更多的功率分配到計算資源節點中,減少片上網絡的功率損耗已經變成了不容忽視的研究方向。
本文注意到在實際應用中,路由器中經過的報文在時間上的分布是不規則的。路由器在這時間分散的流量下會出現次數極多的通電和斷電的過程,這樣在功耗以及延遲當面都會對系統造成不小的影響,如果這種通電過程的次數出現的過多,電源門控技術就會起到反面的效果,不僅會損耗更多的能量,也會帶來嚴重的延遲。
鑒于上述問題,本文提出了基于片上網絡功率控制的流量管理,對片上網絡中的流量進行管理。
電源門控技術能夠緩解漏電現象,但是電源門控技術在電路中起到作用有一個前提:電路中有足夠長的空閑時間以至于彌補斷電和通電過程產生的損耗。盡管片上網絡被設計為在很高的節點之間流量傳輸運行,在實際的應用中節點之間的流量傳輸其實很小,這就造成了大量的資源浪費。其結構圖如圖1 所示[2-4]。

圖1 片上網絡路由器的電源門控結構圖
電源門控技術的實現是在電路和電源之間放置一個交換開關,這個交換開關可以是高閾值晶體管。對于芯片上的路由器來說,當所有的數據路徑(輸入緩存和輸出緩存)處于閑置狀態時,交換開關就會處于斷電狀態,它僅僅需要一個簡單的控制器就可以實現。這時相鄰的路由器必須被告知這個路由器已經處于斷電狀態,不然傳輸的報文會在網絡中丟失,因此使用握手信號告知相鄰路由器此路由器已經處于斷電狀態很重要。當路由器處于斷電狀態時,它相鄰的路由器會把相連的輸出口關閉并把它標記為禁用狀態。片右邊的路由器處于斷電狀態,通過向左側的路由器發送PG(Power-Gated)信號來告知左側的路由器,隨后左側的路由器把與之相連的輸出緩存標記為斷電。在需要從斷電狀態恢復為通電狀態時只需要相連的路由器發送WU(Wake-Up)信號。
整體控制設計流程圖如圖2 所示,局部控制器緩存數據包,當片上網絡中所有的局部控中緩存的包的數量到達設定的閾值或者時間達到設置的閾值,把緩存的包注入到網絡中。

圖2 流量控制設計流程圖
(1)局部控制器開始緩存從資源節點發來的包,對緩存的包的數量進行統計,每個局部控制器都把自己統計的數據傳到局部控制器。
(2)全局控制器對所有局部控制器中的報文數量進行統計,當在閾值間隔時間內所有的報文的總量達到設定的閾值或者所有的報文的總量沒有到設定的閾值但是間隔時間達到了設置間隔閾值時,全局控制器就會給局部控制器發送注入信號。
(3)局部控制器接收到全局控制器發來的控制信號后,開始把報文注入到網絡中。
這樣就實現了對流量在時間上的控制,在片上網絡中使用電源門控技術之后,通過這種控制方式能夠使得流量能夠扎堆進入網絡中,實現讓路由器出現長時間的斷電過程,彌補電源門控通電帶來的損耗,降低整個片上網絡產生的功率損耗。
為了不讓報文在網絡接口處立即進入網絡,每個網絡接口與路由器之間都會設置一個局部控制器,其結構如圖3 所示。為了暫時緩存從網絡接口發來的報文,局部控制器中包含一個緩存器,實現緩存報文的功能。局部控制器通過接受全局控制器發來的注入信號之后,會把緩存的報文注入到網絡中。路由器發往網絡接口的報文不會受到影響,在報文到達目標路由器之后,資源節點會直接接收到報文。

圖3 局部控制器運行過程圖
在結合局部控制器以及全局控制器之后就能夠實現對流量在時間上進行控制。在資源節點產生數據包后,局部控制器開始緩存這些資源節點產出的數據包,全局控制器發出釋放信號之后才讓這些緩存的數據包注入到網絡中,實現對流量在時間上進行控制。這種控制技術只需要很小的局部緩存器以及簡單的控制電路就可以實現,在面積開銷以及功耗開銷上都比較小,對比片上網絡運行時產生的開銷可以忽略不計。
全局控制器的作用是進行決策以及對每個周期的閾值進行更新。這里定義兩個參數:最大容量C 以及最大間隔時間T。這里的最大容量C 指的是所有局部控制器中所允許最大報文的總數,最大間隔時間T 指的是從上個周期結束的時間到本周期結束的時間。
這里對幾個符號進行介紹:當前周期中允許的最大容量用Cm表示,在當前周期中所有局部控制器中的容量總數用Cc來表示。要對當前周期中最大報文容量的大小進行控制,需要一個容量的參考值來實現當前周期允許的最大容量Cm進行更新,這里的容量參考值用Cr表示。在實際應用中,用不同的最大容量來設置滑動窗口,來計算出現的最大注入率。這里存在的注入率表示在一定報文數量時存在的最大注入率,當注入率變小時可以知道這時網絡中的包的總量變大但是注入率反而變小,也就說明報文容量變得更加大時在時間上的分散程度會更高,這里可以把注入率由大變小時的容量最為參考容量,以此來對當前允許最大容量Cm進行更新。
不同的最大容量閾值會對提出的基于時間集中的流量控制技術造成不同功率損耗以及時間延遲的影響,本文選取的容量閾值如圖4 所示。

圖4 不同報文容量下的最大注入率
間隔時間指的是從上一周期結束時刻到當前時間的差值,這里對幾個符號進行介紹:當前周期中允許的最大間隔時間用Tm表示,當前間隔時間用Tc來表示。這里對當前周期中最大間隔的大小進行控制,需要一個間隔時間的參考值來實現當前周期允許的最大間隔時間Tm進行更新,間隔時間參考值用Tr表示。在實際應用中,用不同的間隔時間來設置滑動窗口,來計算出現的最大注入率。
不同的最大時間閾值會對提出的基于時間集中的流量控制技術造成不同功率損耗以及時間延遲的影響,本文選取的時間閾值如圖5 所示。
這里的注入率表示在一定間隔時間時存在的最大注入率,當注入率變小時可以知道這時網絡中的包的總量變大但是注入率反而變小,也就說明報文容量變得更加大時在時間上的分散程度會更高,所以這里可以把注入率由大變小時的容量最為參考容量。

圖5 不同間隔時間下的最大注入率
全局控制器的實現過程如圖6 所示。首先統計每個局部控制器中數據包的數量,然后分別把容量數據以及當前時間和閾值進行比較,當其中的一項高于閾值時,向所有的局部控制器發送釋放信號,之后等待局部控制器釋放數據包之后,接受所有局部控制器釋放完畢的信號,當所有的都釋放完畢之后釋放緩存信號,隨后統計局部控制器數據。
通過監控所有局部控制器中的容量以及當前的間隔時間,當其中一個值達到閾值時就向所有的局部控制器發送注入信號,當所有的局部控制器包都注入到網絡中之后開始進入下一個周期。更新每個周期的閾值參數是為了適應網絡中的流量,在流量較小時,報文在時間上的跨度就會變大,這時就會讓閾值參數變小,從而盡可能減少這種控制對整個系統的延遲,來提高系統的運行性能。
控制實現時對網絡中的流量進行實時監控,具體的實現過程偽代碼如下:
1:Initialize C;
2:Initialize T;
3:Initialize Cmto C;
4:Initialize Tmto T;
5:For each checking period
6:Initialize Cc,Tcas 0;
7:if Cc 8:if Tc 9:buffer packets; 10:else 11:ejecting packets 12:update Cm,Tmaccording to Cc 13:end 14: else 15:ejecting packets 16:update Cm,Tmaccording to Cc 17: end 18:end 在初始階段,分別設置容量閾值和間隔時間閾值為前兩節所說的容量參考值Cr以及間隔時間參考值用Tr。隨后通過用全局控制器來對所有局部控制器中的流量以及當當前的時間間隔,當其中一個數值達到設置的閾值之后,向局部控制器發送信號,局部控制器接收到信號,開始把所有的報文注入到網絡中,注入后向全局控制器發送信號,開始進入下一個周期。下一個周期開始時進行對最大容量以及最大間隔時間進行更新,設置新的閾值,使算法能夠適應網絡中的流量,隨后進入下一個周期,其過程和上面相同。當其中一個值達到閾值就會向網絡中注入報文,進而進入下一個周期。 在應用運行時,在路由器上使用傳統中的電源門控技術,這里和傳統電源門控技術的區別在于在沒有報文之后不會立即進入斷電狀態,而是經過幾個機器周期的檢測之后,沒有報文之后才會進入斷電狀態。這樣的好處是不會因報文在網絡中傳輸時出現延遲,從而使得路由器出現過多的頻繁的不必要的通電斷電過程。 本文中用到的仿真器是一個事件驅動的C++多處理器仿真器[5],本文使用11 個來自PARSEC[6]的基準檢測程序進行驗證,和電源門控技術的性能進行對比: (1)No-PG:不使用電源門控技術。 (2)Conv-PG:傳統的電源門控技術(路由器在沒有報文經過時立即斷電)。 (3)ConvOpt-PG:在電源門控技術的基礎上使用提前通電技術以及等幾個機器周期進行空閑檢測技術來確定是否進入斷電狀態[7]。 里的功耗包括路由器的動態功耗以及靜態功耗,在使用電源門控技術之后產生的通電過程的損耗以及使用本章提出方法的局部控制器的功耗。幾種方法在仿真結果上運行功耗的對比如圖7 所示。 在圖7 中可以看到本章提出的方法能夠有效的大幅度減少能量的損耗,原因就在于通過控制報文注入網絡中的時間,使得所有的路由器會通電一段時間斷電一段時間,使得大幅度降低靜態功耗。相對比與No-PG、Conv-PG 和ConvOpt-PG 分別能夠平均減少18%以及22%的功率損耗,本章提出的方法能夠平均減少47%的能量損耗,可以看到能夠極大降低功率的損耗。 這里的運行時間主要包括資源節點的運算時間以及報文在網絡中的傳輸時間,在使用電源門控技術之后產生的通電過程的時間以及使用本章提出方法的局部控制器中報文的注入時間。在圖中可以看到本章提出的方法對時間有一部分影響,原因在于報文從局部控制器注入到網絡中需要一定的時間,以及由于網絡中流量很大,報文在網絡中傳輸時產生的延遲。從圖中可以看出本文提出的方法相較于No-PG 平均多用了7%的運行時間,相較于其他兩種方法分別消耗的運行時間5.6%以及3%,可以忽略。從這里可以看到提出的方法會對時間造成輕微的影響。運行時間的對比如圖8 所示。 圖7 幾種方法下片上網絡的功率損耗對比圖 圖8 幾種方法運行時間的對比圖 本文研究了片上網絡中使用電源門控技術對片上網絡損耗的功率的影響。提出并驗證了基于時間的流量管理方法。通過使用局部控制器以及全局控制器來對流量進行管理,使報文以抱團的形式進入網絡中,結合電源門控技術能夠大幅度減少路由器斷電的次數和延長路由器的斷電時間。通過仿真驗證可以得到和理論的一致性,能夠在很少影響運行時間的情況下大幅度降低片上網絡的功率損耗。3 實驗結果及分析


4 結語