Recherchez sur tout Techno-Science.net
       
Techno-Science.net : Suivez l'actualité des sciences et des technologies, découvrez, commentez
Catégories
Techniques
Sciences
Encore plus...
Techno-Science.net
Partenaires
Organismes
 CEA
 ESA
Sites Web
Photo Mystérieuse

Que représente
cette image ?
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | +
Additionneur

Un additionneur est un circuit électronique permettant de faire une addition.

On dénote deux types d'additionneurs : parallèle et série. Dans la classe des additionneurs parallèles, nous décrirons ici ceux à propagation de retenue et ceux à retenue anticipée.

Additionneur (Un additionneur est un circuit électronique permettant de faire une addition.) parallèle

Codée sur un bit, la table de vérité de l'addition (L'addition est une opération élémentaire, permettant notamment de décrire la réunion de quantités ou l'adjonction de...) est :

A B A + B Retenue
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

Demi-additionneur

À partir de cette table de vérité on peut par exemple construire le circuit suivant, appelé " demi-additionneur " :

Demi additionneur (1 bit) où A et B sont les entrées, S la somme A + B et C la retenue.
Demi additionneur (1 bit) où A et B sont les entrées, S la somme A + B et C la retenue.

Additionneur complet

Un additionneur complet nécessite une entrée supplémentaire : une retenue. L'intérêt de celle-ci est de permettre le chaînage des circuits. La table de vérité d'un additionneur complet est :

A B REntrée A + B + REntrée RSortie
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Le circuit correspondant, l'additionneur complet, est composé de deux demi-additionneurs en série accompagnés d'une logique (La logique (du grec logikê, dérivé de logos (λόγος), terme inventé par Xénocrate signifiant à la fois raison, langage, et raisonnement) est dans une première...) pour calculer la retenue (un OU entre les deux retenues générables par chacun des demi-additionneurs) :

Un additionneur complet 1 bit.
Un additionneur complet 1 bit.

Additionneur parallèle à propagation de retenue

Il est possible de chaîner plusieurs additionneurs un bit pour en fabriquer un capable de traiter des mots de longueurs arbitraires :

Quatre additionneurs un bit chainé pour former un additionneur 4 bits.
Quatre additionneurs un bit chainé pour former un additionneur 4 bits.

L'inconvénient de ce circuit est sa lenteur car il dépend du temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) de propagation de la retenue de module en module. Cette conception ne peut être choisie pour des circuits dépassant quelques bits, à moins de n'avoir aucune contrainte de temps.

Additionneur parallèle à retenue anticipée

Dans ce qui suit on note A et B le cumulande et le cumulateur. R est la retenue. Xindice indique le bit auquel on s'intéresse, 0 étant l'indice de poids (Le poids est la force de pesanteur, d'origine gravitationnelle et inertielle, exercée par la Terre sur un corps massique en raison uniquement du voisinage de la Terre. Elle est égale...) le plus faible. La fonction logique (Cet article se place d'emblée dans le cadre de la logique classique.) OU est notée " + ". La fonction logique ET est notée " . " ou n'est pas notée du tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) (ainsi A B est l'équivalent de A . B ou A ET B).

Tout d'abord on constate que le calcul de la retenue est tout à fait faisable théoriquement : dans la pratique il nécessite beaucoup trop de portes logiques. Pour le second additionneur, la retenue (en entrée) est égale à :

R1 = (A0 . B0) + (A0 . R0) + (B0 . R0) (1)

Pour le troisième additionneur, la retenue est égale à :

R2 = (A1 . B1) + (A1 . R1) + (B1 . R1) (2)

et ainsi de suite. On peut substituer R1 dans (2) par sa valeur (1). On voit immédiatement que le résultat est une formule très longue rendant cette technique totalement impraticable pour un additionneur de, par exemple, 16 bits.

Additionneur un bit avec les sorties p et g complémentaires
Additionneur un bit avec les sorties p et g complémentaires

Il faut donc trouver un compromis entre vitesse (On distingue :) et complexité (La complexité est une notion utilisée en philosophie, épistémologie (par exemple par Anthony Wilden ou Edgar Morin), en physique,...) du circuit chargé de calculer les retenues. Cela peut se faire par l'utilisation de deux valeurs intermédiaires : la retenue propagée et la retenue générée. Nommées p et g, elles sont définies ainsi :

  • p, la retenue propagée sera égale à 1 si l'un des bits du cumulande ou cumulateur est à 1 : pi = Ai OUexclusif Bi.
  • g, la retenue générée sera égale à 1 si à la fois le bit en question du cumulande et du cumulateur sont à 1 : gi = Ai ET Bi.

