Workshop auf der embedded world ULP-Aspekte anschaulich erklärt

Wenn ein Entwickler eine möglichst lange Batterielaufzeit erreichen soll, muss er sehr viele Aspekte berücksichtigen. Angaben im Datenblatt des Mikrocontrollers sind dabei mit großer Vorsicht zu genießen - die wirklich wichtigen Fakten vermittelt ein Intensiv-Workshop zum Thema »Ultra Low Power System Design« im Rahmen der embedded world Conference.

Dieter ist ein sehr gewissenhafter Ingenieur. Sein Chef hatte also volles Vertrauen, dass seine Entwicklung eines Ultra-Low-Power-Geräts die geforderte Batterielaufzeit von zwölf Jahren noch übertrifft. Sechs Jahre später trafen allerdings bereits die ersten Kundenbeschwerden über leere Batterien ein - was war schiefgelaufen bei der Entwicklung?

Dieter hatte sich gewissenhaft an die Spezifikationen im Datenblatt gehalten, dort war eine aktive Stromaufnahme von 1000 µA angegeben. Allerdings fehlte im Datenblatt die Angabe der genauen Arbeitslast, die der Mikrocontroller während dieser Messung zu leisten hatte. Unglücklicherweise wies Dieters Entwicklung eine rechenintensivere Arbeitslast auf als die im Datenblatt verwendete Spezifikation, das Resultat war ein deutlich höherer Stromverbrauch.

Alle »Dieter« unter den Lesern werden wahrscheinlich den überaus vereinfachten und überzeichneten Charakter dieser Geschichte erkennen, aber der wesentliche Punkt ist: Auf die Zahlen im Datenblatt ist kein Verlass. Auch wenn der Entwickler die Spezifikationen so extrapolieren kann, dass sie der Charakteristik des eigenen Projekts weitgehend gerecht werden, wird er dennoch niemals 100% sicher sein, bevor das Produkt fertig ist. Und die Problematik verstärkt sich noch, da die Anbieter von Mikrocontrollern äußerst selten - wenn überhaupt - Spezifikationen herausgeben, die bei den exakt gleichen Belastungen auf Systemebene gewonnen wurden.

Also macht die Varianz der Spezifikationsdetails den Vergleich sogar ganz am Anfang des Systementwurfs, wenn der Entwickler den passenden Mikrocontroller für die Aufgabe auswählt, nahezu unmöglich. Dieses Thema schreit geradezu nach einer industrieweiten Standardisierung der Messverfahren für Leistung- und Energieaufnahme und stellt auch die Problematik der Datenblattwerte im Vergleich mit dem Verhalten in realen Projekten klar heraus. Diese beiden Themen (und viele mehr) sind Teil des kommenden »Ultra Low Power System Design Workshops«, der im Rahmen der embedded world Conference 2013 über die Bühne gehen wird.

MCU-Auslastung analysieren

Wer mit seiner Produktentwicklung eine möglichst lange Batterienutzungsdauer erreichen will, muss die Arbeitslast sorgfältig analysieren und vollständig verstehen, welche Funktionen und Algorithmen den Energieverbrauch dominieren. Darüber hinaus gilt es, in der Entwicklung die Arbeitsperioden (und sogar noch wichtiger die inaktiven Perioden) zu berücksichtigen - nicht nur aus der Perspektive der Lastzyklen, sondern auch mit besonderer Beachtung der Latenz, die mit der Zeit für das Hochfahren verbunden ist.

Letztere wirkt sich übrigens sowohl auf die Leistung als auch auf die Energieverluste aus. In dem Bestreben, industrieweite Standard-Messgrößen für die Performance von Mikrocontrollern und deren Stromaufnahme zu etablieren, evaluierte das EEMBC-Konsortium mehr als 200 Anwendungen mit kleinen Batteriekapazitäten und stellte fest, dass sich die aktiven Betriebsmodi erheblich unterscheiden.

Auch die Nutzung der Mikrocontroller-Peripherie variiert in diesen Anwendungen deutlich, obwohl die Mehrheit der Applikationen einen Timer und viele ein Display verwenden (Bild 1). »CoreMark« ist mittlerweile zwar ein sehr beliebter Benchmark, um die Leistung eines Mikrocontrollers zu messen und die typische Arbeitslast einer Applikation abzuschätzen, doch dominiert bei diesem Benchmark vollständig die Energie, die ein Ultra-Low-Power-Baustein (ULP) während des aktiven Betriebs aufnimmt.

Um dies in einen Zusammenhang zu setzen: Die Energie, die 16-MHz-Mikrocontroller verbrauchen, um CoreMark mit einer Rate von einer Iteration pro Sekunde laufen zu lassen, liegt in der gleichen Größenordnung wie simple A/D-Wandlungen mit einer moderaten Rate von 4 kHz, aber zwei Größenordnungen über der Energie, die für das Update des Echtzeit-Kalenders nötig ist.

