Fließend in eine neue Dimension Mikrocontroller mit Fliesskomma-Einheit

Erweitert man einen Mikrocontroller um eine Fließkommaeinheit, erweitert sich der Spielraum für Designs in mehrere Richtungen. Sie kann den Bereich und die Genauigkeit mathematischer Berechnungen steigern; oder sie kann einen höheren Durchsatz in einer kürzeren Zeit ermöglichen und somit die Einhaltung von Echtzeitanforderungen erleichtern; oder sie kann Energie sparen und die Batterielebensdauer verlängern, weil die Systeme Programme schneller ausführen und mehr Zeit im Schlafmodus verbringen können.

Bei den Branchen, die üblicherweise Mikrocontroller einsetzen, sind tendenziell einfache Schnittstellen zu externen Signalen und Ereignissen, geringe Kosten und beschränkte Energiebudgets von vorrangiger Bedeutung. Daher hatten sie in der Vergangenheit meist keinen Zugriff auf Fließkomma-Mathematik.

Bereits in der Bezeichnung FPU (Floating Point Unit) schwangen Begriffe wie komplizierte, hoch entwickelte, häufig DSP-basierte Systeme mit. Fortschritte in der Prozesstechnologie haben die FPU nun für eine wesentlich breitere Projektpalette zugänglich gemacht. Gleit- oder Fließkommazahlen in der Form A x 10B heißen so, weil in dieser Zahlendarstellung das Komma im ersten Teil der Zahl (A), auch Mantisse genannt, frei gleiten oder fließen kann.

Man kann es überall hinsetzen, wo es besser zu der jeweiligen Berechnung passt, die gerade abläuft. Danach stellt man den Wert des Exponenten (B) entsprechend ein, damit die Größe der Gesamtzahl unverändert bleibt. So ist beispielsweise die Zahl 1,234 x 106 identisch mit 1234 x 103. Am gebräuchlichsten ist die Praxis, Zahlen in einer normalisierten Form darzustellen - und zu speichern -, wobei das Komma nach der ersten Ziffer, die ungleich Null ist, gesetzt wird.

Für den Ingenieur, der mit der digitalen Darstellung von Signalen aus der realen Welt arbeitet - zum Beispiel Audio hoher Qualität - liegt ein großer Vorteil bei der Verwendung von Gleitkomma-Mathematik für die Verarbeitung nicht in der Freiheit, das Komma überallhin setzen zu können, sondern in dem großen Zahlenbereich, den die Schreibweise darstellen kann.

Der meistverwendete Standard im Rahmen der Computertechnik und der Signalverarbeitung ist die IEEE 754. In dieser Struktur kann eine Zahl mit einer so genannten einfachen Genauigkeit (single precision) einen Wert innerhalb eines (dezimalen) Bereichs zwischen ungefähr -1039 und +1039 haben (Bild 1).

Ganz unabhängig davon, wo die Zahl innerhalb des Gesamtbereichs liegt, stets hat die Mantisse eine Auflösung von ungefähr 23 Bit und passt deshalb gut zu Signalinhalten wie 24-Bit-Audio.

Signaltreue aufrechterhalten

Die grundsätzlichen Herausforderungen, denen sich der Ingenieur gegenübersieht, der beispielsweise eine Audiosignalkette entwickelt, haben sich nicht verändert, seit sich der Kontext von der analogen zu der digitalen Domäne verlagerte (Bild 2).

Audiosignale umfassen große Dynamikbereiche mit Informationen, die entscheidend sind für die originalgetreue Wiedergabe des Inhalts und die auf beiden Extremen des Signalbereichs - dem lautesten und dem leisesten - völlig unverändert bleiben muss. Über den gesamten Signalpfad hinweg kann das Signal in mehreren Verarbeitungsschritten gefiltert, gemischt, sein Pegel verschoben oder verstärkt werden.

Als sich die Entwicklungsaufgabe auf die analoge Domäne bezog, musste der Entwickler unablässig die Signalpegel überwachen, damit sie über dem Grundrauschen blieben, und gleichzeitig sicherstellen, dass Spitzen im Signalinhalt nicht zu nahe an die Höchstpegel der Verstärker gelangten.

Ständig bestand die Gefahr, dass Informationen dadurch verloren gingen, dass am unteren Ende das Rauschen erhöht wurde oder dass die Spitzen abgeschnitten wurden.

Eine vergleichbare Situation bietet sich auch dann, wenn das Signal in der digitalen Domäne verarbeitet wird (Bild 3). Die Datenwerte, die den Inhalt repräsentieren, müssen innerhalb des zulässigen Wertebereichs bleiben, damit keine Informationen verloren gehen, sei es durch Overflow oder durch Abschneiden (truncate).

In mehreren Stufen der Signalverarbeitung, besonders bei der Filterung, sind aufeinander folgende mathematische Operationen - insbesondere Multiplikationen - enthalten, die den Absolutwert der Daten über sehr weite Bereiche verschieben können.

Bei einem eingeschränkten Zahlenbereich muss der Entwickler darauf achten, dass das »gleitende Fenster« von Relativwerten - im Falle von Audio-Content die lautesten und die leisesten - in ausreichendem Maße innerhalb des zur Verfügung stehenden Wertebereichs bleibt - in der analogen Entsprechung oberhalb des Grundrauschens, jedoch unterhalb der Versorgungsspannung.

