You are on page 1of 46

Mthodologies de conversion

automatique en virgule fixe pour les


applications de traitement du signal

cole thmatique ARCHI 03


Roscoff 31mars - 4 avril

D. MENARD
quipe de recherche R2D2 - IRISA/INRIA
ENSSAT - Universit de Rennes1

I. Introduction
-
Codage en virgule fixe
I. Introduction
. Arithmtique virgule fixe
. Comparaison virgule flottante / virgule fixe
. Objectifs du codage en virgule fixe

II. valuation de la prcision des systmes en virgule fixe


III. valuation de la dynamique des donnes
IV. Codage des donnes pour une implantation matrielle
V. Codage des donnes pour une implantation logicielle
Codage en virgule fixe
Codage en virgule fixe complment deux
m 1
x = 2 S + bi 2i
m

i = n

2m-1 21 20 2-1 2-n


S bm-1 bm-2 b1 b0 b-1 b-2 b-n+2 b-n+1 b-n

m n
Partie entire Partie fractionnaire
(m bits) (n bits)

Domaine de dfinition Prcision du codage


du codage : Pas de quantification :
D = [2 m ,2 m 2 n ] q = 2 n

Codage en virgule flottante


Codage virgule flottante
Lexposant associ la donne est code au sein de celle-ci

Les donnes sont composes de deux parties


9 Exposant

[1, 12] [1 2 ,1]


9 Mantisse
) Sa valeur est comprise dans lintervalle

SE dd1 d22 dddE-1 SM C11 C22 C


C3 Cm-2 CCM-1
e-1
E-1 m-1

Exposant (E bits) Mantisse (M bits)

1 M 1 E 1
x = 2 (1) + Ci 2i 1
u SE
avec u = (1) SE
d 2 i
i

2 i =1 i =1
4
Rgles de larithmtique virgule fixe
Addition a+b mA nA

Choix dun format identique SA bmA b1 b0 b-1 b-2 bnA

Alignement de la virgule + mB mBnB nB


SB SB SB bmB Sb0 bb-1 bb-2 bbnB b0 b0
Extension de bits B mB 0 -1 -2 nB

SR bmR b1 b0 b-1 b-2 bnA

m R = max(m A , m B ) + 1 n R = max(n A , n B )

Multiplication a b mA nA

Reprsentation identique SA bmA b1 b0 b-1 b-2 bnA

9 Doublement du bit de signe


mB nB

SB bmB b0 b-1 bnB

SR SR bmR b1 b0 b-1 b-2 bnR

m R = m A + mB nR = nA + nB

Comparaison virgule fixe / flottante


Codage virgule
Niveau de dynamique flottante IEEE 754
D ynamique virgule fixe/flottante
1500

max( x ) Virgule flottante

= 20. log =
D ynamique en dB

DN ( dB )
1000

min( x ) DSP Virgule fixe


16 bits
500

Virgule fixe

Rapport Signal Bruit 0


10 15 20 25 30

de Quantification Nombre de bits

Rapport S ignal B ruit virgule fixe/flottante


100
b =16 bits
80

P
RS B en dB

60 Virgule flottante

dB = 10. log s = 40
Pe 20 Virgule fixe

0
-50 0 50
D ynamique du signal d entr e en dB
6
Arithmtique & systmes embarqus
Arithmtique virgule flottante
Largeur des donnes stockes en mmoire : 32 bits (IEEE 754)
Oprateurs complexes (gestion de la mantisse et de lexposant)
Temps de dveloppement faible
9 Lutilisateur ne doit pas coder les donnes
) Applications spcifiques : audionumrique, faible volume

Arithmtique virgule fixe


Oprateurs plus simples
9 Processeur plus rapide
Largeur des donnes stockes en mmoire : 16 bits
9 Efficacit nergtique plus importante, consommation moins importante
9 Processeur moins cher (surface du circuit moins importante)

) Applications grand public


) DSP virgule fixe : 95% des ventes

Cycle de dveloppement
Besoin
Spcifications
Spcification opratoires
Spcification
Spcifications Spcifications
technologiques fonctionnelles

Dfinitionde
Dfinition de
Simulation
Simulation
l'algorithme
l'algorithme Performances
Description de Contrainte
lalgorithme de prcision
Conceptionfonctionnelle
Conception fonctionnelle

Conversion
Conversion en
en
virgule
virgule fixe
fixe
Contraintes
Contraintes
Implantation

temps
temps rel,
rel, Partitionnement
Partitionnement
Consommation
Consommation
dnergie,
dnergie,
Flexibilit
Flexibilit Implantation
Implantation Implantation
Implantation
Cot
Cot Matrielle
Matrielle Logicielle
Logicielle

8
Objectifs du codage des donnes
Codage en virgule fixe
Dfinir pour chaque donne la position de la virgule
) Nombre de bits pour les parties fractionnaires et entires
Respecter les rgles de larithmtique virgule fixe

Objectifs et contraintes du codage en virgule fixe


Maintenir la fonctionnalit de lalgorithme
9 Respecter les rgles de larithmtique virgule fixe
9 Garantir labsence de dbordement

Satisfaire la contrainte de prcision


Optimiser limplantation de lalgorithme
9 Implantation matrielle : minimiser la surface (prix) et la
consommation dnergie
9 Implantation logicielle : minimiser le temps dexcution et la taille du
code
9

Objectifs du codage des donnes


Prcision

Algorithme Architecture
Mthodologie
virgule flottante virgule fixe
Intgrit de
lalgorithme

Conception logicielle
Conception matrielle (DSP, C)
(ASIC-FPGA)
Optimiser le mapping
Optimiser la largeur de lalgorithme sur une
des oprateurs du circuit architecture fige

Minimiser la Minimiser le temps
surface du circuit dexcution et la
taille du code

Contrainte de
prcision
10
Processus de conversion en virgule fixe
pi 3,14159
N 100

{
float x,h,z
for(i=1;i<n;i++)
{

}
*z= *y++ + *h++
Code C
for(i=1;i<n;i++)
{

}
*z= *y++ + *h++
virgule flottante
VIRGULE FLOTTANTE.C

valuation
valuation de
de Code
la dynamique
la dynamique virgule fixe

Compilation
Compilation

valuation Synthse
Synthse
valuation dede Codage
Codage des
des
la prcision donnes darchitecture
darchitecture
la prcision donnes

Contrainte
Code
de prcision Architecture
assembleur

11

Application fil rouge : filtre FIR


quation aux diffrences
N 1
h(i) = ai i [0, N 1]
y (n) = ai .x(n i ) = x(n) * h(n) avec
i =0 h(i) = 0 ailleurs

x(n) y(n)
h

Graphe Flot de Signal

x (n) z-1 z-1 z-1

a0 a1 aN-2 aN-1
y (n)
+ + +
12
II. valuation de la prcision
des systmes en virgule fixe

I. Introduction
II. valuation de la prcision des systmes en virgule fixe
. Mtrique
. Mthodes bases sur la simulation
. Mthodes analytiques
III. valuation de la dynamique des donnes
IV. Codage des donnes pour une implantation matrielle
V. Codage des donnes pour une implantation logicielle

Mtrique pour lvaluation de la prcision


Erreur de quantification associe une donne x :
Diffrence entre la donne en prcision finie (virgule fixe) et la
donne en prcision infinie (valeur exacte)
bx = xprcision finie xprcision infinie

Proprit de lerreur de quantification


Variable alatoire (ergodique et stationnaire)
) Caractrise par sa puissance (moment dordre 2) Pbx
Mtrique dvaluation de la prcision Py
Rapport Signal Bruit de Quantification RSBQ =
) Py : puissance du signal Pby
) Pby : puissance du bruit de quantification

