SHAN Yueer,YANG Bing,YU Zongguang*,CAO Huafeng
(1.The Internet of Things Engineering,Jiangnan University,Wuxi Jiangsu 214122,China;2.The No.58 Institute of CETC,Wuxi Jiangsu 214035,China)
A Power Optimization Strategy of Directive Cache on DSP*
SHAN Yueer1,2,YANG Bing1,2,YU Zongguang1,2*,CAO Huafeng1
(1.The Internet of Things Engineering,Jiangnan University,Wuxi Jiangsu 214122,China;2.The No.58 Institute of CETC,Wuxi Jiangsu 214035,China)
Power target has become much stricter for high-performance DSP design.An improved Cache power optimization strategy is put forward,directive Cache phased access is realized,and at the same time,the optimization of power cache and static leakage power is taken into account,which improves traditional optimization methods to raise processor performance.As a result,traditional NPOWP strategy has a significant affect on the processor performance.According to the results of different strategy simulations,it is applied to the design of a four-group connected instructions Cache,using the POWP strategy can reduce the average 75.4%of the instruction Cache power and the total processor power consumption 6.7%with the performance loss of only 0.77%.
DSP;cache power optimization;NPOWP strategy;static leakage power;power optimization strategy
隨著DSP性能越來越高,在DSP設(shè)計中如何解決動態(tài)功耗是一個日益突出的問題。指令Cache由于其較高的訪問頻率,已是DSP動態(tài)功耗主要消耗源。隨著半導體工藝尺寸的日益縮小,特別是當工藝尺寸降低到65 nm以下時,指令Cache中的漏流功耗已逐漸成為總功耗的主要組成部分。通過使用Wattch[1]功耗模擬器對65 nm工藝條件下主頻為2 GHz的DSP指令Cache進行功耗模擬可發(fā)現(xiàn):指令Cache每周期消耗的漏流能量與每次被訪問時消耗的動態(tài)能量相當。在超深亞微米工藝條件下,降低指令Cache的功耗需要同時考慮漏流功耗和動態(tài)訪問功耗。本文提出了一種Cache功耗優(yōu)化策略應用于DSP設(shè)計中,在盡可能減少性能損失的前提下,有效地實現(xiàn)更優(yōu)的處理器能量效率。
為了減少性能損失,目前對于指令Cache中的存儲單元使用的低漏流電路主要是采用昏睡Cache[2]中的狀態(tài)保留低漏流SRAM結(jié)構(gòu)。Cache塊中存儲的數(shù)據(jù)在低漏流昏睡模式下可以保持,額外的訪存延遲主要來自于低漏流模式與正常活躍模式之間的狀態(tài)轉(zhuǎn)換。目前主流的各種面向指令Cache的漏流功耗優(yōu)化策略都是在降低指令Cache的漏流功耗與減少由喚醒延遲造成的性能損失之間尋找平衡點,以達到最佳的處理器能量效率。
對于DSP昏睡指令Cache的體系結(jié)構(gòu)漏流功耗優(yōu)化,休眠主要采用未訪問策略[3],該策略以Cache塊為粒度進行低功耗控制,如果一個Cache塊被訪問后經(jīng)過一定時間未再次訪問,則設(shè)置為低功耗模式。喚醒策略主要有喚醒順序組(Set)策略[4]、喚醒順序塊策略[5]、按需喚醒策略[6]。利用這幾種策略組合提出的PDSR(Periodically Drowsy Speculatively Recover)策略[7-8]采用了簡單循環(huán)刷新休眠策略與喚醒順序塊的喚醒策略。Chung S W等通過改進前段流水線結(jié)構(gòu)實現(xiàn)了一種改進型的按需喚醒策略[9]。在傳統(tǒng)前端流水線中實現(xiàn)使用分支預測的組預測方法比較困難,將通過調(diào)整流水線結(jié)構(gòu),改進傳統(tǒng)的基于分階段訪問Cache的按需喚醒策略,提出基于分階段訪問策略,一方面可以解決傳統(tǒng)流水線結(jié)構(gòu)中分支跳轉(zhuǎn)情況下的預喚醒失效問題,另一方面可以在提高Cache塊關(guān)閉率的同時,減少由流水線重啟和路預測失效所造成的性能損失。
2.1NPOWP策略
NPOWP(Non-Phased Cache with On-Demand Wakeup Prediction)策略的前端流水線結(jié)構(gòu)通過在取指站與地址產(chǎn)生之間增加一個額外的喚醒站,對Cache塊的喚醒操作恰好在該Cache塊被訪問的前一拍進行,除了正在被訪問的Cache塊,其他Cache塊的標識單元與數(shù)據(jù)單元均處于昏睡狀態(tài),在任何時刻,整個Cache中最多只有被訪問的Cache塊處于活躍狀態(tài),因此NPOWP策略可以實現(xiàn)接近最高的Cache關(guān)閉率。雖然NPOWP策略可以解決傳統(tǒng)流水線結(jié)構(gòu)中分支跳轉(zhuǎn)情況下的預喚醒路預測失效問題,而且可以實現(xiàn)接近理想的Cache關(guān)閉率,但是卻引入了新的問題,即性能損失比較明顯。
2.2POWP策略
為了在Cache功耗降低和程序執(zhí)行時間增加之間找到一個最佳平衡點,我們改進了NPOWP策略,主要目的是消除路預測失效所產(chǎn)生的氣泡,提高流水線的執(zhí)行效率,既然在前段流水線中已經(jīng)增加了額外的喚醒站,我們將充分利用借鑒“分階段”方式訪問Cache的思想,提出基于分階段訪問Cache的按需喚醒策略POWP(Phased Cache with On-Demand Wakeup Prediction),Cache的訪問被分為兩個階段,標識整列和數(shù)據(jù)陣列分別在兩個相鄰的流水站被訪問。在POWP策略的前端流水線中,對指令Cache的標識陣列的訪問,從取指站提前到喚醒站,對數(shù)據(jù)陣列的訪問仍然在取指站進行。標識陣列一直處于活躍狀態(tài),而且每次訪問,被訪問Cache組中所有路的標識單元同時被訪問。在喚醒站,以“組”為粒度進行喚醒,被訪問組中所有路的Cache塊的數(shù)據(jù)單元就可以獲得所需的數(shù)據(jù)。在POWP策略中不再使用路預測器,因為對指令Cache當前被訪問組中Cache塊數(shù)據(jù)單元的訪問是按照真實的標識匹配信息進行,可以認為實現(xiàn)了100%的路預測命中率。
2.3NPOWP與POWP對比
當使用POWP策略時,由于沒有對標識陣列的漏流功耗進行控制,因此總的來說,使用POWP策略時對Cache漏流功耗的優(yōu)化效果不如使用NPOWP策略時的優(yōu)化效果。不過,在目前的高性能處理器中,一般會采用大尺寸的Cache塊,Cache塊中標識單元的位數(shù)遠遠小于數(shù)據(jù)單元的位數(shù),因此整個標識陣列的漏流功耗在整個Cache漏流功耗中所占的比重較小。例如,一個Cache塊的數(shù)據(jù)單元的容量為256 bit,標識單元的位數(shù)為40 bit,標識陣列的漏流功耗約等于16%。
POWP策略的優(yōu)勢在于使用真實的標識比較結(jié)果作為訪問Cache塊數(shù)據(jù)單元的路選信息,相當于實現(xiàn)了100%的路預測命中率,因此完全消除了傳統(tǒng)的NPOWP策略中由于路預測失效所帶來的流水線氣泡。
先前的指令Cache功耗優(yōu)化策略要么是針對指令漏流,要么是針對動態(tài)功耗,沒有很好的將兩方面結(jié)合起來。因此本文提出了一種面向改進型前段取指流水線結(jié)構(gòu)的指令Cache功耗優(yōu)化技術(shù):首先闡述NPOWP的工作原理和工作過程,然后建立使用NPOWP的前段流水線結(jié)構(gòu);最后對模擬結(jié)果進行分析并結(jié)合實際應用于DSP中的測試結(jié)果,對該優(yōu)化策略做出綜合評價。
NPOWP策略的性能損失主要來源于路預測失效和分支誤預測。
(1)路預測命中時,喚醒延遲可以通過流水線重疊得到隱藏,不額外消耗系統(tǒng)資源,因此不會占用流水線節(jié)拍,但是如果路預測失效的情況下,流水線執(zhí)行過程需要額外消耗兩個節(jié)拍,一個節(jié)拍是由于需要喚醒當前被訪問組中除去被預測Cache塊以外的剩余Cache塊,另一個節(jié)拍是由于需要訪問這些剩余的Cache塊。因此會產(chǎn)生2個周期的延遲。
(2)假設(shè)在傳統(tǒng)的昏睡指令Cache中分支預測錯誤的延時為2個時鐘周期,如果指令i在時刻t從取值站取出,當它達到執(zhí)行站出現(xiàn)分支預測錯誤,則子下一拍寫回站中重新進行地址產(chǎn)生。在理想的情況下,需要對流水線進行細致調(diào)整才能隱藏喚醒延時,實際上在通常的NPOWP策略中,分支預測錯誤會導致1個時鐘周期的額外喚醒延時,因此,分支預測所造成的流水線重啟會增加3個時鐘周期的延時。
綜上所述,雖然NPOWP策略可以更大程度的提高昏睡的Cache塊數(shù)目,但是由于程序執(zhí)行時間的增加而產(chǎn)生的額外功耗會抵消NPOWP策略對Cache能耗的優(yōu)化效果,并隨之而來的較大性能損失對于高性能DSP處理器來說,是不能接受的。
通過對SPEC CPU2000測試程序的模擬,可對提出的POWP策略在降低指令Cache綜合功耗方面的效果。由于采用的優(yōu)化策略中需要增加部分的控制邏輯和寄存器,因此會帶來額外的功耗,在模擬器中首先對這部分的硬件功耗進行了建模,根據(jù)ITRS預測[10]在65 nm工藝下處理器靜態(tài)能量與動態(tài)能量相當,采用的是一個應用于DSP設(shè)計中的4路組相連Cache結(jié)構(gòu),指令Cache容量為64 kbyte、采用4路組相連,Cache塊大小為32 byte。
在模擬器上除了實現(xiàn)提出的POWP策略,還實現(xiàn)了4種傳統(tǒng)的指令Cache功耗優(yōu)化策略,包括Noaccess策略,PDSR策略,Noaccess-JITA策略和NPOWP策略,并進行比較。
(1)圖1為使用各種指令Cache功耗優(yōu)化策略時的標準化程序執(zhí)行時間。傳統(tǒng)的NPOWP策略由于增加額額外的流水線站,流水線中的額外節(jié)拍或者重啟導致了程序執(zhí)行性能的顯著下降,性能損失達到3.23%。傳統(tǒng)的Noaccess、PDSR、Noaccess-JITA策略,性能損失分別為0.56%、0.41%、0.49%。使用了我們提出的PWOP策略能夠有效的改善對性能的影響,性能損失為0.77%,顯著低于NPOWP策略。
圖1 各種指令Cache功耗優(yōu)化策略時的標準化程序執(zhí)行時間
(2)圖2為使用各種功耗控制策略時的路預測命中率。對于Noaccess、PDSR與POWP策略,由于未采用路預測機制可以認為其路預測命中率為100%。使用Noaccess-JITA策略命中率為97.7%,NPOWP策略的命中率為97.6%。
圖2 使用各種功耗控制策略時的路預測命中率
(3)圖3比較了各種指令功耗優(yōu)化策略對指令Cache關(guān)閉率的影響。更高的關(guān)閉率意味著更低的漏流功耗。在Noaccess策略中,Cache塊只有在一定的衰退時間內(nèi)未被再次訪問,才會被轉(zhuǎn)換到昏睡狀態(tài),因此關(guān)閉率較低,平均僅為84.4%。PDSR策略在Noaccess策略基礎(chǔ)上,還會額外喚醒Cache中當前被訪問組的后繼組中的所有Cache塊,因此關(guān)閉率更低,只有78.7%。Noaccess-JITA由于使用了路預測策略,因此相對于PDSR又提高了關(guān)閉率,恢復到與Noaccess策略相當?shù)乃?。NPOWP以及我們提出的POWP由于均采用了按需喚醒的策略,因此可以實現(xiàn)最高的Cache關(guān)閉率,達到了99%以上。
圖3 各種指令功耗優(yōu)化策略對指令Cache關(guān)閉率的影響
圖4 各策略對指令Cache的功耗的優(yōu)化能力
(4)圖4表示了各策略對指令Cache的功耗的優(yōu)化能力。NPOWP和POWP策略與傳統(tǒng)的Noaccess、PDSR、Noaccess-JITA策略能夠更顯著地降低功耗,主要原因是傳統(tǒng)策略沒有將動態(tài)和漏流進行綜合考慮。使用了NPOWP策略,功耗降低到之前的24.6%,使用POWP策略,功耗降低到之前的36.9%。單從降低功耗考慮,NPWOP是最佳的,但是其付出的性能損失代價是高性能處理器無法接受的,而我們提出的PWOP能夠在功耗和性能之間實現(xiàn)更優(yōu)的平衡。
(5)圖5表示了使用標準化處理器功耗作為評價各種指令Cache功耗優(yōu)化策略最終對處理器功耗的影響。使用POWP策略,處理器功耗降低到優(yōu)化前的93.3%,性能損失僅為0.77%。使用NPOWP策略時,處理器功耗降低到91.1%,但是性能損失達到3.23%。
圖5 各種指令Cache功耗優(yōu)化策略最終對處理器功耗的影響
試驗結(jié)果表明,對于增加了喚醒站的改進的前端流水線結(jié)構(gòu),我們提出的POWP策略改進了傳統(tǒng)的NPOWP策略顯著影響的處理器性能不足。實現(xiàn)了對指令Cache的分階段訪問,實際的標識匹配結(jié)果用于對Cache塊數(shù)據(jù)單元的訪問,相當于實現(xiàn)了100%的路預測命中率。該設(shè)計應用于DSP設(shè)計的4路組相連昏睡指令Cache中,使用POWP策略平均可降低75.4%的指令Cache功耗,降低6.7%的處理器總功耗,性能損失僅為0.77%。與傳統(tǒng)指令Cache功耗優(yōu)化策略相比,明顯取得了更好的效果,有效地兼顧了Cache的漏流功耗和動態(tài)功耗的優(yōu)化,進一步改善了處理器的總功耗和能量效率。
[1]Brooks D,Tiwari V,Martonosi M.Wattch:A Framework for Architectural-Level Power Analysis and Optimization[C]//Proceedings of the 27th Annual International Symposium on Computer Architecture(ISCA’00),83-94,June 2000.
[2]Flautner K,Kim N S,Martin S.Drowsy Caches:Simple Techniques for Reducing Leakage Power[C]//ISCA2002,147-157,2002.
[3]Kim N S,F(xiàn)lautner K,Blaauw D.Circuit and Microarchitectural Techniques for Reducing Cache Leakage Power[J].IEEE Transaction on VLSI Systems,2004,12(2):167-184.
[4]Zhang C,Zhou H,Zhang M.An Architectural Leakage Power Reduction Method for Instruction Cache in Ultra Deep Submicron Microprocessors[C]//The 11th Asia-Pacific Conference(ACSAC 2006),588-594,September,2006.
[5]Skadron K,Stan M,Velusamy S,et al.Temperature-Aware Micro Architecture[J].In Proc.Int.Symp.Computer Architecture,1-12,June 2003.
[6]Chung S W,Skadron K.Using Branch Prediction Information for Near-Optimal I-Cache Leakage[C]//The 11th Asia-Pacific Conference(ACSAC 2006),September 2006:24-37.
[7]張承義.超深亞微米處理器漏流功耗的體系結(jié)構(gòu)級優(yōu)化技術(shù)研究[D].長沙:國防科學技術(shù)大學研究生院,2006.
[8]Zhang Chengyi,Zhang Minxuan.Reduce Static Power Dissipation of On-chip L2 Cache[C]//The 9th IEEE symposium on Low-Power and High-Speed Chips,IEEE Computer Society,Yokohama,Japan,April 2006:215-222.
[9]Kim N S,F(xiàn)lautner K,Blaauw D.Single-VDD and Single-VT Super-Drowsy Techniques for Low-Leakage High-Performance Instruction Caches[C]//In International Symposium on Low Power Electronics and Desigh.Newport Beach,CA,U.S.A.,August,2004:54-57.
[10]SIA.R-International Technology Roadmap for Semiconductors[R].2003.
單悅爾(1979-),男,江蘇無錫人,博士研究生,高級工程師。2001年畢業(yè)于東南大學,進入中國電子科技集團公司第五十八研究所工作,從事軍用高性能數(shù)字信號處理器(DSP)研發(fā)工作,曾擔任”數(shù)字信號處理器系列型譜”首席專家,多次獲得集團科學技術(shù)進步一等獎、二等獎,reio_shine@126.com;
于宗光(1964-),男,山東濰坊人,中共黨員,研究員,工學博士,博士生導師,先后負責了30多項國家重點項目,全部通過部省級鑒定,取得了較好的經(jīng)濟效益,先后獲部省級科技進步獎20次,其中作為第一完成人,獲部級科技進步一等獎兩次,二等獎4次。是江蘇省“333工程”領(lǐng)軍人物,國防科技“511”學術(shù)帶頭人,國務(wù)院政府特殊津貼專家,江蘇省有突出貢獻的中青年專家,“百千萬”人才工程國家級人才,國家核高基重大專項實施專家組成員。在超大規(guī)模集成電路設(shè)計領(lǐng)域有著較高的學術(shù)造詣和豐富的實際工作經(jīng)驗,yuzg@cetc58.com。
EEACC:257010.3969/j.issn.1005-9490.2015.01.045
一種DSP指令Cache的功耗優(yōu)化策略*
單悅爾1,2,楊兵1,2,于宗光1,2*,曹華鋒1
(1.江南大學物聯(lián)網(wǎng)學院,江蘇無錫214122;2.中國電子科技集團公司第五十八研究所,江蘇無錫214035)
高性能DSP器件對功耗指標要求越來越高,功耗主要來源于對存儲空間的訪問,因此提出了一種改進型Cache功耗優(yōu)化策略,實現(xiàn)了對指令Cache的分階段訪問,同時兼顧了Cache的動態(tài)功耗和靜態(tài)漏流功耗的優(yōu)化,改進了傳統(tǒng)的基于非分階段訪問的按需喚醒策略NPOWP(Non-Phased Cache with On-Demand Wakeup Prediction)顯著影響處理器性能的缺點。設(shè)計應用于DSP設(shè)計的4路組相連昏睡指令Cache中,使用基于分階段訪問的按需喚醒策略POWP(Phased Cache with On-Demand Wakeup Prediction)策略平均可降低75.4%的指令Cache功耗,降低6.7%的處理器總功耗,性能損失僅為0.77%.
DSP;Cache功耗優(yōu)化;NPOWP策略;靜態(tài)漏流功耗;功率優(yōu)化策略
TN47;TN73
A文獻標識碼:1005-9490(2015)01-0214-04
2014-02-17修改日期:2014-03-29
項目來源:江蘇省333工程科研項目(BRA2011115)