卜愛國 余翩翩 吳建兵 單偉偉
(東南大學(xué)國家專用集成電路系統(tǒng)工程研究中心, 南京 210096)
基于自適應(yīng)門控時(shí)鐘的CPU功耗優(yōu)化和VLSI設(shè)計(jì)
卜愛國 余翩翩 吳建兵 單偉偉
(東南大學(xué)國家專用集成電路系統(tǒng)工程研究中心, 南京 210096)
提出了一種CPU的功耗優(yōu)化方法,即通過自適應(yīng)時(shí)鐘門控來解決CPU中由于流水線阻塞、浮點(diǎn)處理器(FPU)和多媒體協(xié)處理器空閑所導(dǎo)致的動(dòng)態(tài)功耗浪費(fèi).首先,設(shè)計(jì)了模塊級(jí)自適應(yīng)時(shí)鐘門控單元,并通過芯片內(nèi)部硬件電路來自動(dòng)監(jiān)測上述模塊是否空閑,模塊空閑時(shí)時(shí)鐘關(guān)閉,從而消除了不需要的時(shí)鐘翻轉(zhuǎn)帶來的模塊內(nèi)部動(dòng)態(tài)功耗消耗.然后,將自適應(yīng)時(shí)鐘門控單元應(yīng)用于國產(chǎn)處理器Unicore-2中,對(duì)其流水線阻塞、FPU和多媒體協(xié)處理器空閑的產(chǎn)生進(jìn)行功耗優(yōu)化.最后,基于TSMC 65 nm工藝下已流片芯片的網(wǎng)表和寄生參數(shù)文件,通過反標(biāo)芯片的波形獲得電路翻轉(zhuǎn)率,并用PrimeTime PX工具進(jìn)行了功耗仿真.仿真結(jié)果表明,利用本方法運(yùn)行Dhrystone, Whestone和Stream三個(gè)典型測試程序時(shí)可獲得18%~28%的功耗收益,其面積代價(jià)可以忽略,并對(duì)CPU性能沒有影響.
低功耗;自適應(yīng)時(shí)鐘門控;流水線阻塞
隨著嵌入式手持終端、移動(dòng)互聯(lián)、無線傳感網(wǎng)絡(luò)等應(yīng)用的進(jìn)一步發(fā)展,集成電路的功耗問題已逐漸成為除性能之外的最大約束.而高性能CPU的計(jì)算性能需求越來越大,更多的高性能計(jì)算技術(shù)開始運(yùn)用于嵌入式CPU中[1],例如超流水線、多發(fā)射、亂序執(zhí)行、分支預(yù)測、異構(gòu)多核等,進(jìn)一步導(dǎo)致了CPU功耗增大,因而急需有效的優(yōu)化技術(shù)來降低功耗[2-9].
CPU運(yùn)行程序時(shí),由于各種原因有時(shí)會(huì)處于阻塞(stall)狀態(tài),在阻塞狀態(tài)下的CPU不做任何工作,但CPU的時(shí)鐘仍然在翻轉(zhuǎn),消耗很大一部分功耗.此外,多媒體計(jì)算場景越來越多,更多的嵌入式處理器加入了浮點(diǎn)指令、單數(shù)據(jù)多周期指令(SIMD)和多媒體指令.通過硬件FPU來執(zhí)行浮點(diǎn)指令比定點(diǎn)處理器中通過軟件模擬方法的速度快很多,并且對(duì)于數(shù)據(jù)并行度很高的多媒體場景速度提升很大.浮點(diǎn)協(xié)處理器和SIMD協(xié)處理器的面積占整個(gè)嵌入式CPU的很大部分,消耗的功耗比例也很大.但是處理器在執(zhí)行過程中,并非每條指令都需要用到,此時(shí)FPU和SIMD的功耗被浪費(fèi).
門控時(shí)鐘技術(shù)可以有效地減少上述3種功耗,即用一個(gè)控制信號(hào)控制時(shí)鐘的開啟和關(guān)閉,在模塊不工作時(shí)關(guān)閉時(shí)鐘,在需要工作時(shí),打開時(shí)鐘.傳統(tǒng)的模塊級(jí)時(shí)鐘門控對(duì)嵌入式程序開發(fā)人員并非透明,即需要用軟件控制模塊時(shí)鐘的開和關(guān),而用戶不知道CPU的stall狀態(tài)、FPU和SIMD空閑以及Cache與TLB的空閑等,因此無法在CPU運(yùn)行中自動(dòng)完成.
在流水線阻塞階段,通常需要插入NOP指令,這條指令不進(jìn)行任何處理,但如果有數(shù)據(jù)傳輸,則會(huì)引起額外的功耗.Lotfi-Kamran等[2]提出了一種在流水線阻塞時(shí)將以前的數(shù)據(jù)反饋到流水線上的方法,阻止了數(shù)據(jù)切換,可降低由片上阻塞引起的動(dòng)態(tài)功耗,但無法應(yīng)對(duì)片外阻塞引起的功耗浪費(fèi).
文獻(xiàn)[3]提出了用動(dòng)態(tài)電壓頻率調(diào)節(jié)(DVFS)的方法來減少CPU阻塞時(shí)的動(dòng)態(tài)功耗,通過軟件實(shí)時(shí)計(jì)算片上阻塞時(shí)間和片外阻塞時(shí)間來決定系統(tǒng)的負(fù)載,當(dāng)片外阻塞的時(shí)間比例變大時(shí),通過降低工作電壓和頻率,可以有效地減少片外阻塞的動(dòng)態(tài)功耗.但這種方法需要軟件動(dòng)態(tài)監(jiān)控系統(tǒng)工作狀態(tài)并調(diào)節(jié)工作頻率,加大了系統(tǒng)軟件負(fù)載.
本文通過自適應(yīng)時(shí)鐘門控技術(shù)優(yōu)化嵌入式處理器中由于CPU阻塞、浮點(diǎn)處理器和SIMD陣列空閑所導(dǎo)致的動(dòng)態(tài)功耗浪費(fèi).首先,提出了對(duì)程序員透明的模塊級(jí)自適應(yīng)clock-gating技術(shù),由芯片內(nèi)部的硬件自動(dòng)監(jiān)測模塊是否空閑,若空閑則自動(dòng)關(guān)閉該模塊的時(shí)鐘,從而減少模塊內(nèi)部功耗.然后分別將其運(yùn)用于嵌入式CPU中,對(duì)流水線中的stall,FPU和SIMD協(xié)處理器空閑針對(duì)性地進(jìn)行功耗優(yōu)化,在指令流水線的合適位置中插入時(shí)鐘門控單元,實(shí)現(xiàn)了上述單元的自適應(yīng)門控時(shí)鐘控制.
本方案在國產(chǎn)CPU核Unicore-2中得到應(yīng)用,在TSMC 65 nm工藝下流片,并進(jìn)行了多種測試程序的仿真.結(jié)果表明,本文方法在不影響CPU性能的前提下,面積代價(jià)幾乎可以忽略,在降低CPU動(dòng)態(tài)功耗方面有著顯著效果.
1.1 傳統(tǒng)的編程式模塊級(jí)clock-gating技術(shù)
編程式模塊級(jí)門控時(shí)鐘技術(shù)是一種粗粒度的門控時(shí)鐘,用戶通過軟件寫時(shí)鐘門控寄存器來實(shí)現(xiàn)模塊的時(shí)鐘門控.如圖1所示,當(dāng)用戶知道模塊當(dāng)前處于空閑狀態(tài),通過寫0到時(shí)鐘控制寄存器,使時(shí)鐘使能信號(hào)EN為0,經(jīng)過Latch與時(shí)鐘進(jìn)行與操作,屏蔽輸入到模塊的時(shí)鐘,從而關(guān)閉時(shí)鐘.以此類推,通過寫1到時(shí)鐘控制寄存器來打開模塊時(shí)鐘.
圖1 編程式模塊級(jí)clock-gating技術(shù)
模塊級(jí)編程式門控時(shí)鐘技術(shù)結(jié)構(gòu)簡單,且效果明顯,但其缺點(diǎn)也很明顯:① 對(duì)于用戶不透明,需要用戶軟件支持.② 效率低下,容易出錯(cuò),當(dāng)模塊需要時(shí)鐘時(shí),如用戶錯(cuò)誤地配置時(shí)鐘門控寄存器,將會(huì)導(dǎo)致電路工作出錯(cuò).
1.2 自適應(yīng)式模塊級(jí)clock-gating技術(shù)
本文設(shè)計(jì)了一種自適應(yīng)式門控時(shí)鐘方法并將其應(yīng)用于一款國產(chǎn)CPU核(Unicore-2)中,模塊內(nèi)部自動(dòng)產(chǎn)生時(shí)鐘控制信號(hào)[4].如圖2所示,任何一個(gè)模塊都有BUSY,IDLE,END 3種狀態(tài),其中BUSY表示模塊當(dāng)前正處于工作狀態(tài),IDLE表示空閑狀態(tài),END是一種BUSY向IDLE轉(zhuǎn)換的中間狀態(tài).模塊內(nèi)部判斷當(dāng)前FSM的狀態(tài),產(chǎn)生busy信號(hào),表示當(dāng)前模塊處于工作狀態(tài).request信號(hào)是
圖2 自適應(yīng)式模塊級(jí)時(shí)鐘門控示意圖
外部對(duì)模塊進(jìn)行讀寫、控制操作的請(qǐng)求信號(hào),無效表示當(dāng)前外部沒有向模塊進(jìn)行讀寫、控制操作.控制邏輯單元通過模塊傳來的busy信號(hào)和request信號(hào),決定是否開啟模塊時(shí)鐘.
自適應(yīng)式門控時(shí)鐘技術(shù)相對(duì)編程式門控時(shí)鐘有如下優(yōu)點(diǎn):① 對(duì)用戶透明,用戶不需要實(shí)時(shí)監(jiān)控模塊當(dāng)前是否busy,通過硬件判斷工作狀態(tài)實(shí)現(xiàn),可以有效減少軟件負(fù)載.② 由于時(shí)鐘門控信號(hào)是由模塊內(nèi)部產(chǎn)生,可以實(shí)現(xiàn)時(shí)鐘快速開關(guān),更適用于工作狀態(tài)頻繁切換的模塊.
2.1 流水線阻塞的功耗優(yōu)化
為了解決CPU阻塞帶來的功耗浪費(fèi),本文將上述提出的自適應(yīng)式門控時(shí)鐘應(yīng)用于CPU中,增加了自適應(yīng)時(shí)鐘控制單元,通過在流水線中插入門控時(shí)鐘,當(dāng)CPU發(fā)生阻塞時(shí)關(guān)斷流水線的時(shí)鐘,反之打開時(shí)鐘使流水線繼續(xù)執(zhí)行.
流水線阻塞主要分為片上阻塞和片外阻塞2類.片上阻塞是由于流水線并行結(jié)構(gòu)產(chǎn)生的冒險(xiǎn)所致,可以通過在流水線中插入NOP指令,使冒險(xiǎn)后面的指令等待執(zhí)行.片上阻塞產(chǎn)生時(shí),流水線的時(shí)鐘是不能停止的,因?yàn)楫a(chǎn)生冒險(xiǎn)的指令需要流出流水線.片外阻塞主要原因是存儲(chǔ)器的層次結(jié)構(gòu)所導(dǎo)致的,片外存儲(chǔ)器比片上存儲(chǔ)器訪問速度慢很多,因此,當(dāng)片上Cache 缺失時(shí)需要訪問片外存儲(chǔ)器,需要等待很長的CPU時(shí)鐘周期才能得到結(jié)果,對(duì)于單線程標(biāo)量處理器,此時(shí)CPU處于阻塞狀態(tài).與此類似,當(dāng)TLB 缺失時(shí),也需要很多時(shí)鐘周期從存儲(chǔ)器中取MMU表項(xiàng),實(shí)現(xiàn)虛擬地址到物理地址的轉(zhuǎn)換,CPU也需要等待.
CPU片外阻塞的時(shí)鐘周期數(shù)為
(1)
式中,Tstall為片外阻塞時(shí)鐘周期;n為Cache的級(jí)數(shù);Li表示第i級(jí)Cache的缺失次數(shù);TLi表示第i級(jí)Cache的缺失代價(jià);m為TLB的級(jí)數(shù);LTLBi表示第i級(jí)TLB的缺失次數(shù);TTLBi表示第i級(jí)TLB的缺失代價(jià).
本文基于自適應(yīng)式門控時(shí)鐘技術(shù)對(duì)CPU流水線阻塞進(jìn)行了功耗優(yōu)化,如圖3所示,通過在流水線中插入門控時(shí)鐘(gated clock),當(dāng)MMU或者Cache準(zhǔn)備好時(shí),CPU沒有處于阻塞狀態(tài),流水線可以往下執(zhí)行,因此流水線時(shí)鐘有效.圖3中,數(shù)據(jù)Cache ready有效表示數(shù)據(jù)Cache準(zhǔn)備好接受CPU新的Cache請(qǐng)求,即上次請(qǐng)求數(shù)據(jù)Cache命中或者是請(qǐng)求數(shù)據(jù)已經(jīng)從內(nèi)存中取出;與此類似,指令Cache ready表示指令Cache準(zhǔn)備好接受新的請(qǐng)求;數(shù)據(jù)MMU ready信號(hào)有效表示數(shù)據(jù)MMU準(zhǔn)備好,即數(shù)據(jù)TLB命中或者是MMU已經(jīng)從內(nèi)存中取得相應(yīng)數(shù)據(jù)虛擬地址所對(duì)應(yīng)的物理地址;指令MMU ready表示指令MMU準(zhǔn)備好.
當(dāng)指令、數(shù)據(jù)Cache或者是指令、數(shù)據(jù)MMU中有任何一個(gè)沒有準(zhǔn)備好,CPU都要阻塞,此時(shí)流水線時(shí)鐘被屏蔽.例如,指令Cache ready為低時(shí),表示Cache 缺失,CPU流水線會(huì)停下來,此時(shí)可以關(guān)閉流水線的時(shí)鐘以節(jié)約功耗.
圖3 流水線阻塞功耗優(yōu)化結(jié)構(gòu)圖
2.2 FPU與多媒體指令模塊的功耗優(yōu)化
FPU和多媒體指令的功耗優(yōu)化目的是通過自適應(yīng)門控時(shí)鐘技術(shù),將不需要運(yùn)行的浮點(diǎn)指令和SIMD指令的流水線時(shí)鐘關(guān)閉,減少動(dòng)態(tài)功耗.因此,控制單元需要知道外部模塊是否請(qǐng)求訪問FPU和SIMD協(xié)處理器,以及此時(shí)FPU和SIMD單元是否被占用.
在Unicore-2的流水線中,定點(diǎn)指令、浮點(diǎn)指令和SIMD多媒體指令的流水線前半段是公用的,后半段是相互獨(dú)立的,共有8級(jí)流水.取指級(jí)完成指令的讀取和跳轉(zhuǎn)指令的分支預(yù)測,所有流水線是相同的,取指后指令被送到各個(gè)不同的流水線去解碼,如果被解碼指令符合當(dāng)前流水線的類型,則輸出到下一級(jí)的信號(hào)有效,繼續(xù)執(zhí)行,否則流水線空跑.
基于自適應(yīng)式門控時(shí)鐘的FPU和SIMD協(xié)處理器功耗優(yōu)化結(jié)構(gòu)圖如圖4所示,流水線前兩級(jí)所取的指令,通過預(yù)解碼單元對(duì)比指令的操作段(op段),判斷所取指令是否是浮點(diǎn)指令或SIMD指令,并產(chǎn)生控制信號(hào)Is-FPU和Is-SIMD.為了對(duì)流水線長度不產(chǎn)生影響,預(yù)解碼單元通過組合邏輯來實(shí)現(xiàn).浮點(diǎn)協(xié)處理器和SIMD協(xié)處理器內(nèi)部,通過判斷每一級(jí)流水線中的數(shù)據(jù)是否有效,決定當(dāng)前協(xié)處理器是否busy,并產(chǎn)生控制信號(hào)FPU-is-busy和SIMD-is-busy.Is-FPU信號(hào)和FPU-is-busy信號(hào)共同決定此時(shí)FPU的時(shí)鐘是否可以關(guān)閉,當(dāng)兩者都為低時(shí),表示此時(shí)取值的指令不是浮點(diǎn)指令且此時(shí)FPU模塊是空閑的,此時(shí)FPU的時(shí)鐘可以關(guān)閉.與此類似,Is-SIMD和SIMD-is-busy信號(hào)共同決定SIMD協(xié)處理器的時(shí)鐘是否可以關(guān)閉.
圖4 FPU和SIMD協(xié)處理器功耗優(yōu)化結(jié)構(gòu)圖
3.1 芯片SEP6010及驗(yàn)證平臺(tái)
本文所采用的驗(yàn)證平臺(tái)是已通過流片驗(yàn)證的SoC芯片SEP611,這是一款支持多媒體處理和GPS定位的高性能SoC,通過TSMC 65 nm LP工藝流片實(shí)現(xiàn),其內(nèi)部集成的CPU是Unicore-2,一款支持定點(diǎn)指令、浮點(diǎn)指令以及多媒體SIMD指令的RISC處理器.芯片的具體功能首先通過了嚴(yán)格的測試,測試板主要包含被測芯片、電源、外部存儲(chǔ)DDR顆粒以及UART,SD卡等外部設(shè)備,如圖5所示.
圖5 被測芯片和測試板
為了測試自適應(yīng)門控技術(shù)產(chǎn)生的功耗收益,在已流片的芯片基礎(chǔ)上,增加了自適應(yīng)門控時(shí)鐘使能寄存器來降低芯片功耗.當(dāng)使能寄存器有效時(shí),相應(yīng)模塊的時(shí)鐘輸入是自適應(yīng)門控后的時(shí)鐘,反之,為原時(shí)鐘.
3.2 自適應(yīng)clock-gating測試結(jié)果及分析
本文基于已流片的芯片網(wǎng)表以及RC寄生參數(shù)文件,通過反標(biāo)芯片的仿真波形獲得各個(gè)結(jié)點(diǎn)的翻轉(zhuǎn)率,可以準(zhǔn)確地仿真設(shè)計(jì)中各個(gè)器件以及連線的功耗.首先使用2組測試程序分別控制自適應(yīng)門控時(shí)鐘使能寄存器打開和關(guān)閉,通過VCS工具對(duì)設(shè)計(jì)進(jìn)行功能仿真獲得VCD(value change dump)波形,然后用功耗分析工具PrimeTime PX讀入仿真波形以及綜合網(wǎng)表,并通過反標(biāo)各個(gè)結(jié)點(diǎn)的翻轉(zhuǎn)率計(jì)算芯片功耗.
Dhrystone和Whetstone是國際上典型的測量定點(diǎn)和浮點(diǎn)的測試程序,是一種計(jì)算密集型程序,在CPU測試中被廣泛采用[5-6];Stream[7]測試程序是內(nèi)存帶寬性能測試工具,需要訪問大量的存儲(chǔ)器數(shù)據(jù),是數(shù)據(jù)密集型程序.3種程序測試的自適應(yīng)門控技術(shù)的功耗收益如圖6所示,圖中依次顯示了優(yōu)化前功耗、利用FUP和SIMD優(yōu)化后的功耗和流水線stall優(yōu)化后的功耗,以及上述所有優(yōu)化全部開啟后的功耗.可見,所有優(yōu)化全部打開時(shí)最多可以降低28%的功耗.整體而言,所有的測試程序都有18%以上的功耗收益.
圖6 不同測試程序下各種時(shí)鐘門控優(yōu)化的功耗收益
對(duì)比Dhrystone和Whetstone測試程序的功耗可以發(fā)現(xiàn),Dhrystone測試程序在FPU和SIMD協(xié)處理器優(yōu)化方面的功耗收益更大,這是由于Whetstone中浮點(diǎn)處理指令的比例比Dhrystone高,Dhrystone中只包含有定點(diǎn)指令,因此優(yōu)化空間更大.與Lotfi-Kamran等[2]提出降低10%的流水線結(jié)構(gòu)的CPU動(dòng)態(tài)功耗降低方法相比,本文方法功耗收益更高,并且不影響CPU性能.與Carazo等[8]提出的通過數(shù)據(jù)直通減少L1 Cache的訪問,從而降低CPU動(dòng)態(tài)功耗方法相比,本文的功耗收益不僅局限于Cache功耗收益,同時(shí)可以減少CPU pipeline的功耗.
本文研究了嵌入式處理器中,由于流水線阻塞、浮點(diǎn)處理器和多媒體協(xié)處理器空閑所導(dǎo)致的動(dòng)態(tài)功耗浪費(fèi),通過插入自適應(yīng)時(shí)鐘門控,自動(dòng)檢測模塊是否空閑,在模塊空閑時(shí)將時(shí)鐘關(guān)閉,從而大幅度降低了芯片的動(dòng)態(tài)功耗.將本方法應(yīng)用于嵌入式CPU中,并進(jìn)行了3種典型的測試程序下的功耗仿真,結(jié)果表明,本文方法大幅度降低了CPU的動(dòng)態(tài)功耗.
References)
[1]Gonzalez R, Horowitz M. Energy dissipation in general purpose microprocessors [J].IEEEJournalofSolid-StateCircuits, 1996, 31(9): 1277-1284.
[2]Lotfi-Kamran P, Salehpour A A, Rahmani A M, et al. Dynamic power reduction of stalls in pipelined architecture processors[J].InternationalJournalofDesign,Analysis&ToolsforIntegratedCircuits&Systems, 2011, 1(1):9-4.
[3]Choi K, Soma R, Pedram M. Dynamic voltage and frequency scaling based on workload decomposition[C]//ACMInternationalSymposiumonLowPowerElectronicsandDesign. Newport Beach, CA, USA, 2004: 174-179.
[4]Jain S, Khare S, Yada S, et al. A 280 mV-to-1.2 V wide-operating-range IA-32 processor in 32 nm CMOS[C]//IEEEInternationalSolid-StateCircuitsConferenceDigestofTechnicalPapers. San Francisco, CA,USA, 2012: 66-68.
[5]Chang X, Zhang M, Zhang G, et al. Adaptive clock gating technique for low power IP core in SoC design [C]//IEEEInternationalSymposiumonCircuitsandSystems. New Orleans, LA, USA, 2007: 2120-2123.
[6]Simon Tyler A, Ward William A, Boss Alan P. Performance analysis of Intel multiprocessors using astrophysics simulations [J].ConcurrencyandComputation:PracticeandExperience, 2012,24(2): 155-166.
[7]Padua David.Encyclopediaofparallelcomputing[M]. New York: Springer-Verlag, 2011: 127-129.
[8]Carazo P, Apolloni R, Castro F, et al. L1 data Cache power reduction using a forwarding predictor [J].LectureNotesonComputerScience, 2011, 6448: 116-125.
[9]Miller M, Janik K, Lu S L. Non-stalling counterflow microarchitecture [C]//4thInternationalSymposiumonHighPerformanceComputerArchitecture. Las Vegas, Nevada, USA, 1998: 120-126.
Power optimization and VLSI design of CPU based on adaptive clock-gating
Bu Aiguo Yu Pianpian Wu Jianbing Shan Weiwei
(National ASIC System Engineering Research Center, Southeast University, Nanjing 210096,China)
A power optimization method of embedded processors based on self-adaptive clock gating is proposed, which can reduce the power waste caused by pipeline stall, FPU(float point unit ) idle and multimedia co-processor idle. First, an adaptive module level clock-gating cell is designed, which can detect automatically whether the status of each module is idle through on-chip hardware. When the module is idle, its clock is turned off to save the dynamic power caused by unneeded clock toggling. Then, the adaptive clock-gating cell is applied to a domestic CPU(central processing unit) Unicore-2, and the power caused by pipeline stall, FPU and multimedia co-processor idle is optimized. Finally, based on the netlist and parasitic files of the previously fabricated TSMC 65 nm chip, the chip waveform is annotated to obtain the nets’ toggle rates, and then the power simulations are performed by the PrimeTime PX tool. The results show that an average of 18% to 28% power reduction can be obtained under typical test benchmarks of Dhrystone, Whestone and Stream, with negligible area overhead and no impact on CPU performance.
low power; adaptive clock-gating; pipeline stall
10.3969/j.issn.1001-0505.2015.02.004
2014-09-16. 作者簡介: 卜愛國(1978—),男,博士,副研究員;單偉偉(聯(lián)系人),女,博士,副教授,wwshan@seu.edu.cn.
江蘇省“青藍(lán)工程”資助項(xiàng)目.
卜愛國,余翩翩,吳建兵,等.基于自適應(yīng)門控時(shí)鐘的CPU功耗優(yōu)化和VLSI設(shè)計(jì)[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2015,45(2):219-223.
10.3969/j.issn.1001-0505.2015.02.004
TN47
A
1001-0505(2015)02-0219-05