AccueilđŸ‡«đŸ‡·Chercher

Multiplieur

En électronique analogique, un multiplieur est un circuit dont le signal de sortie est le produit de la valeur instantanée de ses signaux d'entrée.

En électronique numérique, un multiplieur est un circuit électronique effectuant une multiplication. Des multiplieurs sont intégrés dans la plupart des processeurs actuels, tant pour réaliser des multiplications entre nombres entiers qu'entre nombres représentés en virgule flottante.

Électronique analogique

Circuit multiplicateur

En électronique analogique, un multiplieur est un circuit dont le signal de sortie est le produit de la valeur instantanée de ses signaux d'entrée[1].

Un multiplieur peut ĂȘtre constituĂ© d'un circuit amplificateur diffĂ©rentiel, dans lequel le courant de la branche commune dĂ©termine le gain diffĂ©rentiel ; il peut aussi exploiter l'effet Hall[2].

En radio, le multiplieur, essentiel à la modulation et à la démodulation hétérodyne, est construit autour d'un composant non linéaire (le plus souvent une diode.

Multiplicateur de fréquence

Un multiplicateur de fréquence est un circuit non linéaire, auquel on applique un signal en bande étroite. Le signal résultant comporte de nombreuses harmoniques de la fréquence d'entrée. Un filtre sélectionne celle de ces fréquences multiples de celle du signal est présente en sortie[3].

Électronique numĂ©rique

Plusieurs types de circuits ont été proposés selon leur performance, taille et consommation d'énergie. On peut citer l'algorithme de Booth et ses variantes, souvent utilisés pour des circuits de faible consommation, et des techniques générant tous les produits partiels avant de les réduire en un nombre d'étapes logarithmique en fonction de la taille des entrées (tels les arbres de Wallace (en) et de Dadda (en)).

Principe

Les algorithmes utilisĂ©s par les multiplieurs actuels sont des variantes amĂ©liorĂ©es de l’algorithme de multiplication Ă  colonne appris dans les petites classes. La seule diffĂ©rence tient dans la table de multiplication utilisĂ©e. En binaire, cette table de multiplication se rĂ©sume Ă  celle-ci :

Pour le reste, l'algorithme est identique à celui appris en primaire. Celui-ci consiste à calculer des produits partiels, chacun étant égal au produit d'un des chiffres du multiplieur par le multiplicande. Ces produits partiels sont ensuite additionnés tous ensemble pour donner le résultat.

Multiplieur simple

Multiplieur simple

Les multiplieurs les plus simples implĂ©mentent l'algorithme vu au-dessus de la façon la plus triviale qui soit, en calculant les produits partiels et en les additionnant un par un. Ces multiplieurs sont donc composĂ©s d'un additionneur, et d'un accumulateur pour mĂ©moriser les rĂ©sultats temporaires. Ceux-ci incorporent des registres pour stocker le multiplicande et le multiplieur durant toute la durĂ©e de l'opĂ©ration. L'ensemble est secondĂ© d'un compteur, chargĂ© de gĂ©rer le nombre de rĂ©pĂ©titions qu'il reste Ă  effectuer avant la fin de la multiplication, et d'un peu de la logique combinatoire pour gĂ©rer le dĂ©but de l’opĂ©ration et sa terminaison.

Au tout dĂ©but de l'opĂ©ration, le multiplieur et le multiplicande sont stockĂ©s dans des registres, et l'accumulateur stockant le rĂ©sultat est initialisĂ© Ă  zĂ©ro. Puis, Ă  chaque cycle d'horloge, le multiplieur va calculer le produit partiel Ă  partir du bit de poids faible du multiplieur, et du multiplicande. Ce calcul du produit partiel est un simple ET entre chaque bit du multiplicande, et le bit de poids faible du multiplieur. Ce produit partiel est alors additionnĂ© au contenu de l'accumulateur. À chaque cycle, le multiplieur est dĂ©calĂ© d'un cran vers la droite, afin de passer au bit suivant (pour rappel, on effectue la multiplication du multiplicande par un bit du multiplieur Ă  la fois). Le multiplicande est aussi dĂ©calĂ© d'un cran vers la gauche.

Le multiplieur vu au-dessus peut subir quelques petites optimisations. Une premiĂšre optimisation consiste Ă  ne pas effectuer de produit entre multiplicande et bit de poids faible du multiplieur si ce dernier est nul. Dans ce cas, le produit partiel sera nul, et son addition avec le contenu de l'accumulateur inutile. On peut parfaitement se contenter de dĂ©caler le contenu du multiplicande, sans calculer le produit partiel et effectuer l'addition. Cela peut se faire assez simplement en utilisant la logique combinatoire reliĂ©e au circuit, Ă  condition que celle-ci s'occupe de sĂ©quencer les dĂ©calages et de commander l'additionneur. De mĂȘme, si le bit de poids faible du multiplieur n'est pas nul, il est inutile de faire le produit (via ET), le produit est identique au multiplicande.

