• Aucun résultat trouvé

1.4 M´ethodologie de conversion en virgule fixe

1.4.2 Optimisation de la largeur des donn´ees

La seconde ´etape du processus de conversion en virgule fixe correspond `a la d´eter- mination du nombre de bits pour la partie fractionnaire. Le nombre de bits choisi pour la partie fractionnaire influence la pr´ecision des calculs mais aussi le coˆut de l’implanta- tion. Ainsi, l’objectif est de minimiser le coˆut de l’implantation tant que les contraintes de performance de l’application sont respect´ees. L’´evaluation directe des performances ´etant assez complexe, une m´etrique interm´ediaire permettant de quantifier la pr´ecision des cal- culs est utilis´ee. Le processus d’optimisation n´ecessite d’´evaluer le coˆut de l’implantation et la pr´ecision des calculs

´

Evaluation de la pr´ecision

L’utilisation de l’arithm´etique virgule fixe limite la pr´ecision des calculs et conduit `a une erreur de quantification en sortie correspondant `a la diff´erence entre le r´esultat en pr´ecision finie et celui en pr´ecision infinie. Cette erreur de quantification est consid´er´ee comme un bruit ajout´e au r´esultat. Il est donc n´ecessaire de v´erifier que le comportement de l’algorithme utilisant l’arithm´etique virgule fixe change dans une limite raisonnable. Pour cela, une m´etrique de pr´ecision doit ˆetre d´etermin´ee et cette m´etrique sera calcul´ee en fonction des largeurs de donn´ees.

Il existe diff´erentes m´etriques d’´evaluation de la pr´ecision, comme les bornes du bruit, les moments du bruit ou le nombre de bits significatifs associ´es `a chaque donn´ee. La m´etrique la plus utilis´ee dans le traitement num´erique du signal est la puissance du bruit de quantification, ou le rapport signal `a bruit de quantification (RSBQ). Soit Pb la puissance

du bruit de quantification et Py la puissance du signal en sortie, le RSBQ est d´efini par

RSBQ = Pb Py , (1.33) ou en dB RSBQdB= 10 log Pb Py . (1.34)

Dans cette section, les m´ethodes d’´evaluation du RSBQ en fonction des largeurs de donn´ees sont pr´esent´ees. Ces m´ethodes peuvent `a nouveau ˆetre class´ees en deux familles : les m´ethodes statistiques et les m´ethodes analytiques.

M´ethodes statistiques L’´evaluation des performances d’un syst`eme en virgule fixe peut ˆetre r´ealis´ee `a partir de simulations en virgule fixe. Soit y le r´esultat en sortie de la simulation en virgule flottante et yfixed le r´esultat de la simulation en virgule fixe, la

puissance du bruit de quantification est consid´er´ee ´egale `a

Pb= E



(y− yfixed)2)



, (1.35)

sous r´eserve d’un nombre de simulations suffisant pour la m´ethode de Monte–Carlo. La simulation en virgule flottante est consid´er´ee comme tr`es proche du r´esultat en pr´ecision in- finie car l’erreur de quantification associ´ee `a cette repr´esentation est tr`es faible par rapport `

a celle associ´ee `a l’arithm´etique en virgule fixe.

Il existe diff´erentes techniques de simulation en virgule fixe. La technique la plus simple consiste `a convertir apr`es chaque op´eration en virgule flottante le r´esultat en virgule fixe par arrondi ou par troncature. Dans [80], les auteurs proposent d’utiliser la surcharge des op´erateurs pour impl´ementer les op´erations en virgule fixe `a travers la classe gFix. Dans MATLAB, la boˆıte `a outils Fixed-Point fournit des types en virgule fixe assez complets. D’autres outils utilisent les caract´eristiques de la machine hˆote pour acc´el´erer la simulation en virgule fixe (pFix [80], FRIDGE [79], etc.).

Cependant, le temps de simulation reste relativement important. Pour un seul change- ment dans la sp´ecification virgule fixe, une nouvelle simulation est requise. De plus, pour avoir les informations statistiques de l’erreur de quantification, comme la valeur moyenne de la puissance, il est n´ecessaire de r´ealiser des simulations sur un nombre de points as- sez ´elev´e. Afin de r´eduire le temps de simulation, les m´ethodes analytiques peuvent ˆetre utilis´ees.

M´ethodes analytiques L’objectif des m´ethodes analytiques est de d´efinir l’expression math´ematique de la m´etrique de pr´ecision en fonction des largeurs de donn´ees. L’obten- tion de cette expression math´ematique peut n´ecessiter un temps d’ex´ecution relativement important mais cette expression est d´etermin´ee une seule fois. Ensuite, chaque ´evaluation de la pr´ecision correspond `a l’´evaluation d’une fonction math´ematique dans laquelle le r´esultat est obtenu tr`es rapidement.