14
Mthodes bases sur la simulation
Principe
Dtermination de la puissance du bruit de quantification
partir de la simulation du systme en virgule fixe (yfixed) et en
virgule flottante (yfloat)
9 La sortie en virgule flottante est considre comme la
rfrence
) Hypothse valide si l erreur lie l arithmtique virgule
flottante est ngligeable par rapport celle lie la virgule fixe
9 La largeur des donnes en virgule fixe doit rester faible

Sfloat
y float

(y y fixed )
N pts
1
Pby =
by 2
~ -
float
Entre du N pts n =0
systme Sfixed
y fixed

15

Mthodes bases sur la simulation


Mise en uvre : utilisation de librairies pour muler
larithmtique virgule fixe
Utilisation de classe C++ : systemC, gFix [Kim 98]
9 Temps de simulation levs

Utilisation des caractristiques de la machine hte pour


acclrer la simulation en virgule fixe
9 Utilisation de types optimiss : pFix [Kim 98]
9 Gnration dun code optimis : FRIDGE [Ked 01]

) Rduction des temps de simulation


) Augmentation du temps ncessaire pour gnrer le code
utilis pour la simulation

)Temps doptimisation du format des donnes trs lev [Sun 95]


) Une nouvelle simulation en virgule fixe est requise ds que le format
dune donne est modifi
16
Mthodes bases sur la simulation
Exemples de temps de simulation
Filtre IIR dordre 4, (PC pentium 100 MHz) [Sun 95]

Type Flottant gFix pFix VHDL SPW


Temps de simulation (s) 2.19 340 16.3 181 60
Rapport fixe / flottant 1 155 7.4 82.6 27.4

Comparaison des temps de simulation en virgule fixe et en


virgule flottante pour 6 applications [Ked 01]
9 FIR, DCT, IIR, FFT, auto-corrlation, produit de matrice

Type Flottant SystemC SystemC Code optimis


prcision limite

Rapport fixe / flottant 1 540 120 3.6

17

Mthodes bases sur la simulation


Adaptation de la mthode CESTAC la virgule fixe
Dtermination du nombre de bits significatifs au niveau de la
sortie de lapplication

Mthode CESTAC
Estimation de lerreur darrondi lie larithmtique virgule
flottante partir de quelques ralisations de lapplication (3)
Hypothse : lerreur en sortie suit une loi de probabilit
Gaussienne
9 Utilisation du test de Student pour dterminer lintervalle de
confiance de lestimation de la moyenne de lerreur
) Dduction du nombre de bits significatifs partir de lintervalle de
confiance

18
Mthodes analytiques
Mthode propose par Toureille [Tou99]
Dtermination de lexpression analytique du RSBQ
9 Dtermination de lexpression de la puissance du bruit

Propagation des moments du bruit au sein dun GFD


9 Dfinition dun modle de propagation des moments du bruit pour
chaque type doprateur
) Hypothses simplificatrices
) Traitement uniquement des structures non-rcursives

Dveloppement dune nouvelle mthode analytique


Estimation prcise de la puissance du bruit de quantification
Traitement des structures linaires rcursives

19

Modles de bruit de quantification


Modlisation du bruit gnr lors 2 -n+k 2-n+k-1 2-n

dun changement de format : Sm mk mk-1 x x mn

MSB
Erreur de quantification b : k
LSB

9 Variable alatoire discrte uniformment rpartie


q
b =
2
(
1 2k )
avec q = 2 (n k)
( )
(pas de quantification aprs
q2
b = 1 22k
2 changement de format)

12

Modle de propagation du bruit :

Addition : bz = bx + by

Multiplication : bz = bx s y + s x b y + bx b y
20
Systmes linaires
Systme linaire, entre x, sortie y :
quation aux diffrences
K 1 L 1
y ( n) = ak .x(n k ) + cl . y ( n l )
k =0 l =1

) Systme non rcursif si i, ci = 0

h(n) rponse impulsionnelle du systme linaire


+
y ( n) = h( j ).x( n j ) = h( n) * x(n)
j =0

H(z) fonction de transfert du systme linaire


K 1
k
Y ( z) a .z k
H ( z) = = k =0
L 1
X ( z) l
c .z
l =1
l
21

Modlisation dun systme linaire


Expression du bruit de quantification

N g 1

by = y (n) y (n) = h gi (n) * bgi (n) + h(n) * b'e (n) + h(n) * x( n)


i =0

Erreur due la
Source de bruit gnr quantification
(n)
lors dun changement bgi bgi (n) des coefficients
de format hgi Bruit de
quantification
Bruit dentre be (n) be (n) de sortie
h ++
by (n)
bh (n)
h

Signal dentre x(n) y(n)


h
Signal de sortie

22
Puissance du bruit de quantification by
Puissance du bruit de quantification [Men02b]
2
Ng 1 Ng 1 2
( )
E by = bgi + be + bgi +b2e
2

i=0 i=0

Source de bruit gnr


(n)
lors dun changement bgi bgi (n)
de format hgi Bruit de
quantification
Bruit dentre be (n) be (n) de sortie
h ++
by (n)
bh (n)
h

Signal dentre x(n) y(n)


h
Signal de sortie

23

Puissance du bruit de quantification by


Puissance du bruit de quantification [Men02b]
2
Ng 1 Ng 1 2
( )
E by = bgi + be + bgi +b2e
2

i=0 i=0

b (n) b (n)
hk (n)

b = be ou bg i

Proprit : les bruits b sont des bruits blancs (les


chantillons ne sont pas corrls d un point de vue temporel)

(
b = b H (e j 0 ) )
b2
( ) d = h ( m )
2 +
= j
2 2 2
b
2

He b
m=0
24
Synoptique de la mthodologie
GFDC
Gapp
Gnration
Gnration du
du Graphe
Graphe Flot
Flot de
de Signal
Signal
Gnration
Gnration
du
du GFS
GFS yy limination
limination des
des structures
structures de
de contrle
contrle
yy Insertion
Insertion des
des informations
informations temporelles
temporelles (oprations
(oprations de
de retard)
retard)

GFS Gs

Modlisation
Modlisation du
du systme
systme au
au niveau
niveau bruit
bruit
Modlisation
Modlisation au
au
niveau
niveau bruit
bruit yy Insertion
Insertion des
des sources
sources derreur
derreur
Gsn yy Modlisation
Modlisation des
des donnes
donnes et
et des
des oprateurs
oprateurs au
au niveau
niveau bruit
bruit

Dtermination
Dtermination des
des
fonctions
fonctions de
de transfert
transfert

GH
Dtermination
Dtermination de
de
lexpression
lexpression du
du RSBQ
RSBQ

& &
RSBQ (b , m) [Men02a]

25

Dtermination des fonctions de transfert


1. Dmantlement des circuits
Objectif : transformation du Graphe Flot de Signal en graphes
acycliques (DAG)

2. Dtermination des fonctions linaires


Objectif : spcification du systme par un ensemble de
fonctions linaires

3. Dtermination des fonctions de transfert partielles


Objectif : spcification du systme par un ensemble de
fonctions de transfert partielles

4. Dtermination des fonctions de transfert globales


