Multiply-Accumulate

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Multiplikationsakkumulator (MAK) oder englisch Multiplier Accumulator (MAC) kommt in der digitalen Signalverarbeitung in speziellen Signalprozessoren oder als Erweiterung konventioneller CPUs zum Einsatz (AltiVec, SIMD). MACs sind als Rechenwerke verwandt mit ALUs und Akkumulatorregistern.

Es kann die MAC-Operation

\ a \leftarrow a + ( b \cdot c )

durch die direkte Realisierung in Hardware besonders schnell ausführen – bei einigen Signalprozessoren innerhalb eines Taktzyklus. Auch viele seit Anfang des 21. Jahrhunderts erhältliche CPUs, wie der in PCs im Einsatz befindliche Intel Pentium, verfügen über MAC-Befehle. Die Einsatzbereiche liegen in der digitalen Bildverarbeitung und der Darstellung von Videos in Echtzeit. Andere Anwendungsbereiche der MAC-Einheit liegen im Bereich digitaler Filter und der Regelungstechnik.

Die Argumente und das Ergebnis dieser Operation können je nach Prozessortyp und gewähltem Datentyp Integer-, Festkomma- oder Gleitkomma-Zahlen sein.

In der Anfangszeit der digitalen Signalverarbeitung bis etwa Mitte der 1990er Jahre waren MAC-Befehle aufgrund des höheren Hardwareaufwandes für den Multiplizierer nur in speziellen Signalprozessoren verfügbar. Damalige konventionelle CPUs wie der 6502 oder 80286 und Mikrocontroller für allgemeine Anwendungen realisieren die Multiplikation mittels Software oder eigenen Multiplikationsbefehlen, welche je nach Genauigkeit und Datenformat aber bis zu mehreren hundert Taktzyklen zur Ausführung benötigen. Seit Mitte der 1990er Jahre sind MAC-Befehle Teil von praktisch allen Prozessoren.

Genauigkeit[Bearbeiten]

Hauptartikel: Fused multiply-add

Bei der MAC-Operation kann eine Verbesserung der Genauigkeit im finalen Ergebnis erzielt werden, in dem die notwendige Rundung erst am Ende der MAC-Operation ausgeführt wird und die Zwischenergebnisse intern mit voller Auflösung ohne Rundungen durchgeführt werden. Diese Operation wird auch als englisch Fused Multiply Accumulate, abgekürzt FMAC, bezeichnet. Die FMAC-Operation bedingt, im Gegensatz zur MAC-Operation, breitere Datenpfade und damit verbunden einen erhöhten Hardwareaufwand.[1]

Einzelnachweise[Bearbeiten]

  1. Eric Quinnell: Floating-Point Fused Multiply–Add Architectures. 2007, abgerufen am 25. Juli 2013 (PDF; 4,4 MB).