Tabelle 1 vergleicht die Batterielaufzeiten für verschiedene Funktionen, die auf drei unterschiedlichen Mikrocontrollern laufen. Sie zeigt, dass die Echtzeit-Kalenderfunktion erheblich weniger Energie verbraucht als die CoreMark-Arbeitslast und die A/D-Wandlung. Aber sie zeigt auch, dass die Batterielaufzeit in Abhängigkeit vom verwendeten Baustein deutlich variiert, was den Auswahlvorgang beim Systementwurf weiter kompliziert.

Baustein-Typ
CoreMark bei einer Iteration pro Sekunde
4-kHz-A/D-Wandler
Echtzeit-Kalender
16 Bit
34,2 Stunden
61,2 Stunden
29,5 Jahre
32 Bit58,9 Stunden42,5 Stunden11,2 Jahre
32 Bit
46,6 Stunden
21,1 Stunden
8,7 Jahre
Tabelle 1: Batterielaufzeiten für verschiedene Funktionen (CR2032-230 mAh / 90% nutzbar)

Um dieses Thema umfassend abzudecken, entwickelt EEMC einen neuen Industriestandard für Ultra-Low-Power-Anwendungen, der diese Faktoren berücksichtigen wird, um für ein angemessen ausbalanciertes Verhalten zwischen Laufzeit- und Standby-Modus zu sorgen. Um diesen Standard - oder vielleicht sogar noch wichtiger, die eigene Anwendung - zu entwickeln, gilt es, die Energie-Messprozedur für Ultra-Low-Power-Bauteile sorgfältig zu erstellen.

Die definierte Arbeitslast muss für die beabsichtigte Anwendung relevant sein, und die Messung der Energie muss mit einer ausreichend hohen Abtastfrequenz erfolgen, um den Vergleich von Prozessor-Leistungsmerkmalen wie Low-Power-Modi zu ermöglichen. Ein wichtiger Punkt für ULP-Anwendungen ist, dass die Arbeitslast nicht nur die auszuführenden Aufgaben umfasst, sondern auch, wie oft diese ausgeführt werden (abhängig von den Lastzyklen).

ULP-Anwendungen verbringen erhebliche Anteile der Laufzeit in unterschiedlichen Low-Power-Modi, und die Messmethode muss nicht nur für diese verschiedenen Modi geeignet sein, sondern auch für die Übergänge zwischen ihnen. Idealerweise sollten diese Energiemessungen dem Entwickler zumindest erlauben, die Leistungs- und Energie-»Hotspots« im Anwendungsprogramm zu visualisieren und anschließend zu optimieren (Bild 2).

»Intelligente« Peripherie

Ein weiteres interessantes Thema auf diesem Gebiet der Ultra-Low-Power-Entwicklung sind die Möglichkeiten »intelligenter« Peripherie-blöcke, die CPU zu entlasten. Hier ist das Ziel, solche Blöcke ohne Beteiligung des Haupt-Prozessorcores arbeiten zu lassen und diesen erst zu wecken, wenn seine Dienste benötigt werden. So können »intelligente« Peripherieblöcke beispielsweise die Daten aus einer A/D-Wandlung in ihren Pufferspeichern sammeln und den CPU-Kern zyklisch nur dann aufwecken, wenn dieser Puffer voll ist. Oder eine »smarte« CAN-Peripherie kann die CPU nur dann wecken, wenn eine Nachricht eintrifft, welche die CPU wirklich bearbeiten muss.

So könnten in einem System, in dem sich mehrere Sensoren und Prozessoren die Arbeit teilen, möglicherweise viele Nachrichten über den CAN-Bus laufen - ein spezifischer Controller müsste aber vielleicht nur die Nachrichten eines bestimmten Sensors analysieren, die mittels einer spezifischen CAN-ID erkennbar sind. Ohne »intelligente« Peripherie ist die CPU in so einer Anwendung immer aktiv, um den CAN-Busverkehr zu verarbeiten, während ein »smarter« CAN-Peripherieblock dafür sorgt, dass die CPU die meiste Zeit im Schlaf- oder einem anderen Low-Power-Modus bleiben kann.

Alle diese Themen werden auf dem kommenden »Ultra Low Power System Design Workshop« behandelt, den die DESIGN&ELEKTRONIK anlässlich der embedded world Conference 2013 am 27. Februar in Nürnberg organisiert (Class 12 im Konferenzprogramm unter www.embedded-world.eu). Mit einer Kombination aus Vorträgen und Hands-on-Elementen wird der Workshop die Teilnehmer auch zu Themen schulen wie Optimieren von Codesegmenten für minimalen Energieverbrauch, Durchblick im überbordenden Dschungel von MCU-Low-Power-Modi oder Features, die verschiedene Architekturen für die Optimierung der Stromaufnahme bieten.

Eines ist klar: Für die Entwickler vieler Embedded Systeme ist das Design mit Low-Power- und Ultra-Low-Power-Mikrocontrollern heute ein sehr wichtiges Thema.

Über den Autor:

Markus Levy ist Präsident des EEMBC-Konsortiums und der Multicore Association.