Objectif : dtermination des fonctions de transfert entre la
sortie et chaque entre
26
Exemple du filtre FIR
Spcification du filtre au niveau bruit de quantification
) Prsence dune source de bruit potentielle en entre ou en sortie de
chaque opration

x (n) + z-1 z-1 z-1

b'e

a0 a1 aN-2 aN-1
bgm0 + bgm1 + bgm N-2 + bgm N-1 +
bg mem
+ + + +
y (n)

N.bgm
b'e
x(n) y(n)
+ h +
bg mem
27

Exemple du filtre FIR


Expression du bruit en sortie du systme
N 1
by (n) = be (n) + bg .mem (n) + bgm.i (n)
i =0
N 1 N 1
by (n) = al .be (n l ) + bg .mem (n) + bgm.i (n)
l =0 i =0

Fonction de transfert globale du systme

N 1
B y ( z ) = H ( z ) Be ( z ) + Bg .mem ( z ) + bgm.i ( z )
i =0

Y ( z) = H ( z) X ( z)

28
Exemple du filtre FIR
Expression de la variance du bruit en sortie du filtre
FIR
N 1
= +
2
by
2
be
2
bg . mem + b2gm .i
i =0

+ N 1
= h( m) + + b2gm .i
2 2 2 2
by be bg . mem
m = i =0

qe2 N 1 2 q g .mem
2
2
qmi
b2 = am + + N.
y
12 m =0 12 12
h

b2 =
y
1
12
( 2 n
h .2 2 ne + 2 gmem + N .2 2 nmi )
29

III. valuation de la
dynamique des donnes

I. Introduction
II. valuation de la prcision des systmes en virgule fixe
III. valuation de la dynamique des donnes
. Objectifs
. Mthodes bases sur la simulation
. Mthodes analytiques
. Exemples et comparaison des mthodes existantes
IV. Codage des donnes pour une implantation matrielle
V. Codage des donnes pour une implantation logicielle
Objectifs
Estimation du domaine de dfinition [xmin , xmax] de
chaque donne x en vue den dduire la position de la
virgule mx
Partie entire

S bm-1 bm-2 b1 b0 b-1 b-2 b-n+2 b-n+1 b-n

mx

m x = log 2 (max ( xmin , xmax ))


Critres de qualit pour lestimation
Prcision : minimiser lerreur destimation
9 viter la prsence de bits non utiliss au niveau des bits les plus
significatifs de la donne
Qualit : garantir labsence de dbordement

31

Mthodes bases sur la simulation


Dtermination de la dynamique dune donne partir
de ses paramtres statistiques
Simulation de lalgorithme et collecte des chantillons
Dtermination des paramtres statistiques et/ou des valeurs
minimales et maximales

Dtermination de la dynamique partir des valeurs


minimales Xmin et maximales Xmax obtenues [Aam 01]
350

300

250

200

150

100

50

0
-4 -3 -2 -1 0 1 2 3 4
Xmin Xmax
32
Mthodes bases sur la simulation
Mthode propose par Kim [Kim98]
Distribution uni-modale (1.2 < k x < 5) et symtrique s xi 0
i

k xi =
[
E ( xi xi ) 4 ] 3 kurtosis
~
xi max = xi + (k xi + 4) xi x 4
i

s xi =
[
E ( xi xi )3 ] skewness
x i
3

Distribution multi-modale ou non symtrique

xi min = xi0% + rR xi0% xi1%


xi max = xi100% + rR xi100% xi99%

xi99% dfini tel que P( xi < xi99% ) = 0.99


xi 100%
xi 99%
33

Mthodes analytiques
Propagation de la dynamique des entres au sein de
lapplication
Utilisation des rsultats de larithmtique dintervalle [Kea 96]

Oprations min (z) max (z)


z=x+y min(x)+min(y) max(x)+max(y)
z=x-y min(x)-max(y) max(x)-min(y)
z=x y min(E) max(E)
E =(min(x)min(y),min(x)max(y), min(y)max(x),max(x)max(y))

9 Traitement des structures non-rcursives


9 Estimation pessimiste
) Absence de prise en compte de la corrlation entre les
donnes

34
Mthodes analytiques
Systmes linaires : utilisation de normes
x(n) y(n)
h

Normes L1
ymax1 = max n ( x( n) ). h(m)
m =

) Systmes linaires non-rcursifs : rsultats identiques


ceux obtenus avec larithmtique dintervalle

Norme Chebychev

ymax 2 = max n ( x( n) ) max ( H ( ) )

) Signal dentre du type x ( n) = cos( .n.T )

35

Exemple filtre FIR 0.2 Rponse impulsionnelle du filtre 1

Entre x [1,1]
0.15

0.1
Filtre 1 : 41 cellules
0.05 a0
Filtre 2 : 32 cellules
0
a1
5 10 15 20 25 30 35 40

Mthodes Filtre 1 Filtre 2


ymax mx ymax mx
Mthodes analytiques
Arith. Intervalle, Norme L1 1.35 1 6.26 3
Norme Chebychev 1.004 1 4.13 3
Mthodes statistiques
Chirp 1.06 1 4.2 3
Bruit blanc gaussien 0.43 -1 1.77 1
Bruit blanc uniforme 0.8930 0 4.2 3

36
Exemple filtre IIR
quation aux diffrences
1
y ( n) = x ( n) + y ( n 1)
2
1 Rponse impulsionnelle du filtre IIR

Rponse impulsionnelle 0.8

n 0.6
1
h ( n) = 0.4
2 0.2

0
Dynamique de y
0 1 2 3 4 5 6 7 8 9 10

+ + m

max n ( y (n) ) = max n ( x(n) ). h(m) =


1 1
= =2
m = m =0 2 11/ 2

37

Comparaison des mthodes

Mthode statistique Mthode analytique


Prcision Erreur destimation faible Mthode conservatrice
(estimation dans le pire cas)

Qualit Pas de garantie sur Garantie sur labsence


labsence de dbordement de dbordement

Fonction de la
reprsentativit des signaux

Structures traites Toutes Structures linaires et non-


linaires non-rcursives

Connaissances Signaux dentre Domaine de dfinition des


ncessaires entres

38
IV. Codage des donnes
en virgule fixe pour une
implantation matrielle
I. Introduction
II. valuation de la prcision des systmes en virgule fixe
III. valuation de la dynamique des donnes
IV. Codage des donnes pour une implantation matrielle
. Objectifs
. Lien entre le codage des donnes et la synthse
. Regroupement des donnes
. Prsentation des mthodes
V. Codage des donnes pour une implantation logicielle

Objectifs
Implantation matrielle dans un ASIC ou un FPGA
Dfinition de larchitecture du circuit
9 Possibilit dadapter la largeur des oprateurs aux contraintes
de prcision

Objectifs de limplantation
9 Minimiser le cot
) Optimiser la surface du circuit
9 Minimiser la consommation dnergie
) Optimiser la largeur des oprateurs

Objectif du processus de conversion en virgule fixe


Minimiser la surface du circuit sous contrainte de prcision

( )
& &
Min
& + S (b ) tel que RSBQ(b ) RSBQmin
b
40
Lien entre le codage et la synthse
Comment regrouper Reprsentation intermdiaire
de lapplication : GFD, GFDC
les donnes ?
Largeur
oprateurs

Regroupement des Slection


oprations oprateurs
Temps
d excution des
oprateurs
Optimisation
Ordonnancement
largeur donnes

