Multicore-Mikrocontroller-Wahl, Teil 1

Anhand der Projekt-Ressourcen den richtigen Multicore-MCU wählen

| Autor / Redakteur: Ingo Pohle und Marcus Gößler * / Sebastian Gerstl

Welchen Energieverbrauch darf mein System maximal haben? Für welche Funktionen brauche ich wieviel Rechenleistung? Und wie viele Anschluss-Pins muss mein Mikrocontroller aufbieten können, um alle Funktionen effizient umsetzen zu können? Eine gründliche Ressourcenplanung ist essentiell für die Wahl des richtigen Mikrocontroller-Bausteins.
Welchen Energieverbrauch darf mein System maximal haben? Für welche Funktionen brauche ich wieviel Rechenleistung? Und wie viele Anschluss-Pins muss mein Mikrocontroller aufbieten können, um alle Funktionen effizient umsetzen zu können? Eine gründliche Ressourcenplanung ist essentiell für die Wahl des richtigen Mikrocontroller-Bausteins. (Bild: gemeinfrei / CC0)

Mikrocontroller-gesteuerte Systeme sollen Jahr für Jahr immer mehr Komfort, erweiterte Funktionalität und höhere Sicherheit für den Anwender bringen. Die Rechenkerne, die die erweiterten und neuen Aufgaben bearbeiten, benötigen dafür auch mehr Rechenleistung. Diese dreiteilige Serie hilft Entwicklern, den richtigen Multicore-MCU für ihre Anforderungen zu finden.

Bild 1: Erfolgreiche Vorgehensweise bei der Multicore-Mikrocontroller-Auswahl.
Bild 1: Erfolgreiche Vorgehensweise bei der Multicore-Mikrocontroller-Auswahl. (Bild: MicroConsult)

Um erfolgreich den richtigen Multicore-Mikrocontroller für sein Projekt zu finden, sollten einige grundsätzliche Schritte beachtet werden. Zunächst gilt es, eine Anforderungsanalyse für Software und Hardware durchzuführen und die Ergebnisse zu dokumentieren. Im Anschluss folgt eine Bewertung der aufgenommenen Anforderungen nach der Wichtigkeit für das Projekt (Siehe Bild 2).

Bild 2: Zuweisung der Anforderungen zu Prioritätsklassen für das Projekt.
Bild 2: Zuweisung der Anforderungen zu Prioritätsklassen für das Projekt. (Bild: MicroConsult)

Die Prioritätsklassen bestimmen, wie kritisch die Anforderung für das Projekt ist:

muss (verpflichtend; höchste Priorität); sollte (wichtig für das Projekt; hohe Priorität); oder wird (wäre gut, wenn es enthalten wäre; niedrige Priorität)

Bevor nun eine Marktanalyse erfolgen kann, gilt es, beispielsweise. für die Komponente eines Mikrocontrollers in der Systemsteuerung die genaueren Anforderungen, die an den Steuerungsrechner gestellt werden, zu definieren. Diese Anforderungen bilden die Basis für die letztendliche Mikrocontroller-Wahl.

Mit 3 Schritten zum passenden Multicore-Mikrocontroller

Bild 3: Benötigte Ressourcen im Projekt bestimmen die Mikrocontroller-Auswahl.
Bild 3: Benötigte Ressourcen im Projekt bestimmen die Mikrocontroller-Auswahl. (Bild: MicroConsult)

Ähnlich wie beim Kauf von Schuhen beginnt die Auswahl des passenden Mikrocontrollers mit der Suche nach der richtigen Größe. Gleichzeitig sollten wir prüfen, ob die drei wichtigsten Kriterien für automobile oder industrielle Anwendungen erfüllt sind.

Kriterium 1: Rechenleistung, Stromverbrauch und Coprozessoren

Steht genügend Rechenleistung zur Verfügung? Hier gilt es zu untersuchen, welche Art der Arithmetik, welcher Software-Umfang (Speichergrößen) und welche Zeitvorgaben für die Ergebnisbereitstellung bestehen.

Kriterium 2: Safety und Security

Sind Sicherheitsanforderungen (Safety bzw. Security) zu erfüllen? Je nach Art der Anforderungen werden unter Umständen spezielle Hardware-Module bzw. Mikrocontroller-Architekturen benötigt.

Kriterium 3: Peripherie und Pins

Reichen die vorhandenen Ressourcen in der Peripherie? Hier wird untersucht, ob bei den vorhandenen Modulen die Auflösung und die Funktionalität für die Applikation passt und die Anzahl der Port-Pins ausreicht. Auch Betrachtungen hinsichtlich der erforderlichen gleichzeitigen Verfügbarkeit von Ressourcen sind vorzunehmen.

In diesem ersten Teil der Fachartikelserie werden wir uns eingehend mit dem erstgenannten Schritt befassen.

Bild 4: Heterogene Baustein-Architektur
Bild 4: Heterogene Baustein-Architektur (Bild: MicroConsult)

Mehr MIPS pro Watt