FPUs werden günstiger

Bislang waren Bausteine zur digitalen Signalverarbeitung, die eine Gleitkomma-Arithmetik einsetzen, wesentlich teurer als ihre Festkomma-Pendants, weil Gleitkomma-Coprozessoren wesentliche Teile der Siliziumfläche verbrauchen. Jedoch ist die Fertigungstechnik von heute so weit fortgeschritten, dass dies nicht mehr unbedingt zutrifft. Mittlerweile ist es möglich, auf einen mittelklassigen 32-Bit-Mikroprozessor-Core eine voll IEEE-754-konforme Fließkomma-Einheit wirtschaftlich sinnvoll zu integrieren.

Zum Beispiel unterstützen die Mikrocontroller vom Typ »AVR UC3« von Atmel Festkomma- und Integer-Arithmetik. Durch die Ergänzung um eine Gleitkomma-Einheit mit einfacher Genauigkeit können sich die den Entwicklern zur Verfügung stehenden Optionen auf vielfältige Weise verändern.

Die erste, die aus den oben beschriebenen Beobachtungen der Gleitkomma-Zahlensysteme resultiert, liegt in der Unabhängigkeit von zahlreichen Detailproblemen bezüglich der Zahlenbereiche und der Skalierung. Durch aufeinander folgende Verarbeitungsschritte darf angesichts eines sehr großen verfügbaren Wertebereichs der Signalwert (zu einem großen Teil) jeden beliebigen Absolutwert annehmen, den er braucht.

Die unverzichtbaren Informationen - der Dynamikbereich des Signals - werden stets innerhalb der 24-Bit-Bruchzahldarstellung der Mantisse der Gleitkommazahl enthalten sein. Die Notwendigkeit, ständig die Skalierung zu begleiten, um den Zahlenbereich in Grenzen zu halten, entfällt völlig. Indessen reichen die Vorteile einer FPU auf dem Chip über jene einfache Designfreiheit hinaus.

Auch verbessert sich der Durchsatz, da die FPU Operationen wie genaues Multiplizieren und Dividieren in wenigen Taktzyklen ausführen kann, wofür ein nicht verbesserter Core viele zig Zyklen brauchen würde. In den AVR-UC3-Bausteinen führt die FPU die meisten 32-Bit-Gleitkomma-Befehle in einem einzigen Zyklus aus, und ein 32-Bit-MAC (Multiply-Accumulate) in zwei Taktzyklen, verglichen mit den 30 bis 50 Zyklen bei einem Baustein ohne FPU. Dieser zusätzliche Durchsatz lässt sich nutzen, um die Signalverarbeitungsleistung eines Mikrocontrollers wesentlich zu steigern oder bei gleicher Rechenleistung die Stromaufnahme zu senken.

Breiterer Anwendungsfreiraum

Bei missionskritischen Systemen muss der Code in Echtzeit ausgeführt werden. Auch diese profitieren davon, dass Mikrocontroller mit FPU hoch genaue Berechnungen in wenigen CPU-Zyklen durchführen können. Der Antriebsstrang im Kraftfahrzeug ist ein solches Beispiel.

Eine Motormanagement-Einheit muss Sensoreingaben mit sehr großen Dynamikbereichen verarbeiten, doch bestimmt sich die Zeit, die jeder Rechenzyklus höchstens dauern darf, ganz allein durch die mechanische Rotation des Motors. Ähnliche Einschränkungen treffen auf Systeme wie das ABS (Antiblockiersystem) oder die aktive Federung zu. Bei der genauen Regelung eines Elektromotors ist die Fähigkeit, große Zahlenbereiche zu verarbeiten, ebenfalls wertvoll.

Denn Algorithmen fordern oft, dass nacheinander eine Anzahl komplexer Transformationen durchgeführt werden muss - ohne Datenverlust durch Abschneiden. Auch hier bestimmt sich die für die Berechnung zur Verfügung stehende Zeit durch die Rotationsgeschwindigkeit des Motors. In diesen Fällen kommt es sowohl auf Präzision als auch Verarbeitungsgeschwindigkeit an.

Die digitale Signalverarbeitung unter Verwendung der FFT (schnelle Fourier-Transformation) beispielsweise lässt sich durch Gleitkomma-Mathematik beschleunigen. Entwickler, die mit Signalerfassungs- und Verarbeitungssystemen in anderen Bereichen arbeiten (z.B. industriellen Systemen oder in der Medizintechnik) und die ebenfalls mehrere Verarbeitungsschritte mit Daten mit einem weiten Dynamikbereich durchführen müssen, werden feststellen, dass die Integration eines universellen MCU-Cores mit einer FPU ihre Wahlmöglichkeiten verändert.

Zuvor bedeutete ein Signalpfad, bei dem die Verarbeitung in Gleitkomma implementiert ist, unvermeidlich den Einsatz eines Mikroprozessors oder eines Mikrocontrollers mit dediziertem DSP - mit entsprechenden Auswirkungen auf Kosten, Abmessungen und Energieverbrauch. Die Option, ihr komplettes Design einzig und allein auf einem DSP unterzubringen, schlossen die Entwickler oft aus, weil der DSP nicht die Steuerfunktionen auszuführen vermag, die ihr Projekt verlangte.