Largeur oprateurs
Assignation

Quel couplage
codage - synthse ? Oprations oprateurs

41

Niveau de regroupement des donnes


Algorithme : toutes les donnes ont la mme largeur
Le processus doptimisation de la largeur des donnes peut
tre ralis avant la synthse darchitecture [Mar 01]
9 Qualit de limplantation en terme de surface ?

Bloc : toutes les donnes dun bloc ont la mme largeur


9 Limitation du nombre de variables pour loptimisation
Regroupement dirig par
9 Lanalyse du graphe de lapplication [Sun 95]
9 La synthse : couplage du codage et de la synthse [Kum 01]

Donne : chaque donne sa propre largeur


Codage puis synthse de larchitecture [Kum 98], [Ked 98]
9 Affectation doprations de largeur diffrente sur un mme
oprateur [Con 01]
42
Mthode GAUT (LESTER - Lorient)
Regroupement au niveau de lalgorithme
Largeur identique pour toutes les donnes (bapp) et utilisation
dun seul format (virgule fixe cadre gauche)
9 Utilisation dune mthode analytique pour valuer Pb
9 Relation simple entre la puissance du bruit Pb et bapp

2 ( bapp 1) 1 A 101 RSBQmin


Pb = Aq = A.2
2
bapp log 2 10 +1

2 Ps

Sparation des processus de synthse et de codage


de donnes
Graphe flot

pi 3.14159
N 100

Partie Synthse
{

Partie Synthse
float x,h,z
for(i=1;i<n;i++)

debbapp
Calcul de
{

Calcul
*z= *y++ + *h++
}

frontale app (GAUT)


for(i=1;i<n;i++)
{
}
*z= *y++ + *h++ frontale (GAUT) Architecture
VIRGULE FLOTTANTE.C

Code VHDL
de lapplication
RSBQmin

43

Mthode FRIDGE (IISPS - Aix la chapelle)


Regroupement au niveau donne
Code C virgule flottante

Annotations locales
Annotation ou globales

Utilisateur
Code mixte
(fixe / flottant)

valuation de
Interpolation la prcision
(simulation)
RSBQmin
Code virgule fixe
(SystemC)

Optimisation

Spcification virgule
Synthse de larchitecture
fixe optimise 44
Les diffrentes phases de la mthode
Annotation
Dfinition du format de quelques donnes en virgule fixe

Interpolation
Dtermination du format virgule fixe des donnes non-
annotes par propagation de rgles
9 Partie entire (mx) : utilisation de larithmtique dintervalle
(
9 Partie fractionnaire (nx) : utilisation des rgles n z = f Ops nx , n y )

Optimisation
Minimisation de la largeur des donnes sous contrainte de
prcision globale RSBQmin
9 Utilisation dune contrainte de prcision locale :
) RSBQ dgradation maximale autorise du RSBQ en sortie dun
oprateur lie la rduction de la largeur de la sortie de
loprateur 45

Algorithme doptimisation
Tant que (RSBQ(b) > RSBQmin) // contrainte de prcision globale
{
RSBQ = RSBQ + // modification de la contrainte de prcision locale

Pour chaque (xi)


{
Tant que ( RSBQ(bxi) < RSBQ )
{ // pour chaque donne diminution de la largeur tant
bxi= bxi -1 // que la contrainte de prcision locale est satisfaite
Calcul(RSBQ(bxi)) // valuation analytiquede RSBQ(xi)
}
}
Calcul(RSBQ(b)) // valuation par simulationde RSBQ(b)
}

46
Mthode FPO (Universit de Soul)
Diffrentes mthodes proposes
Regroupement au niveau donne [Kum 98]

Regroupement au niveau bloc par analyse du graphe flot de


signal de lapplication [Sun 95]
9 Regroupement ralis par lutilisateur
9 Regroupement automatique
) Donnes connectes par un dlai ou un multiplexeur
) Entres et sortie dun additionneur

Regroupement au niveau bloc : couplage des processus de


codage en virgule fixe et de synthse [Kum 01]
9 Regroupement des oprations ralises sur un mme
oprateur

47

Mthode FPO
Regroupement au niveau donne [Kum 98]

Code C virgule flottante

Dtermination dynamique
et position de la virgule

&
Dterminationbmin
valuation de la
prcision
(simulation) & Niveau algorithme
Dterminationbopt

Spcification virgule
fixe optimise
Niveau synthse
Synthse de darchitecture

larchitecture
48
Les diffrentes phases de la mthode
Dtermination de la dynamique (mthode statistique) et
de la position de la virgule des donnes

Dtermination de la largeur minimale de chaque donne


bi.min dfinie telle que
&
RSBQ(b ) > RSBQmin
min+ (bi )
bi b j = Bmax j i

Dtermination de la largeur optimise des donnes


) Au dpart la largeur des donnes est fixe leur valeur min bi.min
Heuristique en deux phases :
9 Incrmentation de la largeur de toutes les donnes tant que la
contrainte de prcision nest pas satisfaite
9 Dcrmentation de la largeur des donnes, une par une, tant
que la contrainte de prcision est satisfaite
49

Mthode FPO
Regroupement au niveau bloc [Sun 95] Fixed-point
optimizer (Cadence)
Code C virgule flottante

Regroupement
Regroupement par
analyse du graphe
Dtermination dynamique flot de signal
et position de la virgule

&
Dterminationbmin
valuation de la
prcision & Niveau algorithme
Dterminationbopt

Spcification virgule
fixe optimise
Niveau synthse
Synthse de darchitecture

larchitecture
50
Mthode FPO
Regroupement au niveau bloc et couplage codage
synthse [Kum 01] Code C virgule flottante

Regroupement
Regroupement par
analyse du graphe
Dtermination dynamique flot de signal
et position de la virgule

&
Dterminationbmin
valuation de la
prcision
Synthse de
larchitecture Ordonnancement
Assignation
&
Dterminationbopt

51

Synthse de larchitecture
Ordonnancement par liste
Une liste pour chaque oprateur de largeur diffrente
Traitement en priorit des oprations de largeur leve
Assignation dune opration un oprateur de largeur plus
leve si celui-ci est libre

Processus itratif pour lordonnancement et


loptimisation de la largeur des oprateurs
1. Estimation du nombre minimal doprateurs ncessaires
2. La largeur des oprateurs est fixe la valeur maximale
3. Ordonnancement de lapplication
4. Rduction de la largeur dun des oprateurs tant que la
contrainte de temps est satisfaite lors de lordonnancement

52
V. Codage des donnes
en virgule fixe pour une
implantation logicielle
I. Introduction
II. valuation de la prcision des systmes en virgule fixe
III. valuation de la dynamique des donnes
IV. Codage des donnes pour une implantation matrielle
V. Codage des donnes pour une implantation logicielle
. Architecture et gnration de code pour DSP
. Objectifs
. Prsentation des mthodes existantes

Architecture des DSP


Architecture conventionnelle bnat bnat

Structure multiplication-accumulation MAC MAC



Registres ddis aux oprateurs
bmult
Connections registre-oprateur optimises
Jeu dinstructions spcialis +

Acc
Acc

badd

