ARM vermarktet ihre Cortex-M4-IP als Basis für stromsparende Mikrocontroller und „efficient digital signal control“. Wie viel Energie entsprechende Chips dann tatsächlich verbrauchen, hängt von vielen Faktoren ab, allen voran der Halbleiter-Technologie des jeweiligen Herstellers. Jeder IDM (Integrated Device Manufacturer) fügt eigene Low-Power-Technologien und Methodologien zur Cortex-M4-IP hinzu. In Atmels Fall ist das die Low-Power-Lösung Pico-Power.

Auf einen Blick

Besser schlafen: Der Energiebedarf einer MCU hängt nicht nur von statischen Leckströmen und dynamischen Verlusten ab, sondern von der kompletten Architektur des Bausteins. Autonom agierende und kommunizierende Peripherie wie in Atmels SAM4L hält den Core und den Speicher länger im Schlafmodus als der klassische Aufbau mit Interrup-Service-Routinen.

Wenn eine MCU stromsparend sein soll, muss dies für verschiedenste Anwendungsfälle gelten. Dabei ist der Strombedarf gar nicht so einfach zu messen, da die gesamte Architektur den Verbrauch beeinflusst. Ein entsprechendes MCU-Benchmarking hängt vor allem von zwei Betriebszuständen ab: statisch und dynamisch. Auf den dynamischen Verbrauch wirkt sich die Betriebsfrequenz aus, da CMOS-Schaltkreise primär beim Logikübergang Energie verbrauchen. Ein Absenken der Frequenz verringert zwar die Übergänge pro Sekunde, nicht aber die Anzahl der nötigen Schaltvorgänge, um eine Aufgabe zu erfüllen.

Spannende Sparmaßnahmen

Die Spannung hat exponentiellen Einfluss auf den Stromverbrauch. Eine geringere Versorgungsspannung ermöglicht eine höhere Energieeinsparung als das Skalieren der Frequenz allein. Der Betrieb bei niedriger Versorgungsspannung ist allerdings nicht so einfach wie das Absenken der Taktfrequenz. Dies muss in der Prozess-/Fertigungsebene mit eingebunden werden.

Statische Leistung verbrauchen CMOS-Gatter im Ruhezustand. Theoretisch sollte dieser Wert Null sein, praktisch ist es unmöglich, mit modernen Prozesstechniken einen Transistor ohne Leckströme zu konstruieren. Generell gilt: je kleiner die Geometrie, desto größer der Leckstrom. Je mehr Transistoren also in einen IC integriert werden, desto höher ist der potenzielle statische Leckstrom. IDMs setzen daher darauf, Transistoren mit geringen Leckströmen zu entwickeln. Atmel hat mit seinem proprietären Pico-Power-Prozess den Leckstrom nahe Null verlagert, ohne Leistungseinbußen hinnehmen zu müssen.

Sparsamer Speicher

Die schnellsten und am häufigsten verwendeten Schalttransistoren in einer MCU finden sich im RAM eines Cores und im Core selbst. Folglich wird jedes Mal, wenn der Core und sein Subsystem aktiv sind, der größte Anteil der Systemleistung verbraucht. Folglich sind heute Sleep-Modi bei MCUs unabdingbar. ARM hat im Cortex-M4 zwei Sleep-Modi vorgesehen.

Eine sehr effiziente ARM-Cortex-MCU ist Atmels SAM4L mit bis zu 28 Coremark pro Milliampere. Der Baustein schläft lang, erwacht schnell und hat sehr geringe Verluste.

Eine sehr effiziente ARM-Cortex-MCU ist Atmels SAM4L mit bis zu 28 Coremark pro Milliampere. Der Baustein schläft lang, erwacht schnell und hat sehr geringe Verluste.Atmel

IDMs suchen sich aus, wie sie ihre eigenen Sleep-Modi implementieren, aber sie erfordern alle das Anhalten des Cores und das Speichern systemkritischer Informationen in Registern und im RAM, um sie beim Aufwachen aus dem Sleep-Modus wieder einzusetzen. Das alles braucht Zeit und Energie und beeinträchtigt das Ansprechverhalten. Low Power geht also weit über die Transistor-Schaltcharakteristik hinaus und ist das direkte Ergebnis der gesamten Systemarchitektur.

Auch die Peripherie berücksichtigen

Nur wenn ein IDM alle Aspekte des Stromverbrauchs adressiert, kann sein MCU-Design einen echten stromsparenden Betrieb gewährleisten. Ein Halbleiter-Herstellungsprozess mit geringen Leckströmen wird zwar zu einer niedrigeren Systemstromaufnahme führen als ein High-Performance-Prozess. Wenn das Systemdesign aber vollständig Core-zentrisch ist, können schon banale Aufgaben den Cores aktivieren.

Bei einem hochleistungsfähigen Core wie dem Cortex-M4 braucht die Aktivierung des Cores und seines gesamten Subsystems aus dem Deep Sleep – nur zur Ausführung einer Interrupt-Service-Routine – wesentlich mehr Zeit als die eigentliche Verarbeitung der Aufgabe. Das verschwendet wertvolle Systemleistung; der Großteil der Energie wird nur zum Aktivieren des Systems aus dem Sleep-Modus verbraucht.

In einem ganzheitlichen Ansatz gilt es also, sowohl Low-Leakage-Transistoren im Core und der Peripherie einzusetzen, als auch die Verarbeitungsdauer zu senken. Wie konsequent sie hier vorgehen, unterscheidet die IDMs im Cortex-M4-Bereich voneinander.

Autonome Kommunikation

Atmel implementiert dazu noch Funktionen, die unabhängig vom Core arbeiten können. Intelligente, autonome Peripherie kann Ein- und Ausgänge unabhängig von der CPU verarbeiten. Mithilfe einer eigenen Taktquelle erlaubt dieser Ansatz den längeren Verbleib des Cores im Sleep-Modus. Die Peripherie kann Daten über gemeinsame Busse austauschen und intelligente Entscheidungen auf Basis externer Stimuli treffen, ohne den Core zu aktivieren.

Das Blockdiagramm des SAM4L-Mikrocontrollers zeigt, dass Atmel speziell fürs Stromsparen eigene Funktionsblöcke integriert hat.

Das Blockdiagramm des SAM4L-Mikrocontrollers zeigt, dass Atmel speziell fürs Stromsparen eigene Funktionsblöcke integriert hat.Atmel

Das Peripheral-Event-System in Atmels SAM4L MCUs ist unabhängig von der CPU und ihrem Taktsystem. Mit eigener Zugriffssteuerung auf den Echtzeit-Takt kann das Peripheral-Event-System weiter arbeiten, wenn die CPU und der Systemtakt deaktiviert sind.

Beispiel-Baustein

Bei der SAM4L-MCU erreicht der Baustein mithilfe von Pico-Power einen Stromverbrauch im Aktiv-Modus von nur 90 μA/MHz. Dieser Wert wird zum einen durch einen stromsparenden Buck-Regler erzielt, der für die Mehrzahl der häufig schaltenden Gatter die Spannung herunterstuft. Zum anderen durch einen ganzheitlichen Low-Power-Design-Ansatz, der auch den Fertigungsprozess mit einbezieht und einen Betrieb bis hinab auf 1,62 V ermöglicht. Der SAM4L verbraucht nur 1,5 μA Strom im Wait-Modus, bei vollem RAM-Erhalt, und erwacht in weniger als 1,5 μs. Im Sleep-Modus verbraucht der Baustein nur 0,5 μA Strom mit aktiviertem Echtzeit-Takt und mit Wake-up-Zeiten von weniger als 2 μs.