n 2 carry select d2n, p 2ne d p 2ne d p 2ne np 2n 2 d2n, p 2ne 2 Sklanski d n 2log2ne dlog2ne n 2 -
-Kogge-Stone dn(log2n,1)e dlog2ne 2 n
2:log2n n
2:log2n
Brent-Kung d2n,log2ne d2log2n,2e d2log2n,2e - -Han-Carlson d n 2log2ne dlog2ne + 1 2 n 4:log2n n 4:log2n
Tableau 4.1: Comparaison des architectures classiques d'additionneurs.
4.3 Formalisation du parallelisme de l'addition
La presentation precedente des additionneurs classiques a mis en evidence leurs archi-tectures serielles ou paralleles. Nous proposons donc un formalisme exprimant le degre de parallelisme de la propagation de la retenue. De cette modelisation, on en deduit des techniques d'exploration de l'espace des solutions dont le but est d'obtenir la
Formalisation du parallelisme de l'addition
65 meilleure solution pour chacun des circuits synthetises. Nous presenterons egalement des methodes applicables aux technologies FPGA/CPLD et aux contraintes tem-porelles speciques.4.3.1 Tranche d'addition
On considere une tranche de bits compris entre les bits j etidans laquelle se propage une retenue.
Denition 4.3.1
La tranche [i;j] suivante est appelee tranche: [i;j] =PGjj;PGjj+1;PGji.
Une tranche est une addition eectuee sur une portion du mot (entrej eti) pour laquelle tous les termes de generation et propagation PGj
k (j k i) sont calcules. Toutefois, l'architecture de cette tranche n'est pas speciee. Le but de l'addition est de calculer la tranche [n,1;0]. Pour atteindre cette tranche, des tranches plus petites peuvente ^etre calculees et additionnees selon (4.1).
Denition 4.3.2
Un arbre est un arbre dont les feuilles et les nuds sont des tranches. Un nud [i;j] a pour sous-arbres les tranches [k;j], [l;k+1],, [i;r+ 1] avec j k lr i, si et seulement si[i;j] est calculee a partir des tranches precedentes. Les bits k;l;r sont appeles bits de coupe.L'addition des tranches s'eectue comme si celles-ci etaient de simples bits, a la dierence que tous les bits d'une tranche doivent avoir leur terme de propagation et de generation calcules. Les additionneurs classiques s'expriment donc par un arbre plus ou moins profond dont les tranches peuvent ^etre realisees seriellement ou par-allelement. On peut forcer les tranches a ^etre uniquement serielles: le arbre est donc unique. Toutefois, certaines architectures ne peuvent pas ^etre representees par un tel arbre. Tandis que si l'architecture des tranches n'est pas contrainte, tous les additionneurs peuvent ^etre decrit de la sorte.
Dans ce qui suit, nous donnons la representation en arbre la plus ne possi-ble, puisqu'en concatenant les tranches consecutives, on peut trouver beaucoup de arbres equivalents. Comme le montre la gure 4.5, un additionneur ripple carry est une concatenation serielle de tranches elementaires, un carry select est une concatenation serielle de tranches serielles de longueurs croissantes, et un carry look-ahead Sklanski est un arbre logarithmique de tranches elementaires.
Les autres additionneurs paralleles (a delai logarithmique) ne se representent pas par un arbre de tranches serielles puisque les pseudo-tranches consecutives con-tiennent certains bits sans terme de propagation ou de generation (Brent-Kung ou Han-Carlson) ou que les sous tranches a concatener ne sont pas consecutives (Kogge-Stone). Toutefois, l'arbre [15;0] les represente sachant que la structure de cette tranche est une architecture particuliere (BK par exemple). Cela permet d'utiliser, dans la construction d'un arbre, des tranches de toutes les architectures possibles.
Formalisation du parallelisme de l'addition
66 [1,0] [3,2] [3,0] [6,4] [10,7] [6,0] [10,0] [15,11] [15,0] [1,0] [3,2] [5,4] [7,6] [9,8] [11,10] [13,12] [15,14] [3,0] [7,4] [11,8] [15,12] [7,0] [15,8] [15,0] [0,0] [1,1] [2,2] [15,15] [1,0] [2,0] [15,0] ... ...ripple carry carry select carry look-ahead
Figure 4.5: arbre des additionneurs classiques.
4.3.2 Exploration de l'espace des solutions
Puisque beaucoup d'additonneurs s'expriment par un arbre de tranches serielles, on peut en modier la structure pour parcourir une partie de l'espace des solutions [40]. En partant d'un arbre existant, on modife sa structure en
creant
,eliminant
ou
translatant
une coupe. La gure 4.6 gauche montre la translation du bit de coupe 2 au bit de coupe 3. Les deux tranches correspondantes sont donc decalees, de [5;3] a [5;4] par exemple. L'arbre de droite montre la creation du bit de coupe 1, formant ainsi deux nouvelles tranches [1;0] et [3;2].[2,0] [5,3] [5,0] [3,0] [5,4] [5,0] [1,0] [3,2] [3,0] [5,4] [5,0] translation élimination création
Figure 4.6: Modication de la structure d'un arbre.
La donnee d'un arbre est susante pour calculer son delai et sa surface puisque le delai d'une cellule , la profondeur du arbre et la sortance sont connues. On peut donc parcourir beaucoup de solutions en tres peu de temps (l'application d'une des trois operations elementaires modie peu le calcul des performances de la solution precedente.) Le choix de l'operation depend du critere de selection: la creation d'un point de coupe parallelise l'addition donc l'accelere et le grossit, l'elimination d'un bit de coupe le serialise donc le ralentit et le densie, tandis que la translation d'un bit de coupe peut avoir des eets variables suivant la taille des sous-arbres correspondants. Cette methode iterative ne s'applique que lorsqu'il n'y a pas de contraintes fortes du circuit (temporelles ou technologiques) sans quoi les approches des deux sections suivantes seront appliquees.
Optimisation de l'addition sous contraintes temporelles
67 un arbre d'une bonne solution, a savoir celle generee par notre outil de synthese lors d'une compilation en vitesse sous contrainte de surface. L'objectif est donc de diminuer le chemin critique sans augmenter signicativement la complexite. Les gains moyens, obtenus pour la technologie Compass vsc370 sont de 7.5% en performance pour une m^eme surface moyenne. Notons que s'il est possible de diminuer le chemin critique en augmentant la surface, il est plus dicile de ne pas la deteriorer. Lorsque les contraintes temporelles ou technologiques sont fortes et precises, la structure du arbre n'est plus determinee de faconaleatoire
.Taille additionneur initial additionneur nal gain (%)
surface CC surface CC surface CC
14 198 7.8 210 7.3 -6.0 6.4 16 258 8.4 244 7.8 5.4 7.1 18 281 8.5 281 8.1 0 4.7 20 283 9.3 302 8.8 -6.7 5.4 22 348 9.5 349 8.8 -0.3 7.4 24 310 10.0 304 9.7 0.2 3.0 26 381 10.3 381 10.3 0 0 28 514 10.1 502 9.2 2.3 8.0 30 567 11.0 574 9.5 -1.2 13.6 32 639 11.4 678 10.1 -6.1 11.4 34 788 11.1 727 10.3 7.7 7.2 total -0.4 7.4 CC = chemin critique
Tableau 4.2: Optimisation aleatoire d'un arbre inital.