ioT-Mikrocontroller beurteilen EEMBC-Benchmarks in der Praxis

Leistungsfähigkeit und Funktion des neuen IoT-Benchmarks
Leistungsfähigkeit und Funktion des neuen IoT-Benchmarks

Mit dem Benchmark IoTMark BLE hat das Embedded Microprocessor Benchmark Consortium (EEMBC) die Testprozedur des ULPMark scheinbar nur um die Bluetooth-Schnittstelle erweitert. Vor dem Start des Elektronik-Projektes zum neuen IoTMark BLE lohnt sich jedoch ein genauer Blick auf den EEMBC-Benchmark.

Das Embedded Microprocessor Benchmark Consortium (EEMBC) [1] ist eine Non-Profit-Organisation, in der alle maßgeblichen Mikrocontrollerhersteller – ARM, AMD, Intel, NXP, STMicroelectronics, Silicon Labs, usw. – vertreten sind und die das EEMBC aktiv unterstützen. Die Ergebnisse der EEMBC-Benchmarks sind deshalb als anerkannt zu betrachten und können als aussagekräftiges Marketing-Argument geführt werden. Denn keiner der teilnehmenden Hersteller kann sich bei einem eher schlechten Ergebnis mit fadenscheinigen Argumenten herausreden, wie beispielsweise, dass die Testbedingungen für ihre Mikrocontroller nicht geeignet seien oder Ähnlichem.

Gleichwohl können die Tests nur Teilfunktionsbereiche eines Mikrocontrollers erfassen, und möglicherweise sind für bestimmte Applikationen ganz andere Qualitäten gefordert, als jene, die der Benchmark berücksichtigt. Das ändert aber nichts daran, dass die Ergebnisse dem Entwickler eine wertvolle Orientierungshilfe bieten, weil er nicht mehr allein auf die Angaben in den jeweiligen Datenblättern vertrauen muss, die sich zudem selten direkt miteinander vergleichen lassen.

Vom ULPBench zum ULPMark

Die erste bekannte Benchmark Suite des EEMBC stellt ULPBench (Ultra Low Power Bench) dar, die aus portabler Software zur Messung der Mikro-controllereffizienz und dem EEMBC Energy Monitor in Hardware besteht. Während der Messungen muss die ULPBench-Software auf dem zu testenden Mikrocontrollermodul mit einer programmierten Anpassung an die individuelle Ausstattung des verwendeten Mikrocontrollers laufen. Bei dieser ursprünglichen Benchmark-Version (ULPBench) wird lediglich der Rechenkern mit dem Speichersystem ohne Peripherie getestet,

was demnach für Embedded-Anwendungen nicht besonders aussagekräftig ist.

Deshalb wurde ULPBench in ULPMark-CP (Core Profile) umbenannt [2] und um den Test von Peripherieeinheiten erweitert, was damit zur Version ULPMark-PP (Peripheral Profile) führt. Hierfür ist eine andere Mess-Hardware (Energy Monitor) als für ULPBench notwendig. Bei ULP-Bench [3] wird eine kleine Platine von Texas Instruments (Bild 1) eingesetzt, die für die Bedienung und Visualisierung per USB mit einem PC zu verbinden ist. Das zu testende Mikrocontrollermodul wird dann an UB (3 V, max. 20 mA) und Masse der Energy-Monitor-Platine angeschlossen.

Der Benchmark ULPMark setzt hingegen ein spezielles Modul von ST­Microelectronics voraus, den Energy Monitor V 2.0, X-Nucleo-LPM01A mit STM32L496 (Bild 2), das über ein LCD für die Anzeige der Ergebnisse verfügt. Hier ist also nicht zwingend ein PC notwendig, wenn lediglich die Strommessung ausgeführt werden soll. Die kompletten Ergebnisse lassen sich auf einem PC natürlich übersichtlicher und anschaulicher darstellen – etwa der Energiebedarf als Grafik, was durch die EEMBC-Software ermöglicht wird. Der PC ist auch hier über den USB mit der Energy-Monitor-Platine, die auch als Power Shield bezeichnet wird, zu verbinden.

Das ULPMark-Peripheral Profile

ULPMark-Peripheral Profile ist sehr umfangreich, was den Einstieg nicht gerade einfach macht. Eine zusammenhängende Dokumentation für die konkrete Umsetzung sucht der Entwickler vergeblich, weshalb das Studium verschiedener README.md-Dateien und Online-Ressourcen von EEMBC unverzichtbar ist. Insbesondere der Setup mit dem Scheduler verlangt einen beträchtlichen Zeitaufwand, speziell wenn die genaue Funktionsweise nachvollzogen werden soll, wie es für das Verständnis der Testprozedur notwendig ist.

Unterschiedliche Mikrocontroller verfügen auch über unterschiedliche Peripherie-Einheiten, weshalb man sich für Vergleichsmessungen auf eine gemeinsame Basis einigen muss, die gewissermaßen bei allen zu testenden Mikrocontrollern implementiert ist. ULPMark-PP (Version 2.0) berücksichtigt deshalb − quasi als kleinster gemeinsamer Nenner − die folgende Peripherie:

  • PWM: Digitaler PWM-Ausgang (Pulsweiten Modulation)
  • ADC: A/D-Umsetzer-Eingang (Analog Digital Conversion)
  • SPI: Digitale serielle Schnittstelle (Serial Peripheral Interface)
  • RTC: Echtzeituhr (Real Time Clock)

Der Test wird in zehn Schritten (Slots) mit einem Abstand von jeweils einer Sekunde absolviert und dauert insgesamt ca. 70 s. Ein Slot repräsentiert eine bestimmte Aufgabe, an der mehrere Peripherieeinheiten beteiligt sind. Beispielsweise: Bei aktiver RTC erfasst der A/D-Umsetzer Werte mit einer Abtastrate von 1 kHz und gibt dabei 20 PWM-Impulse mit einer Frequenz von 32 kHz aus, was dem Slot 1 entspricht. Nach jedem Slot, ausgelöst durch ein Triggersignal der RTC, wird die CPU in einen Schlafmodus versetzt, während die Peripherieblöcke ihre programmierte Aufgabe verrichten. Das Ergebnis des Tests ist ein Total Score, was einer gewichteten Kombination der einzelnen Ergebnisse aus den zehn Schritten entspricht.

Für die Durchführung des ULPMark-PP ist einiges an Software und Hardware notwendig. EEMBC bietet verschiedene kostenpflichtige Lizenzmodelle für die Software an. Die Hardware kann auch einzeln bezogen werden. Die Basis für die Firmware des zu testenden Mikrocontrollers bildet das EEMBC IoTConnect Framework, welches eine bestimmte Hardware voraussetzt, die für verschiedene Benchmarks (ULP-Mark, SecureMark-TLS, IoTMark-BLE) einsetzbar ist und sich prinzipiell auf fast jeden aktuellen Mikrocontroller portieren lässt.

Portieren bedeutet, dass eine Software-technische Anpassung der Controller-spezifischen Komponenten (PWM, ADC, SPI, RTC) durchzuführen ist, was eine genaue Kenntnis der Funktionsweise und eine Programmierung der Einheiten auf Registerebene erfordert, um somit die notwendige Firmware herzustellen.