Il suffit donc, Ă  chaque cycle d'horloge, si le bit de poids faible du multiplieur n'est pas nul, d’additionner le multiplicande au contenu de l'accumulateur. À chaque cycle, le multiplieur est dĂ©calĂ© d'un cran vers la droite, et le multiplicande est dĂ©calĂ© d'un cran vers la gauche.

Multiplieur partagé

Multiplieur partagé

Une autre optimisation possible consiste à stocker le résultat en sortie de l'additionneur non pas dans les bits de poids faible de celui, mais dans ses bits de poids forts. Si on décale notre accumulateur d'un cran vers la droite à chaque addition de produit partiel, on peut obtenir le bon résultat. Avec cette technique, on peut utiliser un additionneur plus petit. Par exemple, sans cette optimisation, la multiplication de deux nombres de 32 bit demanderait un additionneur capable de traiter des nombres de 64 bits. Avec optimisation, un vulgaire additionneur 32 bits peut suffire.

Dans ce multiplieur optimisĂ©, il est possible de fusionner le registre du multiplieur et l'accumulateur. L'astuce de ce circuit consiste Ă  stocker le multiplieur dans les bits de poids faible du registre fusionnĂ©, et Ă  placer le rĂ©sultat en sortie de l'additionneur dans les bits de poids fort. À chaque cycle, le registre accumulateur est dĂ©calĂ© vers la droite. Les bits utilisĂ©s par le multiplieur sont donc progressivement remplacĂ©s par le rĂ©sultat des additions du produit partiel. Cette fusion permet d'utiliser un additionneur plus simple.

Multiplieurs tableaux

Multiplieur tableau

Au lieu d'additionner les produits partiels un par un, il est aussi possible de les effectuer en parallÚle. Il suffit d'utiliser autant d'additionneurs et de circuits de calcul de produits partiels qu'il y a de produits partiels à calculer. On peut ainsi calculer tous les produits partiels en parallÚle, et effectuer les additions avec un ensemble d'additionneurs reliés en série. Généralement, ce sont des additionneurs à propagation de retenue qui sont utilisés dans ce type de circuits. L'usage d'additionneurs plus évolués augmenterait beaucoup trop la quantité de portes logiques utilisée par le circuit final, pour un gain en performance assez faible.

Néanmoins, enchainer des additionneurs en série ainsi utilise beaucoup de circuits. Qui plus est, ces additionneurs possÚdent un temps de propagation non négligeable. Les gains en termes de performance existent comparé aux multiplieurs vus au-dessus, mais ne méritent pas forcément une telle augmentation de la taille du circuit. Pour éviter de gaspiller la place, il est possible d'utiliser des additionneurs dits carry-save, conçus pour accélérer les additions multiples.

Multiplieurs à arbres de réduction

RĂ©duction des produits partiels d'une multiplication Ă  8 bits par un arbre de Wallace

Pour gagner en performance, et rendre le circuit plus rapide, il est possible d'effectuer les additions de produits partiels non pas en sĂ©rie, mais via un arbre de rĂ©duction. Cet arbre tire parti du fait que trois bits de mĂȘme poids dans les produits partiels peuvent ĂȘtre additionnĂ©s en deux bits, dont un de poids supĂ©rieur, et s'intĂ©resse juste aux bits individuels des produits partiels sans chercher Ă  additionner ceux-ci deux Ă  deux. On Ă©conomise ainsi la propagation de la retenue, qui est cause de latence et de complexitĂ© dans les additionneurs. Lorsqu'il n'est plus possible d'effectuer de rĂ©duction, on additionne les deux groupes de chiffres restants.

Pour deux nombres de taille n, comme le nombre de chiffres des produits partiels est nÂČ au total et que la rĂ©duction prend un nombre d'Ă©tapes logarithmique, les arbres de rĂ©duction permettent d'effectuer la multiplication en un temps , comme c'est le cas pour l'addition. Cependant, les multiplieurs sont en pratique plus lents et imposants que les additionneurs.

Il existe divers types d'arbres permettant d'effectuer la réduction, les plus connus étant les arbres de Wallace ainsi que les arbres Dadda.

Notes et références

  1. Michel Fleutry, Dictionnaire encyclopédique d'électronique anglais-français, La maison du dictionnaire, (ISBN 2-85608-043-X), p. 546.
  2. Commission électrotechnique internationale, « Dispositifs à semiconducteurs et circuits intégrés: types de dispositifs à semiconducteurs », dans IEC 60050 Vocabulaire électrotechnique international, (lire en ligne), p. 521-04-27.
  3. Commission électrotechnique internationale, « Oscillations, signaux et dispositifs en relation: réseaux et dispositifs linéaires et non linéaires », dans IEC 60050 Vocabulaire électrotechnique international, (lire en ligne), p. 702-09-32.
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.