Strategien für die Entwicklung effizienter Ultra-Low-Power-Geräte

| Autor / Redakteur: Markus Levy und Monica Redon * / Sebastian Gerstl

Der ULPMark-CP arbeitet mit einem Zyklus von einer Sekunde. In diesem Zeitraum wird das Gerät aufgeweckt, führt eine feste Anzahl an Aufgaben durch und wird anschließend zurück in den Sleep-Modus versetzt.
Der ULPMark-CP arbeitet mit einem Zyklus von einer Sekunde. In diesem Zeitraum wird das Gerät aufgeweckt, führt eine feste Anzahl an Aufgaben durch und wird anschließend zurück in den Sleep-Modus versetzt. (Bild: Markus Levy / EEMBC)

Die Energie pro Zyklus in Abhängigkeit des Arbeitszyklus D (als Anteil der Zeitspanne im Schlafmodus im Verhältnis zur Gesamtzeit) wird anhand einer vereinfachten Gleichung definiert. Diese geht davon aus, dass ein Wechsel zwischen dem On- und Off-Zustand jeweils nur wenig Energie verbraucht. In einer Formel ausgedrückt:

Energie/Zyklus = V*t*[(Iactive- Isleep)*D+ Ioff ];

Die Abnahme wird hierbei durch Ion definiert, denn Ioff ist viel niedriger als Ion, und der y-Achsenabschnitt besteht lediglich aus Ioff. Anhand dieser Gleichung lässt sich der Arbeitszyklus verdeutlichen, bei dem die Stromaufnahme im aktiven Modus eine wichtigere Rolle spielt als im Schlafmodus.

Taugliche ULP-Testplattformen

Wie bereits erwähnt, werden wir die Ultra-Low-Power-Werte (Energie) zweier Mikrocontroller von Analog Devices vergleichen – ADUCM4050 und ADUCM302x. In der (ULPMark-Ergebnistabelle) erzielen diese beiden Mikrocontroller eine Punktzahl von 203 bzw. 245,5. Dieser Benchmark bezieht sich aber nur auf den MCU-Core (daher die Bezeichnung CoreProfile). Wie erklärt sich der Unterschied von 18%?

Der ADUCM4050 basiert auf einem Core vom Typ ARM Cortex-M4F, der die ARMv7E-M Architektur implementiert; der ADUCM302x auf einem ARM Cortex-M3 mit ARMv7-M Architektur. Beide Cores haben eine dreistufige Pipeline mit Branch Speculation sowie eine ähnliche Befehlssatz-Architektur, doch nur der M4F unterstützt DSP- und Gleitkomma-Anweisungen. Da das ULPMark-CoreProfile keine DSP-Anweisungen beinhaltet, bedeutet eine Gleitkomma-Einheit (FPU) für den Cortex-M4F auch keinen Vorteil.

Für die Benchmark-Analyse lief der ADUCM4050 bei 52MHz und der ADUCM302x bei 26MHz. Ersterer benötigt etwa 11.284 Zyklen für die Verarbeitung der ULPMark-Workload; der ADUCM302x benötigt dafür 10.920 Zyklen. Demnach befindet sich der ADUCM4050 während des 1-Sekunden-Arbeitszyklus für 217µs im Aktivmodus, der ADUCM302x dagegen für 420µs. Der ADuCM4050 beansprucht aufgrund der verwendeten Frequenz (52MHz im Vergleich zu 26MHz) etwas mehr Zyklen als der ADuCM3029, und er erfordert einen Wartezyklus im Flash; der ADuCM3029 hat keine Wartezyklen im Flash. Da der ADuCM4050 einen Cache-Speicher besitzt, hat es keine nennenswerten Auswirkungen, wenn im Flash ein Wartezyklus auftritt, denn viele Befehle werden aus dem Cache-Speicher heraus ausgeführt. Der Cache-Zugriff ist mit voller Geschwindigkeit (52MHz) möglich; ein zusätzlicher Wartezyklus ist nicht erforderlich. Was die Ausführungszeit angeht, so verarbeitet der ADuCM4050 die Workload erwartungsgemäß schneller als der ADuCM3029, da er mit doppelter Frequenz läuft.

Die folgende Tabelle zeigt die Zyklen für die Verarbeitung der ULPMark-CoreProfile Workload auf gängigen ARM-Cores. Die Zyklenanzahl ist eine Schätzung, da teils compilerabhängig.

ARM-Core Schätzung: Zyklen zur Verarbeitung von ULPMark, Aktivmodus
Cortex M0 15.174*
Cortex M0+ 14.253
Cortex M3 10.920
Cortex M4 11.852
Cortex M4F

11.284

*Schätzung basierend auf Werten für M0+ und M3.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben
Ne DIL-PCB als Titelfoto zeugt von ungeheurer Innovationskraft!  lesen
posted am 21.08.2017 um 12:16 von roby111


Mitdiskutieren
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44840971 / Energieeffizienz)