HEIG-Vd PROCESSEURS DE SIGNAUX...

26
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

Transcript of HEIG-Vd PROCESSEURS DE SIGNAUX...

Page 1: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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

Page 2: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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

Page 3: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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.

Page 4: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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)

Page 5: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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

Page 6: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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.

Page 7: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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.

Page 8: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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)

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

Page 9: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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).

Page 10: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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).

Page 11: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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é;

Page 12: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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

Page 13: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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 :

Page 14: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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)

Page 15: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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)

Page 16: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)

-16 / 26- CHAPITRE 1 : INTRODUCTION AUX PROCESSEURS DE SIGNAUX MEE/13.05.05/DSP_01.DOC

Page 17: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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

Page 18: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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).

Page 19: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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.

Page 20: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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.

Page 21: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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 .

Page 22: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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

Page 23: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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

Page 24: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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 »).

Page 25: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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.

Page 26: HEIG-Vd PROCESSEURS DE SIGNAUX (DSP)php.iai.heig-vd.ch/~mee/cours/cours_dsp/chap_01/word/dsp_01.pdf · Une solution logicielle basée sur un microprocesseur est donc le meilleur moyen

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