Additionneur à anticipation de retenue : plus rapide que la propagation
Un additionneur à anticipation de retenue restructure la génération des retenues grâce aux signaux de propagation et de génération. Déduisez un CLA 4 bits, puis découvrez pourquoi les conceptions réelles sont hiérarchiques.
En bref : l’anticipation de retenue réécrit la récurrence sérielle avec des signaux de génération/propagation par bit et par groupe. Un petit CLA plat peut exprimer plusieurs retenues directement à partir des opérandes. Les versions hiérarchiques et à préfixe parallèle réduisent la profondeur de retenue, de linéaire à presque logarithmique, au prix de cellules, de fan-out et de câblage supplémentaires.
Un additionneur à propagation de retenue de 4 bits est simple : enchaînez quatre additionneurs complets et dirigez chaque vers le suivant. Sa dépendance de retenue dans le pire cas grandit avec la largeur du mot. Le respect du timing dépend de la technologie, de l’horloge visée, des cellules et du chemin de données environnant ; la largeur seule ne rend pas une conception « inacceptable ».
Les additionneurs à anticipation de retenue (CLA) attaquent cette dépendance sérielle en déduisant les retenues à partir de signaux intermédiaires directement disponibles sur les opérandes.
Pourquoi la propagation de retenue est-elle lente ?
Rappelons les équations de l’additionneur complet :
La somme dépend de , et la retenue dépend également de . La chaîne de dépendances est donc . Si un étage de retenue prend , le temps total d’addition dans le pire cas est environ :
La dépendance du premier ordre est linéaire avec la largeur du mot. Les nanosecondes absolues exigent une implémentation précise ; le nombre de délais de portes ne sert ici qu’à comparer les topologies. C’est ce type de limite du délai de propagation qui motive les réseaux de retenue rapides.
Génération et propagation
Reprenons l’équation de retenue :
Le premier terme, , est vrai exactement lorsque les deux bits opérandes valent 1. L’étage produit alors inconditionnellement une retenue de sortie, quelle que soit la valeur arrivée sur . Définissons :
C’est le signal de génération : l’étage génère lui-même une retenue.
Le second terme, , signifie que si exactement un des bits opérandes vaut 1, la retenue reçue sur traverse l’étage. Définissons :
C’est le signal de propagation : l’étage transmet toute retenue entrante à sa sortie.
L’équation de retenue devient :
Ce sont les portes ET et OU que vous connaissez, effectuant exactement ce que décrivent leurs tables de vérité, mais réunies ici dans une récurrence que l’on peut aplatir.
Aplatir la récurrence des retenues
Substituons la récurrence en elle-même. En partant d’un connu :
Le motif est net : chaque retenue est une somme de produits de signaux de génération et de propagation des étages 0 à . Logiquement, elle dépend seulement de , et , et non d’une transition physique achevée dans l’additionneur complet précédent. Physiquement, les produits larges et leur câblage exigent toujours des portes, buffers et routage finis.
Exemple détaillé sur 4 bits
Additionnons (11) et (6), avec . Écrivons les bits en commençant par le poids faible :
| Bit | ||||||
|---|---|---|---|---|---|---|
| 0 | 1 | 0 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 | 1 | 0 | 0 |
| 2 | 0 | 1 | 1 | 0 | 1 | 0 |
| 3 | 1 | 0 | 1 | 0 | 1 | 0 |
Les équations donnent , , et . La lecture de produit , comme prévu. L’arithmétique est la même qu’avec la propagation de retenue ; seule la topologie du réseau de retenue change.
Génération et propagation par groupe
Pour un groupe de bits allant de à , définissons une propagation et une génération de groupe :
La retenue quittant le groupe vaut alors :
Deux groupes adjacents se combinent avec la même opération :
Cette associativité est la clé des additionneurs hiérarchiques et à préfixe parallèle : les paires se combinent, puis les paires de paires, formant un arbre plutôt qu’une chaîne.
Architecture d’un CLA 4 bits
Au niveau booléen, un CLA plat 4 bits possède trois fonctions :
- Couche génération/propagation. portes ET produisent en un délai ; portes XOR produisent en un délai. Elles fonctionnent en parallèle.
- Réseau de retenue. Une logique ET-OU calcule à à partir des formules développées. Avec des portes à fan-in théoriquement illimité, cela ressemble à deux niveaux logiques ; une bibliothèque réelle décompose les termes larges, ce qui augmente profondeur et charge.
- Couche somme. portes XOR produisent en un délai. (Notez que une fois calculé.)
Sur quatre bits, ce montage peut raccourcir le chemin de retenue par rapport à une chaîne de cellules additionneur complet. Étendre indéfiniment les équations plates n’est pas pratique ; les CLA plus grands introduisent donc des groupes.
Schéma fonctionnel d’un CLA 4 bits
A0,B0 ─┬── XOR ── P0 ──┐ ┌── XOR ── S0
└── AND ── G0 ──┤ │
│ ┌─── carry network ───┐ │
A1,B1 ─┬── XOR ── P1 ──┤ │ │ ├── XOR ── S1
└── AND ── G1 ──┤ │ computes │ │
├──>│ C1, C2, C3, C4 │─┤
A2,B2 ─┬── XOR ── P2 ──┤ │ from expanded │ ├── XOR ── S2
└── AND ── G2 ──┤ │ │ │
│ │ carry expressions │ │
│ └─────────────────────┘ │
A3,B3 ─┬── XOR ── P3 ──┤ ├── XOR ── S3
└── AND ── G3 ──┘ │
└────────── C4
C0 ──────────────────────>┘
Fan-in, câblage et coût caché
Pour , la plus longue expression plate contient un terme produit à cinq entrées lorsque est inclus. Pour , le terme correspondant comporterait 17 entrées. Les bibliothèques de cellules standard offrent un fan-in limité, et les longues pistes ainsi que les fortes charges ajoutent du délai. Un CLA littéralement plat cesse donc de bien passer à l’échelle, même si son expression booléenne semble peu profonde.
La solution habituelle est la hiérarchie. Regroupez les bits — souvent par blocs de quatre —, calculez les et de groupe, puis combinez ces groupes à un autre niveau. Une conception 16 bits peut utiliser quatre groupes de 4 bits, puis un second étage d’anticipation. Les additionneurs à préfixe parallèle appliquent l’opération de groupe associative dans tout un arbre.
Le compromis ne se résume pas à un tableau universel de portes :
| Architecture | Dépendance de retenue | Force habituelle | Coût habituel |
|---|---|---|---|
| Propagation de retenue | Linéaire | Petite surface, routage simple | Long chemin de retenue dans le pire cas |
| Anticipation par blocs | Hiérarchique | Compromis vitesse/surface modéré | Logique locale et câblage de groupes plus larges |
| Sélection de retenue | Pré-calcul des deux cas | Chemin de décision plus court | Matériel de somme dupliqué |
| Préfixe parallèle | Structure arborescente | Faible profondeur logique | Davantage de cellules de préfixe, câblage et parfois fan-out élevé |
Le délai, la surface et l’énergie réels doivent être mesurés après mappage et implémentation physique. Une topologie gagnante en niveaux de portes abstraits peut perdre une fois congestion, buffers et charge inclus.
Au-delà du CLA : additionneurs à préfixe parallèle
L’idée d’anticipation de retenue se généralise. La récurrence est associative avec un opérateur personnalisé : on peut apparier des positions adjacentes, puis des paires de paires, en arbre. C’est la famille des préfixes parallèles :
- Kogge–Stone — faible profondeur de préfixe et fan-out logique borné, mais câblage dense et nombreux nœuds.
- Brent–Kung — moins de nœuds de préfixe et moins de câblage, avec une profondeur plus grande.
- Han–Carlson, Ladner–Fischer, Sklansky — autres compromis entre fan-out, complexité du câblage et profondeur.
Les additionneurs de production peuvent aussi mélanger les structures de préfixe, utiliser la parcimonie ou placer une logique de sélection autour de certains groupes. Le choix se fait selon un budget précis de timing, surface, puissance et routage ; la seule fréquence d’horloge d’un processeur ne révèle pas la topologie de son additionneur.
Implémenter un CLA dans DigiSim
Vous pouvez construire un CLA 4 bits à partir de primitives : quatre portes ET pour la génération, quatre portes XOR pour la propagation, les équations de retenue ci-dessus et quatre XOR finaux pour la somme. Les composants additionneur et additionneur 8 bits sont des commodités comportementales de haut niveau ; ne déduisez pas leur architecture interne sans indication de la documentation.
Pour comparer les topologies, enchaînez quatre additionneurs complets en propagation et construisez un CLA 4 bits séparé. Vérifiez d’abord l’équivalence fonctionnelle pour toutes les combinaisons d’opérandes. Puis, si le simulateur modélise le délai par porte, comparez le temps de stabilisation maximal après une variation d’entrée. Si les portes sont idéales, comptez plutôt les niveaux logiques dépendants : une forme d’onde idéale ne prédit pas le timing du silicium.
Pièges courants
- Oublier que utilise XOR et non OU. Les deux définitions — ou — produisent une retenue correcte, car le cas est déjà couvert par . Le XOR est préférable car le même fil alimente la somme : . Avec un défini par OU, cette réutilisation ne fonctionne plus et il faut un XOR séparé pour la somme.
- Sous-estimer le fan-in. Une expansion plate sur 16 bits comporte un terme à 17 littéraux lorsque est inclus. Les conceptions larges pratiques décomposent ou regroupent la logique.
- Supposer que le CLA est toujours plus rapide. Pour de petites largeurs, une propagation peut gagner en surface et respecter aisément le timing. Il n’existe pas de largeur seuil indépendante de l’architecture.
- Confondre les chemins critiques de somme et de retenue. La profondeur du réseau de retenue domine le délai total, mais le XOR final de somme ajoute encore un délai de porte. Spécifier le délai comme la seule « profondeur du réseau de retenue » est une erreur fréquente.
Et ensuite ?
Continuez avec Fonctionnement d’une UAL : l’unité arithmétique et logique à partir des portes, puis l’additionneur de Booth expliqué pour une autre optimisation arithmétique.
Pour comparer les deux architectures d’additionneur, ouvrez le modèle d’additionneur complet avec retenue, enchaînez quatre instances comme additionneur à propagation et observez la propagation bit par bit sur l’analyseur logique. Construisez ensuite le CLA 4 bits équivalent avec les équations de cet article et mesurez les deux circuits : toute la raison d’être des UAL rapides est là.