Architecture parallle
Units fonctionnelles indpendantes
File de registres
U1 U2 U3 U4
9 Tous les registres sont connects
tous les oprateurs
File de registres
) Utilisation de clusters
Paralllisme au niveau instruction
9 Jeu dinstructions VLIW VLIW (orthogonale)
54
Architecture des DSP
Largeur naturelle du processeur (bnat )
DSP: largeur fixe : 16 ou 24 bits
Cur de DSP et ASIP : largeur paramtrable
)CD2450 (Clakspur) : 16 24 bits;
)EPICS (philips) : 12, 16, 18, 20, 24 bits;
)PalmCore (VLSI / DSP Group): 16, 20, 24 bits

Largeur des donnes au sein de lunit de traitement


Instructions classiques
9 Calcul dune multiplication-addition sans perte de prcision
9 Bits de garde au niveau de laccumulateur
Instructions double prcision
9 Augmentation de la prcision : donnes stockes en mmoire
en double prcision
9 Augmentation des temps de calcul

55

Architecture des DSP


Instructions SWP (Sub-Word Parallelism)
9 Utilisation du paralllisme au niveau des donnes
9 Rduction du temps dexcution
N bits N/2 N bits N/2

xx11 xx00 yy11 yy00 xx11 xx00 yy11 yy00

+-

zz11 zz00 zz11 zz00

2N bits N bits

Loi de quantification
Troncature : par dfaut
Arrondi : quelques DSP

56
Architecture des DSP
Capacits de recadrage
Registres dcalage spcialiss
9 Dcalages en sortie du multiplieur (C50 : -6, 0, 1, 4)
Registres dcalage en barillet

Cot dun recadrage avec un registre en barillet


Architectures conventionnelles
9 Le cot du recadrage est fonction de sa position
x1 x2
Cot du recadrage (cycles) r3 r'3
Recadrage TMS320C54x OakDSPCore x h
+ h
FIR FIR Sym FIR FIR Sym r2
r2
r0 1 1 1 1

r1 2 1 3 2
r1 r1
r2 5 3 4 1 r0 r0
r3 - 2 - 2 +y + y
FIR Sym : filtre FIR symtrique FIR FIR Symtrique 57

Architecture des DSP


Architecture VLIW
9 Sur-cot Cs li au dcalage en sortie du multiplieur pour
diffrentes applications [Men02d]
) twos : temps dexcution avec lopration de recadrage t t
C s = wos ws
) tws : temps dexcution sans lopration de recadrage t wos

Filtre IPC Cs (%)

Filtre FIR rel(traitement par chantillon) 7.5 47



Filtre FIR rel(traitement par bloc) 6 22 Opration de
recadrage >>

Filtre FIR rel symtrique


(chantillon) 7.2 47

Filtre FIR rel symtrique


(bloc) 7.4 35 +y
Filtre FIR complexe(chantillon) 6.5 45

Filtre FIR complexe(bloc) 4.875 0 TMS320C62x :


Filtre IIR dordre 2 2.8 18 IPCmax = 8

58
Interaction gnration de code - codage
Slection dinstructions
Le choix de linstruction est li la largeur des oprandes
9 Le type des donnes doit tre dtermin avant la slection
dinstructions

Allocation et assignation de registres


Renvoi de donnes intermdiaires en mmoire (spilling)
9 Optimisation de la largeur des donnes renvoyes en mmoire
) Compromis prcision - temps de transfert

Ordonnancement
DSP avec paralllisme au niveau instruction : le cot dune
opration de recadrage est li la manire dont les instructions sont
ordonnances [Men02d]
9 Optimisation du placement des oprations de recadrage lors de
lordonnancement des instructions

59

Objectifs
Implantation logicielle dans un DSP ou un ASIP
Dveloppement du code
9 Architecture fige
9 Architectures diverses

Objectif de limplantation
9 Minimiser le temps dexcution et la taille du code

Objectif du processus de conversion en virgule fixe


Minimiser le temps dexcution du code sous contrainte de
prcision
9 Optimiser la largeur des donne : slectionner les instructions
(classiques, double-prcision, SWP) permettant de minimiser le
temps d excution
9 Optimiser le placement des oprations de recadrage en vue de
rduire le temps dexcution
60
Mthode Autoscaler for C
Universit de Soul [Kum 00]
#define pi 3.1416
#define pi 3.1416

Code C virgule flottante {


main()

float x,h,z
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}

for(i=1;i<n;i++)
{
*z= *y++ + *h++
}

VIRGULE
FLOTTANTE.C

SUIF
Gnration I.R.
Gnration I.R.
Dtermination
Dtermination
Dynamique
Dynamique
Profiling
Profiling

Modification
Modification
des types
des types

Optimisation
Optimisation
Calcul Dcalage
Calcul Dcalage
dcalage
dcalage

Gnration code
Gnration code CC

#define pi 3.1416

{
#define pi 3.1416
main() Contrainte locale
float x,h,z
for(i=1;i<n;i++)
{

}
*z= *y++ + *h++
Code C ANSI de dgradation
for(i=1;i<n;i++)
{

}
*z= *y++ + *h++
virgule fixe de la prcision
VIRGULE
FLOTTANTE.C

61

Les diffrentes phases de la mthode


valuation de la dynamique
Mthode statistique

Dtermination des recadrages


Pour chaque expression du code, rsolution dun systme
dquations linaires

Optimisation des recadrages


Minimisation de la fonction de cot des recadrages
9 Rduction du cot : galisation du format de certaines donnes
) Dfinition dune dgradation maximale autorise de la prcision
de chaque donne

9 Le temps dexcution dun recadrage tr de dr bits est dfini a


priori en fonction du type de registre dcalage :
) Prsence dun registre dcalage en barillet : tr = 1 cycle
) Absence de registre dcalage en barillet : tr = dr cycles
62
Mthode FRIDGE
Code C virgule flottante
[Wil 98, Coo 02]
Annotations locales
Annotation ou globales

valuation de
Interpolation
la prcision RSBQmin

Optimisation

Spcification virgule System C


fixe optimise
Gnration dun code C virgule fixe identique au
bit prs la spcification dorigine
Embedded ) mulation des oprations de quantification
Approach

Code C
virgule fixe

63

Objectifs de nos travaux de recherche


Dveloppement dune mthodologie de compilation dalgorithmes
spcifis en virgule flottante pour les processeurs programmables
en virgule fixe sous contrainte de prcision globale

valuation analytique de la prcision du systme (RSBQ)

Obtention dune spcification en virgule fixe optimise


9 Prise en compte de larchitecture du processeur cible
9 Couplage des processus de gnration de code et de conversion
en virgule fixe

Optimisation de limplantation sous contrainte de prcision


9 Minimisation du temps dexcution du code gnr
) Choix du type des donnes
) Placement des oprations de recadrage

64
Synoptique de la mthodologie
Code source C

Partie haute

Infrastructure de compilation
SUIF

valuation
valuation
de
de la
la
prcision
prcision RI SUIF-CALIFE
GFDC Suif
Suif vers
vers CC

Conversion
Conversion
RSBQ(b,m) en
en
virgule
virgule fixe
fixe Code C ou
SystemC
RSBQmin Infrastructure
Infrastructure virgule fixe
de
de gnration
gnration
de
de code
code

CALIFE
CALIFE
Modlisation
du processeur

Description #define pi 3.1416


#define pi 3.1416

