• Aucun résultat trouvé

CHAPITRE 4 NULL CONVENTION LOGIC SIMPLIFIÉE : SHF-NCL

4.4 Étude du Gain

4.4.1 Relevés sur différents exemples

Dans un premier temps, nous quantifions le surplus engendré par l’ajout du signal e. Ce surplus devrait être inférieur au gain réalisé sur les circuits de manière à observer un gain total. Il est important de noter que le surplus est observé au niveau des registres alors que le gain est observé au niveau de la logique. Par conséquent, dans les exemples suivants, nous considérerons que chacun des modules étudiés est encadré par deux registres sauf mention contraire.

4.4.1.1 Surplus

Premièrement, intéressons-nous au surplus de logique que cette modification implique. Dans un environnement ASIC, pour chaque porte avec mémorisation de l’état interne cette modification revient à supprimer entre 2 et 12 transistors dépendamment de la porte et du type de design considérés. Le type de design faisant référence aux types statique ou semi-statique discutés dans la sous-partie 4.1.3 de ce chapitre. Dans un environnement FPGA, les ressources nécessaires pour mener à bien cette modification vont dépendre de l’architecture visée. Cela dépend notamment du nombre d’entrées des LUT ainsi que des éléments logiques et de mémoire disponibles. Le Tableau 4.3 présente des relevés d’utilisation de ressources pour un registre NCL et SHF-NCL instanciés sur différentes architectures.

Tableau 4.3. Comparaison des ressources pour un registre de 1-bit

FPGA Type # LUT # Éléments de mémoire

Virtex5 Virtex4 NCL 3 2 SHF-NCL 5 2 Igloo NCL 7 2 SHF-NCL 8 2 ProAsic3 NCL 7 2 SHF-NCL 8 2

En moyenne cela correspond à un surplus de ressources de 26% par rapport au registre 1-bit NCL. Pour un registre de plusieurs bits, nous avons vu que l’on peut utiliser des signaux (A, C) uniques pour les N bits du registres. De cette manière, le surplus de ressources devient de plus en plus petit avec l’augmentation du nombre de bits N du registre comparativement au nombre total d’éléments. Les tableaux Tableau 4.4 et Tableau 4.5 ainsi que la Figure 4-21, permettent de quantifier cette évolution sur quelques architectures de FPGA. Pour le Tableau 4.4, les résultats

sont exprimés sous la forme « nombre de LUT – nombre de loquets ». Pour l’ensemble des résultats le paramètre N représente le nombre de bits du registre considéré.

Tableau 4.4. Éléments utilisés pour divers N

FPGA Type N = 1 N = 2 N = 3 N = 4 N = 5 N = 10 N = 20 Virtex5/4 NCL 3 - 2 5 - 5 9 - 7 13 - 9 15 - 11 30 - 21 59 - 41 SHF-NCL 5 - 2 5 - 5 9 - 7 13 - 9 15 - 11 30 - 21 59 - 41 Igloo NCL 7 - 2 16 - 5 24 - 7 32 - 9 40 - 11 82 - 21 160 - 41 SHF-NCL 8 - 2 17 - 5 25 - 7 33 - 9 41 - 11 82 - 21 163 - 41 ProAsic3 NCL 7 - 2 16 - 5 24 - 7 32 - 9 40 - 11 82 - 21 160 - 41 SHF-NCL 8 - 2 17 - 5 25 - 7 33 - 9 41 - 11 82 - 21 163 - 41

Tableau 4.5. Surplus en fonction du nombre N de bits

FPGA N = 1 N = 2 N = 3 N = 4 N = 5 N = 10 N = 20

Virtex5/4 40% 0% 0% 0% 0% 0% 0%

Igloo 11% 4,8% 3,2% 2,4% 2% 0% 1,5%

ProAsic3 11% 4,8% 3,2% 2,4% 2% 0% 1,5%

Moyenne 20,67 % 3,20 % 2,13 % 1,60 % 1,33 % 0,00 % 1,00 %

Figure 4-21. Évolution du surplus en % en fonction de N

La Figure 4-21 permet pleinement d’observer une dépendance inversement proportionnelle à N*log(N). En effet, la courbe bleue représente les mesures effectuées alors que la courbe rouge montre une évolution en 1/(N*log(N)). Ceci s’explique par le fait que pour chaque bit ajouté, la complexité des portes de type TH22 augmente de manière proportionnelle à N, de même que la complexité du premier étage de la partie de calcul de la complétude. En revanche pour combiner ces N premiers signaux intermédiaires de calcul de la complétude, il faut un nombre de portes en O(N*log(N)). Le surplus étant un nombre de portes indépendant de N, on obtient la complexité

0 5 10 15 20 25 0 5 10 15 20 25

mentionnée. Ces résultats permettent donc d’appréhender l’évolution du surplus par rapport au nombre et à la taille des registres. On constate de plus que cette évolution dépend du type d’architecture choisi. Pour pouvoir conclure par rapport au potentiel de cette simplification, il est alors nécessaire de comparer ce surplus au gain réalisé dans la partie combinatoire. Pour cela prenons quelques exemples avant de statuer sur le gain maximal théorique. Comme souligné plus haut, les circuits étudiés ci-dessous prennent en compte le surplus induit par un registre d’entrée et un registre de sortie ayant le nombre convenable de bits. De la sorte, les résultats présentés seront pessimistes car le surplus des registres devrait alors être partagé sur les deux étages de logique desquels ils réalisent la jonction. Néanmoins cela nous permet d’obtenir une valeur de gain minimal pouvant être espéré pour chacun des exemples.

4.4.1.2 Porte OU-Exclusif

Le premier exemple que nous utiliserons est celui de la porte OU-Exclusif représentée sur la Figure 4-22 pour des raisons de commodité.

Figure 4-22. Schéma du XOR représenté selon la convention NCL

Les résultats en termes de complexité pour différentes architectures sont donnés dans le Tableau 4.6. La notation employée représente le nombre total d’éléments utilisés puis, entre parenthèses, respectivement le nombre d’éléments logiques et le nombre d’éléments de mémoire. On notera que pour une architecture telle que celle des Igloo d’Actel, un loquet requiert deux éléments de base. On observe alors que pour un circuit aussi peu complexe qu’un porte OU-Exclusif, le gain en termes de ressources peut être aussi élevé que 17%.

Tableau 4.6. Gain obtenu sur l'exemple de la porte XOR

FPGA NCL SHF-NCL Gain

Virtex5/4 28(11 + 17) 22 (7 + 15) 21,4% Igloo 49(11*2 + 27) 43(7*2 + 29) 12,2%

Moyenne - - 16,80 %

4.4.1.3 Additionneur 1-bit avec retenue

Le second circuit étudié est celui d’un additionneur 1-bit avec retenue présenté dans le Chapitre 3. Les résultats en termes de complexité sur ce circuit sont regroupés dans le Tableau 4.7 pour lequel la notation employée est la même que précédemment.

Tableau 4.7. Gains obtenus sur l'exemple du Full-adder

FPGA NCL SHF-NCL Gain

Virtex5/4 42(16+26) 39(12+27) 7,1% Igloo 77(16*2+35) 69(12*2 + 45) 10,4%

Moyenne - - 8,75 %

Le gain moyen observé en termes de ressources utilisées est aux alentours de 9% dépendamment du type d’architecture visée.

4.4.1.4 Circuit d’incrémentation

Le cas du circuit d’incrémentation est particulièrement intéressant car il permet de mettre en jeu une succession de registres sans logique entre ceux-ci. Le surcoût dû à la génération des signaux

A et C devrait alors être plus significatif. D’autre part, étant un circuit itératif, il permet

d’observer l’impact de l’augmentation du nombre de bits noté N sur le gain. Le circuit utilisé est celui de la Figure A4-9. Concernant l’utilisation des ressources, les résultats pour plusieurs architectures sont présentés dans le Tableau 4.8 pour un nombre variable N de bits.

On peut alors constater que plus le nombre de bits est élevé plus le gain est important. Ce qui semble intuitif en ce sens qu’augmenter le nombre de bits accroît le nombre d’éléments de mémoires dans les registres dans les mêmes proportions pour les deux types de designs mais diminue fortement le nombre de ces éléments dans la logique. De plus le surplus étant fixe, cela implique que l’on peut espérer un gain plus important avec l’augmentation du nombre N.

Tableau 4.8. Gains obtenus pour le circuit d'incrémentation pour différents nombre de bits N

FPGA Type N = 1 N = 2 N = 3 N = 4 N = 5 N = 8 N = 16 Gain

Moyen Virtex5/4 NCL 73 107 131 162 186 273 517 8,5% SHF- NCL 74 99 122 144 167 240 449 Gain -1,4% 7,5% 6,9% 11,1% 10,2% 12,1% 13,2% Igloo NCL 114 159 202 247 294 427 773 11,7% SHF- NCL 114 149 180 215 248 351 629 Gain 0% 6,3% 10,9% 13,0% 15,6% 17,8% 18,6% Gain moyen - -0,7% 6,9% 8,9% 12,5 12,9% 15,0% 15,9% 10,1%

4.4.1.5 Unité Arithmétique et Logique

Finalement, le dernier circuit considéré est celui de l’unité arithmétique et logique présentée dans l’ANNEXE 4 et décrite en détails dans [37]. Hormis les deux registres d’entrée et de sortie respectivement de six et trois bits, on peut constater que dans ce design la majeure partie des ressources utilisées l’est dans la logique. Il est donc pertinent de s’attendre à obtenir un gain élevé en appliquant l’amélioration proposée. Les relevés des rapports de synthèse pour ce même design réalisé avec et sans l’amélioration nous permette d’avoir un gain de l’ordre de 49% sur les deux architectures précédemment utilisées.

En conclusion, au travers de ces quatre exemples, nous avons pu constater que le surplus dû au passage du NCL au SHF-NCL est amplement compensé par le gain réalisé par la suppression des éléments de mémoire dans la logique. On obtient alors un gain substantiel susceptible d’améliorer les performances en termes de débit mais aussi en termes de consommation comme nous tentons de l’observer dans la suite. On notera toutefois que le gain peut varier grandement entre un circuit et un autre. L’analyse du gain maximal théorique présentée dans la sous-partie 4.4.3 tentera d’apporter des réponses à cette observation.