物聯(lián)網(wǎng) (IoT) 正在推動(dòng)對(duì)各種電池供電設(shè)備的巨大需求。這反過來又推動(dòng)了對(duì)微控制器和其他系統(tǒng)級(jí)組件不斷提高能效的要求。因此,超低功耗(ULP)已成為一個(gè)過度使用的營銷短語,尤其是在用于描述微控制器時(shí)。作為理解ULP背后真正含義的第一步,請(qǐng)考慮其含義的多樣性。在某些情況下,當(dāng)電源受到嚴(yán)重限制(例如,能量收集)時(shí),需要最低的有功電流?;蛘?,當(dāng)系統(tǒng)大部分時(shí)間處于待機(jī)或睡眠模式,不經(jīng)常(定期或異步)喚醒以處理任務(wù)時(shí),需要最低的睡眠模式電流。此外,ULP還可以意味著能源效率,因此大多數(shù)工作都是在有限的時(shí)間內(nèi)完成的。總體而言,電池供電設(shè)備將根據(jù)一系列權(quán)衡利用這些要求的組合。
當(dāng)然,ULP 也是一個(gè)意見和功能問題——例如,我們通常認(rèn)為微控制器單元 (MCU) 是 ULP,其活動(dòng)模式范圍為 30 μA/MHz 至 40 μA/MHz,關(guān)斷電流為 50 nA 至 70 nA。然而,將微控制器歸類為超低功耗是各種特性的復(fù)雜組合,包括架構(gòu)、SoC 設(shè)計(jì)、工藝技術(shù)、智能外設(shè)和深度睡眠模式。在本文中,我們將研究ADI公司的兩款微控制器,以幫助您了解如何在這種情況下解釋超低功耗的真正含義。我們還將研究EEMBC聯(lián)盟的認(rèn)證機(jī)制,該機(jī)制確保分?jǐn)?shù)的準(zhǔn)確性,以幫助系統(tǒng)開發(fā)人員為其解決方案選擇最合適的微控制器。
測量和優(yōu)化超低功耗
作為理解ULP的起點(diǎn),我們首先解釋如何測量它。開發(fā)人員通常會(huì)查看數(shù)據(jù)手冊,在那里可以找到每MHz的電流值,以及不同睡眠模式的電流。第一個(gè)問題是,在查看有功電流消耗時(shí),數(shù)據(jù)手冊通常無法解釋獲得該值的條件,例如代碼、電壓和閃存上的等待狀態(tài)。一些供應(yīng)商使用主動(dòng)模式引用,例如EEMBC CoreMark,而其他供應(yīng)商將使用像運(yùn)行“while 1”語句這樣簡單的東西。如果閃存上存在等待狀態(tài),微控制器單元的性能會(huì)降低,從而增加執(zhí)行時(shí)間,從而增加執(zhí)行任務(wù)的能耗。一些供應(yīng)商提供典型電壓的數(shù)字,其他供應(yīng)商提供最低電壓的數(shù)字,而其他供應(yīng)商則不指定任何電壓。也許這些都是微妙的差異,但沒有標(biāo)準(zhǔn),比較只是近似的。
通常,數(shù)據(jù)手冊中對(duì)深度睡眠模式進(jìn)行了很好的解釋,但同樣,獲得這些模式的電流消耗的條件因供應(yīng)商而異(例如,保留的內(nèi)存量或電壓)。此外,在實(shí)際應(yīng)用中,用戶還必須考慮進(jìn)入和退出這些模式時(shí)消耗的能量。這可能是一個(gè)微不足道的值,也可能是真正相關(guān)的,具體取決于設(shè)備大部分時(shí)間是否處于睡眠模式或頻繁喚醒。這就引出了下一點(diǎn)——設(shè)備在睡眠中花費(fèi)了多少時(shí)間?活動(dòng)模式和睡眠模式之間的平衡對(duì)于確定ULP測量非常重要。為了簡化流程,EEMBC為其ULPMark-CoreProfile(ULPMark-CP)使用了1秒周期,該基準(zhǔn)測試被許多微控制器供應(yīng)商用作數(shù)據(jù)手冊標(biāo)準(zhǔn)。注意:使用1秒的決定是EEMBC工作組的共識(shí)??紤]到ULPMark-CoreProfile工作負(fù)載的活動(dòng)時(shí)間,占空比約為2%。在此基準(zhǔn)測試中,設(shè)備每秒喚醒一次,執(zhí)行少量工作(活動(dòng)周期),然后返回睡眠狀態(tài)。
通常,在有源模式下,由于模擬電路,電流消耗會(huì)有所偏移,因此,最小化有源電流并有效使用深度睡眠模式對(duì)于優(yōu)化整體系統(tǒng)能源使用是有意義的。請(qǐng)注意,通過降低頻率,有功電流將減少,但時(shí)間會(huì)增加,并且前面提到的模擬電路引起的失調(diào)在微控制器處于活動(dòng)狀態(tài)時(shí)保持不變。但是,微控制器選擇之間的權(quán)衡是什么,應(yīng)用的占空比和深度睡眠電流對(duì)該能量有何影響?
每個(gè)周期的能量作為占空比D的函數(shù)(以活動(dòng)模式下的時(shí)間與總時(shí)間的百分比給出)由一個(gè)簡化的方程定義,該方程假設(shè)開和關(guān)轉(zhuǎn)換中的能量很小。
其中斜率由 I 定義上自從我睡比我小得多上而 y 截距只是我睡.該方程有助于理解占空比,其中有功電流比睡眠電流更重要。
圖1.ULPMark-CP的周期為1秒。在此期間,設(shè)備將從深度睡眠模式喚醒,執(zhí)行固定工作負(fù)載,然后返回到深度睡眠模式。
超低功耗測試平臺(tái)
如前所述,我們將比較ADI公司兩款微控制器ADuCM4050和ADuCM302x的超低功耗(能量)。在ULPMark結(jié)果表中,ADuCM4050和ADuCM302x分別獲得了203和245.5的分?jǐn)?shù)。請(qǐng)記住,此基準(zhǔn)測試僅執(zhí)行微控制器單元的內(nèi)核(因此稱為CoreProfile)。如何解釋18%的差異?
ADuCM4050內(nèi)置一個(gè)實(shí)現(xiàn)ARMv7E-M架構(gòu)的ARM Cortex-M4F。ADuCM302x包含一個(gè)實(shí)現(xiàn)ARMv7-M架構(gòu)的ARM Cortex-M3。雖然兩個(gè)內(nèi)核都有一個(gè)具有分支推測的 3 級(jí)流水線,并且在指令集架構(gòu)上都相似,但只有 Cortex-M4F 支持 DSP 和浮點(diǎn)指令。由于ULPMark-CoreProfile上沒有DSP指令,Cortex-M4F部件沒有利用FPU。??
對(duì)于基準(zhǔn)分析,ADuCM4050和ADuCM302x的工作頻率分別為52 MHz和26 MHz。ADuCM4050執(zhí)行ULPMark工作負(fù)載需要約11,284個(gè)周期,ADuCM302x需要10,920個(gè)周期,這意味著前者在1秒周期的217 μs內(nèi)完成活動(dòng)模式部分,而后者在420 μs內(nèi)有效。ADuCM4050使用的周期比ADuCM3029多幾個(gè),是因?yàn)槭褂玫念l率(分別為52 MHz和26 MHz),ADuCM4050需要一個(gè)等待閃存狀態(tài),而ADuCM3029在閃存上沒有等待狀態(tài)。由于ADuCM4050具有高速緩存,因此在閃存上添加等待狀態(tài)不會(huì)造成重大損失,因?yàn)樵S多指令是從高速緩存執(zhí)行的,可以全速(52 MHz)訪問,而無需額外的等待狀態(tài)。在執(zhí)行時(shí)間方面,正如預(yù)期的那樣,ADuCM4050的工作負(fù)載執(zhí)行速度比ADuCM3029快,因?yàn)樗倪\(yùn)行頻率是ADuM3029的兩倍。
ARM核心 | 完成 ULPMark 活動(dòng)模式的近似周期 | ||
皮層-M0 | 15,174* | ||
皮層-M0+ | 14,253 | ||
皮質(zhì)-M3 | 10,920 | ||
皮層-M4 | 11,852 | ||
皮層-M4F | 11,284 | ||
*這是基于Cortex-M0+和Cortex-M3數(shù)字的估計(jì)值。 |
但是,為什么ADuCM4050的功耗比ADuCM3029高10 μA/MHz?這種增加背后的原因是,前者的工作頻率可能是后者的兩倍,需要額外的緩沖器來完成更高頻率的時(shí)序約束。與ADuCM3029相比,ADuCM4050還具有一些額外的特性:
存儲(chǔ)器大小翻倍(SRAM和閃存):分別為128 kB和512 kB,而ADuCM3029為64 kB和256 kB。根據(jù)應(yīng)用程序需求,您可能需要額外的存儲(chǔ)空間。
雙頻:ADuCM3029為52 MHz,而ADuCM3029為26 MHz,因此ADuCM4050具有更好的性能。
添加了 RGB 計(jì)時(shí)器。
添加了新的安全功能:具有密鑰包裝-解包功能的受保護(hù)密鑰存儲(chǔ)和具有密鑰解包的密鑰 HMAC。
添加了三個(gè)額外的傳感器頻閃?輸出。
增加了完整的SRAM保留:ADuCM4050可保留高達(dá)124 kB,而ADuCM3029可保留高達(dá)32 kB。
圖2.ULPMark-CP的前10個(gè)結(jié)果,位于EEMBC網(wǎng)站(18千2017年8月)。1
根據(jù)應(yīng)用需求(功耗優(yōu)化、額外存儲(chǔ)、主動(dòng)性能、保持能力等),您可以決定使用ADuCM4050或ADuCM302x產(chǎn)品。
在深度睡眠模式下,ADuCM4050的休眠電流是運(yùn)行ULPMark-CoreProfile時(shí)ADuCM3029的兩倍(前者為16 kB,后者為8 kB)。這種改進(jìn)的原因是較新的ADuCM4050產(chǎn)品上的架構(gòu)得到增強(qiáng)。
編譯器的作用
如上所述,ULPMark 由兩種操作狀態(tài)組成 — 活動(dòng)狀態(tài)和設(shè)備處于睡眠模式的低功耗狀態(tài)。這些狀態(tài)組合成正好 1 秒的時(shí)間段。在活動(dòng)狀態(tài)下,每個(gè)設(shè)備執(zhí)行相同的工作負(fù)載。但正如我們所看到的,這項(xiàng)工作的效率受到架構(gòu)的影響。此外,它還受編譯器的影響。編譯器可以選擇更改和優(yōu)化語句,以便指令組合將更改。
根據(jù)應(yīng)用程序需求,您可以優(yōu)化大小、速度、平衡大小和速度等。循環(huán)展開是一個(gè)簡單的示例,其中執(zhí)行的分支與循環(huán)內(nèi)代碼的比率發(fā)生變化。編譯器仍然可以在尋找更好的計(jì)算結(jié)果方法方面發(fā)揮重要作用,但所做的工作是等效的。例如,ADuCM3029的ULPMark-CP結(jié)果可能從速度優(yōu)化高的245.5到中等優(yōu)化的232或低優(yōu)化的209不等。編譯器重要性的另一個(gè)例子是德州儀器 MSP430FR5969 的 ULPMark 結(jié)果,通過應(yīng)用較新版本的 IAR 嵌入式工作臺(tái)編譯器,編譯器提高了 5%,盡管不知道為完成此改進(jìn)進(jìn)行了哪些內(nèi)部編譯器更改 (www.eembc.org/ulpbench/)。同樣,如果不深入了解專有編譯器技術(shù),就無法確定為什么意法半導(dǎo)體STM32L476RG的結(jié)果在從ARMCC編譯器到IAR編譯器的過程中提高了16%。
ADI公司MCU的兩個(gè)結(jié)果都是使用IAR編譯器編譯的代碼生成的,但版本不同。ADuCM4050和ADuCM302x分別使用IAR EWARM 7.60.1.11216和7.50.2.10505。同樣,不可能知道進(jìn)行了哪些內(nèi)部更改。兩個(gè)分?jǐn)?shù)都是使用與優(yōu)化速度相對(duì)應(yīng)的no_size_constraints選項(xiàng)提交的。
將 ULPMark 轉(zhuǎn)換為能量值
ULPMark-CoreProfile 使用一個(gè)公式,該公式取能量值的倒數(shù)(中位數(shù)為 5× 10 個(gè)周期每秒的平均能量)。
能量作為設(shè)備執(zhí)行工作負(fù)載(在活動(dòng)模式下)和設(shè)備處于休眠狀態(tài)時(shí)消耗的能量的總和獲得。
根據(jù)ADuCM3029數(shù)據(jù)手冊,運(yùn)行質(zhì)數(shù)代碼時(shí),有源電流的典型值為980 μA。此代碼適合緩存并利用其較低的功耗。對(duì)于ULPMark-CoreProfile代碼,由于它主要是線性代碼,因此啟用緩存沒有太大的好處,因此電流消耗類似于禁用緩存的數(shù)據(jù)手冊中顯示的電流消耗,為1.28 mA。對(duì)于休眠電流,ULPMark-CoreProfile 需要啟用 LFXTAL 和 RTC,因此休眠模式下的電流消耗為 830 nA(根據(jù)數(shù)據(jù)手冊)。如前所述,活動(dòng)持續(xù)時(shí)間為420 μs。
根據(jù)數(shù)據(jù)手冊編號(hào)和執(zhí)行時(shí)間,有功電流的能量為1.61 μJ,睡眠期間消耗的能量為2.49 μJ。根據(jù)這些值得出的分?jǐn)?shù)與使用EEMBC EnergyMonitor軟件測量的分?jǐn)?shù)相匹配。
第一代ULPMark的缺點(diǎn)之一是運(yùn)行規(guī)則將工作電壓限制為3 V(由工作組以這種方式實(shí)現(xiàn),為所有設(shè)備建立通用電平)。大多數(shù)現(xiàn)代MCU在較低電壓下運(yùn)行具有更好的能效(盡管這可能會(huì)受到溫度和工作頻率的影響)。例如,意法半導(dǎo)體STM32L476RG的ULPMark性能提高了19%,采用DC-DC轉(zhuǎn)換器將電壓從3 V降至1.8 V。
圖3.ADuCM4050的框圖它集成了一個(gè)1.2 V低壓差穩(wěn)壓器(LDO)和一個(gè)可選的容性降壓轉(zhuǎn)換器。
意法半導(dǎo)體STM32L476RG并不是唯一一款公布結(jié)果受DC-DC轉(zhuǎn)換器影響的器件,盡管在某些器件中,轉(zhuǎn)換器集成在器件本身中,如ADuCM302x和ADuCM4050,無需外部IC即可提高器件的電源性能。然而,使用DC-DC轉(zhuǎn)換器有助于創(chuàng)造公平的競爭環(huán)境,因?yàn)樗试S器件以最佳能效運(yùn)行。例如,僅在3 V下工作的器件將無法從DC-DC轉(zhuǎn)換器中受益,因?yàn)樗呀?jīng)處于最佳(或次優(yōu))效率。另一方面,一個(gè)可以在低至1.8 V電壓下工作但不能利用DC-DC轉(zhuǎn)換器的器件基本上浪費(fèi)了64%的供電能量。此外,對(duì)于優(yōu)先考慮能效的系統(tǒng)設(shè)計(jì)人員來說,如果系統(tǒng)使用3 V電池,則外部DC-DC轉(zhuǎn)換器的額外成本可能并不重要。使用DC-DC轉(zhuǎn)換器時(shí)必須小心,以避免測量轉(zhuǎn)換器而不是MCU的能效。然而,必須考慮到,在實(shí)際應(yīng)用中,DC-DC工作模式可能存在缺點(diǎn),例如從/到活動(dòng)模式/到睡眠模式的轉(zhuǎn)換時(shí)間延長。
使用DC-DC轉(zhuǎn)換器時(shí)的另一個(gè)考慮因素是轉(zhuǎn)換器的類型。一些轉(zhuǎn)換器是基于電感的,它們意味著更大的面積、更高的成本和可能的電磁干擾(EMI)問題。ADuCM4050和ADuCM302x器件使用容性轉(zhuǎn)換器來避免這些問題。有關(guān)更多信息,請(qǐng)參閱用戶指南UG-1091“如何設(shè)置和使用ADuCM3027/ADuCM3029微控制器”。
在分析 ULPMark-CP 結(jié)果甚至數(shù)據(jù)手冊值時(shí),請(qǐng)務(wù)必確認(rèn)器件差異。換句話說,在測量設(shè)備的能效時(shí),漏電流是一個(gè)重要因素,尤其是在睡眠模式下。雖然傳統(tǒng)的性能基準(zhǔn)通常不受影響,但溫度和濕度等各種因素都會(huì)對(duì)器件的漏電流產(chǎn)生一定程度的影響,進(jìn)而影響其ULPMark-CP結(jié)果。在制造業(yè)中,供應(yīng)商的設(shè)備每天都會(huì)有所不同,晶圓與晶圓之間也會(huì)有所不同。即使是完全相同的設(shè)備的能耗也可能有所不同(我們已經(jīng)看到從5%到15%不等的變化,具體取決于進(jìn)行測量的時(shí)間和地點(diǎn))。從根本上說,這意味著給定的ULPMark-CP分?jǐn)?shù)應(yīng)該用作能源效率的指南。例如,ULPMark 結(jié)果為 245 的器件在取自不同晶圓的同一器件上可能介于 233 到 257 之間(假設(shè)增量為 5%)。
認(rèn)證機(jī)制——建立信譽(yù)
為了確保分?jǐn)?shù)的準(zhǔn)確性,愿意認(rèn)證其設(shè)備的供應(yīng)商將電路板和工具與特定于平臺(tái)的配置文件一起發(fā)送到EEMBC技術(shù)中心(ETC)。EEMBC將平臺(tái)配置文件集成到其系統(tǒng)文件(包括工作負(fù)載)中,并在不同的板上多次測量分?jǐn)?shù)。認(rèn)證的分?jǐn)?shù)是所有測量值的平均值。
通過這種方式,EEMBC確保所有分?jǐn)?shù)的條件都相同(相同的工作量,相同的能量監(jiān)控板,相似的溫度等)。
圖4顯示了在ADuCM3029 EZ-Kit上測量ULPMark-CP的連接設(shè)置。
圖4.用于測量分?jǐn)?shù)的板設(shè)置。
為了衡量分?jǐn)?shù),EEMBC提供了EnergyMonitor軟件。通過單擊運(yùn)行ULPBench按鈕,能量監(jiān)控器硬件為ADuCM3029 EZ-Kit板供電,并測量配置文件運(yùn)行的能耗。在執(zhí)行結(jié)束時(shí),軟件計(jì)算分?jǐn)?shù)并將其顯示在屏幕上。該軟件還在歷史記錄窗口中顯示先前周期的平均能耗。?
圖5.能源監(jiān)控軟件 — 圖形用戶界面。
下一步 — MCU 效率分析
EEMBC的最終目標(biāo)是提供多套基準(zhǔn)測試,使用戶能夠全面評(píng)估MCU。除了專注于MCU核心效率的ULPMark-CP之外,新發(fā)布的ULPMark-PeripheralProfile(ULPMark-PP)專注于各種MCU外設(shè),如ADC,PWM,SPI和RTC。在ULPMark-PP中,有源和輕度睡眠電流消耗非常重要,因?yàn)槠骷诠ぷ髫?fù)載中執(zhí)行多個(gè)外設(shè)事務(wù)。
接下來開發(fā)的是IoTMark-BLE和SecureMark套件。前者側(cè)重于測量MCU和無線電通過藍(lán)牙發(fā)送和接收的效率。后者是一個(gè)復(fù)雜的安全套件,將測量為物聯(lián)網(wǎng)設(shè)備實(shí)施各種加密元素的能源和性能開銷。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7552瀏覽量
151417 -
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351184 -
電路板
+關(guān)注
關(guān)注
140文章
4960瀏覽量
97830
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論