Code assembleur
main()
{
float x,h,z

ARMOR ArmorC
for(i= 1;i<n;i ++)

ArmorC
{
*z= *y++ + *h+ +
}

for(i=1;i< n;i++)
{
*z= *y++ + *h+ +
}

VIRGULE FL
OTTANTE.C

du DSP

[Men02c, Men02e]
65

Synoptique de la mthodologie
Code source C

Partie haute
Infrastructure de compilation

SUIF
Dtermination
Dtermination
dynamique
dynamique
valuation
valuation
de
de la
la
prcision
prcision Dtermination RI SUIF-CALIFE
Dtermination GFDC Suif
Suif vers
vers CC
position
position virgule
virgule
RSBQ(b,m)

Dtermination
Code C ou
Dtermination
des
des types
SystemC
RSBQmin types Infrastructure
Infrastructure virgule fixe
de
de gnration
gnration
de
de code
code
Optimisation
Optimisation
des
des formats
formats
CALIFE
CALIFE
Modlisation
du processeur

Description #define pi 3.1416


#define pi 3.1416

Code assembleur
main()
{
float x,h,z

ARMOR ArmorC
for(i= 1;i<n;i ++)

ArmorC
{
*z= *y++ + *h+ +
}

for(i=1;i< n;i++)
{
*z= *y++ + *h+ +
}

VIRGULE FL
OTTANTE.C

du DSP

66
Exemple filtre FIR
Code C du filtre FIR
float
float h[32]
h[32] == {-0.029710,
{-0.029710, -0.0497370,
-0.0497370, ...,
..., 897773053,
897773053,
0.98000000,
0.98000000, 0.8977730,
0.8977730, ...,
..., -0.04973706,
-0.04973706, -0.0297105,
-0.0297105, 0.0};
0.0};

void
void main()
main()
{{
float
float x[32];
x[32];
float
float input;
input;
float
float yn;
yn;
float
float acc;
acc;
int
int i;
i;

x[0]
x[0] == input;
input;

acc
acc == x[0]*h[0];
x[0]*h[0];

for(i=31;
for(i=31; i>0;
i>0; i--)
i--)
{{
acc
acc == acc
acc ++ x[i]*h[i];
x[i]*h[i];

x[i]
x[i] == x[i-1];
x[i-1];

}}
yn
yn == acc;
acc;
67

Exemple filtre FIR


Graphe flot de donnes et
input
de contrle du filtre FIR
=

x[0] h[0]


B.B. 1
GFD 1
GFC For Acc

x[i-1] Acc
GFC FIR
For B.B. 2
z-1

x[i] h[i]
B.B. 3 Acc

GFD 3

=
u
y
+
B.B : bloc de base GFD 2
Acc
68
Dtermination de la dynamique
Dtermination
Dtermination
dynamique
dynamique

GFDC Dtermination
Dtermination GFDC + Di
Dentres de
de la
la dynamique
dynamique (Dynamique) Dtermination
Dtermination
position
position virgule
virgule
Dynamique entres

Dtermination
Dtermination

Dtermination du domaine de dfinition des type


type des
des donnes
donnes

donnes Optimisation
Optimisation format
des
format
des donnes
donnes

Technique implante

GFDC

Transformation
Transformation
GFDC
GFDC GFS
GFS

GFS Gapp

Dynamique Dtermination
Dtermination de
de la
la GFS Mise
Mise jour
jour de
de la
la
des entres dynamique
dynamique du
du GFS
GFS dynamique
dynamique du du GFDC
GFDC
Gdyn

GFDC
Gdyn
- Arithmtique dintervalle
- Norme L1, Chebychev
69

Exemple filtre FIR


Propagation de la dynamique des entres au sein du
graphe flot de signal reprsentant lapplication
[-1,1]
x (n) z-1 z-1 z-1

b0 b1 bN-2 bN-1
N 1 N 1
bi , bi
[- |b1|, |b1| ]
[- |b0|, |b0| ]
i =0 i =0
+ + +
y (n)
max n ( y (n) ) = 6.26
Normes L1
N 1
max n ( y (n) ) = max n ( x (n) ). h( m) = bi = 6.26
m = m =0

70
Dtermination de la position de la virgule
Dtermination
Dtermination
dynamique
dynamique

GFDC + Di Dtermination
Dtermination de de la
la GFDC + mi
(Dynamique) position de la virgule
position de la virgule (Position de la virgule) Dtermination
Dtermination
position
position virgule
virgule

Modle du processeur
Objectifs : Dtermination
Dtermination
type
type des
des donnes
donnes

Dtermination de la position de la virgule (mi) Optimisation


Optimisation format
format
des
des donnes
donnes
Insertion des oprations de recadrage

Technique :
Propagation de la virgule par parcours des graphes flots de
donnes (GFD)
9 Ncessit dliminer les circuits prsents au sein des GFD
9 Dfinition de rgles pour les donnes et les oprations

) Prise en compte de la prsence de bits de garde

71

Dtermination de la position de la virgule


Donnes

m x = log 2 (max ( xmin , xmax ))


Oprations :
y
my my' y

9 Multiplication mx' x
Ops z
mz' z
mx mz
mz ' = mx + m y + 1 x

9 Addition (sans bits de garde)


) Dfinition dun format commun

mc = max(m x , m y , mz )

72
Exemple filtre FIR
Dtermination de la position de la virgule au sein du
GFD reprsentant le cur de la boucle FOR
[0,99 ; 0.99] GFD 2
x[i-1]
mx = 0
z-1

[0,99 ; 0.99] [0,19 ; 0.98]


x[i] h[i]
mx = 0 mh = 0

mz.mult = mh + mx + 1 = 1
[6,26 ; 6,26]
Acc
[0,98 ; 0.98] u m Acc = 3
mu = 0

mc = max(mu , m Acc , m Acc ) +


mc = 3
[6,26 ; 6,26]
Acc
m Acc = 3

73

Exemple filtre FIR


Insertion des oprations de recadrage au sein du GFD
reprsentant le cur de la boucle FOR
[0,99 ; 0.99] GFD 2
x[i-1]
mx = 0
z-1

[0,99 ; 0.99] [0,19 ; 0.98]


x[i] h[i]
mx = 0 mh = 0

mz.mult = mh + mx + 1 = 1
mu1 = 1 u1
[6,26 ; 6,26]
>> Acc
m Acc = 3
mu 2 = 3 u2

mc = max(mu , m Acc , m Acc )


+
mc = 3 [6,26 ; 6,26]
Acc
m Acc = 3 74
Dtermination du type des donnes
Dtermination
Dtermination
GFDC + mi Dtermination
dynamique
dynamique
Dtermination
(Position de la virgule)
des
des types
types
GFDC + (bi ,mi ,ni) Dtermination
Dtermination
RSBQmin (Format des donnes) position
position virgule
virgule

Modle du processeur
Dtermination
Dtermination

Dtermination de la largeur des donnes type


type des
des donnes
donnes

Prise en compte des diffrents types manipuls par Optimisation


Optimisation format
des
format
des donnes
donnes

le DSP :
) Instructions classiques
) Instructions double prcision
) Instructions SWP

Slection de la suite dinstructions permettant de


Minimiser le temps dexcution global
Satisfaire la contrainte de prcision (RSBQmin)

( )
& &
min
& T (b ) tel que RSBQ (b ) RSBQmin
b B

75

Exemple opration MAC


Jeu dinstructions du processeur Graphe flot de donnes

Instruction Fonction Temps Largeur des oprandes E/S x[i] h[i]


jk k dexecution tk be1 be2 bs
j1 MULT 0.25 8 8 16 o0 E I 0 = { j1 , j2 , j3 }
j2 MULT 0.5 16 16 32 u
J3 MULT 1 32 32 64
j4 ADD 0.25 16 16 16
o1 + E I1 = { j4 , j5 , j6 }
j5 ADD 0.5 32 32 32 GFD 2
ADD 1 Acc
j6 64 64 64

