Beruflich Dokumente
Kultur Dokumente
Daniel MENARD
Olivier SENTIEYS
sentieys@enssat.fr
http://r2d2.enssat.fr/enseignements/Tns/Tns.php
Notes :
Analog or
Real-World
Signals
Analog
Signal
Processing
A/D
D/A
Digital
Signal
Processing
Digital or
ComputerWorld
Signals
Converter
Technology
Provides the
Bridge
Video/Image/Graphics
Fcl High Data Rate
100M
10M
Audio/Speech/Control
Low Data Rate
1M
100k
10k
[ICE97] 2
Notes :
Digital signal processing (DSP) is a segment of the IC industry where advanced digital
and analog technologies merge. The typical function of the DSP device is to perform realtime processing of a digitized analog signal, changing that signal using arithmetic
algorithms, and then passing the signal on. The process is very math intensive and quite
complicated. In fact, finding competent DSP designers and programmers is often a
challenge for many DSP manufacturers.
Cycle de dveloppement
Besoin
Spcifications
opratoires
Spcification
Spcification
Spcifications
fonctionnelles
Dfinition de
de
Dfinition
l'algorithme
l'algorithme
Simulation
Simulation
Conception fonctionnelle
fonctionnelle
Conception
Contraintes
Contraintes
temps
temps rel,
rel,
Consommation
Consommation
dnergie,
dnergie,
Flexibilit
Flexibilit
Cot
Cot
Performances
Description de
lalgorithme
Implantation
Spcifications
technologiques
Partitionnement
Partitionnement
Implantation
Implantation
Matrielle
Matrielle
Implantation
Implantation
Logicielle
Logicielle
Notes :
(S4)
4
Notes :
Plan du cours
I. Introduction
1. Introduction, problmatique, caractristiques, solutions architecturales
2. Caractristiques des algorithmes
3. Applications typiques de TNS
4. Chane de traitement et problmes temps rel
Notes :
V. Transformes en TNS
1. TFD, convolution linaire
2. TFR : Transforme de Fourier Rapide
6
Notes :
Notes :
Notes
Notes :
X. Systmes multi-cadences
1. Dfinition
2. Dcimation
3. Interpolation
Notes :
Filtre passe-bas
0.21
0.2
0.2
035
0.49
0.58
1.236
0.61
0.613
0.61
0.6
0.563
0.421
0.236
0.21
0.2
0.2
035
0.49
0.58
1.236
0.61
0.613
0.61
0.6
0.563
0.421
0.236
Notes :
h
f
e
c
g
d
h
g
CNA
f
T.N.S.
e
CAN
Action
numrique
Te
Actionneurs
anti-repliement
Capteurs
Chane de traitement
10
I.1
Avantages
Pas de drive : temprature, vieillissement, valeur des composants
Prcision : garantie par le nombre de bits
Souplesse : plusieurs tches simultanes possibles
Prdiction : simulation sur ordinateur
Prototypes : changements par modifications du logiciel
Performances : pas de distorsion de phase, filtrage adaptatif, etc.
Intgration : progrs des systmes VLSI et DSP
Inconvnients
Cot : lev pour des ralisations simples
Vitesse : bande passante large = vitesse de calcul lev
Complexit : ralisation la fois matrielle et logicielle
11
Notes :
Quelles applications ?
A la Maison
Au Bureau
Sur la route
Notes :
12
Domaines d'application
13
Notes :
Glossaire du TNS
Arithmtique bit fini, quantification, dpassement, virgule fixe, flottante, bruits de calcul,
sensibilit des coefficients.
Notes :
14
Caractristiques algorithmiques
Traitement temps rel
Temps d'excution de l'algorithme Tex guid par acquisition I/O
Priode d'chantillonnage Te
Priode des sorties Tf (frame period) > Tex
Ni plus vite ... ni plus lentement
e(t)
Te
s(t)
Algorithme
Tf
Notes :
15
Notes
16
Notes :
Caractristiques algorithmiques
Charge de calcul importante
multiplications-accumulations (convolution)
multiplications-additions (FFT, DCT, adaptation,...)
17
Notes :
Fonctions typiques de TS
Filtrage, convolution
y = y + x.h
: MAC (multiplication-accumulation)
Adaptation
yn = yn-1 + x.h
: MAD (multiplication-addition)
Viterbi
a1 = x1 + x2; a2 = y1 + y2;
y = (a1>a2) ? a1 : a2
: ACS
18
Notes :
Solutions architecturales
Compromis performance - flexibilit
EE =
Pc
( MIPS / mW )
C
Pleiades
10-50 MOPS/mW
Embedded
Processor
Flexibility
2 V DSP
3 MOPS/mW
Efficacit nergtique :
SA110
0.4 MIPS/mW
100-1000 MOPS/mW
ASIC
DSP
ASIP
Embedded
FPGA
100
Notes :
Reconfigurable
Processor
Alpha
0.007 MIPS/mW
10
1
19
Solutions architecturales
Processeurs programmables du commerce (ISP)
Processeurs gnraux RISC, VLIW
Micro-contrleurs
Processeurs de Traitement du Signal (DSP)
Processeurs Multimdia
18%
Coprocesseurs ASIC
41%
41%
Proc. Prog (comm.)
ASIC
20
Notes :
Faible consommation
Pmoy = . C . Vdd
.F
Temps rel
Implmentation efficace des applications de TS
Sret de fonctionnement
21
Notes :
Exemple : GSM
Environ quivalant 60 MIPS
0110...
A/D
speech
decoder
channel
decoder
modulator
IF upc
D/A
speech
coder
channel
coder
modulator
IF upc
D/A
1010...
synchronisation
Coprocessor, Hardware
DSP, ASIP, ASP
Controller
22
Notes :
MEM. DATA
REGISTER
PC
ADDRESS
REGISTER
REGISTER
FILE
ALU
MUX
Notes :
A typical data path of a RISC architecture is shown. It includes a register file with source
and destination latches, an ALU (arithmetic and logic unit) and a program counter (PC). A
RISC processor may also have additional registers for data and instruction addressing or
other control realted functions.
Most RISC designs use the same ALU to compute both algebraic operations and memory
addresses for load and store operations. The justification for such a design is that
because during load and store operations the ALU is not busy, such an implementation
does not cause any performance penalty.
[Bhaskaran 95]
Notes
24
Notes :
*r0,x0
*r1,x1
x0,x1,a
a,b
x1,*r2
r0
r1
r2
ctr
ctr
loop
Data Path
Vieillissement de lchantillon
Gestion des pointeurs dadresse
Gestion de la boucle
Excution en 15 20 cycles
Notes :
Memory
25
Architecture Harvard
Bus et mmoires donnes/instructions spares
Unit de traitement de type mpy-acc
Registres distribus ( RISC register file)
Chaque module (ALU) possde ses propres registres locaux
in@2 in@1
in
26
Notes :
Because many DSP algorithms involve performing repetitive computations, most DSP
processors provide special support for efficient looping. Often, a special loop or repeat
instruction is provide which allows the programmer to implement a for-next loop without
expending any instruction cycles for updating and testing the loop counter or branching back
to the top of the loop.
Finally, to allow low-cost, high-performance input and output, most DSP processors
incorporate One Or more serial or parallel I/O interfaces, and specialized I/O handling
mechanisms such as low-overhead interrupts and direct memory access (DMA) to allow data
transfers to proceed with little or no intervention from the rest of the processor.
In some cases, system designers may prefer to use a general-purpose processor over a
DSP processor. Although general-purpose processor architectures often require several
instructions to perform operations done with just one DSP processor instruction, generalpurpose processors sometimes compensate by running at extremely fast clock speeds. If the
designer needs to perform non-DSP processing, then using a using a general-purpose
processor for both DSP and non-DSP processing could reduce the system parts count and
lower costs versus using a separate DSP processor and general-purpose microprocessor.
Furthermore, some popular general-purpose processors feature a tremendous selection of
application development tools.
On the other hand, because general-purpose processor architectures lack eatures that
simplify DSP programming, software development is sometimes more tedious than on DSP
processors and can result in awkward code that's difficult to maintain. Moreover, if generalpurpose processors are used only for signal processing, they are rarely cost-effective
compared to DSP chips designed specifically for the task. Thus, at least in the short run, we
believe that system designers will continue to use traditional DSP processors for the majority
of DSP intensive applications.
Program
Memory
MULT
Data Path
P
Excution en 1 cycle
Data
Memory
ALU
ACC
Texas TMS320C25
27
Notes :
I.
Introduction
I.2
Types de signaux
Signaux mdicaux
EEG, ECG, Images IRM, Images scanner, ...
Signaux sismiques
Donnes
Statistiques, Bourse, ...
Signal de parole
Sons
Images
...
28
Notes :
Signal de Parole
Processus de phonation
Gnration d'une nergie ventilatoire
(poumons+trache)
Vibration des cordes vocales
Ralisation d'un dispositif articulatoire
(conduit vocal)
Cavit nasale
Glotte
Cavit buccale
Lvres
Cavit nasale
Conduit vocal
Larynx
Langue
Notes :
Le signal de parole est ralis au moyen dun appareil phonatoire non
initialement prvu pour cela. Il faut tout dabord une nergie ventilatoire
pour tre linitiateur du mouvement dair qui cre les ondes acoustiques et
qui cre par la mme occasion le mouvement oscillatoire des cordes
vocales ou au contraire qui les carte pour crer du bruit; cest le rle de la
soufflerie. Elle est compose des poumons qui sont le gnrateur dair et
du conduit tracho-bronchique. Ce souffle passe le larynx (o sigent les
cordes vocales) pour former londe glottique. Un dispositif carte ou
rapproche les cordes vocales selon quelles doivent vibrer ou non pour
obtenir le son. Si les cordes vocales sont rapproches, elles vibrent et
donnent un son dit vois (80% de la phonation), sinon on obtient un son
dit non vois. Ensuite, le pharynx, la langue et les parois se modifient et
forment un filtre possdant une certaine fonction de transfert qui modifie
londe glottique par convolution, ce qui donne, aprs rayonnement au
niveau des lvres, le signal de parole .
Signal de parole
Notes :
On peut distinguer la nature du son (vois ou non) par son allure (temporelle et
frquentielle). Un son vois possde un signal pseudo priodique : son spectre contient
des harmoniques (nergie prsente dans les diffrentes frquences). Le premier
harmonique, qui reflte la frquence de vibration des cordes vocales est appel la
frquence fondamentale (F0) ou en anglais le pitch (de 80 100 Hz chez lhomme, de
175 300 Hz pour la femme et de 200 600 Hz chez lenfant). Lvolution de la
frquence fondamentale dtermine la mlodie de la parole [MAL,01].
Pour un son non vois, on obtient un signal qui ressemble un bruit possdant beaucoup
de hautes frquences : le fait de filtrer le signal par un passe-bas pour respecter le
thorme de Shannon fait quil devient plus difficile de distinguer des sons chuintants
comme ch et sh car leurs diffrences se situent justement dans les hautes
frquences.
Les spectres des figures 2.3 et 2.4 sont obtenus par le passage de londe glottique dans
la fonction de transfert du conduit vocal. On dfinit un formant comme le maximum de la
fonction de transfert du conduit vocal, mais les maxima de la fonction de transfert sont
excits par les composantes spectrales du signal glottique. Donc, les maxima du spectre
de la figure 2.3 correspondent peu prs aux formants.
Pour cataloguer et rfrencer les sons afin de les tudier, on utilise une base de donne
qui possde tous les sons simples : les lments de cette base sont appels
phonmes. Un phonme se dfinit rigoureusement comme tant la plus petite unit
susceptible de changer un mot en un autre : par exemple, [k] de car et [p] de par
sont des phonmes. Enfin, la mlodie de la parole lie la dure et lintensit des
syllabes sont les lments qui caractrisent la prosodie, qui sert entre autre la
comprhension syntaxique de la phrase (augmenter de faon significative la valeur du
pitch la fin dune phrase interrogative).
30
Signal de parole
Signal temporel
Aspects statistiques
Variabilit intra-individuelle
Variabilit inter-individuelle
Masquage temporel
Prosodie
Signal frquentiel
Amplitude (dB)
40
30
Structure formantique
20
Fondamental (pitch)
10
Harmoniques
Masquage frquentiel
0
-10
-20
0
Notes :
Frquences
Fe/2
31
Notes
32
Notes :
I.
Introduction
I.3
Applications
BP Filter
Detector
697 Hz
BP Filter
Detector
770 Hz
BP Filter
Detector
852 Hz
697 Hz
LP Filter
Limiter
BP Filter
Detector
941 Hz
770 Hz
HP Filter
Limiter
BP Filter
Detector
1209 Hz
BP Filter
Detector
1336 Hz
BP Filter
Detector
1477 Hz
852 Hz
941 Hz
#
|G| (dB)
-0 dB
-3 dB
-30 dB
FS1
FP1
Notes :
FP2
FS2
Fe
2
33
I.
Introduction
I.3
Applications
Codage de la parole
Le codage permet : soit d'augmenter le nombre de signaux par
voie (multiplexage temporel), soit d'largir la bande code (7kHz
pour audio et visioconfrence)
ADPCM : 32 kbit/s sans dgradation audible
s(n)
e(n)
CB
Q
s(n)
canal de
transmission
e'q(n)
DC
s' (n)
Q-1
s' (n)
Q-1
P
eq(n)
Notes :
s(n)
CB : codeur binaire
DC : dcodeur binaire
P : prdicteur
Q : quantificateur
Q-1: quantificateur inverse
34
I.
Introduction
I.3
Applications
Annulation d'cho
to far end
speaker
+-
near end
speach
Ht
Computation
of coefficients
from far end
speaker
Reflections
Loud
speaker
Notes :
I.
Introduction
I.3
Applications
Control /
Display
A/D
Converter
Parity
Coding
MUX
Modulator
Demodul
LP filter
Fe = 44.1 kHz
Conversion N/A classique
Filter
D/A
D/A
Lecture du systme Compact Disc
D/A
16 bit
Converter
PCM
Error
Correction
16 bit
PCM
44.1 kHz
Digital
LP filter
D/A
Converter
LP filter
Fe = 176.4 kHz
En pratique : Surchantillonnage
36
Notes :
I.
Introduction
I.4
x(n)
y(n)
TNS
X
Y
x(n)
x(n-1)
Entres courantes
et antrieures
Notes :
H
h(0)
h(1)
Coefficients
h(i), sin(t), ...
y(n)
y(n-1)
Sorties courantes
et antrieures
37
y ( n ) = ci . x ( n i ) = x ( n ) * h ( n ) avec
i =0
x(n)
h(i) = ci
h(i) = 0
i [0, N 1]
ailleurs
y(n)
c0
zz-1-1
c1
zz-1-1
Notes :
cN 2
zz-1-1
cN 1
y (n )
38
39
Notes :
Notes
40
Notes :
I.
Introduction
I.4
x(n)
3 phases
Yn = F(Xn,Yn,H,...)
x(n)
x(n-1)
Yn
TNS
Vecteur
de taille N
y(n)
y(n)
y(n-1)
h(0)
h(1)
Xn
se recouvrir
N points
Xn+R
Xn+2R
Notes :
x(n)
tre jointives
Xn
Xn+N
x(n)
tre disjointes
Xn
Xn+2N
Xn+M
41
42
Notes :
au TNS
Te
: priodicit du calcul
NV . N op
Te
Pcalcul = 2.B. NV . N op
43
Notes :
Exemple : Convolution
Traitement ligne
y(n) =
N1
h(k).x(n k)
k= 0
y( n) h(0 )
y(n1)
h( N 1)
=
y( n N+1) h(1)
H
h( 1)
h( 0)
h(1)
h( N1)
. Xn
h(N 1) x( n )
x( n1)
.
h( 0) x(nN +1)
Notes :
44
46
Military
5%
Consumer
5%
Industrial
12%
(modem, xDSL)
Communications
51%
Computer
27%
[ICE97]
47
Notes :
Notes
48
Notes :
2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
1997
1996
1995
1994
1993
1992
2000
Prvisions Forward
Concept Co.
49
Notes :
(Lucent)
(Motorola)
Tendance du march :
vers des solutions intgration de curs de DSP
Notes :
50
Performances normalises
10000
Architecture VLIW
superscalaire
StareCore(300MHz)
TMS320C62x (300MIPS)
Carmel (300 MHz)
1000
Architecture
conventionnelle
DSP16210 (100 MIPS)
amliore
100
2me
DSP56301
TMS320C54x (50-100MIPS)
ADSP2183 (50MIPS)
gnration
DSP56001 (13MIPS)
ADSP21xx (13MIPS)
TMS320C50
10
1re gnration
TMS320C20 (5 MIPS)
TMS320C10 (2.5 MIPS)
1
1980
1982
1984
1986
3me gnration
Architecture
conventionnelle
1988
1990
1992
Anne
Notes :
4me gnration
1994
1996
1998
2000
2002
51
Unit de
mmorisation
I.M. + D.M.
52
Notes :
Unit de mmorisation:
IM : Instruction Memory : stocke les instructions
DM : Data Memory : stocke les donnes traites par le DP
Notes :
MEM. DATA
REGISTER
PC
ADDRESS
REGISTER
REGISTER
FILE
ALU
MUX
DP
IP
IM - DM
54
Notes :
*r0,x0
*r1,x1
x0,x1,a
a,b
x1,*r2
r0
r1
r2
ctr
ctr
loop
Data Path
Vieillissement de lchantillon
Gestion des pointeurs dadresse
Gestion de la boucle
Excution en 15 20 cycles
Notes :
Memory
55
Notes
56
Notes :
Objectifs
Unit de traitement :
Raliser efficacement les traitements typiques en TNS
1 MAC par cycle
Unit de mmorisation :
Alimenter efficacement en donnes lunit de traitement afin de ne pas la
ralentir
Grer efficacement les pointeurs dadresse
Unit de contrle :
Gestion efficace des structures de contrle utilises en TNS : boucles
Encodage des instructions
Minimiser la taille des instructions
Encoder le maximum de paralllisme
57
Notes :
Primitives simples
Notes :
59
x(n)
h(0)
h(1)
h(2)
h(3)
h(4)
x
y(n)
Cellule
Notes :
21
20 2-1 2-2
S bm-1 bm-2
b1
b0
b-1 b-2
Partie entire
2-n
b-n+2 b-n+1 b-n
m 1
x = ( 2) S + bi 2i
m
CA2
i = n
Partie fractionnaire
Virgule flottante
Reprsentation : exposant - mantisse
S
dE-1
d1
Exposant
d0 cM-1
c2
Mantisse
c1
c0
1 M
x = 2u (1) S E + Ci 2i 1
2 i =1
E 1
avec u = (1) S E d i 2i
i =1
61
Notes :
Niveau de dynamique
DN ( dB )
max( x )
=
= 20. log
min( x )
D ynamique en dB
Virgule flottante
1000
500
Virgule fixe
0
10
15
20
25
Nombre de bits
30
b =16 bits
dB
P
= 10. log s =
Pe
RS B en dB
de Quantification
80
60
Virgule flottante
40
20
0
-50
Virgule fixe
0
D ynamique du signal d entr e en dB
50
62
Notes :
Dveloppement :
TMS320C62x
TMS320C62x ::
MHz (150 MHz - 300 MHz)
-- ffCLK :: 300
CLK 300 MHz (150 MHz - 300 MHz)
-- On
On Chip
Chip Memory
Memory 72
72 Kbytes
Kbytes
896
896 Kbytes
Kbytes
-- Price
Price :: $9
$9
102
102
TMS320C64x
TMS320C64x ::
-- ffCLK :: 11 GHz
GHz (300
(300 MHz
MHz -- 1GHz)
1GHz)
CLK
-- On
On Chip
Chip Memory
Memory 160
160 Kbytes
Kbytes
1056
1056 Kbytes
Kbytes
-- Price
:
$18
219
Price : $18 219
Architecture :
Oprateurs plus simples
Largeur des donnes bnat : 16 bits
Efficacit nergtique plus importante, consommation moins importante
Processeur plus rapide
Processeur moins cher (surface du circuit moins importante)
Notes :
Notes
64
Notes :
TMS320C67x
TMS320C67x ::
MHz (100 MHz - 300 MHz)
-- ffCLK :: 300
CLK 300 MHz (100 MHz - 300 MHz)
-- On
On Chip
Chip Memory
Memory 72
72 Kbytes
Kbytes
264
264 Kbytes
Kbytes
-- Price
Price :: $14
$14
105
105
Dveloppement
Temps de dveloppement plus court
Recadrage des donnes assur par le processeur
Compilateur de langage de haut niveau plus efficace : plus grande portabilit
Architecture :
Largeur des donnes : 32 bits
Oprateurs plus complexes (gestion de la mantisse et de lexposant)
Processeur plus cher et consommant plus
March
Applications ncessitant une grande dynamique : audionumrique
Applications avec des faibles volumes
65
Notes :
Elments de lUT
Oprateurs
Multiplieur cbl
Multiplication en 1 cycle ou pipeline (1 rsultat de multiplication par cycle)
Le rsultat est fourni directement lUAL ou il est stock dans un registre (P register)
Largeur des oprandes
source : bnat
rsultat : bmult = 2.bnat
U.A.L.
Oprations arithmtiques : addition, soustraction, incrmentation, ngation
Oprations logiques : and, or, not
Largeur des oprandes
66
Notes :
lments de lUT
Units de saturation ou darrondi
Units spcifiques
Unit de manipulation de bit, Viterbi, ...
Registres daccumulation
Stockage du rsultat de l additionneur
Nombre de registres daccumulation limit (1 4)
Donnes stockes en double prcision
Possibilit de bits de garde pour stocker les bits supplmentaires issus d accumulations successives
badd = bmult + bg
Bits de garde
bg
ACCH
ACCL
2.bnat
67
Notes :
Nbits Entres
Nbits Sortie
Multiplieur
bnat
2 b nat
2 b nat
2 b nat
2 b nat +b g
2 b nat +b g
2 b nat
b nat
2 b nat +bg
b nat
Additionneur/ UAL
Saturation/Arrondi
AA
BB
bnat
bnat
bmult
Registre
Nbits
Oprande source
b nat
Accumulateur
2 bnat
2 b nat +bg
Interconnexions
Interconnexions registres
registres -- oprateurs
oprateurs spcialises
spcialises
Structure
Structure htrogne
htrogne
Bonnes
Bonnes performances
performances en
en terme
terme
de
de consommation
consommation et
et de
de surface
surface
MAC
badd
Accumulateur
Accumulateur
Sat /Arr
68
Notes :
Exemple : TMS320C54x
DB
PB
CB DB
CB DB CBDB EB
1 additionneur 40 bits
1 ALU (40 bits)
2 registres d accumulation 40
bits
69
Notes :
70
x(n)
x
h(0)
x
h(1)
x
h(2)
x
h(3)
x
h(4)
y(n)
TAP
71
Notes :
Notes
72
Notes :
*r0,x0
*r1,x1
x0,x1,a
a,b
x1,*r2
r0
r1
r2
ctr
ctr
loop
Data Path
Vieillissement de lchantillon
Gestion des pointeurs dadresse
Gestion de la boucle
Excution en 15 20 cycles
Notes :
Memory
73
Mmoire
tacc
texec
Oprateur
A
Modle Load-Store
Oprandes situes uniquement dans des registres
Temps d excution de l instruction
Mmoire
tacc
RRYY
RRXX
tinst = max(texec,,tacc)
Oprateur
texec
AA
74
Notes :
DP
IP
Ex: TMS320C10
DM
IM
Notes :
Modification 1
Autorisation de mmorisation de
cycle
(tacc = 1/2.tinst) :
DP
IP
1-vers-2
fetch de linstruction
fetch deux oprandes de la mmoire
excution dun MAC
DM
IM/DM
76
Notes :
Modification 2
DP
IP
DM
IM
internes au CI
Notes :
Modification 3
DP
IP
1-vers-2
cache
DM
IM/DM
instructions frquentes
vite les conflits d'accs
donnes et instructions
de la modification 1
TMS320C25 :
DSP16 :
ADSP-2100 :
Notes :
Modification 4
Deux mmoires donnes
DP
DM spares
IP
En un cycle :
fetch de linstruction
1-vers-2
DM 1
DM 2
IM
Notes :
Notes
80
Notes :
Modle du C54x
Bus et mmoires internes :
Mmoire
Mmoire interne
interne
Program
Data
read
Data
read
Data
write
ROM
ROM ::
-- Bootloader
Bootloader
-- Utilisation
Utilisation dans
dans lespace
lespace data
data
ou
ou program
program
DARAM
DARAM (Dual
(Dual Acces
Acces RAM)
RAM)
-- 11 lecture
lecture ++ 11 criture
criture par
par cycle
cycle
SARAM
SARAM (Single
(Single Acces
Acces RAM)
RAM)
-- 11 lecture
lecture ou
ou 11 criture
criture par
par cycle
cycle
81
Notes :
Modes dadressage
Adressage immdiat : la donne est stocke directement dans
linstruction
Exemple C54x : LD #75h, A
A
A == 75h
75h
Adressage court (instruction sur 1 mot) : valeur spcifie sur 3,4,8 ou 9 bits
Adressage long (instruction sur 2 mots) : valeur spcifie sur 16 bits
82
Notes :
Modes dadressage
Adressage mmoire directe : ladresse de la donne est
stocke dans linstruction
Adressage absolu : l adresse complte est stocke dans linstruction
C54x les adresses sont sur 16 bits
L instruction doit tre code sur plusieurs mots
a15
a11 A10
9 bits
a9
a8
TMS320C54x
a0
7 bits
Notes :
Modes dadressage
Adressage indirecte par registre :
Registre dadresse (AR) pointant sur les donnes
LD *AR1, A
addr
addr == AR1
AR1 (A
(A
**AR1)
AR1)
LD *AR1+, A
addr
addr == AR1
AR1
AR1
AR1 == AR1
AR1 ++ 11
index : AR:= AR MR
LD *AR1+0, A
addr
addr == AR1
AR1
AR1
AR1 == AR1
AR1 ++ AR0
AR0
x3
LD *AR1+% ,A
addr
addr == AR1
AR1
AR1
AR1 == (AR1
(AR1 ++ 1)
1) modulo
modulo BK
BK
(BK) specifies the size of the circular buffer.
bit-reverse : FFT
LD *AR1+0B ,A
addr
addr == AR1
AR1
AR1
AR1 == bitrev(AR1
bitrev(AR1 ++ AR0)
AR0)
After access, AR0 is added to ARx with reverse carry (rc) propagation.
84
Notes :
lment courant
du buffer
lment
courant
xn-4 xn-3
xn-2
xn-1
xn-6
xn-3
xn-2
xn-1
xn
xxn+1
n-7
xn-6
xn-5
xn-4
Premier lment
du tableau
du buffer
N=8
Dernier lment
du tableau
xn
*AR1
Bit-Reverse :
. Adressage des donnes en entre ou en
sortie de la FFT
. Attention l adresse de dbut du tableau
: xxxx0000
In d e x
b it
b it re v e rs e
0
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
000
100
010
110
001
101
011
111
in d e x b it
re v e rs e
0
4
2
6
1
5
3
7
85
Notes :
8 registres auxiliaires
(AR0AR7)
2 units de calcul ARAU
registres spcifiques
y
y
BK : taille du buffer
circulaire
AR0 : registre d index
86
Notes :
87
Notes
88
Notes :
Pipeline
Excution de linstruction en plusieurs phases :
1. Recherche de linstruction
2. Dcodage de linstruction
3. Recherche des oprandes
4. Excution
i
Recherche
Instruction
Dcodage
Instruction
Recherche
Oprande
Excution
Inst n
- 1
i+1
Inst n
Inst n
- 1
i+2
i+3
i+4
Inst n+1
Inst n
Inst n
- 1
Inst n+1
Inst n
Inst n
- 1
Inst n+1
Inst n
89
Notes :
ADD T,A,A
i
Transfert
mmoire .U.T.
Unit
Multiplieur
Unit
Accumulateur
LOAD
i+1
LD R1,AR1
i+2
i+3
LOAD
LOAD
MULT
MULT
MULT
ADD
ADD
LD R2,AR2
i+4
ADD
90
Notes :
i
Transfert
mmoire .U.T.
Unit
Multiplieur
Unit
Accumulateur
LOAD
i+1
i+2
i+3
LOAD
LOAD
MULT
MULT
MULT
ADD
ADD
i+4
ADD
91
Notes :
Diminuer la consommation
Augmenter lefficacit
et la surface mmoire & bus
du processeur
Jeu dinstructions
htrogne
92
Notes :
Structures de contrle
Boucle matrielle
Optimiser le traitement des boucles de petite taille
Initialisation des paramtres de la boucle en 1 instruction
Pas d'instructions supplmentaires pour la gestion de la fin de la boucle
LOOP
MOVE
MAC
DEC
JNE
#16,B
(R0)+,(R4)+,A
B
LOOP
RPT
MAC
#16
Boucle
(R0)+,(R4)+,A matrielle
SPLK
RPTB
...
#16
C50
End-1
Loop body
DO
...
#16,END
Loop body
End
End
93
Notes :
Structures de contrle
Instructions de branchement
Branchement multi-cycles: ajout de NOP entre BR et 1re instruction
Branchement retard : dplacement de linstruction de branchement BR
Instructions prdicat
Instructions conditionnelles du type :
If
Then
Else
[R1]
[!R1]
INF R1,R5,10
ADD R3,R2,3
ADD R3,R2,3
Instructions de mode
Dfinir un mode de fonctionnement spcifique
exemple : contrle dun registre dcalage, dune unit de saturation, ...
94
Notes :
PC sur 16 bits
pile de 8 * 16 bits
PFC,IR: pour le pipeline
Interruptions :
IMR: masque interruptions
IFR: flags interruptions
95
Notes :
Notes
96
Notes :
97
Priphriques
Priphriques intgrs:
ports sries
ports parallles
timers
DMA
gnrateur de wait state
host port
PLL
98
Notes :
99
DSP conventionnels
16-24 bits en virgule fixe, accumulation 40-60 bits
32 bits en virgule flottante
16 32 bits d'instructions
Une instruction par cycle, jeu d'instructions
complexe
Notes :
100
Analog Device
ADSP21xx : virgule fixe 16 bits
SHARC : virgule flottante 32 bits
Motorola
DSP560xx, DSP563xx : virgule fixe 24 bits : audionumrique
DSP566xx, DSP568xx : virgule fixe 16 bits
StareCore : virgule fixe 16 bits, hautes performances
101
Notes :
102
Spcification
Spcification
Spcifications
fonctionnelles
Spcifications
technologiques
Dfinition de
de
Dfinition
l'algorithme
l'algorithme
Simulation
Simulation
Gnration manuelle
ou automatique
Performances
Conception fonctionnelle
fonctionnelle
Conception
Description de
lalgorithme
Contraintes
Contraintes
temps
temps rel,
rel,
Consommation
Consommation
dnergie,
dnergie,
Flexibilit
Flexibilit
Partitionnement
Partitionnement
Implantation
Implantation
Logicielle
Logicielle
Implantation
Implantation
Matrielle
Matrielle
Implantation
Implantation
Vecteurs
Vecteurs
de
de test
test
Cot
Cot
103
Notes :
Notes
104
Notes :
Vecteurs
Vecteurs
de
de test
test
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
Corre lator.C
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
Modlisation de
haut niveau
Corre lator.C
Code C
virgule flottante
Gnration manuelle
ou automatique
Gnration manuelle
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
Corre lator.C
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
Corre lator.C
x (n )
y (n )
max ( y ( n ) ) = 3 . 4
n
x(n )
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
for(i=1;i<n; i++)
{
*z = *y++ + *h++
}
Corre lator.C
Code C
virgule fixe
y (n )
max
n
x (n )
( y ( n ) ) = 2. 4
y (n )
Chirp (0 Fe/2)
max ( y ( n ) ) = 9 .3
n
Gnration de code
(compilateur - linker)
Analyse
Performances
105
Notes :
Dveloppement du code
Implantation matrielle : code VHDL
Implantation logicielle : code C
106
Notes :
Test
Implantation logicielle
Gnration de code (compilateur C/ass, linker)
Test & Debug : validation du code
Analyse : mesure des performances
107
Notes :
Emulation du Hardware
On-chip debugging/emulation : IEEE 1179.1 JTAG standard
Carte de dveloppement
Vrification temps rel de lalgorithme
Systme avec des faibles volumes de production
108
Notes :
Dveloppement logiciel
Assembly
Libraries
Assembler
Object Code
Libraries
Hardware Emulator
Simulator
Assembly
Code
Linker
C/C++
Libraries
C Compiler
Binary
Executable
Object Code
C/C++
Code
Debugger
DSP Development Board
Final Product
[Bier97]
109
The degree to which ease of system development is a concern depends on the application.
For example, users of a DSP-based rapid prototyping or simulation acceleration system in a
research environment will probably require tool.s that make system development as simple
as possible. On the other hand, a company developing a next-generation digital cellular
telephone may be willing to suffer with poor development tools and an arduous development
environment if the DSP chip selected shaves $5 off the cost of the end product. (Of course,
this same company might reach a different conclusion if the poor development environment
results in a three month delay in getting their product to market!)
Notes :
That said, items to consider when choosing a DSP are software tools (assemblers, linkers,
simulators, debuggers, compilers, code libraries, and real-time operating systems) hardware
tools (development boards and emulators), and higher-level tools (such as block-diagrainbased code-generation environments).
A fundamental question to ask when choosing a DSP is how the chip will be programmed.
Typically, developers choose either assembly language, a high-level language - such as C or
Ada - or a combination of both. Surprisingly, a large portion of DSP programming is still done
in assembly language. Because DSP applications often have voracious number-crunching
requirements, programmers are often unable to use compilers which generate assembly
code that executes slowly. Rather, programmers are often forced to endure long sessions
hand oplimizing assembly code to lower execution time and code size to acceptable levels.
This is especially true in consumer applications where cost constraints prohibit upgrading to
a higher-performance DSP processor or adding a second processor.
Users choosing high-level language compilers often find that the compilers work better for
floating-point DSPs than for fixed-point ones, for several reasons. First, most high-level
languages do not have native support for fixed-point arithmetic. Second, floating-point
processors tend to feature more regular, less restrictive instruction sets than smaller, fixedpoint processors, and are thus better compiler targets. Third, as mentioned, floating-point
processors typically support larger memory spaces than fixed-point processors, and are thus
better able to accomodate compiler-generated code, which tends to be larger than hand
crafted assembly code.
../..
Application
design
. Choix de la cible
. Configuration de lOS DSP/BIOS
. Librairies :
- DSPLib
- TMS320 DSP Algorithm Standard
. IDE
. Gnrateur de code
. Compilateur C
. Compilateur assembleur
. Linker
. Gestionnaire de projet
110
Notes :
Debug
Analyse
Simulateur
mulateur HW
. Visualisation de signaux
. Profiler (mesure du temps dexcution du code)
. Analyse temps rel (visualisation des tches du
DSP/BIOS)
111
Notes :
Notes
112
Notes :
1200
[Ropers99]
400
350
ANSI C
1000
300
ANSI C
C modifi
600
C modifi
250
800
200
150
100
400
50
0
200
-50
0
ADSP21xx/
ADI
DSP56002/
Motorola
-100
ADSP21xx/
ADI
Processeurs
DSP56002/
Motorola
TMS320C51/
TI
TMS320C54/
TI
TMS320C62/
TI
Processeurs
Meilleurs performances pour les DSP plus gnraux et les DSP virgule
flottante / architecture homogne
113
Notes :
Notes :
Dveloppement en C ou en assembleur
Dveloppement en assembleur :
Le code est optimis
Le code nest pas portable - demande du savoir faire
Dveloppement en C :
Plus abordable rapidement
Beaucoup moins performant et pas aussi simple ...
Conseils :
ne pas dclarer ses variables en float (chaque opration fera appel des routines de
la bibliothque de calcul en flottant)
dclarer les variables en int et les recadrages sont grs par des dcalages :
ncessit de connatre les conventions utilises par le compilateur
ex: renvoi d une donne en double prcision en mmoire
115
Notes :
Conclusion
L architecture des DSP conventionnels a t optimise afin
116
Notes :
Architectures clusterises
DSPs hybrides MCUs
117
Notes :
Notes :
Dfinition :
x = 2 m S + bi 2i
S bm-1 bm-2
b1
b0
b-1 b-2
pLSB
m
pMSB
i= n
-1
-2 2
m 1
m-1
Partie entire
Partie fractionnaire
-1
-2
b = m+ n+ 1 bits
format: (b,m,n)
m
pv
-3
-4
2-n
-5
S bm-1
-6
-7
b-6 b-7
pMSB
-8
-9
-10
b=8
m = -3
n=10
b-n+1 b-n
pLSB
ex:
ex: 0.09472
0.09472 (8,-3,10)
(8,-3,10)
01100001
01100001
-10
0.0625+0.03125+2
0.0625+0.03125+2-10
b
119
Notes :
Notes
120
Notes :
[ 2
,2 m 2 n
n
Pas de quantification : q = 2
Exemple de codage :
(6,3,2), Q26
0111.11
0111.11 7.75
7.75
0111.10
0111.10 7.5
7.5
0000.11
0000.11
0000.10
0000.10
0000.01
0000.01
0000.00
0000.00
1111.11
1111.11
1111.10
1111.10
1111.01
1111.01
0.75
0.75
0.5
0.5
0.25
0.25
00
-0.25
-0.25
-0.5
-0.5
-0.75
-0.75
1000.01
1000.01 -7.75
-7.75
1000.00
1000.00 -8
-8
Notes :
-0.5 = -8+7. 5
-7.75 = -8+0.25
121
m ADD = max (m x ,m y )
Alignement de la virgule
n ADD = max (n x ,n y )
1 1
mx
0
1 10
my
my
mz
nx
1 10 y (1.5)
0
format : (3,1,1)
ny
1
+ 1 si x + y D ADD
m
m z = ADD
si x + y D ADD
m ADD
n z = n ADD
bz = m ADD + n ADD + 1
nz
122
Notes :
Exemple de calcul
Addition: z=x+y
Dbordement possible si sign(x) = sign(y) = sxy
Dbordement prsent si sign(z) sxy
1
0 0 1 1 1 1 1 0
x (7.75)
format : (7,3,3)
0 0 0 0 0 1 0 0
y (0.5)
format : (2,0,1)
0 1 0 0 0 0 1 0
z (8.25)
format : (8,4,3)
0 1 1 1 1 1 0
x (7.75)
format : (7,3,3)
1 1 1 1 1 0 0
y (-0.5)
format : (2,0,1)
0 1 1 1 0 1 0
z (7.25)
format : (8,4,3)
S il n y a pas de dbordement la
dernire retenue peut tre ignore
123
Notes :
r=ab
0
-21
2-2
0 0 0 1 1 1
my
0
mz
-2-2
x (0.5)
0 0 1
format : (2,0,1)
nx
y (1.75)
format : (4,1,2)
ny
1
z (0.875)
format : (6,2,3)
nz = nx + n y
mz =m x +m y + 1
bz = b x + b y
nz
2-3
124
Notes :
Exemple de calcul
Multiplication:
r=ab
1 1 1 0
x (-0.5)
format : (4,0,3)
0 0 1 1
y (0.75)
format : (4,0,3)
0 0
1 1
0 0
1
0 0 0
1 1
1 0 0
1 1
1 1
0 0
0 0
0 0
2-1
.0
z (-0.375)
format : (8,1,6)
2-6
Bit de signe
Bit de signe redondant
125
Notes :
bin
+
y
z
bout
bin
Multiplication
nz = nx + n y
mz =m x +m y + 1
Doublement
du bit de signe
bz = b x + b y
126
Notes :
Processus de codage
x
Dx
fQ(fD(x))
Processus de codage
y
Dy
Xmax
fD(x)
Xmax
Xmin
Xmin
Xmax
(b)
Xmin
Xmin
Modulaire (b)
fQ(x)
xi
ui ui+1
fQ(x)
ui ui+1
x
(c)
Troncature (d)
e(x)= x-y
Xmax
(a)
Saturation (a)
Erreur de quantification
fD(x)
(d)
e(x)
e(x)
xi
ui ui+1
ui ui+1
127
Notes :
Notes
128
Notes :
129
Notes :
21
20 2-1
b1
b0
m
Dynamqiue
Garantire labsence
de dbordement
Partie entire
2-n
b-1 b-2
Partie fractionnaire
Prcision
Maximiser la
prcision des calculs
RSBQ (Rapport Signal Bruit de
Quantification)
130
Notes :
Notes :
Mthodologie de codage
Application
Dtermination
Dtermination
de
de la
la dynamique
dynamique
Dtermination
Dtermination de
de la
la
position
position de
de la
la virgule
virgule
valuation
valuation
de
de la
la prcision
prcision
Synthse
Synthse de
de
larchitecture
larchitecture
Optimisation
Optimisation
de
de la
la largeur
largeur
des
des donnes
donnes
RSBQ
Selection
Selection
Scheduling
Scheduling
Allocation
Allocation
Optimisation
Optimisation
du
du format
format des
des
donnes
donnes
Gnration
Gnration
de
de code
code
Instruction
Instruction selection
selection
Register
Register allocation
allocation
Scheduling
Scheduling
Optimisation
Optimisation
RSBQmin
Code VHDL
Contrainte de prcision
associe a lapplication
Code assembleur
Notes :
for(j=0;
j<M; j++)
{
x[0] = Input[j];
acc = x[0]*h[0] ;
x[i] = x[i-1];
}
y[j] = acc;
}
}
133
Notes :
x(n)
c0
zz-1-1
c1
zz-1-1
cN 2
zz-1-1
cN 1
y (n)
134
Notes :
135
Notes :
Notes
136
Notes :
Dtermination de la dynamique
Dtermination
Dtermination
de
de la
la dynamique
dynamique
Dtermination
Dtermination de
de la
la
position
position de
de la
la virgule
virgule
Dtermination
Dtermination et
et
optimisation
optimisation de
de de
de la
la
largeur
largeur des
des donnes
donnes
2-n
m
m-1
S bm-1 bm-2
b1
-2 2
-1
b0
b-1 b-2
Partie entire
m
pMSB
pLSB
Partie fractionnaire
m xi = log 2 (max ( xi
))
137
Notes :
Mthodes analytiques :
Dtermination de lexpression de la dynamique
Utilisation de la norme L1
Estimation conservatrice mais labsence de dbordement est garantie
138
Notes :
Mthodes analytiques
Normes dans le cas des systmes linaires
Norme L1:
X(z)
H(z)
Y(z)
Norme Chebychev
Norme L2
h ( m)
m =
Notes :
Filtre FIR
Propagation de la dynamique des entres au sein du
] 1,1[
c0
zz-1-1
] c0 , c0 [
c1
zz-1-1
] c N 2 , cN 2 [
] c1 , c1[
+
Normes L1
cN 2
zz-1-1
cN 1
N 1 N 1
ci , ci
i =0
i =0
] cN 1 , cN 1[
N 1
m =
m =0
y (n)
Notes :
140
H1(z)
H1 (e j )
y1(n)
H2(z)
y2(n)
H 2 (e j )
H12 (e j ) = H1H 2 (e j )
141
Notes :
wn
ADD 0
xn
ADD 1
w( n ) = x ( n ) a1 y ( n 1) a2 y (n 2)
wmax1 = xmax . hD ( m )
m =
H D ( z) =
1
1 + a1 z 1 + a2 z 2
-a1
yn
b0
z-1
b1
z-1
-a2
b2
H ( z) =
b0 + b1 z 1 + b2 z 2
1 + a1 z 1 + a2 z 2
142
Notes :
xmax
Norme L1
h(m) = 2.5645 m
m =
xmax
m =
( m) = 9
=2
mw = 4
F iltre1 N um (z )/D en(z )
2
1.5
Norme Chebychev
H(jw)
1
0.5
0
0
0.5
1.5
2.5
3.5
3.5
6
4
HD(jw)
2
0
0
Notes :
0.5
1.5
2.5
143
Notes
144
Notes :
G1.max
N1
G2.max
N2
Mthodes analytiques
Norme L1
2,56
Norme Chebychev
1.687
7,13
Mthodes statistiques
Chirp
1,66
7.12
0.74
2.34
1.4
4.87
G1max =
ymax
xmax
N1 = log 2 (G1max )
G2 max =
wmax
xmax
Notes :
146
Notes :
Dtermination
Dtermination
de
de la
la dynamique
dynamique
Dtermination
Dtermination de
de la
la
position
position de
de la
la virgule
virgule
Dtermination
Dtermination et
et
optimisation
optimisation de
de de
de la
la
largeur
largeur des
des donnes
donnes
147
Notes :
mx = log 2 (max n ( x ( n ) ))
Multiplication : format de la sortie
mz = mx + m y
Addition : choix dun format commun
m ADD = max( mx , m y , mz )
148
Notes :
Sx
Bg
Sy
Sy
Sz
bmx-1
b0
b-1
b-2
b-n
rapport au
Sy
gy
Sz
mx
Nombre de bit de
b0
my
bmz-1
gz
b-2
b-n
rfrentiel commun
m y = m y g y
my'
b0
mz
b-1
b-1
b-2
b-n
mz = mz g z
mz '
m ADD = max( mx g x , m y g y , mz Bg )
149
Notes :
mx = 0
ci
mc = 1
S S
>> 4
S S
mMULT = 0
S S S S S S
>>
>>
+
S
S S S S S S
m ADD = 4
y (n )
S
Renvoi en mmoire
en simple prcision
150
Notes :
mx = 0
mc = 1
ci
S S
mMULT = 0
m ADD = 4
S S S S S
Ng = 8 (8 bits de garde)
S S
S S S S S
y (n )
S S S S S
g ACC = 4
>> 4
m ACC = 4
S
Renvoi en mmoire
en simple prcision
151
Notes :
Notes
152
Notes :
153
Notes :
Optimisation de la largeur
Dtermination
Dtermination
de
de la
la dynamique
dynamique
Dtermination
Dtermination de
de la
la
position
position de
de la
la virgule
virgule
Dtermination
Dtermination et
et
optimisation
optimisation de
de de
de la
la
largeur
largeur des
des donnes
donnes
Implantation logicielle
Architectures traditionnelles : oprateurs de largeur unique
Architectures volues : diffrents types de donnes sont supports
Implantation matrielle
Objectif : optimiser la largeur des oprateurs
154
Notes :
AA
BB
16 bits
32 bits
32 bits
32 bits
Accumulateur
Accumulateur
(16,0,15)
x(n)
zz-1-1
16 bits
Dplacement
vers lentre
c0
16 bits
Dplacement vers
les coefficients
(16,-1,16)
c1
zz-1-1
cN 1
(32,0,31)
32 bits
>>
>>
cN 2
zz-1-1
>>
>>
>>
>>
>>
>>
(32,4,27)
32 bits
(16,4,11)
32 bits
(32,4,27)
16 bits
y (n)
155
Notes :
x (n)
b0
d Recadrage des
coefficients
z-1
>>
>>
b1
z-1
>>
bN-2
z-1
>>
bN-1
>>
>>
>>
>>
>>
Renvoi en
mmoire
du rsultat
y (n)
Filtre FIR
>>
e Recadrage
interne
156
Notes :
bx
x (n)
b0
z-1
b0
bgm0
b1
z-1
b1
bgm1
z-1
bN-2 +
b N-2
+
bN-1 +
b N-1
bgm N-2
bgm N-1 +
bg mem
Filtre FIR
Biais li au codage
des coefficients d
y (n)
157
Notes :
*/
Le
Le signal
signal dentre
dentre et
et les
les coefficients
coefficients sont
sont spcifis
spcifis au
au niveau
niveau du
du code
code C
C en
en entiers
entiers
sur
sur 16
16 bits
bits (absence
(absence de
de type
type virgule
virgule fixe
fixe en
en C)
C) ::
15
lentier
lentier reprsentant
reprsentant Input
Input (16,0,15)
(16,0,15) est
est obtenu
obtenu en
en multipliant
multipliant Input
Input par
par 2215
16
lentier
lentier reprsentant
reprsentantcc (16,-1,16)
(16,-1,16) est
est obtenu
obtenu en
en multipliant
multipliant cc par
par 2216
{
int x[N]; y[M];
long
/* Coefficients (16,-1,16)
acc;
int i,j;
for(i=0; i<N; i++){x[i] = 0;}
for(j=0;
j<M; j++)
{
x[0] = Input[j];
acc = (long)(x[0]*c[0]) >> 4;
Recadrage
Recadrage de
de la
la sortie
sortie de
de la
la multiplication
multiplication ::
changement
changement de
de format
format :: (32,0,31)
(32,0,31)
(32,4,30)
(32,4,30)
}
y[j] = (int)(acc>>16);
}
}
Notes :
Rduction
Rduction de
de la
la largeur
largeur de
de la
la variable
variable 32
32 bits
bits
16
16 bits
bits
Rcupration
Rcupration des
des 16
16 bits
bits les
les plus
plus significatifs
significatifs de
de la
la donne
donne (l(lopration
opration de
de
cast
castsur
sur acc
accpermet
permetde
dercuprer
rcuprerles
lesbits
bitsde
depoids
poidsfaible
faibleuniquement)
uniquement)
158
159
Notes :
Rfrences
P. Laspley, J. Bier, E. Lee, DSP Processor Fundamentals, IEEE Press, 1996, ISBN 0-78033405-1
[ICE97] B. McClean ICE, Status 1997: A Report on the Integrated Circuit Industry,
Integrated Circuit Engineering Corporation (ICE), Scottsdale, 1997
[Bier97] J. Bier, P. Lapsley & G. Blalock, Choosing a DSP Processor, Berkeley Design
Technology (BDT), 1997.
[Ropers99] A. Ropers and al., "DSPstone : TI C54x" Report IISPS AAchen University of
Technology, 1999.
160
Notes :