Mit dem Erreichen einer theoretisch höheren Rechenleistung ist die Entwicklung nicht beendet. Vielmehr soll sie unter verschiedenen Bedingungen zur Verfügung stehen, z.B. bei einem bestimmten Strom-Budget. Dies trifft insbesondere bei batteriebetriebenen Geräten zu. In der Entwicklung von Mobiltelefonen ist sprichwörtlich das Ende der Fahnenstange erreicht. Die für den Betrieb benötigten Akkus können nicht immer mehr Strom liefern, ohne dass dies einen Einfluss auf Größe und Gewicht hat.

Bei Notebooks hat man eine Steigerung der Rechenleistung durch Multicore-CPUs bei moderater Taktung erreicht. Bei diesem Lösungsansatz steigt der Stromverbrauch durch die extrem hohe Taktung in Singlecore-Bausteinen nicht zu stark. Bei der Entwicklung der Mikrocontroller haben die Multicore-Architekturen mit ein paar Jahren Verzögerung Einzug gehalten. Hier gibt es die gleichen Forderungen: mehr Rechenleistung ohne signifikante Steigerung der Stromaufnahme.

Die Automobilindustrie als Vorreiter beim Multicore-Einsatz

Bei der Entwicklung von Steuerungssystemen in der Automobiltechnik sind zwei ausschlaggebende Aspekte zu nennen:

  • Einhaltung gesetzlicher Forderungen bezüglich Verbrauch von Treibstoff bzw. Schadstoffausstoß
  • Forderung nach höherer Leistungsfähigkeit bezüglich der Kommunikations- und Entertainment-Systeme im Auto und ganz besonders beim autonomen Fahren

Die Bausteinhersteller von Mikrocontrollern bieten verschiedenste neue Multicore-Architekturen an:

  • Mehrere Rechenkerne vom gleichen CPU-Typ: homogene Multicore-µC
  • Verschiedene spezialisierte Rechenkerne: heterogene Multicore-µC
  • Mehrere gleichartige + spezialisierte Rechenkerne: heterogene Multicore-µC

Welche Arten von Cores werden benötigt, und welche Rechenleistung sollen diese bei einer festgelegten maximalen Stromaufnahme liefern können? Gibt es den benötigten Baustein innerhalb einer Bausteinfamilie mit unterschiedlichen Core-Implementierungen und verschiedenen Gehäusen (Port-Pin-Anzahl)? Diese entscheidenden Aspekte sind für künftig zu realisierende Projekte wichtig.

Bild 5: Singlecore-/Multicore-Bausteinfamilienkonzept.
Bild 5: Singlecore-/Multicore-Bausteinfamilienkonzept. (Bild: MicroConsult)

Software-Migration von Singlecore nach Multicore

Im ersten Schritt sieht die Aufgabe der Software-Migration von Singlecore nach Multicore ganz einfach aus: Lassen wir einfach die vorhandene Software auf mehreren Cores parallel arbeiten.

Stehen bei zwei Cores auch 200% Rechenleistung zur Verfügung? Augenscheinlich ja, denn ein Core entspricht der Rechenleistung x. Ergo hätten wir wir bei einem Dual-Core also zweimal x. Effektiv ergibt sich aber nur eine Leistungssteigerung von ca. 50 %, in einigen Fällen sogar noch weniger. Woran liegt das?

Die Architektur von Singlecore-Software ist in der Regel nicht für die erfolgreiche Ausführung auf einem Multicore-System geeignet. Folgende Herausforderungen lassen sich hier ausmachen:

  • Singlecore-Software wird sequenziell ausgeführt; Multicore-Software benötigt für das gleiche Resultat Synchronisationspunkte und Kommunikation.
  • Eine Ressource (z.B. einen Datenspeicher, ein Peripheriemodul, etc.) kann zu einem Zeitpunkt immer nur von einem einzigen Core bzw. Busmaster angesprochen werden; mehrere Cores können nur mit zusätzlicher Koordination gleichzeitig auf dieselbe Ressource zugreifen. Inkonsistente Datenzustände von Datenblöcken müssen bei Multicore-Zugriffen vermieden werden.
  • Ein Rechenkern benutzt ein Bussystem, mehrere parallel arbeitende Rechenkerne können sich bei Buszugriffen am selben Bus in die Quere kommen. Damit können hohe Zugriffsverzögerungen auf Ressourcen hervorgerufen werden.

Bild 6: Symmetric-/Asymmetric Multi-Task-Processing.
Bild 6: Symmetric-/Asymmetric Multi-Task-Processing. (Bild: MicroConsult)

Die größte Herausforderung liegt darin, die Verwendung gemeinsamer Ressourcen in der Software zu koordinieren und zu überwachen. Eine Lösung hierfür ist das Ressourcen-Management für die Entwicklung von Multicore-Softwarekomponenten. Ein erfolgreicher Umstieg von Singlecore- auf Multicore-Systeme basiert auf der richtigen Auswahl und Anwendung des einzusetzenden Multicore-Mikrocontrollers.