Modlisation des solutions sous forme darbre

Instruction slectionne
Oprations oi
Largeur des
j1 j2 j3 oprandes bi
o0
8816 161632 323264

j4 j5 j6 j4 j5 j6 j4 j5 j6
o1
16 32 64 16 32 64 16 32 64
76
Exemple filtre FIR
Espace de recherche
6 variables (oprations),
3 valeurs possibles par variable
180 volution du RSBQ en fonction
du temps d excution
Rapport Signal bruit de quantification (dB)

160

140

120

100

80

60

40

20
0 20 40 60 80 100 120 140 160 180
Temps dexcution de lapplication (cycles) 77

Optimisation du format des donnes


Dtermination
Dtermination
dynamique
GFDC + (bi ,mi ,ni) Optimisation
Optimisation GFDC +(bi ,mi ,ni)
dynamique

(Format des donnes) des


des formats
formats (Formats optimiss) Dtermination
Dtermination
RSBQmin position
position virgule
virgule

Modle du processeur
Dtermination
Dtermination
Dtermination de la position optimale des type
type des
des donnes
donnes

oprations de recadrage Optimisation


Optimisation format
des
format
des donnes
donnes

Dplacement des oprations de recadrage pour


rduire le temps dexcution du code
9 Minimisation du temps dexcution tant que la contrainte de
prcision est respecte

Deux types dapproche


DSP sans paralllisme au niveau instruction (ILP)
9 Optimisation avant le processus de gnration de code
DSP avec paralllisme au niveau instruction
9 Optimisation en parallle la phase dordonnancement
) Estimation du cot probable des oprations de recadrage
78
DSP sans ILP
Cot dune opration de recadrage ri : cri = ni t ri
Processus doptimisation itratif
Dplacement du recadrage r0 ayant le cot maximal
valuation de la prcision (RSBQ)
Validation du dplacement :
9 si RSBQ(m)<RSBQmin alors
) r0 est replace sa position optimale et nest plus dplace
GVF
Slection
Iar Estimation tar
GFDC
Slection des
des Estimation
Aar instructions
instructions Texec
Texec
b Extraction OLIVE
tri
Extraction OLIVE
du motif
duvaluation
motif du
(CALIFE)
(CALIFE) -
Slection
Isr Estimation tsr
Slection des
temps dexcution
Asr des Estimation
RSBQ(b) tri instructions
instructions Texec
Texec
Optimisation du recadrage
Optimisation
RSBQ(b,m)

valuation du temps
CDFG dexcution du recadrage Modlisation
RSBQmin du processeur
Gopt

79

Exemple filtre FIR


Alternatives pour le dplacement des oprations de
recadrage :
Vers lentre du filtre
Vers les coefficients du filtre

Dplacement vers lentre du filtre


Avant optimisation
) Temps dexcution des recadrages : 32 cycles
) RSBQ : 80,6 dB

Aprs optimisation
) Temps dexcution des recadrages : 1 cycle
) RSBQ : 75.57 dB

80
Exemple filtre FIR
Code C du filtre FIR aprs dplacement de lopration
de recadrage vers lentre
short h[32]={-973,..., 29418, 32112, 29418,...-973};
short input;
void main()
{
short x[32];
short y;
int acc;
int i;
x[0] = input >> 2;
acc = x[0] * h [0];

for (i=31; i>0; i--)


{
acc = acc + x[i] * h[i];
x[i] = x[i - 1];
}
y = (int)(acc);
}
81

Systmes de radio de 3me gnration


Rcepteur pour les systmes de radio-communication
de 3me gnration
Convertisseur
de frquences

A sr(n) se(n) Rake


Rake
b
D.C.
D.C. FIR
FIR
N Receiver
Receiver
Filtre de
rception

CAG
CAG

y0 (k)
Finger 0

y1 (k)
Finger 1
se (n) y(k)

y2 (k) +
Finger 2
y3 (k)
Finger 3

82
Synoptique dun finger
xl (n)
zz-4-4 DLL
Finger
44 DLL early
early
(path l)
DPDCH
yl (k)
DPDCH/DPCCH
DPDCH/DPCCH decoding
decoding
DPCCH

Phase
Phase
l* Channel
Channel
removing
removing estimation
estimation

zz-2-2 44 DLL
DLL on-time
on-time DLL
DLL
DLL

zz-0-0 44 DLL
DLL late
late

Multiplications complexes cOVSFI (n)

SF

1

s1 (n) SF yl(k)
Dcodage se(n) s2 (n) s3 (k)
des donnes 256

1
256

cK(n)
* cOVSFQ (n)

83

Spcifications
Rake Receiver :
4 fingers
Dcodage des donnes

Code C de la partie dcodage des donnes dun finger


for
for (i
(i == 0;
0; ii << SF;
SF; i++)
i++)
{{
y0I[i]
y0I[i] == x0I[i]
x0I[i] ** CksI[i]
CksI[i] -- x0Q[i]
x0Q[i] ** CksQ[i];
CksQ[i];
y0Q[i]
y0Q[i] == x0I[i]
x0I[i] ** CksQ[i]
CksQ[i] ++ x0Q[i]
x0Q[i] ** CksI[i];
CksI[i];

Acc0I
Acc0I == Acc0I
Acc0I ++ (( y0I[i]*a0I[0]
y0I[i]*a0I[0] -- y0Q[i]*a0Q[0]
y0Q[i]*a0Q[0] )*
)* Co[i];
Co[i];
Acc0Q
Acc0Q == Acc0Q
Acc0Q ++ (( y0I[i]*a0Q[0]
y0I[i]*a0Q[0] ++ y0Q[i]*a0I[0]
y0Q[i]*a0I[0] )*
)* Co[i];
Co[i];
}}

valuation de la prcision :
Graphe flot de signal de lapplication : 480 oprations
280 sources de bruit potentielles

84
Dynamique - position de la virgule
Facteur dtalement
SF = 8 Finger
Finger 00

Combinaison
des MP
Finger
Finger 11

Finger
Finger 33

cOVSFI (n)
MULT3 ADD2
MULTc2 ADD1
MULTc1 SF
x(n) + y(n)
s2 (n)
256
+
cK(n)
* cOVSFQ (n)

Dynamique et position de la virgule


MULTc1 MULTc2 MULT3 ADD1 ADD2
x mult add mult add mult add Add y

Dx 0.99 0.99 1.98 1.96 3.92 3.92 31.36 125.45 125.45

mx 0 2 1 2 2 4 5 7 7
85

Largeur des donnes


Spcification de la largeur des donnes pour une
contrainte de RSBQ de 12,5 dB
Finger
Finger 00
Combinaison

Texec (cycles)
des MP

Finger
Finger 11
Instructions classiques Instructions SWP

Finger
Finger 33 3133 ./ 2.64 1185

cOVSFI (n)
MULT3 ADD2
MULTc2 ADD1
MULTc1 SF
+ y(n)
x(n)
s2 (n)
256
+
cK(n)
* cOVSFQ (n)

Types des oprations et donnes (bits)


MULTc1 MULTc2 MULT3 ADD1 ADD2
x mult add mult add mult add add y

8 8816 16+1616 161632 16+1616 161632 16+1616 16+1616 16


