沈忱,王宜懷,李成金,胡宗棠
(1.蘇州大學(xué)物理科學(xué)與技術(shù)學(xué)院,蘇州215006;2.蘇州大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院)
目前研究分析該系列微控制器低功耗機(jī)制資料較少,對開發(fā)者而言其低功耗機(jī)制理解不夠可能會導(dǎo)致開發(fā)低功耗應(yīng)用難度較高。鑒于此,本文以KL25微控制器為硬件平臺,對比分析業(yè)界幾款典型低功耗微控制器低功耗技術(shù),總結(jié)了功耗參數(shù)及性能;充分分析了影響功耗的因素并給出這些功耗模型的優(yōu)化方法以闡述其低功耗機(jī)理;研究了KL25不同等級功耗模式和時鐘模塊MCG 之間軟件可配關(guān)系,并應(yīng)用在實(shí)驗室開發(fā)的KL25微控制器最小板載系統(tǒng)SD-FSL-KL25-EVB 平臺上,實(shí)際測試評估了KL25微控制器運(yùn)行性能。該分析研究對嵌入式低功耗應(yīng)用產(chǎn)品的開發(fā)有著較大的實(shí)用價值。
目前,基于CMOS主流制程工藝,從硬件角度,其功耗主要分為動態(tài)功耗和靜態(tài)功耗,并隨著工藝尺寸變小,晶體管靜態(tài)功耗成為影響低功耗設(shè)計的主要因素。
動態(tài)功率消耗發(fā)生在邏輯門狀態(tài)切換時刻,與門極相關(guān)的晶體管內(nèi)部電容C 被充電,其功耗大小依賴時鐘頻率f,信號翻轉(zhuǎn)概率N,芯片核心電壓V;靜態(tài)功率消耗是指邏輯門不活動時晶體管開關(guān)引起的亞閾值漏電和氧化柵柵極漏電,大小與芯片核心電壓V、晶體管開關(guān)閾值(Vt)、工作溫度T 有關(guān)。其硬件功耗模型:
其中Ileak=exp(-qVt/KT),Pdynamic表示系統(tǒng)動態(tài)功耗;Pstatic表示系統(tǒng)靜態(tài)功耗。由式(1)可以看出,動態(tài)功耗與電壓二次方成正比,與頻率成線性關(guān)系;靜態(tài)功耗與溫度、晶體管開關(guān)閾值成指數(shù)關(guān)系。所以,低功耗優(yōu)化可從兩方面著手。
在優(yōu)化動態(tài)功耗方面,如降低時鐘頻率、時鐘門控技術(shù)以減少電路活動次數(shù);縮小門極驅(qū)動的過驅(qū)線圈大小,減少驅(qū)動電容值(如低k電介質(zhì)材料或低阻抗/電容銅軌技術(shù));利用多重電壓區(qū)域,平衡邏輯門功耗與門極開關(guān)速度等。
在優(yōu)化靜態(tài)功耗方面,如在關(guān)鍵時序路徑上使用低開關(guān)閾值(Vt)的晶體管,而在非關(guān)鍵路徑使用高開關(guān)閾值(Vt)的晶體管的多閾值CMOS技術(shù);剝離持續(xù)供電和可關(guān)斷供電的片上門控電源(Power Gating,PG)技術(shù)以及更加特殊的狀態(tài)保持門控電源(State Retention PG)技術(shù),都能降低芯片漏電流和靜態(tài)功耗。
對嵌入式低功耗的設(shè)計,不僅可以從硬件部分進(jìn)行優(yōu)化設(shè)計,還可通過軟件優(yōu)化來降低系統(tǒng)功耗。由于不同架構(gòu)支持的指令集不同,所以軟件優(yōu)化方法適用性受限,但作用仍不可小覷,其軟件功耗模型[1]:
其中E表示執(zhí)行程序所耗總能量;I表示某條指令;N1表示該指令執(zhí)行次數(shù);i表示遍歷程序中所有指令;O 表示某兩條指令間的附加能量值;N2表示該兩條指令出現(xiàn)的次數(shù);j、k表示遍歷所有相鄰的兩條指令;E0表示造成流水線停頓、訪問Cache不命中等附加能量;o表示遍歷所有這種附加能量。
從式(2)中可以得出,為降低系統(tǒng)功耗,可以從低功耗編譯指令、指令低功耗調(diào)度和存儲結(jié)構(gòu)等方面著手。對于某微控制器,每條指令都有一定功耗,每個操作都會激活微控制器中某些硬件部件,其中存儲功耗約占整個芯片功耗的30%~60%,所以采用高效的超長指令(VLIW)、代碼融合(Code Morphing)技術(shù)、合適的編譯方法,能夠減少存儲系統(tǒng)訪問頻率;通過合理選擇狀態(tài)機(jī)狀態(tài)的編碼方法(如Gray碼),可以減少狀態(tài)切換時電路的翻轉(zhuǎn)次數(shù),降低程序執(zhí)行功耗。
本文選取4款價格區(qū)間近似的低功耗微控制器:Microchip PIC24F系列、TI MSP430F系列、STM L1系列和Freescale KL系列。目前,在低功耗前沿技術(shù)領(lǐng)域,Microchip采用nanoWatt XLPTM (nanoWatt XLP eXtreme Low Power Technology)超低功耗技術(shù)[2];TI采用130nm超低漏電(ULL)工藝技術(shù),整合Ramtron F-RAM 低能量存儲器技術(shù)[3];ST 采用130nm 專用低漏電流工藝以及優(yōu)化的節(jié)能架構(gòu);Freescale采用90nm SG-TFS(Split Gate Thin Film Storage)工藝技術(shù)[4]各微控制器性能參數(shù)如表1所列。
從表1數(shù)據(jù)可以看出,各款MCU 在低功耗技術(shù)領(lǐng)域都有獨(dú)特技術(shù)專利,從功耗和性能角度,KL25系列Core-Mark/Core相較更有優(yōu)勢,其工作主頻高而運(yùn)行功耗低,能效比最大。
表1 微控制器性能參數(shù)
基于ARM Cortex-M0+內(nèi)核32位KL低功耗設(shè)計,從表1數(shù)據(jù),運(yùn)行功耗比、EEMBC標(biāo)準(zhǔn)CoreMark測試數(shù)據(jù),都體現(xiàn)了低功耗策略。為了進(jìn)一步剖析KL低功耗機(jī)制,本節(jié)將從硬件功耗模型和軟件功耗模型角度出發(fā),同時考慮到KL微控制器是面向取代8位市場領(lǐng)域,以Freescale S08系列的一款高性能低功耗8位微控制器MC9S08GB60為例進(jìn)行分析,以全面闡述KL低功耗機(jī)制。
2.2.1 優(yōu)化硬件功耗因子
(1)低功耗制程工藝
ARM 和Freescale公司都提供了先進(jìn)的低功耗技術(shù)以優(yōu)化式(1)中的功耗Pdynamic和Pstatic。
基于Cortex-M0+內(nèi)核芯片的設(shè)計,ARM 提供標(biāo)準(zhǔn)單元庫,設(shè)計人員可以選擇不同的標(biāo)準(zhǔn)單元庫類型,并針對速度、功耗和面積優(yōu)化其設(shè)計。其中電源管理工具包(Power Management Kit,PMK)是一種精密電源管理技術(shù),包括電源門控、保持寄存器、隔離單元、電平轉(zhuǎn)換、不關(guān)機(jī)緩沖器和反偏壓單元,提供對動態(tài)耗電和靜態(tài)/泄露耗電的主動控制。依賴于PMK 技術(shù),采用低功耗架構(gòu)的通用I/O,可軟件編程實(shí)現(xiàn)多種輸入類型、壓擺率、驅(qū)動強(qiáng)度、上拉/下拉/開漏,電源管理功能還支持內(nèi)核至I/O 電壓范圍更大的內(nèi)置電平轉(zhuǎn)換器,并能在內(nèi)核電源環(huán)斷電時保持狀態(tài)。
Cortex-M0+內(nèi)核只是微控制器一部分,若要實(shí)現(xiàn)整個控制器的低功耗設(shè)計,采用支持低功耗特性的外設(shè)模塊組件是實(shí)現(xiàn)微控制器整體低功耗不可或缺的條件,尤其是存儲系統(tǒng)功耗。
Freescale是開發(fā)和優(yōu)化了諸多工藝技術(shù)以降低功耗,詳細(xì)描述及技術(shù)參數(shù)略——編者注。
相比基于增強(qiáng)型S08的內(nèi)核GB60,基于Cortex-M0+KL25微控制器在最低工作電壓、Flash電壓上都有很大程度優(yōu)化;系統(tǒng)工作在最佳性能時,工作電流接近而KL25主頻是GB60的三倍;WAIT 模式靜態(tài)漏電流降低1/4。
(2)靈活電源模式和時鐘模式
KL25在Cortex-M0+內(nèi)核低功耗模式Sleep、Deep Sleep基礎(chǔ)上,擴(kuò)展8種低功耗模式,集成新特性低漏喚醒單元(LLWU),專用于在超低功耗低漏模式下的喚醒操作。而GB60 功耗模式僅為STOP3、STOP2、STOP1。表2總結(jié)了KL25在內(nèi)核不同狀態(tài)下的功耗模式。
表2 KL25 8種功耗模式
VLPR模式限制CPU 頻率在2MHz內(nèi),內(nèi)部穩(wěn)壓器處于待機(jī)模式,同時還保持外設(shè)和低電壓檢測(LVD)正常工作;VLPW 模式下CPU 暫停,F(xiàn)lash、FlexMemory編程不可用,外部中斷事件能夠喚醒MCU,執(zhí)行預(yù)定任務(wù)后恢復(fù)低功耗狀態(tài),最大限度減少運(yùn)行狀態(tài)和低功耗狀態(tài)之間頻繁切換;STOP模式MCU 處于靜態(tài),保留所有寄存器并同時保持LVD工作;VLPS進(jìn)一步關(guān)閉LVD;LLS低漏停止模式降低內(nèi)在邏輯的電壓,最大限度減少未使用的內(nèi)部電路的漏電;VLLSx極低漏停止模式則更進(jìn)一步切斷內(nèi)在邏輯,選擇性切斷RAM 內(nèi)存,從而減少未使用電路的漏電。
KL系列中一個關(guān)鍵功率組件就是低漏電喚醒單元(LLWU),它在所有低漏電停止模式中充當(dāng)喚醒監(jiān)控器。在LLS/VLLSx模式下,提供如低功耗定時器,實(shí)時時鐘RTC,模擬比較器,觸摸感應(yīng)接口(TSI)和幾個引腳中斷作為喚醒源,使能喚醒輸入,MCU 處于LLS/VLLSx模式它就會啟動。
對于數(shù)字系統(tǒng)來說,時鐘系統(tǒng)是整個系統(tǒng)的中樞神經(jīng),KL25片上集成靈活可配的時鐘系統(tǒng)和門控時鐘技術(shù)。在實(shí)際應(yīng)用中,可軟件配置時鐘模式,選擇不同時鐘源和時鐘頻率。整個片上時鐘系統(tǒng)來源分為:MCG、OSC、RTC、PMC四個模塊,從功耗模式角度,這4個時鐘源在0~3 功耗等級模式下都可以全功能輸出,但在STOP以及功耗更低模式下,只有部分時鐘模塊工作;從時鐘模式角度,片上時鐘系統(tǒng)可分成8種:FEI、FEE、FBI、BLPI、FBE、BLPE、PBE、PEE,每種時鐘模式的差異在于時鐘源與時鐘頻率,共性都是為片上系統(tǒng)提供內(nèi)核時鐘、系統(tǒng)時鐘、總線時鐘、Flash時鐘等。
在4大時鐘系統(tǒng)來源中,MCG 模塊是最重要的時鐘參考系統(tǒng),可工作在0~5功耗等級模式下。內(nèi)部固化的4 MHz/32kHz時鐘;內(nèi)部集成鎖頻環(huán)FLL、鎖相環(huán)PLL。FLL輸出頻率在20~48 MHz之間,PLL 輸出頻率在48~100 MHz之間。MCG 模塊支持輸出以上8 種時鐘模式,尤其在系統(tǒng)時鐘精度、功耗、性能要求不高的應(yīng)用中,直接使用內(nèi)部固化時鐘驅(qū)動芯片工作,減少外圍時鐘電路。OSC模塊提供了一個外部時鐘源輸入接口電路,其輸出OSCERCLK 時鐘可工作在0~9 全功耗等級模式下。RTC模塊可在0~9全功耗等級模式下輸出1 Hz時鐘頻率,可以為系統(tǒng)提供精準(zhǔn)定時,尤其應(yīng)用在定時喚醒系統(tǒng)中;PMC模塊提供1kHz LPO 時鐘,也可工作在0~9全功耗等級模式下。
(3)低功耗中斷機(jī)制
為減少門數(shù)和提高系統(tǒng)靈活性,Cortex-M 處理器采用基于堆棧的異常模型。從中斷處理機(jī)制角度,一旦發(fā)生異常,Cortex-M 處理器實(shí)現(xiàn)硬件入棧關(guān)鍵的通用寄存器,支持中斷咬尾、晚到異常機(jī)制和自動執(zhí)行多重數(shù)據(jù)傳送指令。在許多其他架構(gòu)中,這些任務(wù)必須在軟件的中斷處理程序中執(zhí)行,從而引入延遲并帶來復(fù)雜性。
基于門控狀態(tài)保留技術(shù)SRPG(State Retention Power Gating)、喚醒中斷控制器WIC(Wakeup Interrupt Controller)可在內(nèi)核處于Deep Sleep模式,NVIC 停止工作、無片上時鐘系統(tǒng)甚至控制器處于掉電狀態(tài)下都能夠快速檢測中斷信號并喚醒MCU,從而實(shí)現(xiàn)更低的靜態(tài)功耗。
2.2.2 優(yōu)化軟件功耗因子
(1)高能效內(nèi)核指令集
對于性能至上的嵌入式產(chǎn)品,更少的指令數(shù)通常意味著更高的性能。相較于傳統(tǒng)8/16 位指令集,ARM Cortex-M0+采用Thumb 指令集,CoreMark/mA 將近8/16位MCU 的2倍,同時支持Thumb-2技術(shù)的特性解決了Thumb指令不支持一些特殊功能如SIMD,也不能訪問協(xié)處理器和使用特權(quán)指令的缺陷。在代碼密度和性能方面也得到改善,用更低的處理器主頻完成相同功能,進(jìn)而降低系統(tǒng)整體功耗。
表3給出了不同架構(gòu)指令集實(shí)現(xiàn)一個16位乘法的匯編程序??梢钥闯?,Cortex-M指令集是一種高效單周期指令集。
表3 各處理器體系結(jié)構(gòu)16位乘法運(yùn)算比較
(2)減少訪問存儲器頻率
基于Load-Store架構(gòu),ARM Cortex-M0+采用二級流水線設(shè)計以減少每指令所耗平均周期(CPI),比高級流水線設(shè)計的內(nèi)核更易簡化架構(gòu)復(fù)雜度,在開發(fā)難度上也更接近8/16位。KL 系列內(nèi)含64字節(jié)Cache,從外部總線來看,雖然整體架構(gòu)屬于馮諾依曼結(jié)構(gòu),實(shí)際已經(jīng)算是改進(jìn)型哈佛結(jié)構(gòu),整體性能得到提高,同時處理器陰影分支(Branch Shadow)也可被降低,進(jìn)而減少訪問存儲器頻率。如圖1所示。
圖1 Branch Shadow 示意圖
(3)IDE支持低功耗解決方案
KL系列低功耗策略,不僅體現(xiàn)于MCU 自身,同時支持它的開發(fā)工具和設(shè)計資源也是關(guān)鍵環(huán)節(jié)。第三方工具如IAR系統(tǒng)嵌入式工作平臺IDE(IAR System Embedded Workbench IDE)集成電源調(diào)試和分析工具,能提供將程序執(zhí)行的關(guān)鍵事件與功耗術(shù)語相映射的功能,進(jìn)而修改源代碼滿足功率曲線的要求。
針對KL25微控制器低功耗特性的評估與驗證,本文設(shè)計將KL25應(yīng)用于水質(zhì)監(jiān)測系統(tǒng)中作為主控節(jié)點(diǎn),采集來自PH 值傳感器、溶氧傳感器、光照傳感器、溫度傳感器數(shù)據(jù),配合無線收發(fā)器MC13192實(shí)現(xiàn)無線節(jié)點(diǎn)數(shù)據(jù)的采集與發(fā)送。
整個水質(zhì)監(jiān)測系統(tǒng)工作在戶外且使用兩節(jié)AA 電池3.0V 供電,分別采用GB60微控制器(內(nèi)集成10位精度A/D模塊與16位TPM 定時器),KL25微控制器(內(nèi)集成16位精度A/D模塊與16位低功耗定時器LPTMR),實(shí)測電流數(shù)據(jù)如表4所列。
表4 GB60與KL25應(yīng)用測試功耗數(shù)據(jù)
其中,GB60待機(jī)模式處于STOP3,A/D模塊不工作,SRAM 狀態(tài)保持;KL25待機(jī)模式處于LLS,A/D 模塊不工作,SRAM 狀態(tài)保持。GB60運(yùn)行模式處于RUN,Core@16 MHz,fbus@8 MHz;KL25 運(yùn)行模式處于RUN,PEE,Core@48 MHz,fbus@24 MHz。
從整個測試分析結(jié)果來看,KL25工作性能明顯高于GB60,最佳性能運(yùn)行狀態(tài)系統(tǒng)功耗小于GB60,而在處理主頻上卻是3倍。在3.0V 電池供電下,每5s采集一次外部傳感器數(shù)據(jù),其余時間微控制器處于待機(jī)模式,基于GB60主控節(jié)點(diǎn)工作時長約14天,而基于KL25主控節(jié)點(diǎn)工作時長約為20天。當(dāng)然采集頻率降低,工作時間也就越長。
本文從軟硬件功耗模型角度分析了微控制器實(shí)現(xiàn)低功耗技術(shù)要點(diǎn),總結(jié)出多種優(yōu)化軟硬件功耗因子方法,如采用先進(jìn)工藝制程,高效指令集以及降低數(shù)據(jù)移動量的存儲訪問機(jī)制等。重點(diǎn)分析了基于ARM Cortex-M0+超低功耗內(nèi)核KL系列微控制器的低功耗機(jī)制,闡述在不同功耗等級模式下軟件可配時鐘模式關(guān)系以及低功耗中斷策略。最后,通過實(shí)例比較分析給出了KL25微控制器在低功耗應(yīng)用中的性能參數(shù),該研究給初學(xué)者快速了解、開發(fā)Kinetis L系列提供了技術(shù)基礎(chǔ)。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
[1]周寬久,遲宗正,西方.嵌入式軟硬件低功耗優(yōu)化研究綜述[J].計算機(jī)應(yīng)用研究,2010,27(2):423-425.
[2]Microchip.nanoWatt and nanoWatt XLP Technologies:An Introduction to Microchip Low-Power Devices。2009.
[3]Philofsky E M.FRAM-the ultimate memory[C]//Nonvolatile Memory Technology Conference,1996,Sixth Biennial IEEE International.IEEE,1996:99-104.
[4]Kang S T,Yater J,Hong C M,et al.Si nanocrystal split gate technology optimization for high performance and reliable embedded microcontroller applications[C]//Non-Volatile Semiconductor Memory Workshop,2008and 2008International Conference on Memory Technology and Design.NVSMW/ICMTD 2008.Joint.IEEE,2008:59-60.
[5]Freescale.KL25Sub-Family Data Sheet Rev.3,2012.
[6]ARM.Cortex-M0+Technical Reference Manual Rev.r0p0,2012.
[7]ARM.Cortex-M0+Devices Generic User Guide,2012.
[8]Brake C.基于ARM 的便攜式系統(tǒng)的功耗管理[J].電子產(chǎn)品世界,2003(13):54-56.