Multiplier-accumuler
Dans le calcul, particulièrement le traitement numérique du signal De , le multiplier-accumulent est une opération commune qui calcule le produit de deux nombres et ajoute ce produit à un accumulateur .
Une fois fait avec la virgule flottante la numérote pourrait être exécuté avec deux le Roundings (typique dans les beaucoup le DSPs ou avec un arrondissage simple, appelé un fondu multiplier-ajoutent (FMA).
Les ordinateurs modernes peuvent contenir un consacré multiplier-accumulent l'unité , ou le " ; MAC-unit" ; , se composant d'un multiplicateur mis en application dans la logique combinatoire suivie d'un additionneur et d'un registre de cumul qui stocke le résultat quand le a synchronisé . Le rendement du registre est alimenté de nouveau à une entrée de l'additionneur, de sorte que sur chaque horloge le rendement du multiplicateur soit ajouté au registre. Les multiplicateurs combinationnels exigent un grand nombre de logique, mais peuvent calculer un produit beaucoup plus rapidement que la méthode de de décalage et de s'ajouter typique des ordinateurs plus tôt. Les premiers processeurs à équiper des MAC-unités étaient les processeurs de signal numérique De mais la technique est maintenant terrain communal dans les processeurs d'usage universel aussi.
Dans l'arithmétique à point mobile
Une fois faite avec les nombres entiers l'opération est en général exacte (modulo calculé une certaine puissance de de 2 ). Cependant, les nombres à point mobile du ont seulement une certaine quantité de précision mathématique . C'est-à-dire, l'arithmétique à point mobile numérique n'est généralement pas le associatif ou le distributif. (Voir les problèmes de #Accuracy de virgule flottante de .)Par conséquent, il fait une différence au résultat si le multiplier-ajouter est effectué avec deux roundings, ou dans une opération avec un arrondissage simple. Une fois exécutée avec un arrondissage simple, l'opération se nomme un fondu multiplier-ajoutent .
Fondu multiplier-ajouter
Un fondu par multiplier-s'ajoute est un à point mobile multiplier-ajoute l'opération effectuée dans une étape, avec un arrondissage simple. C'est-à-dire, où un non fixé multiplier-s'ajoute calculerait le , ronds il au peu significatif du N , ajoutent le résultat au un , et rond de nouveau au peu significatif du N , fondu multiplier-ajouter calculerait la somme entière à sa pleine précision avant d'arrondir le résultat final vers le bas au peu significatif du N .Une fois mis en application dans un microprocesseur , c'est en général plus rapide qu'une opération de multiplication suivie d'un ajouter. Il tient compte également d'obtenir la moitié inférieure de la multiplication. Par exemple,
H = FMA (A, B, 0.0) ; calcul de/* le N la plupart de peu significatif du produit A*B * L = FMA (A, B, - H) ; calcul de/* le peu après le plus significatif de N *
Fondu multiplier-s'ajoutent est mis en application sur le SPARC64 , le PowerPC et les familles de processeur d'Itanium , et sera mis en application dans des processeurs du AMD avec l'appui d'ensemble d'instruction du SSE5 . En raison de cette instruction il n'y a aucun besoin de clivage de matériel ou d'unité de la racine carrée , puisqu'ils peuvent être mis en application dans le logiciel using le FMA.
Un FMA rapide peut accélérer et améliorer l'exactitude de beaucoup de calculs qui comportent l'accumulation des produits :
Produit scalaire
Multiplication de Matrix de
Évaluation polynôme du (par exemple, avec la règle de Horner de )
L'opération de FMA sera probablement ajoutée au IEEE 754 dans le IEEE 754r .
Le niveau 1999 du langage de programmation du C soutient l'opération de FMA par la fonction standard de bibliothèque mathématique de fma.
| Random links: | Ville de Monroe, Missouri | Organisation nationale de FFA | Kronach (zone) | Prince Michael de la Grèce et du Danemark | Confiance de revenu | Multiplicar-acumular |