莫東杰
(廣東工業(yè)大學(xué),廣東 廣州 510006)
隨著半導(dǎo)體行業(yè)的快速發(fā)展,消費(fèi)電子和無線設(shè)備的盛行,集成電路的制造和工藝的進(jìn)步,芯片的體積越來越小的同時(shí)其規(guī)模和復(fù)雜程度也越來越大,對于芯片的性能和功耗的要求也越來越苛刻, 特別是近年來被廣泛應(yīng)用的移動(dòng)電子設(shè)備對電池續(xù)航的依賴越來越大,設(shè)計(jì)人員必須重點(diǎn)關(guān)注產(chǎn)品的續(xù)航能力。因此,在集成電路芯片設(shè)計(jì)領(lǐng)域中,低功耗設(shè)計(jì)是最受人們關(guān)注的領(lǐng)域之一。
為了降低微控制器的功耗,本文提出并實(shí)現(xiàn)了一種低功耗時(shí)鐘管理技術(shù)。該技術(shù)根據(jù)微控制器中處理器核的運(yùn)行狀態(tài)的變化,實(shí)現(xiàn)工作模式的切換和時(shí)鐘狀態(tài)的調(diào)節(jié),在保證一定的工作效率的條件下降低了功耗。該技術(shù)成功應(yīng)用于微控制器仿真驗(yàn)證平臺(tái),功耗仿真驗(yàn)證結(jié)果表明,該技術(shù)能有效的降低微控制器的功耗,有一定的實(shí)際意義。
在數(shù)字集成電路中,功耗主要來自以下三個(gè)方面:
式(1)中,表示對CMOS電路中電容充放電所消耗的開關(guān)功耗,和分別代表短路功耗和漏電功耗。
其中,開關(guān)功耗可以近似表示為:
式(2)中是信號(hào)變化翻轉(zhuǎn)率的活動(dòng)因子,CL表示節(jié)點(diǎn)電容,為工作電壓,是時(shí)鐘頻率。
由式(2)可以明顯看出,降低工作電壓就能有效的減少開關(guān)功耗,但由于工作電壓跟電路的性能關(guān),降低工作電壓會(huì)損害到性能,同時(shí)芯片中的降壓電路實(shí)現(xiàn)困難,所以降壓并不是減小動(dòng)態(tài)功耗的首選;而活動(dòng)因子一般與系統(tǒng)的實(shí)際運(yùn)行程序有關(guān),操作困難;節(jié)點(diǎn)電容則是由制造實(shí)現(xiàn)的工藝所決定,所以本文主要考慮通過時(shí)鐘優(yōu)化來降低功耗,著重在對系統(tǒng)時(shí)鐘的開關(guān)、工作狀態(tài)以及頻率的管理上。本文中的低功耗動(dòng)態(tài)時(shí)鐘管理技術(shù)主要包括門控時(shí)鐘和多模式切換,通過這兩項(xiàng)技術(shù),能有效的對系統(tǒng)的時(shí)鐘進(jìn)行管理,降低系統(tǒng)的功耗。
門控時(shí)鐘是寄存器傳輸級的低功耗設(shè)計(jì)技術(shù),就是當(dāng)系統(tǒng)某一部分處于空閑狀態(tài)時(shí)關(guān)閉其時(shí)鐘從而消除時(shí)鐘驅(qū)動(dòng)的功耗。門控時(shí)鐘作用范圍越大,功耗優(yōu)化的效果就越明顯。門控時(shí)鐘有兩種實(shí)現(xiàn)形式:基于鎖存器的門控時(shí)鐘和基于兩輸入與門的門控時(shí)鐘,前者較穩(wěn)定不易出現(xiàn)毛刺,但會(huì)在設(shè)計(jì)中引入鎖存器,而后者容易導(dǎo)致時(shí)鐘的毛刺,但面積小。在一般的情況下,門控時(shí)鐘的選擇和運(yùn)用可以通過電子設(shè)計(jì)自動(dòng)化(EDA)軟件工具實(shí)現(xiàn),也可以手工在在寄存器轉(zhuǎn)換級電路(RTL)代碼內(nèi)插入;通常會(huì)一些模塊級或系統(tǒng)級的門控時(shí)鐘是通過手工插入基于鎖存器的門控時(shí)鐘的,而其他寄存器的門控時(shí)鐘則是通過EDA軟件自動(dòng)插入的。
在微控制器執(zhí)行任務(wù)時(shí),不可能一直處在工作狀態(tài),系統(tǒng)總會(huì)有空閑的時(shí)候,這時(shí)候就要對時(shí)鐘進(jìn)行有效的管理,避免不必要的功耗。通過對時(shí)鐘的管理來把系統(tǒng)分為5種工作模式:NORMAL、IDLE、WAIT、STOP和SLEEP。在NORMAL模式下,主系統(tǒng)時(shí)鐘(MCLK)、子系統(tǒng)時(shí)鐘(SMCLK)均由片外高頻時(shí)鐘發(fā)生器(DCO)提供,輔助系統(tǒng)時(shí)鐘(ACLK)由外接高頻晶振(HFXT)或低頻晶振(LFXT)提供;在IDLE模式時(shí),MCLK停止工作,SMCLK由DCO提供,ACLK由外接LFXT提供;在WAIT模式時(shí),MCLK停止工作,SMCLK和ACLK均由LFXT提供;STOP模式下,MCLK和SMCLK停止工作,僅有ACLK由LFXT提供;SLEPP模式下所有時(shí)鐘停止工作。
DCMM主要由DCO,高低頻晶振接口,時(shí)鐘源選擇器、時(shí)鐘分頻器和模式轉(zhuǎn)換狀態(tài)機(jī)以及時(shí)鐘輸出門控電路組成。首先DCMM的寄存器組通過配置模式轉(zhuǎn)換狀態(tài)機(jī)決定輸出時(shí)鐘的工作狀態(tài),模式轉(zhuǎn)換狀態(tài)機(jī)的輸出就會(huì)驅(qū)動(dòng)時(shí)鐘源選擇器適當(dāng)?shù)倪x擇各時(shí)鐘來源,然后選出的時(shí)鐘經(jīng)過獨(dú)立的時(shí)鐘分頻器進(jìn)行分頻處理(可配置1:1,1:2,1:4,1:8,1:16分頻);最后,時(shí)鐘輸出門控電路是各個(gè)子模塊的時(shí)鐘的總開關(guān),當(dāng)微控制器內(nèi)的某一個(gè)子模塊不需要工作時(shí)可以暫時(shí)切斷時(shí)鐘,減少不必要的功耗。系統(tǒng)復(fù)位的同時(shí),DCMM寄存器就會(huì)開始初始化默認(rèn)配置,配置完成后就可以讓DCMM自主開始工作。同時(shí),工作過程中也可以通過寄存器接口對相關(guān)寄存器的配置進(jìn)行改動(dòng)來實(shí)現(xiàn)各種工作模式和時(shí)鐘頻率。
圖1 基于openMSP430的微控制器仿真驗(yàn)證平臺(tái)
本設(shè)計(jì)采用基于openMSP430嵌入式微處理器的微控制器平臺(tái)進(jìn)行仿真驗(yàn)證。如圖1。它是由待測設(shè)計(jì)(DUT),也就是本設(shè)計(jì)中的DCMM,和其他輔助模塊所組成的。由于DCMM是微控制器中的一個(gè)外設(shè)模塊,它主要由嵌入式處理器驅(qū)動(dòng)的,所以對DCMM的測試激勵(lì)主要由嵌入式處理器控制。當(dāng)完成測試激勵(lì)的編寫后,要先通過MSPGCC編譯器進(jìn)行編譯并寫入程序存儲(chǔ)器,然后啟動(dòng)VCS仿真軟件使測試平臺(tái)對微控制器進(jìn)行初始化并開始執(zhí)行程序,這時(shí)測試激勵(lì)向量就會(huì)由處理器加載到DCMM中開始仿真驗(yàn)證,當(dāng)程序執(zhí)行完后,就會(huì)輸出仿真波形和工作報(bào)告等測試結(jié)果文件。
驗(yàn)證結(jié)果表明,微控制器在NORMAL、IDLE、WAIT、STOP和SLEEP五種不同的工作模式進(jìn)行切換,其對應(yīng)功耗和輸出時(shí)鐘如圖2。在NORMAL模式下,微控制器正常工作,時(shí)鐘頻率達(dá)到最大,實(shí)時(shí)的功耗也最大;關(guān)閉MCLK,則微控制器進(jìn)入IDLE模式,動(dòng)態(tài)功耗大幅降低,此時(shí)SMCLK仍由DCO提供;當(dāng)把SMCLK切換到LFXT時(shí),系統(tǒng)會(huì)進(jìn)入WAIT模式,此時(shí)系統(tǒng)時(shí)鐘主要由LXFT供給,功耗有進(jìn)一步的降低;關(guān)閉MCLK和SMCLK,僅留下ACLK為部分模塊提供時(shí)鐘來保證其運(yùn)行,處理器進(jìn)入STOP模式,功耗又有小幅降低;當(dāng)所有時(shí)鐘停止工作,系統(tǒng)進(jìn)入SLEEP模式,這時(shí)功耗最低,幾乎為零。
圖2 仿真工作模式波形結(jié)果
在對微控制器驗(yàn)證平臺(tái)仿真不同的任務(wù)程序時(shí),我們利用功耗分析估計(jì)的方法統(tǒng)計(jì)比較了原始設(shè)計(jì)和加入動(dòng)態(tài)時(shí)鐘管理技術(shù)時(shí)的面積和功耗情況如表1,結(jié)果表明,加入動(dòng)態(tài)時(shí)鐘管理技術(shù)的設(shè)計(jì)在面積增大3.2%的情況下,對功耗的優(yōu)化最多能達(dá)到15.6%,效果較為顯著。由此可見,該技術(shù)能有效的降低微控制器的功耗。
表1 仿真結(jié)果對比
本文提出并設(shè)計(jì)實(shí)現(xiàn)了一種應(yīng)用于微控制器的低功耗時(shí)鐘管理技術(shù)。該技術(shù)包括門控時(shí)鐘和多種工作模式切換。該技術(shù)主要在硬件上實(shí)現(xiàn)了對微控制器時(shí)鐘進(jìn)行管理,讓系統(tǒng)處于適當(dāng)?shù)墓哪J较拢M可能的減少動(dòng)態(tài)功耗。基于openMSP430嵌入式處理器的微控制器仿真驗(yàn)證平臺(tái)的實(shí)驗(yàn)結(jié)果表明,引入動(dòng)態(tài)時(shí)鐘管理單元的嵌入式微控制器能在一定程度上降低功耗,具有一定的應(yīng)用意義。
[1] 孫大鷹,徐申,徐玉珉,孫偉鋒,陸生禮. 應(yīng)用于低功耗嵌入式處理器的功耗動(dòng)態(tài)管理策略設(shè)計(jì)[J]. 東南大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,04:695-700.
[2] 孫大成,趙斌. 門控時(shí)鐘技術(shù)在RTL功耗優(yōu)化上的應(yīng)用[J]. 中國集成電路,2013,11:40-44.
[3] 陳黎明,鄒雪城,雷鑑銘,付智輝. 應(yīng)用于低功耗SoC的動(dòng)態(tài)時(shí)鐘管理技術(shù)[J]. 微電子學(xué),2007,01:45-48.
[4] 趙爾寧,邵高平. 基于先驗(yàn)預(yù)知的動(dòng)態(tài)電源管理技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003,12:9-11.
[5] 王延升,劉雷波. SoC設(shè)計(jì)中的時(shí)鐘低功耗技術(shù)[J]. 計(jì)算機(jī)工程,2009,24:257-258+261.