Ab einer bestimmten geforderten Rechenkapazität (in MIPS) in Kombination mit einer maximal tolerierbaren Stromaufnahme wird eine Multicore-Architektur sinnvoll. Viele der Mikrocontroller-Applikationen werden mit einer Batterie versorgt. Somit steht die Stromaufnahme des Systems ganz oben auf der Anforderungsliste.

Bei Laptops/Notebooks ist dieser Trend bereits Realität: Der Einsatz von Multicore-CPUs soll für eine möglichst lange Betriebsdauer bei einer spezifischen Batteriekapazität sorgen und wird mit dem Ausdruck „lange Akkulaufzeit“ beworben. Die Software hat hier ihren Beitrag für einen möglichst geringen Stromverbrauch zu leisten: Aspekte wie das Multicore-Multithreading stehen hier im Vordergrund. Die Software-Architektur ist hier die Basis für eine optimale Softwareverarbeitung. Geschwindigkeit vs. Strombedarf, mit dem Ziel einer hohen System-Effizienz: „Möglichst viele MIPS pro Watt“.

Für verschiedene Applikationen werden Arithmetik-Unterstützung wie Floating-Point oder DSP-Support gefordert. Hier benötigt man unter Umständen einen speziellen Arithmetik-Coprozessor. Einige CPU-Architekturen verfügen über einen erweiterten Befehlssatz (Floating Point Arithmetik, digitale Signal-Prozessor-Befehle DSP), der für die Abarbeitung dieser speziellen Arithmetik zur Verfügung steht.

Anwendungsbeispiele hierfür sind komplexe Motorsteuerungen, komplexe Auswertung von Sensorik, Bild- und Ton-Verarbeitung. In den meisten Fällen können nur spezifische Core-Architekturen die Forderungen erfüllen. Als Mikrocontroller kommen hier fast ausschließlich heterogene Rechenkerne zum Einsatz, die die Anforderungen der spezifischen Arithmetik erfüllen.

Fazit:

Die Erwartungen an die Rechenkapazität bei einem moderaten Stromverbrauch der Multicore-Mikrocontroller sind sehr hoch, können jedoch in der Realität nur erreicht werden, wenn eine strikt strukturierte Software-Architektur und ein klar definiertes Zeitprofil der Applikation zur Verfügung stehen.

Im zweiten Teil der dreiteiligen Artikelreihe befassen wir uns näher mit den Anforderungen hinsichtlich der Safety und Security.

Sind die vorhandenen Ressourcen in der Peripherie ausreichend?

Multicore-Mikrocontroller-Wahl, Teil 3

Sind die vorhandenen Ressourcen in der Peripherie ausreichend?

22.03.17 - Nach der Untersuchung der Anforderungen des Projektes hinsichtlich funktionaler Sicherheit (Safety) und Datensicherheit (Security) befasst sich der letzte Schritt mit den Peripherie-Bausteinen: Was brauche ich an Pins, Speicher oder Bussystemen? lesen

Welche Safety- und Securityanforderungen zählen bei der MCU-Wahl?

Multicore-Mikrocontroller-Wahl, Teil 2

Welche Safety- und Securityanforderungen zählen bei der MCU-Wahl?

08.03.17 - Im ersten Teil der Artikelreihe zur richtigen Multicore-Auswahl ging es um die Bestimmung der Requirements hinsichtlich Rechenleistung und deren Bewertung für das Projekt. Als zweiten Schritt betrachten wir nun die Anforderungen bezüglich funktionaler Sicherheit und Datensicherheit. lesen

KIT erforscht Mehrkernprozessoren für Automotive und Industrie 4.0

Multicore im Automobil

KIT erforscht Mehrkernprozessoren für Automotive und Industrie 4.0

07.12.16 - Sicherheitskritische Anwendungen in Automobilität, Luftfahrt und Industrie 4.0 bedürfen künftig deutlich steigender digitaler Rechenleistung. Diese lässt sich über Multicore-Technologien bereitstellen. Das am KIT entwickelte Projekt ARAMiS II soll dafür sorgen, Sicherheit, Effizienz und Komfort durch Einsatz von Multicore-Technologien in Fahrzeugen, Flugzeugen und Produktionsanlagen zu erhöhen. lesen

Mikrocontroller-Differenzierung durch innovative Peripherals (Teil 1 von 2)

Co-Prozessoren

Mikrocontroller-Differenzierung durch innovative Peripherals (Teil 1 von 2)

28.09.16 - UART, SPI oder andere Peripherals findet man in jeder MCU-Architektur. Besonders interessant sind aber Features, die eine tatsächliche Differenzierung darstellen und dem Entwickler vollkommen neue Lösungsansätze bieten. Denn zusätzliche Chips oder ein stetiges Heraufsetzen von Prozessorleistung stellt ein Design oft vor größere Probleme. lesen

* Dipl.-Ing. Ingo Pohle ist Mitgründer und Geschäftsführer der MicroConsult GmbH.

* Dipl.-Ing. Marcus Gößler ist Trainer und Coach im Bereich Embedded, mit Schwerpunkten auf sicherheitsrelevanten Anwendungen und Multicore-Bausteinen Systems, bei Microconsult.

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

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