文獻標識碼: A
文章編號: 0258-7998(2014)11-0129-03
0 引言
通信瓶頸和能耗密度的爆發性增長是現代的單片多核處理器(CMP)設計面臨的兩項重大挑戰。片上網絡(NoC)是一種高度靈活、可擴展性極強的片上互連方式,可極大地提高通信帶寬,有效緩解片上通信瓶頸問題[1]。相比傳統總線而言,片上網絡雖然提高了傳輸帶寬,然而其能耗問題并沒有根本解決。如MIT的RAW多核處理器以及Intel的80核Teraflop芯片,其片上網絡的能耗約占整個芯片能耗的30~40%[2-3];在2011年計算機輔助設計國際會議上,Chris Malachowsky,Nvidia的創始人之一,指出未來芯片內數據交換的能量消耗將遠遠超過計算操作的能量消耗[4]。因此,對片上網絡的能耗進行有效的管理和優化,提高片上通信的能量效率,對于整個芯片的性能有著極其重要的意義。
此前面向NoC的能耗優化主要采用分布式電壓頻率調控,這樣可以提高DVFS的自由度,然而這樣的設計帶來了極大的硬件復雜度,并且由于不同頻率域間的同步,增加了片上通信的延時和能耗開銷[5]。
SHANG L等人展開了NoC領域DVFS研究的開創性工作,他們根據一段時間內鏈路的流量大小對每條鏈路進行電壓頻率調節[6];MISHRA A K等人提出了對每個路由器的電壓頻率調節方法,通過監測路由器輸入緩存中的數據包大小以及上游路由器的擁塞情況來改變每個路由器的電壓頻率[7];GUANG L等人提出了一種層次化的片上網絡能耗管理架構,主要是通過監測每個路由器的緩存信息來設置電壓頻率,即當緩存占用率超過(低于)預先設定的閾值,就提高(降低)一個電壓頻率等級[8]。
然而這些方法都忽略了這樣一個事實,即CMP上程序對于NoC的服務需求并不總是跟網絡的流量相關。如圖1所示,程序Blacksholes比Radiosity的網絡平均注入率更高,然而NoC頻率對程序Radiosity的性能影響更大,說明不能單純通過網絡流量大小來調節NoC的頻率。此外,基于NoC互連的CMP系統中片上緩存是按地址行交替分布在不同緩存塊中,導致不同節點的數據訪問流量較為平衡,分布式的控制對于CMP這種架構并不十分有效[9]。
因此對于面向CMP的片上網絡能耗優化更適合于全局控制的方法。然而將NoC作為一個整體進行控制,需要一種有效的全局監控手段,同時需要適當的監測參數以準確地反映出程序對于NoC的服務需求,然后再根據合適的DVFS控制算法進行電壓頻率的設置。
1 系統設計
1.1 系統整體結構
如圖2所示,一個典型的基于NoC互連的CMP系統主要包括處理器及其私有緩存、片上路由器以及LLC(Last Level Cache)Bank。LLC在邏輯上是一個整體,屬于全局共享緩存,然而在物理上它們分布在不同的節點,各個節點通過網絡接口與路由器相連。
在本文設計的系統中各節點均配置一個本地代理監測單元(Local Agent),用于收集每個節點的性能參數。而獨立的功耗管理單元(Power Management Unit,PMU)負責將各個本地代理收集到的性能參數進行分析和計算,并最終控制片外的電壓調節模塊(VRM)和時鐘模塊(PLL)來改變NoC的電壓和頻率。
1.2 性能參數采集
在CMP中,程序的執行時間主要包括處理器執行時間以及訪存延時。NoC作為訪存的通信介質,其工作頻率的大小直接影響訪存延時,那么程序的平均訪存次數反映了其對于NoC的服務需求大小。因此,每個本地監測通過3個性能計數器收集程序的訪存信息,包括私有緩存缺失計數器、LLC 缺失計數器以及指令計數器。當每個控制周期到達時,本地監測單元負責將監測的性能參數打包發送給PMU所在的節點,然后重置性能計數器。
2 控制算法描述
PMU負責將每個路由節點的信息進行處理,把所有的緩存缺失數相加并除以總的指令數,計算平均每指令產生的緩存缺失數MPI(Miss Per Instruction)。
通過對大量應用程序的訓練測試,得到不同MPI和NoC頻率下程序的性能損失,如圖3所示。不難看出,當MPI值很小時,NoC頻率對程序的性能影響很小,因此可以降低NoC頻率以節省能耗。
可通過一個簡單的基于查找表的DVFS控制方法實現對NoC頻率的控制,實現這一方法最為關鍵的是確定不同電壓頻率等級間MPI值的分割邊界。利用支持向量機(SVM)算法將兩種頻率下的數據點進行最大間距分割,很容易得到兩種頻率之間的分界值(如圖3)。采用同樣的方法可以確定其他頻率之間的分割邊界。最終的控制表如表1所示。
根據不同的應用場景和平臺配置,采用同樣的方法可以訓練出不同的控制表,以滿足不同場合中對性能與能耗的不同需求。該表可以被編程下載到PMU內部保存,PMU將計算出的MPI值進行查表即可得到對應的NoC電壓和頻率。由此可見,該控制方案十分簡單,可快速地對程序的訪存行為變化進行自適應調節,進而對NoC的能量效率進行優化。
3 實驗和結果分析
3.1 實驗平臺
為了評估和驗證提出的全局DVFS方案,本文采用基于SimpleScalar的全系統仿真平臺構建圖2所示的片上多核系統。該平臺集成的PoPNet和ORION可模擬片上網絡的時序行為,并統計其能量消耗。此外,可通過設置不同的配置參數以模擬不同微體系結構的CMP系統。本次實驗中主要的配置參數如表2所示。
3.2 性能與能耗結果分析
為測試控制算法性能,從PARSEC和SPLASH2測試集中選擇了6個典型的并行程序,通過仿真器分別對這6個應用程序進行了詳細的時序與能耗仿真,實現并比較了下面3種不同的DVFS方案:
(1)BaseLine:無DVFS,NoC運行在最高頻率,作為其他方案的比較基準;
(2)Global DVFS:本文提出的基于程序訪存行為的全局DVFS方案;
(3)Local DVFS:GUANG L等人提出的分布式DVFS方案,監測路由器輸入緩存的占用大小設置電壓和頻率,在每條鏈路中添加了同步緩存并增加了一級流水線延時。
圖4顯示了不同DVFS方案下片上網絡的歸一化(以BaseLine為1)能量消耗情況。從圖中可以看出,GUANG L采用的分布式DVFS方案可以達到平均約30%的能量節省,而全局DVFS方案所達到的能量節省約45%,比分布式的方案可節省能量15%以上。
圖5比較了不同方法下程序的歸一化執行時間。不難看出,由于對NoC的頻率調節,程序的執行時間會或多或少地增加,分布式的方案造成程序執行時間的增加約為8%,而全局DVFS方案平均增加了僅5%的執行時間。
4 結論
本文提出了一種用于片上網絡能耗優化的全局DVFS方案,通過監控平均每指令產生的緩存缺失數來動態調節片上網絡的電壓和頻率。實驗結果表明,該方案可以達到平均45%的能耗節省,而僅僅帶來約5%的性能損失。相比于分布式控制方案,全局控制方案實現簡單,軟硬件代價低,對能耗的優化效果更加明顯,在未來的片上多處理器設計中具有很高的實用價值。
參考文獻
[1] DALLY W J,TOWLES B.Principles and practices of inter-connectionetworks[M].Morgan Kaufmann,2003.
[2] WANG H,PEH L S,MALIK S.Power-driven design of router micro-architectures in on-chip networks[C].In MICRO,2003:105-116.
[3] VANGAL S,HOWARD J,RUHI G,et al.An 80-tile 1.28TFLOPS network-on-chip in 65 nm CMOS[C].In Proc.Solid-State Circuits Conf.,2007:98-589.
[4] ABTS D,MARTY M R,WELLS P M,et al.Energy propor-tional data center networks[C].In ISCA,2010:338-347.
[5] ROTEM E,MENDELSON A,GINOSAR R,et al.Multiple clock and voltage domains for chip multi processors[C].In MICRO,2009:459-468.
[6] SHANG L,PEH L,JHA N K.Power-efficient interconnectionnetworks:dynamic voltage scaling with links[J].IEEE Com-puter Architecture Letters,2002,1(1):6.
[7] MISHRA A K,DAS R,EACHEMPATI S,et al.A case for dynamic frequency tuning in on-chip networks[C].In MICRO,2009:292-303.
[8] GUANG L,NIGUSSIE E,RANTALA P,et al.Hierarchical agent monitoring design approach towards self-aware parallelsystems-on-chip[J].ACM Trans.Embedd.Comput.Syst.,2010,9(3):1-25.
[9] CHEN X,XU Z,KIM H,et al.In-network monitoring and control policy for dvfs of cmp networks-on-chip and last level caches[C].In NOCS,2012:43-50