• Aucun résultat trouvé

4.2.1 Principe de l'addition

Les circuits arithmetiques utilisent des entiers dont la position des bits est numerotee de 0 a n,1, le bit de poids le plus faible etant a droite des gures. A chaque position

i, la retenue sortanteci+1 peut-^etre soit

generee

(ci+1= 1), soit

detruite

(ci+1 = 0), soit

propagee

(ci+1 =ci). Puisque seuls deux de ces signaux sont necessaires, nous retiendrons la generation (gi = ai:bi) et la propagation (pi = ai bi) pour la posi-tion i. L'addition consiste donc a calculer les signaux (pi;gi) pour i2[0;n,1], a en deduire les retenues ci pouri2[1;n,1], puis a determiner les sortiessi =pici pour

i2[0;n,1]. Des methodes directes permettent de realiser l'addition sans l'utilisation des termes de propagation et generation, mais on peut toujours les modeliser gr^ace a ce formalisme.

Alors que les signaux (pi;gi) sont de nis pour la positioni, on cherche a de nir les signaux (Pij, Gji), notes PGji pour la tranche de bits [j;i]. Pij signi e que la retenue se propage de la position j a la position i(ci+1 =cj) et Gj

i signi e que la retenue est generee quelque part entre j eti et propagee jusqu'a la positioni(ci+1 = 1). Pour ce faire, on utilise les groupes consecutifs PGjk

,1 et PGki selon la relation:

PGj

i = (Pki:Pj

k,1;Gki+Pki:Gj

k,1): (4.1)

Puisqu'en absence de retenue entrante, ci = G0

i,1, (4.1) permet de calculer les sorties en fonctions des retenues ci. (On ne calculera jamais les termes P0

i,1.)

4.2.2 Organisations classiques

Les organisations classiques ne representent que la structure de calcul des retenues ci. On ne represente pas les etapes initiale et nale. Ils s'articulent autour de la cellule , realisant la relation (4.1), comportant donc quatre entrees et deux sorties selon la gure 4.2. Il ne s'agit pas d'une cellule d'addition full adder. Bien entendu, ces equations seront convenablement decomposees sur des cellules rapides inverseuses de la bibliotheque cible dans la phase de decomposition technologique, mais puisque tous les additionneurs seront equitablement decomposes, le nombre et la profondeur de cellules  est une excellente mesure de la complexite et du delai de ces architectures. L'additionneur ripple carry consiste a calculer

seriellement

les retenues. On peut egalement integrer la cellule  avec les etages initiaux et naux dans un full adder. La surface et le delai de cette architecture sont

lineaires

par rapport a la taille de l'addition. Si on utilise des portions de ripple carry de tailles croissantes en les connectant astucieusement, on obtient un additionneur carry select. La com-plexite double mais le delai est en racine carree de la longueur du mot. La gure 4.3 montre bien comment ces deux architectures ont en commun l'utilisation de portions de cellules  connectees en serie. Alors que l'architecture de gauche est entierement

Les additionneurs classiques

62 G i k Pj k-1 P j i P i j G k-1 j k i G Figure 4.2: Cellule .

serielle, celle de droite ne comporte que de petites portions d'additions en serie de tailles croissantes. Elles sont donc petites mais tres lentes.

carry select ripple carry

Figure 4.3: Additionneurs series ripple carry et carry select.

La seconde grande categorie (additionneurs carry look-ahead) consiste a traiter les positions

parallelement

pour un accroissement de la complexite mais pour un delai

logarithmique

. Pour tous, un arbre binaire est construit pour les positions en puis-sance de deux. Les di erentes architectures se distinguent pour les sorties restantes: l'additionneur de Kogge et Stone [33] copie l'arbre binaire pour les bits de poids plus faible. Sklanski construit egalement un arbre logarithmique mais utilise celui de la position en puissance de deux precedentes [34]. La complexite est donc plus faible mais la sortance cro^it exponentiellement. Ces deux solutions sont structurellement optimales. Brent et Kung construisent le reste des positions en utilisant les bits les plus signi catifs deja construits [35]. Finalement, l'additionneur de Han et Carlson [36] utilise l'architecture de Kogge et Stone pour les bits pairs et deduit les posi-tions impaires en une couche supplementaire. La gure 4.4 resume les 4 algorithmes classiques carry-look-ahead: ils ont en commun une profondeur logarithmique, c'est-a-dire un nombre de cellules correspondant au logarithme de la taille des operandes. Pour les additionneurs de 16 bits presentes, l'architecture de Sklanski ne totalise que

Les additionneurs classiques

63

Sklanski Kogge & Stone

Brent & Kung Han & Carlson

Figure 4.4: Additionneurs carry look-ahead.

4.2.3 Modeles de puissance

L'activite causee par une propagation de retenue sur k positions d'un additionneur ripple carry est proportionnel a k2

2 selon [37], la propagation s'e ectuant sur une chaine de bits a 1 consecutifs. Or le nombre de chaines de 1 de longueur k dans un mot de longueur n est N(n;k) = 2n,k(1 + n,k,1

4 ) [38]. On en deduit l'activite moyenne: Aripple totale = 12n n X k=0 k2 2 N(n;k) = 3n,4 4 , 2n2 2n+3 ,! 3n 4 : (4.2)

Puisque les sorties sont equiprobables, l'activite logique moyenne est:

Aripple

logique = n

2: (4.3)

On en deduit un rapport entre puissance inutile et logique de 1

3. Pour le carry select, le premier niveau consiste en des ripple carry de taille croissante (de 1 a p

n), et le deuxieme niveau est approche par un ripple carry mais dont la capacite attaquee a la positioni est proportionnel a i. L'activite totale ainsi comptabilisee s'eleve a:

Aselecttotale

,!

np

2n

2 ; (4.4)

pour une activite logique de:

Aselectlogique =n,

p

2n

2 : (4.5)

Les additionneurs carry look-ahead n'ont pas, ou tres peu de puissance inutile puisque tous les chemins sont de m^eme longueur. Le terme de propagation Et

Formalisation du parallelisme de l'addition

64 s'attenue tres vite alors que le terme de generation Ou reste quasiment constant a 1

2. Cette approximation permet d'evaluer la puissance totale de l'additioneur Kogge et Stone a la moitie du nombre de cellules, soit:

AKStotale = n

2:log2(n): (4.6)

Les activites theoriques que nous avons ici calculees sont veri ees gr^ace a l'estimateur developpe dans le chapitre precedent. Cette comparaison est une validation supplementaire de notre estimateur sur des circuits de grande profondeur. Nous fournirons une car-acterisation experimentale de ces puissances dissipees dans la section consacree aux multiplieurs.

4.2.4 Comparaisons

Les architectures classiques d'additionneurs sont recapitulees dans le tableau 4.2.4 [39], ou gurent la surface et le delai en terme de cellules , la sortance maximale ainsi que la puissance moyenne totale et logique. Les delais sont lineaires ou logarithmiques, la surface lineaire ou fonction du produit n:log2n. La sortance est en general faible mais lineaire pour l'additionneur de Sklanski, ce qui le penalise pour des operandes de grandes tailles. En e et, dans une technologie sensible a la sortance, une sortance de quatre ou cinq equivaut au delai d'une porte logique. En n, la puissance dissipee est proportionnelle a la surface, mais presente un portion signi cative de transitions redondantes pour les additionneurs series.

Architectures surface delai sortance activite activite maximale totale logique

ripple carry n - 1 n - 1 2 3n