Professional Documents
Culture Documents
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
i = n
m n
Partie entire Partie fractionnaire
(m bits) (n 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
m R = max(m A , m B ) + 1 n R = max(n A , n B )
Multiplication a b mA nA
m R = m A + mB nR = nA + nB
= 20. log =
D ynamique en dB
DN ( dB )
1000
Virgule fixe
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
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
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
x(n) y(n)
h
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
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
17
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
19
MSB
Erreur de quantification b : k
LSB
12
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
N g 1
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
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
23
i=0 i=0
b (n) b (n)
hk (n)
b = be ou bg i
(
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
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
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
mx
31
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
Mthodes analytiques
Propagation de la dynamique des entres au sein de
lapplication
Utilisation des rsultats de larithmtique dintervalle [Kea 96]
34
Mthodes analytiques
Systmes linaires : utilisation de normes
x(n) y(n)
h
Normes L1
ymax1 = max n ( x( n) ). h(m)
m =
Norme Chebychev
35
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
36
Exemple filtre IIR
quation aux diffrences
1
y ( n) = x ( n) + y ( n 1)
2
1 Rponse impulsionnelle du filtre IIR
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
37
Fonction de la
reprsentativit des signaux
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
( )
& &
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
Largeur oprateurs
Assignation
Quel couplage
codage - synthse ? Oprations oprateurs
41
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++
}
Code VHDL
de lapplication
RSBQmin
43
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
46
Mthode FPO (Universit de Soul)
Diffrentes mthodes proposes
Regroupement au niveau donne [Kum 98]
47
Mthode FPO
Regroupement au niveau donne [Kum 98]
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
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
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
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
55
+-
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
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
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
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
valuation de
Interpolation
la prcision RSBQmin
Optimisation
Code C
virgule fixe
63
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
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
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
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
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
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
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
71
9 Multiplication mx' x
Ops z
mz' z
mx mz
mz ' = mx + m y + 1 x
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
mz.mult = mh + mx + 1 = 1
[6,26 ; 6,26]
Acc
[0,98 ; 0.98] u m Acc = 3
mu = 0
73
mz.mult = mh + mx + 1 = 1
mu1 = 1 u1
[6,26 ; 6,26]
>> Acc
m Acc = 3
mu 2 = 3 u2
Modle du processeur
Dtermination
Dtermination
le DSP :
) Instructions classiques
) Instructions double prcision
) Instructions SWP
( )
& &
min
& T (b ) tel que RSBQ (b ) RSBQmin
b B
75
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
Modle du processeur
Dtermination
Dtermination
Dtermination de la position optimale des type
type des
des donnes
donnes
valuation du temps
CDFG dexcution du recadrage Modlisation
RSBQmin du processeur
Gopt
79
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];
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
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
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)
mx 0 2 1 2 2 4 5 7 7
85
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)
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
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
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