HEIG-Vd PROCESSEURS DE SIGNAUX...
Transcript of HEIG-Vd PROCESSEURS DE SIGNAUX...
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-1 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
PROCESSEURS DE
SIGNAUX (DSP)
CHAPITRE
1 INTRODUCTION AUX
PROCESSEURS DE SIGNAUX
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-2 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
Table des matières
1. INTRODUCTION 3
2. LES CARACTERISTIQUES DU TRAITEMENT NUMERIQUE DE SIGNAL 4
2.1. Algorithmes mathématiques 4
2.2. Traitement en temps réel 8
2.3. Systèmes échantillonnés 8
2.4. Flexibilité 9
3. AVANTAGES/INCONVENIENTS DE L’UTILISATION DE DSPS 10
4. ARCHITECTURE DE BASE DES DSPS 11
4.1. Architecture de Harvard 12
4.2. Pipelining 13
4.3. Multiplicateur hardware 13
4.4. Instructions spécifiques aux DSPs : décalages, MAC, DMOV, etc 14 4.4.1. Décalage (shifter) 14 4.4.2. DMOV 15 4.4.3. RPT, MAC 17
4.5. Cycle d’instruction rapide 18
5. EXEMPLE : LE PROCESSEUR TEXAS TMS320C50 19
5.1. Caractéristiques 19
5.2. Architecture 19
6. APPLICATIONS 22
7. PROGRAMMATION DES DSPS : SYSTEME DE DEVELOPPEMENT 23
7.1. Le compilateur C 24
7.2. L’assembleur 24
7.3. L’éditeur de liens 25
7.4. Les outils de debugging 25
7.5. L’archiver 25
8. BIBLIOGRAPHIE 26
9. ADRESSES INTERNET 26
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-3 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
1. Introduction
Les processeurs de signaux (Digital Signal Processors, DSP) sont apparus sur le marché au début des années 1980. Ils affichaient alors déjà des performances retentissantes (5 [MIPS], i.e. cycle instruction 200 [ns] pour le TMS32010 de Texas Instruments) atteignant presque le niveau d’un super-ordinateur.
Les fabricants de DSPs sont essentiellement :
• Texas Instruments
• Analog Devices
• Motorola
• AT&T
• NEC
Les DSPs peuvent être à virgule fixe ou flottante. Souvent, il s’agit de processeurs à nombre d’instructions réduit et dont le fonctionnement est relativement simple à comprendre. C’est l’une des raisons pour lesquelles ces processeurs peuvent encore assez souvent être programmés en assembleur (cela dépend des applications), le programmeur pouvant manuellement parvenir à un degré d’optimisation de code impressionnant.
A l’époque des premiers DSPs, la comparaison des performances mathématiques de DSPs même modestes et de microprocesseurs ou microcontrôleurs montrait déjà tout l’intérêt de ceux-ci par rapport à des processeurs ou à des microcontrôleurs (l’unité de la 3ème ligne ci-dessous est la [µs] et non la [ns]) :
Aujourd’hui, les DSPs sont mis en en œuvre dans de très nombreuses applications, allant du contrôle d’avions de chasse jusqu’à la gestion de machines à laver (but : économie d’énergie par un contrôle plus performant) en passant par les téléphones portables et le cryptage des données. Des temps de cycle instruction de 20 [ns] sont courants.
Dans le cadre de ce cours, on se basera essentiellement sur la famille C2000 de Texas Instruments, en particulier le DSP TMS320C2407 spécialisé dans la commande de servo-moteurs, dont plusieurs modules d’évaluation ainsi que les outils de développement sont disponibles à la HEIG.
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-4 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
2. Les caractéristiques du traitement numérique de signal
De nombreuses applications reposent aujourd’hui sur des processeurs de signaux. Les exemples vont du filtrage classique (filtres FIR et IIR) au traitement d’image en passant par le traitement et le codage de la parole, la transformée de Fourier rapide (FFT), les techniques d’audio digitale (lecteur CD), la compression de données (modulations numériques, codage d’image JPEG) et les applications d’automatisation (régulateur, algorithme de commande de servo-moteurs).
Ces applications ont essentiellement quatre points communs :
• Elles requièrent, pour l’implantation des algorithmes, un nombre d’opérations mathématiques important;
• Elles nécessitent un fonctionnement en temps réel;
• Elles concernent des systèmes échantillonnés;
• Elles exigent une certaine flexibilité d’implémentation.
2.1. Algorithmes mathématiques
Pour illustrer le genre d’opération typique utilisé en traitement numérique des signaux, on considère un filtre analogique passe-bas de second ordre (par exemple de type Butterworth) dont on souhaite effectuer une réalisation numérique.
La fonction de transfert du filtre analogique est
( ) ( )( ) 2
211
1
sAsAsU
sYsG
⋅+⋅+==
u(t)signal analogique
y(t)signal analogique
système analogique !
Cicuit électronique
G(s)
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-5 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
L’équation différentielle correspondante de ce système fondamental d’ordre 2 est
( ) ( )Ad y
dtA
dy
dty t u t2
2
2 1⋅ + ⋅ + =
et ses réponses indicielle et fréquentielle sont données ci-dessous.
0 1 2 3 4 5 6 7 80
0.2
0.4
0.6
0.8
1
1.2
1.4
t [s]
Réponse indicielle d’un filtre de Butterworth d’ordre 2
f_fil_a_al_1.eps
10−1
100
101
−40
−20
0Réponse harmonique d’un filtre de Butterworth d’ordre 2
gain
[dB
]
10−1
100
101
−180
−135
−90
−45
0
ω [rad/s]
phas
e [d
egré
]
f_fil_a_al_2.eps
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-6 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
Pour implanter un tel système dynamique sous forme numérique, il faut procéder à la discrétisation de l’équation différentielle le modélisant, i.e. il faut transformer le modèle analogique (continu) ou la variable t peut évoluer continûment en un modèle discret sous la contrainte que la variable t ne peut varier que par valeurs discrètes
t=0, 1h, 2h, 3h, …, (k-1)h, kh, …
h étant la période d’échantillonnage. Si l’on procède intuitivement, on peut discrétiser l’équation différentielle en remplaçant t par kh et en proposant des approximations pour des dérivées première et seconde:
( ) ( )( ) ( )
( ) ( ) ( )
( ) ( )( ) ( ) ( ) ( )
( ) ( ) ( )
u t u k
y t y k
ddt
y ty k y k
h
ddt
y tddt
ddt
y t
y k y kh
y k y kh
hy k y k y k
h
→→
→− −
=
→
− −−
− − −
=− ⋅ − + −
1
1 1 22 1 22
2 2
On approximera donc le système analogique par le système numérique régi par l’équation aux différences (modèle discret) :
( ) ( ) ( ) ( )Ah
Ah
y kA
hAh
y kAh
y k u k22
1 22
1 221
21 2+ +
⋅ + −
⋅−
⋅ − + ⋅ − =
qui après remise en forme devient :
( ) ( ) ( ) ( )y k a y k a y k b u k+ ⋅ − + ⋅ − = ⋅1 2 01 2
Le programme implantant cet algorithme devra donc exécuter, à chaque période d’échantillonnage, les opérations suivantes :
( ) ( ) ( ) ( )y k a y k a y k b u k= − ⋅ − − ⋅ − + ⋅1 2 01 2
soit 3 multiplications et 2 sommes.
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-7 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
AD
u(t)
signal discret
signal analogique
u(k)
AD
y(k)
y(t)
signal discret
signal analogique
Algorithme de traitement filtrage numérique FFT régulateur codage compressionimplanté sur DSP
vu de l'extérieur comme un système analogique !
Système d'acquisition(convertisseur A/D,port série, etc)
Système de transmission(convertisseur D/A,port série, etc)
Processeur de signal
Le code C correspondant pourrait être le suivant, où les calculs sont faits en virgule flottante :
void interrupt filtre() /*routine d’interruption ac tivee a chaque instant d’echantillonnage*/
{
static float y[3]; /*tableau contenant y(k), y(k-1 ) et y(k-2)*/
float u; /*entree echantillonnee*/
/*lit le résultat de la conversion A/D*/
u = AD_lec();
/*algorithme*/
y[0] = -a1*y[1] - a2*y[2] + b0*u;
/*lance la conversion D/A de y(k)*/
DA_conv(y[0]);
/*mise a jour des sorties memorisees pour l’instant d’echantillonnage suivant*/
y[2] = y[1];
y[1] = y[0];
}
Sous forme générale, le signal de sortie d’un filtre numérique linéaire est donné par :
( ) ( ) ( )y k a y k i b u k jii
n
jj
m
= − ⋅ − + ⋅ −= =∑ ∑
1 1
On voit donc que le genre d’opération mathématique typique que doit effectuer le processeur est une somme de produits.
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-8 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
2.2. Traitement en temps réel
En traitement de signal en temps réel, l’algorithme mathématique doit s’exécuter sans provoquer de retard notable, de façon à garantir l’échantillonnage régulier des grandeurs d’entrée de même que la mise à jour des grandeurs de sortie.
Exemples : traitement de la parole, traitement d’image, régulation numérique, auto-adaptation.
Lect
ure
et t
raite
men
t du
rés
ulta
td
e l'a
cqui
sitio
n (
=>
y(k
))
Exé
cutio
n d
e l'a
lgo
rith
me
detr
aite
men
t =
> u
(k)
= f(
w(k
), w
(k-1
), ..
.,y(k
), y
(k-1
),..
.) )
Tra
nsm
issi
on d
u r
ésu
ltat
(La
nce
men
t d'
une
con
vers
ion
D/A
, écr
iture
sur
reg
istr
e d'
ém
issi
on
du
port
sér
ie, e
tc)
Tâ
che
s de
fond
(n
on te
mps
rée
l)
k k+1
h
TconvAD TconvDATcalcul
Lanc
em
ent
d'un
e ac
qui
sitio
n(c
onve
rsio
n A
/D, l
ectu
re d
u r
egis
tre
de
réce
ptio
n du
por
t sér
ie, e
tc)
t
k k+1t
Signal d'horloge(base de tempspour définir h)
Tâches
etc
inte
rrup
tion
Lan
cem
ent d
'une
acq
uisi
tion
(con
vers
ion
A/D
, lec
ture
du
reg
istr
e d
eré
cep
tion
du p
ort s
érie
, etc
)
2.3. Systèmes échantillonnés
Afin de d’être implantable sur un processeur de signal, l’application doit pouvoir être traitée comme un système échantillonné (discrétisation possible de l’axe du temps, t=kh), bien qu’étant souvent intrinsèquement analogique. Le choix de la fréquence d’échantillonnage
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-9 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
hfe
1=
est ici fondamental. Le tableau ci-dessous donne quelques valeurs typiques de fe en fonction de l’application visée.
Application Fréquence d’échantillonnage typique
Régulation 1 [kHz]
Télécommunications 8 [kHz]
Traitement de la parole 8-10 [kHz]
Traitement audio 40-48 [kHz]
Mise à jour d’écran video 30 [Hz]
Mise à jour des pixels 14 [Mhz]
Le processeur doit ainsi être capable de manipuler des données échantillonnées en grande quantité et également faire les calculs en temps réel.
2.4. Flexibilité
Les algorithmes mathématiques de traitement de signal et d’image, comme par exemple les techniques de compression de données ou l’estimation de paramètres vitaux (ECG, etc), sont l’objet de recherches et d’adaptations incessantes : la flexibilité est nécessaire pour être à jour avec l’état de l’art et pour être en mesure de faire évoluer un produit à moindre coût et prolonger ainsi sa durée de vie. Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen de garantir une bonne flexibilité.
De plus, il existe des techniques impossibles ou quasi impossibles à réaliser (réalisabilité technique ou économique) analogiquement. La solution programmée permet de les implanter avec beaucoup plus de facilité, le programmeur ayant tout loisir d’intégrer à l’algorithme de base « selon text book » des finesses acquises par son expérience (filtres non linéaires, non-stationnaires, etc).
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-10 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
3. Avantages/inconvénients de l’utilisation de DSPs
Le principal avantage d’une réalisation basée sur DSP, i.e. d’un traitement de signal programmé par opposition à câblé, est sans nul doute la facilité avec laquelle un algorithme/une méthode même compliqué peut être implanté dans un produit, puisqu’il « suffit » de le programmer.
ADu ( t )
s i g n a l d i s c r e ts i g n a l a n a l o g i q u e
u ( k )
ADy ( k )
y ( t )s i g n a l d i s c r e t
s i g n a l a n a l o g i q u e
A l g o r i t h m e d e t r a i t e m e n t f i l t r a g e n u m é r i q u e F F T r é g u l a t e u r c o d a g e c o m p r e s s i o ni m p l a n t é s u r D S P
v u d e l ' e x t é r i e u r c o m m e u n s y s t è m e a n a l o g i q u e !
S y s t è m e d ' a c q u i s i t i o n( c o n v e r t i s s e u r A / D ,p o r t s é r i e , e t c )
S y s t è m e d e t r a n s m i s s i o n( c o n v e r t i s s e u r D / A ,p o r t s é r i e , e t c )
P r o c e s s e u r d e s i g n a l
f _ 0 1 a _ 0 2 . e p s
Sur cette base de comparaison, un système basé sur DSP supplante indiscutablement sa version analogique. Il possède néanmoins un certain nombre de points faibles.
POINTS FAIBLES DE LA SOLUTION NUMERIQUE COMPAREE A LA SOLUTION ANALOGIQUE
1 Sans précautions particulières, insertion de non-linéarités, dues à la quantification des convertisseurs, à la précision de calcul finie du processeur et au procédé d'échantillonnage (recouvrement spectral). Ces non-linéarités introduisent des bruits supplémentaires, voire des battements.
2 Insertion de retards purs :
• temps de conversion A/D;
• temps d'exécution de l'algorithme de traitement de signal;
• temps de conversion D/A.
3 Insertion d'un retard supplémentaire dû à la construction imparfaite du signal analogique à partir du signal numérique.
4 Insertion d'un retard (déphasage) supplémentaire dû à la présence d'un filtre anti-repliement (voir cours de traitement de signal).
5 Infrastructure logicielle lourde (émulateur, compilateur, assembleur, éditeur de liens).
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-11 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
6 Pour un algorithme simple, grand nombre de composants, d'une complexité supérieure.
7 A structure et identiques (par exemple filtre passe-bas analogique et filtre passe-bas numérique), le filtre analogique offre des performances supérieures.
En regard de ces inconvénients, il faut évidemment énumérer les points forts de la solution DSP :
POINTS FORTS DE LA SOLUTION NUMERIQUE COMPAREE A LA SOLUTION ANALOGIQUE
1 Souplesse d'emploi exceptionnelle, modification aisée des paramètres et de la structure de l’algorithme de traitement de signal.
2 Adaptation (en temps réel ou off line) des paramètres de l’algorithme.
3 Implantation aisée d’algorithmes complexes. Mise en oeuvre d’algorithmes sans équivalent analogique (filtre FIR).
4 Insensibilité de la caractéristique entrée-sortie aux parasites, aux variations de température, au vieillissement, etc.
5 Pas de dispersion des paramètres en cas de fabrication en série.
6 Prise en compte de défauts, des limites et comportements particuliers de l’application (non-linéarités, saturation) par simple programmation.
De plus, il faut insister sur le fait que dès le moment où l'on dispose d'un processeur pour effectuer le traitement, on en profitera pour lui faire exécuter de multiples autres travaux (surveillance, protection, monitoring). Sur ce plan-là, la solution DSP est imbattable, et cet aspect doit être pris en compte lors de la comparaison prix/performances des deux solutions.
4. Architecture de base des DSPs
Pour satisfaire les exigences des applications de traitement numérique du signal posées au § 2, un DSP possède les caractéristiques remarquables suivantes :
• Son architecture est de type Harvard;
• Il fait usage du « pipelining »;
• Il dispose d’un multiplicateur dédié;
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-12 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
• Il comprend un certain nombre d’instructions spécifiques au traitement numérique des signaux;
• Il bénéficie d’un cycle d’instruction rapide.
4.1. Architecture de Harvard
L’architecture de Harvard d’un processeur présente des espaces mémoires de programme et de données distincts, ceci autorisant la simultanéité de l’accès aux instructions (en mémoire de programme) et aux opérandes (en mémoire de données).
Dans le cas des DSPs Texas, cette architecture est employée de manière légèrement modifiée, puisque le transfert entre les deux espaces est également possible (figure ci-dessous, processeur TMS320C50, actuellement famille C5000).
7T e s t / e m u l a t i o n
T i m e r
6S e r i a l p o r t 1
P r o g r a m b u s
D a t a b u s
C P U
P r o g r a mc o n t r o l l e r
O s c i l l a t o r / t i m e rI n i t i a l i z a t i o nI n t e r r u p t sM u l t i p r o c e s s i n gM e m o r y c o n t r o l
P a r a l l e ll o g i cu n i t( P L U )
C A L U
D a t a b u s
. M u l t i p l i e r. A c c u m u l a t o r. A C C B u f f e r. S h i f t e r s. A r i t h m e t i cl o g i c u n i t ( A L U )
P r o g r a mR O M
D a t a / P r o g r a mD A R A M
B 0 ( 5 1 2 X 1 6 )
D a t a D A R A MB 2 ( 3 2 X 1 6 )B 1 ( 5 1 2 X 1 6 )
P r o g r a mc o u n t e r
S t a t u s / c o n t r o lr e g i s t e r s
H a r d w a r e s t a c kA d d r e s s g e n e r a t i o n
l o g i cI n s t r u c t i o n r e g i s t e r
M e m o r y -m a p p e dr e g i s t e r s
M e m o r yP e r i p h e r a l s
A u x i l i a r yr e g i s t e ra r i t h m e t i c
u n i t( A R A U )
' C 5 0 2 K
D a t a / P r o g r a mS A R A M
' C 5 0 9 K6S e r i a l p o r t 2
6T D Ms e r i a l p o r t
1
6B u f f e r e ds e r i a l p o r t
1 8H o s t p o r ti n t e r f a c e
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-13 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
4.2. Pipelining
Il faut savoir que lorsqu’un processeur de type DSP exécute une instruction, il en traite 2, 3 voire 4 en parallèle, selon le niveau du pipeline. Pendant un cycle d’instruction, plusieurs instructions sont actives, chacune à un degré différent (fetch, decode, operand, execute).
En principe, le pipeline est transparent pour l’utilisateur, excepté dans les cas où il doit être interrompu, ce qui se produit lorsqu’une instruction de branchement est rencontrée, puisque selon le chemin pris par le programme, le pipeline doit être vidé puis rempli. Des instructions spéciales existent pour limiter le temps perdu dans un tel cas de figure (« delayed branch », B[D]).
E x e c u t e ( E )
R e a d ( R )
D e c o d e ( D )
F e t c h ( F )
C L K I N
N
N + 1
N + 2
N + 3
N ± 1
N
N + 1
N + 2
N ± 2
N ± 1
N
N + 1
N ± 3
N ± 2
N ± 1
N
F u l l y l o a d e dp i p e l i n e
4.3. Multiplicateur hardware
Pour un DSP, la multiplication se doit impérativement d’être une instruction d’un cycle. Pour chaque élément
( )a y k ii ⋅ −
de l’algorithme du filtre (§ 2.1), on peut faire usage de l’instruction de multiplication
MPY typique de tout DSP.
LT Y_I ;charge le multiplicande dans le registre ;T
MPY A_I ;multiplie par le coefficient, le ;resultat se trouvant dans le registre P
Auparavant, on aura chargé le multiplicateur avec le multiplicande par l’instruction LT .
A noter que le résultat d’une multiplication de deux nombres entiers 16 bits (positifs pour cet exemple) fournit un résultat s’étendant sur presque 32 bits :
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-14 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
( ) ( ) 1212122 31151530 −<−⋅−≈
C’est pourquoi le registre P recevant le résultat de la multiplication a nécessairement une largeur de 32 bits. Le problème se complique si plusieurs produits de cette nature doivent être additionnés puisqu’il peut rapidement se produire un dépassement de capacité (overflow).
4.4. Instructions spécifiques aux DSPs : décalages, MAC, DMOV, etc
4.4.1. Décalage (shifter)
Le résultat de la multiplication est d’office placé dans le registre produit P du processeur et peut par exemple être additionné directement au contenu actuel de l’accumulateur (dans le but de faire une somme de produits) par l’instruction APAC. Le registre ACC, i.e. l’accumulateur, a lui aussi une largeur de 32 bits.
* * * * * * * * * * *
Filtre numerique passe-bas de type IIR de second or dre
Cette routine est appelee a chaque instant d’echant illonnage (version 1, non optimisee) ****************************************** On suppose que les coefficients du filtre sont stoc kes dans les variables (memoires) XA1, XA2 et XB0 et que les sig naux d’entree et de sortie dans les variables (memoires) U, Y0, Y1 e t Y2 (cf chap.2 pour leur declaration)
FILTRE: LT Y1 ;charge le multiplicande dans le regi stre T
MPY XA1 ;multiplie
PAC ;place le résultat de la multiplication dans ;l’accumulateur
LT Y2 ;charge le multiplicateur dans le registre T
MPY XA2 ;multiplie
APAC ;ajoute le résultat de la multiplication à ;l’accumulateur
LT U ;charge le multiplicateur dans le registre T
MPY XB0 ;multiplie
APAC ;ajoute le résultat de la multiplication à ;l’accumulateur
SACH Y0,4 ;stocke la partie haute du resultat (32 bits) ;en le decalant de 4 bits a gauche = division ;par 2 12
DMOV Y1 ;déplace d’un emplacement de mémoire data ;pour créer le délai (Y1->Y2)
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-15 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
DMOV Y0 ;déplace d’un emplacement de mémoire data ;pour créer le délai (Y0->Y1)
RETE ;retour de l’interruption
Une opération très importante est le décalage de bits : le contenu de l’accumulateur peut être sauvé en mémoire en même temps que décalé vers la gauche ou la droite ( = multiplié ou divisé par une puissance de 2). En arithmétique à virgule fixe, i.e. avec un processeur ne traitant que des nombres entiers, il faut être attentif au problème de résolution et de débordement (dépassement de capacité, i.e. overflow), ce qui peut se faire en gérant soigneusement les décalages. Admettons que dans l’exemple ci-dessus, les opérandes des multiplications soient mis à l’échelle comme suit (multiplication par 4096 pour le coefficient XB0 et par 65536/10 pour le signal U) :
( ) ( )
XB b b
U u k u k
0 4096 2
4096
102
2
10
012
0
416
= ⋅ = ⋅
= ⋅ ⋅ = ⋅
Si l’on souhaite que le résultat Y de la multiplication, sauvegardé dans l’accumulateur par exemple par PAC (« Push on ACcumulator »)
( )ACC XB U b u k= ⋅ = ⋅ ⋅ ⋅0 22
1012
16
0
soit mis à l’échelle de la même manière que U, il faut sauver le contenu de l’accumulateur dans la variable Y0 en divisant préalablement par 212 :
SACH Y0,4 ;stocke la partie haute du resultat ;(32 bits) en le decalant de 4 bits a ;gauche = division par 2 12
En effet, SACH Y0,4 (« Store ACcumulator High ») décale le contenu de l’accumulateur de 4 bits vers la gauche (= multiplication par 24 ) et ne sauve que la partie haute du résultat, i.e. les 16 bits de poids fort, ce qui revient à une division par 216 , soit au total une division par (24 / 216 )-1= 212 =4096.
4.4.2. DMOV
L’instruction DMOV reproduit la fonction de l’opérateur de décalage d’une période d’échantillonnage, en permettant simplement de décaler les données d’un emplacement mémoire au suivant, de façon à effectuer la mise à jour pour l’instant d’échantillonnage à venir :
z-1u(k) y(k) = u(k-1)
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-16 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-17 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
4.4.3. RPT, MAC
Une autre instruction spécialisée est LTD, qui exécute simultanément, dans l’ordre, LT, APAC, DMOV, le tout en un seul cycle ! Elle peut être utilisée dans l’exemple précédent (§ 4.3) pour diminuer le nombre de lignes de code et surtout réduire le temps de calcul !
*
*
Filtre numerique passe-bas de second ordre
(version 2, optimisee avec LTD)
******************************************
FILTRE: ZAC ;met a zero l’accumulateur
LT Y2 ;charge le multiplicande dans le registre ;T
MPY A2 ;multiplie
LTD Y1 ;charge le multiplicande dans le registre ;T
;additionne le résultat de la ;multiplication à l’accumulateur
;déplace d’un emplacement de mémoire data ;pour créer le délai (Y1->Y2)
MPY A1 ;multiplie
LTA U ;ajoute le résultat de la multiplication ;à l’accumulateur
;charge le multiplicateur dans le ;registre T
MPY B0 ;multiplie
APAC ;ajoute le résultat de la multiplication ;à l’accumulateur
SACH Y0,4 ;stocke la partie haute du resultat ;(32 bits) en le decalant de 4 bits a ;gauche
DMOV Y0 ;déplace d’un emplacement de mémoire data ;pour créer le délai (Y0->Y1)
RETE ;retour de l’interruption
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-18 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
Mais il y a mieux : les instructions RPT et MACD peuvent réduire le code à presque rien :
*
*
Filtre numerique passe-bas de second ordre
(version 3, optimisee avec RPT et MACD)
******************************************
;initialisations diverses
FILTRE: RPT 2 ;initialise le compteur
MACD A1,*+ ;LT, DMOV, MPY et APAC
SACH Y0,4 ;stocke la partie haute du resultat ;(32 bits) en le decalant de 4 bits à ;gauche
RETE ;retour de l’interruption
4.5. Cycle d’instruction rapide
Les capacités de traitement en temps réel des DSPs sont dues à la rapidité d’exécution des instructions, qui pour la plupart des opérations sont exécutées en un seul cycle.
Le temps de cycle instruction typique est maintenant de 20 à 100 [ns], plusieurs processeurs descendant jusqu’à 5 [ns] ! Avec ces durées et les valeurs des fréquences d’échantillonnage typiques indiquées au § 2.3, il est facile d’estimer le nombre d’instructions exécutable à chaque cycle. Comme on le voit sur la figure ci-dessous, les DSPs sont utiles aux applications de régulation sophistiquées (régulation auto-adaptative, robotique, commande vectorielle de machines asynchrones). Il y a encore suffisamment d’instructions par cycle pour les applications typiques des télécommunications et de l’audio, lesquelles ne demandent que quelques centaines d’instructions pour leur implémentation (annulation d’écho, etc).
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-19 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
En revanche, pour le traitement d’image, il faut trouver une autre solution, consistant à mettre en oeuvre plusieurs DSPs. Cette solution nécessite des dispositifs d’échanges de données entre DSPs que l’on trouve aujourd’hui couramment (ports série rapides, sans mémoire dual port). De nouveaux DSPs sont en fait composés de plusieurs DSPs de base réunis sur le même chip (cf « QUAD SHARC »).
5. Exemple : le processeur Texas TMS320C50 (obsolète)
5.1. Caractéristiques
Les caractéristiques principales du DSP Texas TMS320C50 (famille C5000) sont résumées ci-après.
Cycle Time (ns) 50
Data / Program Memory (Words) 64K/64K
Frequency (MHz) 40
MIPS 20
Parallel Ports 64Kx16
RAM (Words) 10K
Serial Ports 1
TDM Serial Ports 1
Timers 1
Total Serial Ports 2
5.2. Architecture
Comme le montre la figure ci-dessous, l’architecture est du type Harvard, les mémoires de programme et de données étant dans des espaces différents. A l’extérieur, ces deux espaces sont toutefois multiplexés, afin de réduire le nombre de pattes du circuit tout en maintenant la plage d’adressage.
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-20 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
P ± S C A L E R( ± 6 , 0 , 1 , 4 )
P R E S C A L E RS F L ( 0 ± 1 6 )
T R E G 2 ( 4 )
3 2
D A T A B U S
P R O G R A M B U SD 1 5 ± D 0
R B I T
A 1 5 ± A 0
D B M R
M U X
3 2A C C B ( 3 2 )
3 2
A C C LA C C H
3 2
A L U ( 3 2 )
3 23 2
M U X
M U X
M U X
P R E G ( 3 2 )
M U L T I P L I E RT R E G 0
M U X
M U XB 1B 2
D A R A MB 0
D A R A M
M U X
f r o m I R E G7 L S B
M U X
9
M U X
S A R A M
A R A U
M U X
3
33
P R O G R A M B U S
C B S R 2C B S R 1C B C R ( 8 )
A R 7A R 6
A R 4A R 3A R 2A R 1
A R C RI N D X
S e r i a l P o r t 1T R E G 1 ( 5 )B R C RG R E GI F RI M RR P T CP M S TS T 1S T 0
B M A RI R E G
P F C
M C S
I n s t r u c t i o n
A d d r e s s
R O M
P A S R
C O M P A R E
P A E R
( 8 x 1 6 )S t a c k
P C
M U X
N M IW ER D
C L K I N 2X 2 / C L K I NC L K O U T 1X 1
4I N T ( 1 ± 4 )M P / M C
R S
H O L D AH O L D
X FB R
R E A D YS T R BR WP SD SI S
C L K M D 3C L K M D 2
PROG
RAM
BUS
DATA
BUS
C B E R 2C B E R 1
A R 5
B I O
MUXMUX
N o t e s : A l l r e g i s t e r s a n d d a t a l i n e s a r e 1 6 - b i t s w i d e u n l e s s o t h e r w i s e s p e c i f i e d .
D a t a / P r o g r a m
D a t a / P r o g r a m
P L U
D a t a
3 2
3 2
3 2
C L K M D 1
A R 0
P A 0
P A 1 5
I / O P o r t s
²
D A T A B U S
...
P R E S C A L E RS F R ( 0 ± 1 6 )
P O S T S C A L E R( 0 ± 7 )
I A C K
I A Q
Prog
ram Con
troller
DRB
S T 0 [ A R P ] S T 0 [ D P ]
S T 1 [ C ]
1 6 I O W S RC W S R ( 5 )
P D W S R
S o f t w a r e w a i t ± s t a t e s
S e r i a l P o r t 2
²T i m e - D i v i s i o nM u l t i p l e x e dS e r i a l P o r t
²B u f f e r e dS e r i a lP o r t
T i m e r
²H o s t P o r tI n t e r f a c e
E m u l a t i o n
L’unité arithmétique et logique centrale (ALU) contient
• un shifter (ou scaler) 16 bits;
• un multiplicateur 16x16 bits;
• un accumulateur de 32 bits.
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-21 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
Le registre d’accumulateur 32 bits ACC est partagé en deux segments de 16 bits pour le stockage en mémoire de données : ACCH (partie haute) et ACCL (partie basse).
Le multiplicateur 16x16 bits est capable de calculer le produit 32 bits à chaque cycle. Deux registres y sont associés :
• un registre temporaire 16 bits TREG0 qui contient l’un des opérandes de la multiplication, le multiplicande;
• un registre produit 32 bits PREG qui reçoit le produit.
Avant le transfert du registre PREG dans l’accumulateur, le produit peut être décalé à gauche (multiplication par un multiple de 2) ou la droite (division par un multiple de 2).
Une instruction typique ALU se déroule en trois étapes :
• la donnée est transférée de la RAM sur le bus de données;
• la donnée passe à travers le shifter et l’ALU où l’opération arithmétique est effectuée;
• le résultat est déplacé dans l’accumulateur.
P ± S C A L E R( ± 6 , 0 , 1 , 4 )
P R E S C A L E RS F L ( 0 ± 1 6 )
3 2
D a t a B u s
3 2A C C B ( 3 2 )
3 2
A C C LA C C H
3 2
A L U ( 3 2 )
3 23 2
M U X
M U X
M U X
P R E G ( 3 2 )
M u l t i p l i e rT R E G 0 T R E G 1 ( 5 )
Prog
ram Bu
s
3 2
3 2
3 2
D a t a B u s
C ( 1 )S T 1
P R E S C A L E RS F R ( 0 ± 1 6 )
P O S T S C A L E R( 0 ± 7 )
N o t e s : A l l r e g i s t e r s a n d d a t a l i n e s a r e 1 6 - b i t s w i d e u n l e s s o t h e r w i s e s p e c i f i e d .
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-22 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
6. Applications
Automotive Consumer Control General-Purpose
Adaptive ride control
Antiskid brakes
Cellular telephones
Digital radios
Engine control
Global positioning
Navigation
Vibration analysis
Voice commands
Digital radios/TVs
Educational toys
Music synthesizers
Power tools
Radar detectors
Solid-state answering machines
Disk drive control
Engine control
Laser printer control
Motor control
Robotics control
Servo control
Adaptive filtering
Convolution
Correlation
Digital filtering
Fast Fourier transforms
Hilbert transforms
Waveform generation
Windowing
Graphics/Imaging Industrial Instrumentation Medical
3-D rotation
Animation/digital map
Homomorphic processing
Pattern recognition
Image enhancement
Image compression/transmission
Robot vision
Workstations
Numeric control
Power-line monitoring
Robotics
Security access
Digital filtering
Function generation
Pattern matching
Phase-locked loops
Seismic processing
Spectrum analysis
Transient analysis
Diagnostic equipment
Fetal monitoring
Hearing aids
Patient monitoring
Prosthetics
Ultrasound equipment
Military Telecommunications Telecommunications Voice/Speech
Image processing
Missile guidance
Navigation
Radar processing
Radio frequency modems
Secure communications
Sonar processing
1200- to 19200-bps modems
Adaptive equalizers
ADPCM transcoders
Cellular telephones
Channel multiplexing
Data encryption
Digital PBXs
Digital speech interpolation (DSI)
Personal digital assistants (PDA)
DTMF encoding/decoding
Echo cancellation
Fax
Line repeaters
Speaker phones
Spread spectrum communications
Video conferencing
X.25 Packet Switching
Personal communications systems (PCS)
Speech enhancement
Speech recognition
Speech synthesis
Speaker verification
Speech vocoding
Voice mail
Text-to-speech
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-23 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
7. Programmation des DSPs : système de développement
La figure ci-dessous montre le système de développement complet du processeur DSP Texas TMS320C50 (famille C5000). Tous les outils indiqués tournent en général sur PC. L’apprentissage du système de développement d’un microprocesseur peut s’avérer être un travail de longue haleine : il suffit de voir la quantité de documentation accompagnant tout système de développement !
A relever que de disposer d’outils performants est un facteur essentiel dans la diminution des coûts, puisque que l'un des problèmes fondamentaux des entreprises occidentales est le prix de la main d’œuvre. Aussi les outils de développement entrent-ils de plein droit dans l’évaluation d’un microprocesseur.
T M S 3 2 0 D e v e l o p m e n t P r o d u c t I n t e g r a t i o n
A r c h i v e r
M a c r oL i b r a r y
M a c r oS o u r c eF i l e s
A r c h i v e r
L i b r a r y o fO b j e c tF i l e s
T M S 3 2 0D S P
H e x C o n v e r s i o nU t i l i t y
E P R O MP r o g r a m m e r
R u n t i m eS u p p o r t L i b r a r y
X D S E m u l a t o rw i t h D e b u g g e r
A b s o l u t eL i s t e r
CS o u r c eF i l e s
A s s e m b l e rS o u r c e
C O F FO b j e c tF i l e s
E x e c u t a b l eC O F FF i l e S i m u l a t o r
E V Mw i t h D e b u g g e r
C C o m p i l e r
L i n k e r
A s s e m b l e r
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-24 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
7.1. Le compilateur C
Le compilateur traduit du code source C en code source assembleur du processeur.
7.2. L’assembleur
L’ assembleur traduit les fichiers source en fichiers objet, ceux-ci étant alors en langage machine. Les fichiers sources contiennent des instructions (indiquées par leur code mnémonique et non par leur code binaire ou opcode) et directives assembleur. Les directives assembleur permettent de contrôler le processus d’assemblage, par exemple en offrant un assemblage conditionnel fonction de tel ou tel paramètre (version du processeur ou configuration de sa mémoire).
Le code objet produit est relogeable, i.e. il ne fait référence à aucune adresse absolue. Il pourra donc être placé et exécuté dans des zones de la mémoire du processeur inconnues au moment de l’assemblage.
L’assembleur effectue les opérations suivantes :
• test de l’exactitude du programme;
• génération de la table de symboles contenant la valeur (relative) de tous les symboles et de toutes les étiquettes définis par l’utilisateur dans le programme;
• mise à jour d’un compteur de position qui indique où doit être placée (relativement) en mémoire l’instruction ou la donnée suivante;
• transformation des noms symboliques (codes mnémoniques) des instruction et opérandes en leurs valeurs binaires (génération du programme objet);
• génération d’un listing (option).
L’assembleur ne produit donc pas de code directement exécutable.
Le format des fichiers objet (langage machine) est bien défini. Dans le cas Texas, il s’agit du COFF (« Common Object File Format »).
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-25 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
7.3. L’éditeur de liens
L’éditeur de liens (linker) lie les fichiers objet générés par l’assembleur et produit un seul fichier exécutable. Les différents fichiers objets générés par l’assembleur faisant très souvent référence les uns aux autres, le linker résout ces problèmes en remplaçant les références à des symboles externes par des adresses bien définies. Pour cela, il dispose d’informations complètes concernant la configuration de la mémoire du processeur (map file). Toutefois, le linker est également capable de générer un code exécutable relogeable.
Le code exécutable doit encore être chargé en mémoire du processeur, cette tâche n’incombant pas au linker mais à un programme de chargement séparé, dépendant de l’application (loader). Dans certains cas, le fichier exécutable est encore converti en un code compatible avec des programmateurs d’EPROMs.
7.4. Les outils de debugging
Pour débugger le code, les outils principaux sont l’émulateur et le simulateur.
L’émulateur est à même d’émuler par hardware le fonctionnement du processeur en s’y substituant sur la carte.
Le simulateur permet une émulation exclusivement par logiciel, ce qui exclut par exemple l’accès aux périphériques et rend le test des programmes correspondants plus délicat.
Dans un cas comme dans l’autre, des fonctions indispensables au debugging sont à disposition, comme le fonctionnement pas par pas, la définition de points d’arrêt, la visualisation en tout temps des registres du processeur et de la mémoire, etc. On peut à la fois travailler avec le code assembleur et le code C.
Le simulateur constitue le minimum indispensable au développement d’un projet. Toutefois, le programmeur doit souvent avoir recours à l’émulateur, outil en général beaucoup plus coûteux (dès 3’000.-), même si son prix n’est plus comparable à ce qu’il était il y quelques années, i.e. avant que les microprocesseurs ne soient systématiquement dotés de l’interface JTAG.
7.5. L’archiver
L’ archiver permet de grouper des fichiers dans une seule librairie. Le code source assembleur peut alors faire référence à des routines se trouvant dans la librairie, le nom de celle-ci étant spécifié lors de l’assemblage ou du lien. On peut par exemple écrire en assembleur plusieurs routines mathématiques et les réunir ensuite en un seul groupe logique par le moyen de l’archiver.
HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)
-26 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC
8. Références
8.1. Bibliographie
Titre Référence bibliothèque HEIG-Vd
[1] TMS320C5x, User’s Guide, 1993, Texas Instruments
[2] TMS320C1x/C2x/C2xx/C5x, Assembly Language Tools, User’s Guide, 1995, Texas Instruments
[3] TMS320C2x/C2xx/C5x, Optimizing C Compiler, User’s Guide, 1995, Texas Instruments
[4] TMS320C5x, C Source Debugger, User’s Guide, 1994, Texas Instruments
[5] A simple approach to digital signal processing, C.Marven, G.Ewers, Texas Instruments, 1994
[6] Programmation Assembleur, Intel 8086/8088, IBM PC et compatibles, Service Informatique, J.-P.Molliet, 1988, EINEV
[7] Digital Signal Processing in VLSI, R.J.Higgins, Analog Devices, Prentice Hall, 1990
[8] Digital Signal Processing with the TMS320 Family, Theory, Algorithms and Implementation, volume 2, Texas Instruments, 1990
8.2. Adresses Internet
Texas Instrument http//www.ti.com
http://dspvillage.ti.com/docs/dspvillagehome.jhtml
Analog Devices http//www.analog.com
http://www.bores.com/courses/intro/index.htm
http://www.go-dsp.com/fet/expressdsp/index.html