86
Optimisation des recadrages
Implantation du rake receiver au sein dun DSP 16 bits
Structure MAC classique sans bit de garde
Prsence dun registre en barillet

58

b01 b11 56

Solution
54

RSBQ (dB)
Dplacement des obtenue
b02 b12 oprations de Phase 1 avant
b2 recadrage vers les optimisation
52 coefficients
b03 b13
Phase 2
50

b04 b14 48
Phase 3
Multi-path
Fingers Combinaison 46

Structure des blocs de base de lapplication 44


Dplacement des oprations de recadrage vers les entres
0 10 20 30 40 50 60 70 80

Temps d excution des oprations de recadrage (cycle


87

Conclusion
valuation de la dynamique
Mthodes statistiques
9 Estimation prcise mais pas ne garantissant pas labsence de
dbordement

Mthodes analytiques
9 Estimation pessimiste garantissant labsence de dbordement

valuation de la prcision
Mthodes bases sur la simulation :
9 Augmentent le temps dexcution du processus doptimisation
) Mise en uvre dheuristiques pour rduire lespace de recherche

Mthodes analytiques :
9 Toutes les structures ne sont pas prises en comptes
) Dfinition de nouvelles mthodes
88
Conclusion
Implantation matrielle
Ncessit de couplage entre les processus de conversion en
virgule fixe et de synthse darchitecture
Mise en uvre dun algorithme efficace doptimisation sous
contrainte

Implantation logicielle
Ncessit de prise en compte de larchitecture
Ncessit de couplage entre les processus de conversion en
virgule fixe et de gnration de code

9 Optimisation du format sous contrainte de prcision globale


) Relation entre la contrainte de prcision et les critres de
qualit de lapplication

89

Bibliographie (1)
[Aam00] T. Aamodt, Floating-point To Fixed-point Compilation and Embedded Architectural Support, Master Thesis,
University of Toronto, January 2001
[Cac02] D. Cachera, T. Risset Advaces in Bit Width Selection Methodology. Proceedinngs of the IEEE Internationnal
Conference on Application-Specific Systems, Architectures, and Processirs (ASAP 02), Jul 02.
[Coo01] M. Coors, H. Keding, O. Luthje and H. Meyr, Integer Code Generation For the TI TMS320C62x, ICASSP-01, May
2001, Sate Lake City, US.
[Con99] G. Constantinides, P. Cheung, W Luk, Truncation noise in fixed-point SFG, IEE Electronics Letters, 35(23),
November 1999.
[Con01] G. Constantinides, P. Cheung, W Luk, Heuristic Datapath Allocation for Multiple Wordlength Systems, DATE 2001,
Mars 2001.
[Kea96] R. Kearfott, Interval Computations: Introduction, Uses, and Resources, Euromath Bulletin, vol 2 (1), 1996, p95-112.
[Ked01] H. Keding , M. Coors, O. Luthje, H. Meyr, Fast Bit-True Simulation, Design Automation Conference 2001, (DAC-
01), Jun 01, Las Vegas, US.
[Ked98a] H. Keding, M. Willems, M. Coors, and H. Meyr. FRIDGE: A Fixed-Point Design And Simulation Environment.
Design, Automation and Test in Europe 1998 (DATE-98), Mar 98.
[Ked98b] H. Keding and F. Hurtgen and M. Willems and M. Coors, Transformation of Floating-Point into Fixed-Point
Algorithms by Interpolation Applying a Statistical Approach, 9th International Conference on Signal Processing
Applications and Technology, ICSPAT'98, 98.
[Kim98] S. Kim, K. Kum, S. Wonyong. Fixed-Point Optimization Utility for C and C++ Based Digital Signal Processing
Programs, IEEE Transactions on Circuits and Systems II, 45(11), Nov 98.
[Kum00] K. Kum, J.Y. Kang and W.Y. Sung, AUTOSCALER for C: An optimizing floating-point to integer C program
converter for fixed-point DSP ,IEEE Transactions on Circuits and Systems II, pp 840-848, September 2000.
[Kum01] K. Kum, and W.Y. Sung, Combined Word-length Optimization and High-level Synthesis of Digital Signal Processing
Systems,IEEE Transactions on Computer Aided Design of circuits and Systems II, pp 921-930, 20(8), August 2000.

90
Bibliographie (2)
[Liu71] B. Liu. Effect of Finite Word Length on the Accuracy of Digital Filters - A Review (Invited Paper). IEEE Transaction
on Circuit Theory, 18(6), Nov 71.
[Mar01] E. Martin, C. Nouet, JM. Toureilles. Conception optimise darchitectures en prcision finie pour les applications de
traitement du signal.Traitement du Signal 2001, Vol 18 (1), 2001.
[Men01] D. Menard, O. Sentieys, Influence du modle de l'architecture des DSPs virgule fixe sur la prcision des calculs,
Dix huitime colloque GRETSI sur le traitement du signal et des images, Toulouse, Sep 01.
[Men02a] D. Menard and O. Sentieys. Automatic Evaluation of the Accuracy of Fixed-point Algorithms, IEEE/ACM Conference
on Design, Automation and Test in Europe 2002 (DATE-02), Paris, Mar 02.
[Men02b] D. Menard and O. Sentieys. A methodology for evaluating the precision of fixed-point systems. International
Conference on Acoustics, Speech and Signal Processing 2002 (ICASSP 2002), Orlando, May 02.
[Men02c] D. Menard, T. Saidi, D. Chillet, O. Sentieys. Implantation d'algorithmes spcifis en virgule flottante dans les DSP
virgule fixe. 8me Symposium en Architectures nouvelles de machines (SYMPA), Hammamet, Tunisie, Apr 02.
[Men02d] D. Menard, P. Quemerais, O. Sentieys. Influence of fixed-point DSP architecture on computation accuracy. XI
European Signal Processing Conference (EUSIPCO 2002), Toulouse, Sep 02.
[Men02e] D. Menard, D. Chillet, F.Charot, O. Sentieys. Automatic Floating-point to Fixed-point Conversion for DSP Code
Generation. ACM International Conference on Compilers, Architectures and Synthesis for Embedded Systems 2002
(CASES 2002), Grenoble, Oct 02.
[Men02f] D. Menard, T. Saidi, D. Chillet, O. Sentieys. Implantation d'algorithmes spcifis en virgule flottante dans les DSP
virgule fixe. Slectionn pour numro spcial de TSI Architectures des systmes embarqus.
[Men03a] D. Menard, M. Guitton, S. Pillement, O. Sentieys. Design and Implementation of WCDMA Platforms Challenges and
Trade-offs. Accepted for the International Signal Processing Conference, Dallas, April 03.
[Par87] T.W. Parks and C.S. Burrus, Digital Filter Design, 1987, Jhon Willey and Sons Inc

91

Bibliographie (3)
[Sun95] W. Sung, K. Kum. Simulation-Based Word-Length Optimization Method for Fixed-Point Digital Signal Processing
Systems. IEEE Transactions on Signal Processing, 43(12), Dec. 1995.
[Tou99] J. Toureilles. Conception d'architectures pour le traitement du signal en prcision finie. PhD thesis, Universit de
Rennes I, Jan 99.
[Wil97] M. Willems and V. Bursgens and H. Meyr, FRIDGE: Floating-Point Programming of Fixed-Point Digital Signal
Processors Internartionnal Confrence On Signal Processing Applications and Technology, (ICSPAT'97), 1997.

92

You might also like