Dichtung und Wahrheit Welche Ultra-Low-Power-Mikrocontroller sind energieffizient?

Die Messhardware EEMBC EnergyMonitor 1.0.

Jeder namhafte MCU-Hersteller hat sogenannte Ultra-Low-Power-Controller im Angebot. Die Marketing-Folien versprechen den jeweils niedrigsten Energieverbrauch, wie aber schlagen sich die Controller in der Realität? Wir haben nachgemessen und eine verblüffende Bandbreite der einzelnen Chips erzielt.

Für batteriebetriebene Geräte und dedizierte Controller für das „Internet of Things“ (IoT-Koten) spielt der Energiebedarf eine herausragende Rolle. Wen stört es nicht, sein batteriebetriebenes Gerät nach der Nutzung tagsüber am Abend bereits wieder an die Ladestation anschließen zu müssen.
Die Hersteller von Elektronikkomponenten, wie Mikroprozessoren und Mikrocontroller, setzen zunehmend Halbleitertechnologien und Schaltungstechniken ein, die die Stromaufnahme dieser Komponenten teilweise drastisch reduzieren.
Das 1997 gegründete EEMBC, welches seinen Ursprung im Embedded Microprocessor Benchmark Consortium hat, entwickelt als Branchenverband die sogenannten EEMBC-Benchmarks, die Entwicklern helfen, die Leistungs- und Verbrauchseigenschaften ihrer Systeme kennen zu lernen und den für ihre Anwendung optimalen Prozessor auswählen zu können. Die bekannten Performance-Benchmarks wie Coremark, Multibench und FPMark kommen alle von EEMBC.
EEMBC entwickelte unlängst EnergyMonitor und ULPBench, damit Anwender den Energieverbrauch von Mikrocontrollern genau und systematisch analysieren und vergleichen können. Die Messung des Energieverbrauchs eines Produkts läuft bei einer Betriebsspannung 3 V und einer Stromaufnahme von weniger oder gleich 28 mA.
Je nachdem, ob es sich um einen Endknoten eines IoT-Netzes oder eine andere batteriebetriebenen Anwendung handelt, variieren die Anforderungen bezüglich „ultra-low power“ (ULP) deutlich.
Die niedrigste Stromaufnahme wird bei begrenzten Ressourcen zur Stromversorgung (Energy Harvesting) erwartet. Eine niedrige Stromaufnahme während des Sleep-Modes ist für Systeme von Effekt, die die meiste Zeit in diesem Mode verharren und nur sporadisch zur Abarbeitung einer Task geweckt werden. ULP kann aber auch bedeuten, dass alle zu erledigenden Tasks während einer limitierten Zeit ausgeführt werden, um das System anschließend wieder schlafen zu legen.
In der Realität wird man sicher eine Kombination der angegebenen Modi sowie weitere Maßnahmen  vorfinden, um ULP durchsetzen zu können. Damit ULP über Monate, Jahre und mehr gesichert werden kann, steht der Entwickler vor einer Reihe von Herausforderungen, das Systemverhalten diesbezüglich zu optimieren. Eine zunehmende Anzahl von Mikrocontrollern verspricht ULP-Eigenschaften, die durch Spezifikationen und Datenblätter nicht immer leicht auf die konkrete Aufgabenstellung abzubilden sind.
Der EEMBC ULPBench vereinheitlicht die Aussagen zu ULP auf Basis der jeweiligen Datenblätter und stellt eine Methode zur Verfügung, die Energieeffizienz von Mikrocontrollern zuverlässig und vergleichbar bewertet. Da das Verfahren in einer Arbeitsgruppe festgelegt wurden, in welcher alle relevanten Hersteller vertreten sind, können die in der Folge präsentierten Meßergebnisse von den Herstellern nicht bestritten werden, ohne ihre eigene Arbeit ad absurdum zu führen.

Der ULPBench(mark)

ULPBench folgt einem zweistufigen Ansatz: Erstens gibt es verschiedene Tests zur umfassenden Messung der Mikrocontroller-Effizienz, gekennzeichnet durch gemeinsame Belastungsmuster, die portabel über 8-, 16- und 32-Bit-Mikrocontroller sind, die  Verwendung der Low-Power-Modi des untersuchten Mikrocontrollers, dem Fokus auf reale Anwendungen, die integrierte Hardware-Funktionen verwenden und der Analyse der Effekte von aktiven und Low-Power-Betriebsbedingungen. Zweitens gibt es den sogenannten EEMBC-EnergyMonitor, bestehend aus dem EnergyMonitor-Board und der ULPBench Software. Der ULPBench wurde in der Zeitschrift ELEKTRONIK bereits unter dem Titel „EEMBC enthüllt Benchmark-Ergebnisse von Low-Power-Mikrocontrollern“ vorgestellt.
Die ersten Schritte vor der Messung waren folgende:

  • Bezug der EnergyMonitor Hardware vom EEMBC
  • Registrierung des EnergieMonitors bei EMBCC
  • Akzeptieren der Lizenzbedingungen, Bestätigung der Registrierung durch erhaltene eMail
  • Download der ULPBench Software nach Abschluss der Registrierung (ulp_1.1.11.tgz)
  • Installation der Software
  • Verbinden des USB-Anschlusses des EnergyMonitor Boards (Bild) mit einem USB-Port des PCs. Die USB-Treiber müssen manuell installiert werden, da die USB-Treiber nicht erkannt werden. Die passenden Treiber befinden sich im Verzeichnis /bin/USB_CDC.
  • Verbinden der Anschlüsse +3 V (UCC) und Masse (GND) mit dem Testboard (DUT).

Die Funktionalität des EnergyMonitors erwartet, dass auf dem zu testenden Mikrocontroller (DUT) die ULPBench-Core-Profil-Software läuft. Die Quelltexte der ULPBench-CoreProfile Software sind im Lieferumfang von EEMBC (Verzeichnisse: benchmarks, workloads, TES, platforms) enthalten.
Ist das Target (DUT) eine der standardmäßig unterstützten Plattformen, dann kann die Build-Infrastruktur aus dem Platform-Verzeichnis verwendet werden. Anderenfalls muss eine Portierung auf das betreffende Target unter Verwendung des Template-Verzeichnisses erfolgen. Die EEMBC-Community ist dankbar für das Bereitstellen dieser Portierungen.
Ist die ULPBench-Core-Profile-Software für das betreffende Target gebildet und auf dem Target installiert, dann kann das Target mit UCC und GND des EnergyMonitors verbunden und die EnergyMonitor-Software (bin/EnergyMonitor.exe) zur Durchführung des Benchmarks gestartet werden.