Suchen

Bausteinwahl

Warum sich MCU-Anwender mehr für FPGAs interessieren sollten

Seite: 2/3

Firma zum Thema

Vorteile bei der Parallelverarbeitung

Bild 2: Ein kleines preiswertes FPGA kann, wie in dieser Referenzentwicklung eines Schrittzählers von Lattice Semiconductor, zusätzlich zu einer MCU oder einem Anwendungsprozessor eingesetzt werden.
Bild 2: Ein kleines preiswertes FPGA kann, wie in dieser Referenzentwicklung eines Schrittzählers von Lattice Semiconductor, zusätzlich zu einer MCU oder einem Anwendungsprozessor eingesetzt werden.
(Bild: Lattice Semiconductor)

Das ist keine Strategie, um die Preise im Markt für High-End-FPGAs zu unterbieten. Die neue Art von FPGAs eröffnet diesen programmierbaren Bauteilen neue Anwendungen, in denen sie bisher nie eingesetzt wurden. Dazu gehören auch solche, bei denen heute noch MCUs verwendet werden.

Vor welchem Hintergrund könnte ein Anwender von Mikrocontrollern nun erwägen, stattdessen beziehungsweise zusätzlich ein FPGA einzusetzen?

Grob gesagt führen MCUs eine sequentielle Verarbeitung (immer nur ein Task gleichzeitig) durch, während auf FPGAs mehrere Prozesse parallel (mehrere Tasks gleichzeitig) ausführen können. Daher sind MCUs ideal für Steueranwendungen, die sich durch ein hohes Maß an Abhängigkeiten auszeichnen und bei denen Entscheidungen im Core durch den vorherigen Zustand eines Eingabegeräts, z.B. eines Sensors oder einer Tastatur, bestimmt werden.

Im Gegensatz dazu unterstützen FPGAs die gleichzeitige Ausführung mehrerer voneinander unabhängiger Funktionen, die in getrennten Bereichen des Gate-Arrays parallel implementiert werden können. Diese besondere Eignung für die Parallelverarbeitung kann z.B. in Wearables für Fitness oder Gesundheitsüberwachung sehr sinnvoll genutzt werden (siehe Bild 1). Ein Fitnessarmband enthält gewöhnlich mehrere Sensoren und Bedienerschnittstellenelemente, wie:

  • biometrische Sensoren, z.B. für die Herzfrequenz, Schweiß und den Sauerstoffgehalt des Bluts
  • Sensoren für Umweltgrößen, z.B. UV-Strahlung
  • Bewegungssensoren
  • Systemsensoren – ein Temperatur- und ein Stromsensor
  • ein Mikrofon
  • berührungsempfindliche Tasten
  • einen Schallgeber oder Lautsprecher

In dieser Anwendung, bei der ein FPGA als Sensorhub eingesetzt wird, sind die Sensorwerte zum größten Teil nicht voneinander abhängig. Das Gerät muss auf die Messungen des Schrittzählers nicht weiter reagieren. Es muss nur gleichzeitig die Schritte, die Pulsschläge zählen, die Konzentration von Schmutzpartikeln in der Luft messen, usw.

In einem Gerät wie einem Fitnessarmband unterscheidet sich der Betrieb einer MCU grundlegend von dem eines FPGAs. In der MCU muss das gesamte Bauteil aktiviert werden, um eine einzelne Aktion durchzuführen, z.B. Daten von einem Sensor zu empfangen und im Speicher abzulegen. Das heißt, dass auch der energiehungrige Quarzoszillator aktiviert werden muss, wobei ein typischer Quarzoszillator rund 10 ms braucht, um sich zu stabilisieren. In dieser Zeit nimmt die MCU Energie auf, ohne irgendetwas Sinnvolles leisten zu können. Dieser Zyklus aus Aktivieren, Warten, Arbeiten und Abschalten wird jedesmal ausgeführt, wenn das Bauteil einen Schritt oder einen Herzschlag erfassen oder flüchtige organische Verbindungen (VOC) in der Luft messen soll.

Im Unterschied dazu kann eine Wearable-Anwendung leicht auf einem FPGA verteilt werden, wobei jeder Sensor mit einem eigenen Satz von Logikgattern verbunden ist. Dabei muss ein Eingangssignal des optischen Herzfrequenzsensors nur den kleinen Teil des FPGA aktivieren, der die Herzfrequenzmessung durchführt; der Rest des Bauteils kann ausgeschaltet bleiben. Das Gleiche gilt für die vielen anderen Sensorschnittstellen in einem Fitnessarmband. Dadurch hat die Implementierung per FPGA einen wesentlich geringeren durchschnittlichen Energieverbrauch als mit einer MCU.

Außerdem kann die Wahl einer MCU für diese Anwendung sich auf die Materialkosten auswirken. Während der meisten Zeit werden die Befehle in Intervallen ausgeführt, sodass der Befehlsdurchsatz vergleichsweise gering ist. Doch plant ein guter Ingenieur natürlich für den ungünstigsten Fall. Was ist, wenn die MCU mehrere Aktionen gleichzeitig und ohne wahrnehmbare Verzögerung ausführen muss?

Hierfür wäre ein Hochleistungskern erforderlich, der die meiste Zeit erheblich überspezifiziert, aber für die wenigen Fälle erforderlich wäre, in denen mehrere Anweisungen äußerst schnell ausgeführt werden müssen. Auch hier ermöglicht das FPGA mit seiner Eignung für den Parallelbetrieb die gleichzeitige Implementierung mehrerer Aktionen, so dass die Leistung des FPGAs nicht in der gleichen Weise überspezifiziert werden muss. Ebenso können ein oder mehrere FPGAs für die Funktionen von Sensorschnittstellen verwendet werden, bei denen sie Signale von Sensoren, wie Beschleunigungssensoren als Schrittzähler, verarbeiten während die energiehungrige MCU oder der Anwendungsprozessor die meiste Zeit ausgeschaltet bleiben (siehe Bild 2).

Alle diese möglichen Vorzüge eines FPGA gelten zusätzlich zum offensichtlichsten Vorteil: Das Bauteil ist programmierbar, so dass die Entwickler die Funktionen des Chips beliebig umkonfigurieren können, ohne die Leiterplatte ändern zu müssen. Ein FPGA kann daher als flexible Entwicklungsplattform genutzt werden, aus der mit derselben Grundauslegung der Hardware schnell zahlreiche Produktvarianten hergeleitet werden können. Dadurch kann der Anwender neue Produktvarianten, im Vergleich zum Einsatz einer MCU mit festen Funktionen, schneller auf den Markt bringen.

(ID:44573337)