Comme en base 10, si les deux chiffres à additionner forment un résultat supérieur à 9, alors une retenue est générée, et si deux chiffres forment le total ( Total est la qualité de ce qui est complet, sans exception. D'un point de vue comptable, un total est le résultat d'une addition, c'est-à-dire une somme. Exemple : "Le total des dettes". En physique le total n'est pas...) 9, alors la retenue (éventuellement issue de la colonne de chiffres précédente) sera propagée. On peut facilement modifier un additionneur complet pour en extraire ces deux nouveaux signaux.

Ensuite, on peut constater que la retenue du second additionneur peut être facilement calculée : en effet, à partir du premier additionneur et de ses sorties p et g, la retenue sera à 1 si g est à 1 (elle est générée), ou bien p est à 1 en même temps qu'on à déjà une retenue. C’est-à-dire : R1 = g0 OU (p0 ET R0), et ainsi de suite :

  • R2 = g1 + (p1 . g0) + (p1 . p0 . r0)
  • R3 = g2 + (p2 . g1) + (p2 . p1 . g0) + (p2 . p1 . p0 . r0)
  • R4 = g3 + (p3 . g2) + (p3 . p2 . g1) + (p3 . p2 . p1 . g0) + (p3 . p2 . p1 . p0 . r0)
Additionneur 4 bits utilisant une unité de calcul anticipée de la retenue
Additionneur 4 bits utilisant une unité de calcul anticipée de la retenue

On peut étendre ce principe à des additionneurs N bits, chacun composé de N additionneurs 1 bit et son unité de calcul anticipé de la retenue. Par exemple, un bloc de base avec N = 4 peut être représenté schématiquement comme ceci :

Additionneur 4 bits avec sorties P et G
Additionneur 4 bits avec sorties P et G

Ces blocs sont à leur tour cascadables pour former un additionneur 16 bits :

Additionneur 16 bits à partir de blocs 4 bits
Additionneur 16 bits à partir de blocs 4 bits


Additionneur série

Les premiers ordinateurs utilisaient un additionneur série. Ce circuit n'est plus combinatoire (En mathématiques, la combinatoire, appelée aussi analyse combinatoire, étudie les configurations de collections finies d'objets ou les combinaisons d'ensembles finis,...) mais capable de produire un bit du résultat à chaque impulsion de l'horloge qui le cadence. Un tel circuit est extrêmement simple :

Additionneur serie 1 bit. Le chronogramme schématise le déroulement de l'opération X + Y = S avec X = 5, Y = 7, S = 12.
Additionneur serie 1 bit. Le chronogramme schématise le déroulement de l'opération X + Y = S avec X = 5, Y = 7, S = 12.

Ce circuit est constitué de trois parties :

  1. la porte ET commandée par l'entrée L qui permet de spécifier l'arrivée du premier bit de poids faible (Le bit de poids faible (en anglais Least Significant Bit, ou LSB) est pour un nombre binaire le bit ayant dans une représentation donnée la moindre valeur (celui de droite dans...) dans le circuit ;
  2. une bascule (Une bascule ou un basculeur est un circuit intégré logique doté d'une sortie et d'une ou plusieurs entrées. La sortie peut être au niveau logique 0 ou 1. Les changements d'état de la sortie sont...) de type D pour mémoriser la valeur de la retenue à l'étape précédente ;
  3. un additionneur complet 1 bit dont les entrées X et Y sont les nombres à ajouter et dont l'entrée Retenue est relié à la sortie de la bascule D.

Le chronogramme indique bien que 5 (X) + 7 (Y) = 12 (S) (101 + 111 = 0011 en binaire, en lisant de droite à gauche). L'état des retenues Co et Coo est indiqué de manière purement informative.

Optimisation des additionneurs

Les additionneurs sont au cœur des unités arithmétique (L'arithmétique est une branche des mathématiques qui comprend la partie de la théorie des nombres qui utilise des méthodes de la géométrie algébrique et de la théorie des groupes. On l'appelle plus généralement la...) et logique des processeurs. Des techniques très particulières sont mises en œuvre pour additionner le plus vite possible, le plus souvent en utilisant des techniques complexes de prédiction de la retenue (cf. références). Par exemple on peut détecter des blocs (série de bits consécutifs) ne générant pas de retenue, et donc très rapides à additionner. On peut aussi calculer deux résultats indépendamment et en parallèle, l'un avec une retenue, l'autre sans, et ensuite choisir le bon (via un multiplexeur).

Source: Wikipédia publiée sous licence CC-BY-SA 3.0.

Vous pouvez soumettre une modification à cette définition sur cette page. La liste des auteurs de cet article est disponible ici.