• Aucun résultat trouvé

Formalisation du parallelisme de l'addition

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 speci ques.

4.3.1 Tranche d'addition

On considere une tranche de bits compris entre les bits j etidans laquelle se propage une retenue.

De nition 4.3.1

La tranche [i;j] suivante est appelee tranche: [i;j] =PGjj;PGjj

+1;PGji.

Une tranche est une addition e ectuee 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 speci ee. 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).

De nition 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'e ectue comme si celles-ci etaient de simples bits, a la di erence 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 modi er 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: Modi cation 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 modi e 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 densi e, tandis que la translation d'un bit de coupe peut avoir des e ets 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 signi cativement 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 facon

aleatoire

.

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.

4.4 Optimisation de l'addition sous contraintes