ARM TechCon 2014 EEMBC enthüllt Benchmark-Ergebnisse von Low-Power-Mikrocontrollern

EEMBC enthüllte die Ergebnisse des ULPBench genannten Energieverbrauchs-Benchmark für diverse 8-, 16- und 32-bit-Ultra-Low-Power-MCUs. Das Ergebnis: Ein Controller arbeitet deutlich energieeffzienter als die Konkurrenz.

Der ULPBench ist ein von EEMBC in einer Arbeitsgruppe entwickelter Benchmark, der unter vorgegeben Bedingungen mittels einer eigens entwickelten Schaltung den Energieverbrauch von Mikrocontrollern misst. Details zum Benchmark finden sich auf der EEMBC-Seite. In der Fachzeitschrift Elektronik wurde das Messverfahren zudem bereits im Detail erläutert.

In einer Session auf der ARM TechCon publizierte EEMBC erstmals die zertifizierten, d.h. intern überprüften, Ergebnisse von fünf Mikrocontrollern unterschiedlichster Architekturen und Hersteller, die allesamt als Ultra-Low-Power-MCUs u.a. für batteriebetriebene Anwendungen vermarktet werden:

  • Atmel ATxmega 128A1 mit proprietärer 8-bit-CPU AVR8 und 128 KB Flash, Taktfrequenz 32 MHz
  • Microchip PIC24FJ128GA010 mit proprietärer 16-bit-CPU und 128 KB Flash, Taktfrequenz 32 MHz
  • Renesas RL78/G14 mit proprietärer 8-bit-CPU und bis zu 512 KB Flash, Taktfrequenz 32 MHz
  • ST Microelectronics STM32L152ZDT6 mit 32-bit-CPU ARM-Cortex-M3, 384 KB Flash, Taktfrequenz 32 MHz
  • TI MSP430FR5969 mit proprietärer 16-bit-CPU, 64 KB FRAM, Taktfrequenz 8 MHz (die Angabe MSP430FG auf der EEMBC-Folie ist falsch)

Schaut man sich die Rechenleistungen im Bild an, ist zwischen weniger als 0,5 CoreMark/MHz bis 3 CoreMark/MHz alles vertreten.

Das interessante Ergebnis ist jedoch, dass der MSP430 deutlich weniger Energie als die übrigen MCUs benötigt, obwohl er sowohl seitens der CPU-Architektur als auch seitens der Taktfrequenz eher schwach auf der Brust ist, also deutlich länger benötigt, den Workload abzuarbeiten als die Konkurrenten (bis auf den 8-bit-AVR, der noch etwas schwächer ist).

Da beim ULPBench der Code aus dem nichtflüchtigen Speicher ausgeführt wird, spielt das energieeffiziente FRAM hier seine Vorteile gegenüber dem konventionellen Flash voll aus. Offensichtlich hat es TI aber auch dank seines 130-nm-Low-Leakage-Fertigungs-Prozesses geschafft, im Sleep-Mode den Energieverbrauch so zu drücken, dass die MCU auf den beeindruckenden Wert von 119,2 sogenannter ULPMarks kommt.

Der ULPMark-Wert wird mittels der Formel ULPMark = 1000/(Mittelwert der pro Sekunde verbrauchten Energie bei 10 ULPBench-Durchläufen) ermittelt, ein höherer Wert ist somit besser.

Mit einem riesigen Abstand zum MSP430 kommt der ATxmega mit 80 ULPMarks (der MSP430 ist somit 50 % besser !) auf Platz 2, danach der 32-bit-STM32, der davon profitiert, dass der Cortex-M3 den Workload in Rekordzeit abarbeitet und schnell in den Sleep-Modus überführt werden kann.

Es folgt recht dicht Microchip mit 68,76 ULPMarks, der RL78/G14 wird nach der EEMBC-Auswertung Letzter, benötigt für den ULPBench also am meisten Energie – laut der von EEMBC präsentierten Folie fast doppelt soviel wie der MSP430.

Da die Hersteller die Messungen laut EEMBC selbst vorgenommen haben (EEMBC hat sie dann nur überprüft und zertifiziert), ist davon auszugehen, dass alle Optimierungen z.B. bzgl. der gewählten Sleep-Modi ausgeschöpft wurden. Alle Hersteller haben übrigens in der Arbeitsgruppe, die den Benchmark entwickelt hat, mitgearbeitet, so dass es an dem Vorgehen bei der Messung ebenfalls keinen Zweifel geben dürfte. Die Mitglieder der Arbeitsgruppe waren Analog Devices, ARM, Atmel, Cypress, Freescale, Microchip, Renesas, Silicon Labs, Spansion/Fujitsu, STMicro und TI.

Bemerkenswert ist der große Abstand von TIs MSP430 mit FRAM zur restlichen Konkurrenz. Allerdings gibt es nur Derivate mit 32, 48 und 64 KB FRAM, was unterhalb der Flash-Konkurrenz liegt und für manche Anwendung zu klein sein dürfte.

Man erkennt auch gut, dass es keine Relation zwischen Rechenleistung und Energieverbrauch gibt – vermutlich ist die Fertigung hier ganz entscheidend, da von ihr die Leckströme wesentlich abhängen, ebenso wie die Aufwachzeiten vom Sleep- in den aktiven Modus und umgedreht.