Inden for databehandling, især i digital signalbehandling, er multiplicering -akkumuler en almindelig operation, hvor to tal multipliceres og adderes med en akkumulator .
Når en operation udføres på flydende decimaltal , kan den afrundes to gange (typisk for DSP ) eller afrundes én gang (tilføjelse sker med en mere nøjagtig intern repræsentation af produktet). Den afrundede version kaldes også fused multiply-add (FMA) eller fusioned multiply-accumulate (FMAC).
Denne instruktion giver dig mulighed for mere effektivt at implementere operationerne med division og kvadratrodsudvinding (i mangel af hardwareimplementering), multiplikation af vektorer og matricer , beregning af polynomier i henhold til Horners skema .
Handlingen er inkluderet i IEEE 754-2008 standarden . 1999-standarden for C -programmeringssproget inkluderer understøttelse af FMA-operationen (fma()-funktionen fra math.h ).
Moderne computere kan have en specialiseret multiplikations-add-enhed eller MAC (multiply-accumulate), bestående af en multiplikator, der implementerer kombinationslogik , og en adder , samt en akkumulator , hvori resultatet er gemt. Akkumulatorens output føres til en af adderens indgange, og således lægges resultatet fra multiplikatoren for hver cyklus til akkumulatoren. MAC-implementeringen kræver yderligere on-chip-logik, men beregningerne er hurtigere end at bruge shift-and-add- metoden , typisk for tidlige computere. FMA fungerer også med højere nøjagtighed [1]
Optræder på signalprocessorer, operationen (FMA) er inkluderet i instruktionssystemerne for processorer: IBM POWER1 ( engelsk , 1990), Fujitsu SPARC64 (1995), HP PA-8000 (1996), Sony Emotion Engine (1999), Intel Itanium (2001), IBM Cell (2005), Ambric (2006).
FMA - operationen er også implementeret i AMD -processorer med understøttelse af FMA4 ( Bulldozer ) og FMA3 ( Trinity ) [2] . Intel har implementeret FMA3 i processorer baseret på Haswell -kernen . [3]
Teknologien er til stede i NVIDIA GeForce 200 (GTX 200), GeForce 300 og NVIDIA Tesla GPGPU C1060 & C2050/C2070 serie GPU'er . [4] AMD tilføjede FMA til Radeon -linjen med HD 5000 -serien . [5]
FMA-instruktioner implementeret i Intel Sandy Bridge-processorer :