Pour calculer l’expression analytique de la puissance du bruit de quantification, les approches existantes sont bas´ees sur la th´eorie de la perturbation. Les valeurs en pr´eci- sion finie correspondent aux valeurs en pr´ecision infinie entach´ees d’une perturbation dont l’amplitude est tr`es faible par rapport `a l’amplitude des valeurs en pr´ecision infinie. Cette perturbation peut ˆetre assimil´ee `a un bruit. Chaque source de bruit bi se propage au sein

du syst`eme et contribue au bruit global en sortie du syst`eme. Cette propagation doit ˆetre mod´elis´ee pour obtenir l’expression du bruit de quantification en sortie [130]. Un d´evelop- pement en s´erie de Taylor du premier ordre est utilis´e pour lin´eariser le comportement des op´erations en pr´esence d’un bruit de quantification en entr´ee.

Le bruit de sortie by est la somme de toutes les contributions des Ne sources de bruit.

Le moment du second ordre de by peut ˆetre exprim´e comme une somme pond´er´ee des

param`etres statistiques des sources de bruit, ce qui donne [97]

Eb2y= Ne X i=1 Ki· σb2i+ Ne X i=1 Ne X j=1 Lij · µbiµbj. (1.36)

Les termes µbi et σ

2

bi sont respectivement la moyenne et la variance de la source de

bruit bi. Les termes Ki et Lij sont des constantes et d´ependent du syst`eme situ´e entre bi et

la sortie. Ainsi, ces termes sont d´etermin´es une seule fois pour l’obtention de l’expression analytique de la pr´ecision.

Conclusions Les deux types d’approche permettant d’´evaluer la pr´ecision d’une im- pl´ementation en virgule fixe ont ´et´e r´esum´es. Les m´ethodes statistiques bas´ees sur la si- mulation de l’algorithme en virgule fixe sont plus simples et applicables `a tous les types d’algorithme de traitement num´erique du signal. Cependant, ces techniques conduisent `a des temps de simulation ´elev´es et plus particuli`erement si elles sont int´egr´ees au sein d’un processus d’optimisation du format des donn´ees o`u un grand nombre de simulations est n´ecessaire. En effet, le surcoˆut dans l’´emulation de la virgule fixe augmente le temps de simulation par rapport `a la virgule flottante.

La seconde approche correspond aux m´ethodes analytiques permettant d’obtenir l’ex- pression de la m´etrique de pr´ecision. Une expression fournissant des informations sur le comportement du bruit au sein de l’algorithme en virgule fixe est calcul´ee analytiquement une seule fois. Ensuite, le temps d’´evaluation de la pr´ecision d’un sp´ecification virgule fixe correspond au temps d’´evaluation de cette expression, ce qui est d´efinitivement plus faible que le temps de simulation de l’application en virgule fixe. Le gain en temps des m´ethodes analytiques est tr`es important sauf lorsque le nombre de simulations est faible.

Optimisation des largeurs

Soit b une sp´ecification virgule fixe, c’est-`a-dire une combinaison de la largeur des op´erations. b est un vecteur de N ´el´ements correspondant aux largeurs des op´erations :

b= [b1, b2, ..., bN] (1.37)

o`u N est le nombre d’op´erations, bk est la largeur (le nombre de bits) pour l’op´eration

k. Le nombre de bits pour la partie enti`ere a ´et´e d´etermin´e dans l’´etape pr´ec´edente et ne varie pas pendant la proc´edure d’optimisation. Soit λ la m´etrique de pr´ecision etC le coˆut correspondant `a cette sp´ecification. L’objectif est de minimiser le coˆut en conservant une pr´ecision sup´erieure `a un seuil λmin :

minC(b) avec λ(b) ≥ λmin. (1.38)

Ceci est un probl`eme d’optimisation combinatoire. La taille N du probl`eme peut ˆetre r´eduite en regroupant des op´erations [68] de mani`ere `a ce que les op´erations d’un mˆeme groupe poss`edent le mˆeme format. Ainsi, ce regroupement n´ecessite une connaissance pr´ea- lable de la largeur des op´erateurs. Donc, pour un meilleur r´esultat, la synth`ese d’architec- ture doit ˆetre coupl´ee avec l’optimisation des largeurs.

Un probl`eme d’optimisation combinatoire est NP–difficile et le temps n´ecessaire pour trouver le r´esultat est trop important lorsque la taille du probl`eme est non trivial. Plusieurs approches sont propos´ees pour approximer ce r´esultat. Une ´etude des m´ethodes d’optimi- sation des largeurs ainsi que de nouveaux algorithmes font l’objet de la deuxi`eme partie de cette th`ese.