Optimisation de chemins de données arithmétiques

Optimisations arithmétiques

Ce document : « Optimisation de chemins de données arithmétiques par l’utilisation de plusieurs systèmes de numération ». Il a en effet étudié l’impact de l’introduction de l’arithmétique redondante dans le flot de conception, étude qui lui a permis de formaliser une méthode complète d’outils d’optimisation utilisant l’arithmétique redondante.

Il a tout d’abord étudié l’usage conjoint de l’arithmétique redondante et de l’arithmétique classique. Il a pour cela défini une nouvelle arithmétique qu’il a appelée arithmétique mixte, étant la combinaison de ces deux représentations. Dans le but de montrer l’intérêt de cette nouvelle arithmétique, il a présenté les architectures des différents opérateurs en faisant une étude comparative entre les performances intrinsèques des opérateurs redondants et mixtes et celles des opérateurs classiques. Il a ensuite déterminé l’impact de l’utilisation de ces nouvelles architectures dans la conception de circuits en étudiant les enchaînements d’opérateurs. Cette étude lui a permis de proposer des règles d’optimisations automatisables consistant à remplacer un enchaînement d’opérateurs utilisant l’arithmétique classique par des opérateurs utilisant l’arithmétique redondante. L’utilisation de ces règles permet d’optimiser automatiquement les chemins de données arithmétiques.

Son travail s’est concrétisé par la spécification d’une méthodologie d’aide à la conception de chemins de données. Dans cette spécification il a tout d’abord explicité un cadre de développement permettant la mise en œuvre automatisée des règles d’optimisation présentées, et a défini ensuite ce qu’il a appelé un proto-langage.Dans un premier temps, nous faisons une synthèse de la méthode d’optimisation formalisée par Yannick Dumonteix. Nous présentons les différentes étapes d’optimisation, étapes qui ont servi de base à nos travaux. Nous présentons également l’envi- ronnement de conception, avec entre autres les fonctionnalités de son protolangage, correspondant principalement aux contraintes dues à l’arithmétique redondante.

Phase d’initialisation

Dans la suite de ce manuscrit, les signaux non redondants (noté NR) seront re- présentés par une simple flèche et les signaux redondants (noté R) par une double flèche (en effet, les nombres redondants sont codés sur deux termes). Les opérateurs redondants (opération entre deux nombres redondants) et mixtes (opération entre un nombre redondant et un nombre non redondant) seront donc représentés avec des signaux redondants (doubles flèches) pour leurs entrées/sorties redondantes et des signaux non redondants (simples flèches) pour leurs entrées/sorties non redondantes. Un code des couleurs sera également adopté de façon à rendre plus lisibles les opé- rateurs utilisés : cyan pour les opérateurs classiques, magenta pour les opérateurs redondants et mixtes, et blanc pour les convertisseurs permettant de passer d’une repré-Considérons l’exemple de la Figure 1.2. Notre postulat de base est que les additionneurs redondants sont plus petits et plus rapides que les additionneurs classiques. De plus, comme nous le verrons en détails dans le Chapitre 2, un nombre redondant codé en représentation Carry-Save est la somme de deux éléments, on parle alors de somme non encore effectuée ; cela permet d’effectuer la somme de quatre termes avec un seul additionneur redondant plutôt qu’avec trois additionneurs classiques.

Passage en redondant dès que possible

L’exemple présenté précédemment est un cas idéal se réduisant uniquement à une succession d’opérateurs arithmétiques. Un chemin de données arithmétique ne se ré- duit cependant pas à cela, il faut également prendre en compte les opérateurs non arithmétiques, tels que les multiplexeurs et les opérateurs booléens. Ces opérateurs doivent garder les signaux à leur interface en non redondant, il est donc possible qu’ils compromettent le passage en redondant en obligeant l’utilisation d’opérateurs classiques. C’est pourquoi il ne faut pas parler de passage tout en redondant mais de passage en redondant dès que possible. De façon à pouvoir utiliser quand même des opérateurs redondants et ainsi améliorer les performances du chemin de données arithmétique, des solutions sont proposées pour les deux cas dans lesquels le bloc non arithmétique empêche le passage en redondant comme montré dans la Figure 1.4..

En effet, dans certains cas, il est préférable de ne pas transformer un opérateur ensa version redondante pour optimiser la chaîne longue. Plus précisément, l’objectif est d’exploiter les déséquilibres de chemins de façon à réduire le nombre d’entrées redondantes des opérateurs se situant dans la chaîne longue afin d’utiliser des opérateurs mixtes. Cela permet de cette façon de minimiser la chaîne longue car les opérateurs mixtes sont plus petits et plus rapides que leur équivalent redondant. Le principe est donc de partir de la version totalement redondante d’un chemin de données et d’insérer à bon escient des convertisseurs de notation redondante vers notation classique (noté R ! N R) permettant ainsi l’utilisation des opérateurs mixtes.

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *