Vous êtes sur la page 1sur 123

Processeurs de traitement du

signal (DSP)
Sylvain MONTAGNY
sylvain.montagny@univ-savoie.fr
Btiment chablais, bureau 13
04 79 75 86 86

Prsentation des cours : Sommaire


Cours

: 13.5 h en 9 sances

Chapitre 1 : Introduction aux systmes de traitement numrique

Chapitre 2 : Reprsentation numrique du signal

Chapitre 3 : Les units spcifiques des DSP

Chapitre 4 : Le DSP TMS320C5416

Chapitre 5 : Un outil de dveloppement logiciel, code composer


studio

Universit de Savoie

Prsentation TD
TD

: 7.5 h en 5 sances

TD1 : Codage des nombres et architecture numrique

TD2 : Etude avance de larchitecture dun DSP, le DSPic30F2010

TD3 : Organisation mmoire et organisation du code

Universit de Savoie

Prsentation TP

TP : 16h en 4 sances de 4h

TP1 : Prise en main de lenvironnement de programmation


Code Composer Studio

TP2 : Dtection de frquence dans un signal DTMF

TP3 : Gnration de frquences sonores

Universit de Savoie

Examens

Un contrle final : 1h30

Une note de travaux pratiques

Universit de Savoie

Chapitre 1 : Introduction aux systmes de


traitement numrique

1.1 Chane de traitement numrique


1.2 Solutions classiques de traitement
numrique et problmatiques

Universit de Savoie

La chaine de traitement numrique

Ports dentres / sorties


Actionneur

Capteur

Filtre
anti
repliement

CAN

Systme de traitement
numrique
(Processeur, FPGA)

Analogique

CNA

Filtre
de
reconstruction
Analogique

Mmoire

Numrique

Universit de Savoie

Chane de traitement numrique


Avantages / Inconvnients
Avantages :

Robustesse :
Prcision :
Multitche :
Prdiction :

Inconvnients :

Cot :
Vitesse :
Complexit :

Universit de Savoie

Chane de traitement numrique


Exemples dapplications (2)

Tlcommunications : dtection de
BP Filter Detector
tonalit
Schma de dtection
de tonalit

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

1209 Hz 1336 Hz 1477 Hz


Frquences de tonalit du clavier numrique

|G| (dB)

Gabarit du filtre numrique

-0 dB
-3 dB

-30 dB

Universit de Savoie

FS1
FP1

FP2

FS2

Fe
2

10

La chaine de traitement numrique


Complexit des algorithmes
Frquence
en Hz

1 000 000
10 000
100
1

Faible

Complexit de lalgorithme
Temprature

Codage de la voix

Reconnaissance
vocale

Eleve
MP3

Reconnaissance
dimage

Positionner les applications suivantes dans le graphique

11

Chapitre 1 : Introduction aux systmes de


traitement numrique

1.1 Chaine de traitement numrique


1.2 Solutions classiques de traitement
numrique et problmatiques

Universit de Savoie

12

Problmatique et solutions
Filtrage numrique sur processeur classique (1)

Fonction de transfert dun filtre numrique

Programme dun filtre numrique

loop:
mov *r0,x0
mov *r1,x1
mpy x0,x1,a
add a,b
mov x1,*r2
inc r0
inc r1
inc r2
dec ctr
tst ctr
jnz loop

Lecture des oprandes sources


Opration MAC

Excution en 15 20
cycles sur processeur
classique

Vieillissement de lchantillon
Gestion des pointeurs dadresse

Gestion de la boucle

Excution en 1 cycle
sur DSP
13

Problmatique et solutions
Filtrage numrique sur processeur classique (2)

Problmes :

Temps daccs aux chantillons


Temps daccs aux coefficients
Gestion des pointeurs dadresse
Multiplication lente
Stockage du rsultat

Sur un DSP on cherche :

Obtenir une gestion automatise des pointeurs pour les boucles


Multiplier le nombre de chemin entre le processeur et la
mmoire pour viter le goulot dtranglement
Raliser des multiplications en 1 coup dhorloge
Limiter la consommation : Pmoy = K . Vdd 2 . FHorloge
14

Problmatique et solutions
Gestion du temps rel

Te = Priode dchantillonnage
T = Temps de traitement

Horloge
acquisition

Te

Interruption
Activit
processeur

Entre de lchantillon

t
T

Sortie du rsultat

Universit de Savoie

15

Problmatique et solutions
Solutions architecturales (document architecture reconfigurable)

Compromis performance flexibilit


Cf article : Architecture reconfigurable, les processeurs du futurs

2 V DSP
3 MOPS/mW

Efficacit nergtique
Pleiades
10-50 MOPS/mW

Flexibility

En MIPS/W

Embedded
Processor
SA110
0.4 MIPS/mW

100-1000 MOPS/mW

ASIC

DSP
Embedded
FPGA

Alpha
0.007 MIPS/mW

Reconfigurable
Processor

EE : Efficiency : MIPS / Watt

16

Chapitre 2 : Reprsentation numrique du


signal

2.1 De lanalogique au numrique


2.2 Le codage des nombres entiers et rels

Universit de Savoie

17

De lanalogique au numrique
Signal Analogique

Numrisation

111
110
101
100
011
010
001
000

Signal Numrique

Restriction des instants considrs : Frquence dchantillonnage Fech


Restriction des valeurs de lamplitude possible : Nombre de bits N

Universit de Savoie

18

De lanalogique au numrique
Effets du repliement de spectre

Reconstitution dun signal


chantillonn fs > 2fc

Reconstitution dun signal


chantillonn fs < 2fc

Universit de Savoie

19

De lanalogique au numrique
Quantification Uniforme
On parle de quantification uniforme si les intervalles (valeurs
du signal numriss) sont de mme longueur q ( q est le pas
de quantification )

Lerreur de quantification est lcart entre la valeur relle et la


valeur quantifie :

1. Erreur de darrondi

q
e
2
2. Erreur de saturation x<valeur min ou x>valeur max

Universit de Savoie

20

De lanalogique au numrique

Plage globale de
quantification

1. Erreur darrondi

Rapport signal sur bruit relatif la quantification

RSBdB Px

Temps

dB

Pe

dB

Px
10 log
Pe

On peut montrer que le RSB se rapproche de lexpression


3
dB
2
log10
RSBdB Px 6 N 10 log10 xmax
2

21

De lanalogique au numrique
2. Erreur de saturation

xmax

Cette erreur se produit


lorsque lamplitude de
lchantillon convertir
dpasse xmax ou xmin
Cest une erreur non borne,
on cherche donc minimiser
la probabilit de saturation.

4 5 6
Temps

Universit de Savoie

Le RSB se dgrade trs


rapidement au-del d'un seuil
o cette probabilit est non
ngligeable.

22

De lanalogique au numrique
Quantification uniforme et RSB
Quantification uniforme 16 bits sur [-1,1]

120

saturation
100

RSB (dB)

80
60
40

erreur darrondi

20
0
-60

-50

-40

-30
-20
-10
puissance du signal (dB)

Quantification uniforme 16 bits signs sur [-1,1]

10

23

De lanalogique au numrique
Quantification uniforme vs logarithmique
Signal original x

Signal original x

Signal compress y=C(x)

0.5

0.5

0.5

-0.5

-0.5

-0.5

-1

0.2

0.4

0.6

0.8

-1

0.2

0.4

0.6

0.8

-1

Signal quantifi x q=C-1(y q)

Signal quantifi x q=Q(x)


1

0.5

0.5

0.5

-0.5

-0.5

-0.5

0.2

0.4

0.6

0.8

quantif. uniforme
domaine linaire

-1

0.2

0.4

0.6

0.8

quantif. logarithmique
domaine linaire

0.2

0.4

0.6

0.8

Signal quantifi y q=Q(y)

-1

-1

0.2

0.4

0.6

0.8

quantif. uniforme
domaine compress
24

De lanalogique au numrique
Quantification Uniforme vs Logarithmique

45

Loi A sur 8 bits

40

Loi A

35

RSB (dB)

30

25
20

RSB peu prs constant


sur une plage de 30 dB
La compression limite les
effets de la granulation

15
10

5
0
-60

-50

-40
-30
-20
-10
puissance du signal (dB)

granulation

10

Quantification uniforme

saturation

Universit de Savoie

Leffet de granulation est


linaire par rapport la
puissance du signal

25

Chapitre 2 : Reprsentation numrique du


signal

2.1 De lanalogique au numrique


2.2 Le codage des nombres entiers et rels

Universit de Savoie

26

Le codage des nombres entiers

Non signes

N 1

A chaque chiffre est affect un poids exprim en puissance de 2 :

x bi 2i
i 0

Exemple

( 101 )2 <=> 1.22 + 0.21 + 1.20 = ( 5 )10

Signes : Complment 2

Cest le format le plus utilis en arithmtique binaire. Le bit de poids fort

reprsente le signe
Nombre positif : cod comme un non-sign
Nombre ngatif : cod par son C2 (Inversion des bits puis
ajout de1)

Universit de Savoie

27

Le codage des nombres entiers


Entiers signs : Format complment 2
Format le plus utilis en arithmtique binaire
Codage

0 1 1

0 1 0

0 0 1

0 0 0

-1

1 1 1

-2

1 1 0

-3

1 0 1

-4

1 0 0

Dynamique

N 1

Nombre

N 1

Complment 2 de x :

C2(x) = 2N x
Implantation efficace :
Inversion des bits puis ajout de 1

C2(x) = C1(x) + 1

Signe
28

Le codage des nombres entiers


Proprits du codage en complment 2

Reprsentation circulaire

111

En ajoutant 1 la plus
grande valeur positive on
obtient la valeur ngative
extrme

000

-2 110
101
-3

-1

1
001
010 2

100
-4

011
3

Les DSP peuvent tre


configurs pour oprer de
deux manires:

C2 pur
C2 avec arithmtique de
saturation

C2 pur
Universit de Savoie

C2 avec saturation
29

Le codage des nombres rels

La reprsentation des nombres doit rpondre deux


exigences contradictoires :

Prcision: intervalle entre deux rationnels cods :


>>> Doit tre le plus petit possible

Dynamique: Rapport entre le plus grand rationnel et le plus petit


rationnel cods :
>>> Doit tre la plus tendue possible

Dans ce contexte les units de calcul des DSP travaillent

Soit en format fixe (notation dcimale)


Soit en format flottant (notation scientifique)

Universit de Savoie

30

Le codage des nombres rels


1.Codage en virgule fixe (1)

Le format dune donne ne varie pas au cours du temps

Reprsentation : partie entire - partie fractionnaire

-2m-1
S

bm-1

bm-2

21

20

2-1

2-2

b1

b0

b-1

b-2

Partie entire code en C 2

2-n
b-n+2 b-n+1

b-n

Partie fractionnaire

m1

x (2)m1 S bi 2i CA2
i n

Universit de Savoie

31

Le codage des nombres rels


1. Codage en virgule fixe (2)

Proprits:

Partie fractionnaire code sur k bits


Partie entire code sur N-k bits en C2

Dfinition "format Qk" :

La reprsentation Qk du rel x correspond la


reprsentation CA2 de l'entier y tel que: y round(2 k x)
Q0 dsigne le cas particulier des entiers signs en CA2

Universit de Savoie

32

Le codage des nombres rels


1. Codage en virgule fixe (3)

Si on ne prcise pas le format Qk, un nombre


binaire peut reprsenter plusieurs valeurs.

Exemple : 01011101 peut reprsenter :

Q2 : 23.25
Q4 : 5.8125
Q7 : 0.7265625

Universit de Savoie

33

Le codage des nombres rels


1. Codage en virgule fixe (4)

Exemple: Q5 sur 8 bits

Partie entire cod sur 3 bits (dont 1 de signe)

Partie fractionnaire code sur 5 bits

Valeurs comprises entre -4 et +3.96875

Erreur maximale q /2 = 2-6 si arrondi au plus proche

34

Le codage des nombres rels


1. Codage en virgule fixe (5)

#/Poids

-22

21

20

-4

-3.96875

3.9375
3.96875

,2

2-2

2-3

2-4

2-5

-1

35

Le codage des nombres rels


1. Codage en virgule fixe (6)
Prcision: quantification uniforme de pas q
q=2-k
Dynamique:
-2N-k-1 >> 2N-k-1-2-k

Exemple format sur 16 bits:

Quel format faut-il pour reprsenter tous les rels :

-1Nombre<1
-8Nombre<8
-200Nombre<200

>>Donner la prcision de chaque codage.


Universit de Savoie

36

Le codage des nombres rels


2. Codage en virgule flottante

Virgule flottante
Reprsentation : exposant - mantisse
La mantisse et lexposant sont reprsenter eux mme en CA2.
Ils peuvent donc prendre des valeurs ngatives.

dE-1

d1
Exposant

d0 cM-1

c2

c1 c0

Mantisse

Norme IEEE :

x Mantisse .2 Exposant

Exposant sur 8 bits


Mantisse sur 24 bits
1 |Mantisse| <2

Universit de Savoie

37

Le codage des nombres rels


Comparaison fixe - flottant
Dynamique virgule fixe/flottante
1500

Niveau de dynamique
max(x )

DN (dB) 20. log

min( x )

D ynam ique en dB

Virgule flottante

1000

500

Virgule fixe

10

15

20

25

30

Nombre de bits
Rapport Signal Bruit virgule fixe/flottante

Rapport Signal Bruit de


Quantification
Ps
dB 10. log
Pe

80
RS B en dB

100

Virgule flottante

60
40

Virgule fixe
20
0
-50

0
Dynamique du signal d entr e en dB

50

38

Application
En langage de programmation C, nous utilisons les types de variables
suivant. Retrouver la valeur minimale et maximale de chacun des types.
Nom du type Signification Codage
8 bits

-128 127

Entier non sign

32 bits

0 232-1

Entier sign

32 bits

-231 231-1

Rel sign

32 bits
24 bits de mantisse
8 bits dexposant

-3,4 x 1038 3,4 x 1038

Rel sign

64 bits
53 bits de mantisse
11 bits dexposant

-1,7 x 10308 1,7 x 10308

char

Entier sign

unsigned int

int

float

double

Plage de valeur

Universit de Savoie

39

Chapitre 3 : Les units spcifiques des DSP

3.1
3.2
3.2
3.3
3.4

Architecture gnrale et objectifs


Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation

Universit de Savoie

40

Architecture gnrale et objectifs


Processeur
CPU

Unit de
commande

Units de
traitement

Bus internes

Mmoire
interne

Unit de
Communication

Universit de Savoie

Priphriques
et mmoire externes

41

Chapitre 3 : Les units spcifiques des DSP

3.1
3.2
3.2
3.3
3.4

Architecture gnrale et objectifs


Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation

Universit de Savoie

42

Unit de commande

Cest le chef dorchestre du CPU. Il squence


et dcode les instructions une une.

Pour tre efficace, le CPU met en uvre :

Un pipeline
Une gestion des boucles matrielles

Universit de Savoie

43

Les phases du Pipeline


P (Prefecth) - Generate program address = Incrmentation du compteur ordinal
F (Fetch) - Get Opcode = Lecture du code de linstruction en mmoire
D (Decode) - Decode instruction = Dcodage de linstruction
A (Access) - Generate read address = Calcul des adresses des oprandes
= Calcul de ladresse du rsultat
R (Read) - Read operands = Lecture des oprandes en mmoire
X ( Execute) = Excution de linstruction
= Ecriture du rsultat ladresse calcule
P F D A R X
P F D A R X
P F D A R X
P F D A R X
P F D A R X
P F D A R X
Full Pipeline : Toutes les units
matrielles du DSP sont en activits

Unit de commande
Squentiel vs pipeline
Instruction
Fetch

t2

t3

t4

t5

Instruction 1

t7

t8

F2
D1

D2

Read

R1

Execute

F1
-

R2
X1

t1

t2

t3

t4

t5

t6

t7

t8

F1

F2

F3

F4

F5

D1

D2

D3

D4

D5

R1

R2

R3

R4

R5

X1

X2

X3

X4

X5

Read
Execute

CPU

Decode

D1
R1
-

MemD

X1
-

MemD

F4
F5

MemP

X2

Excution squentielle

Fetch

MemP

Instruction 2

F1

Decode

t6

CPU

t1

D3
D4
R2
R3

MemD

X1
X2

MemD

Amorage du pipeline

Excution avec pipeline : entrelacement des instructions


Universit de Savoie

45

Unit de commande
Exemple de rupture de squence
Code excuter :
1: Instr1
2: Si B==1 Alors GOTO 10:
3: Instr3
4: Instr4
5: Instr5
6: Instr6

10:
11:
12:

Instr10
Instr11
Instr12

Etat du pipeline avec prdiction que B1 :


Si prdiction incorrecte (B=1)
F
D
R
X

Si prdiction correcte (B1)

t1

t2

t3

t4

t5

t6

t7

t8

F1

F2

F3

F4

F5

F10

F11

F12

D1

D2

D3

D4

D10

D11

R1

R2

R3

R10

X1

X2

Evaluation du prdicat (B==1)


=> rupture de squence

t1

t2

t3

t4

t5

t6

t7

t8

F1

F2

F3

F4

F5

F6

D1

D2

D3

D4

D5

D6

R1

R2

R3

R4

R5

R6

X1

X2

X3

X4

X5

Vidange du pipeline:
Perte de 3 cycles

Evaluation du prdicat (B==1)


=> pas de rupture

Unit de commande
Exemple de conflit d'accs mmoire
Programmes et Donnes dans la mme mmoire 1 accs par cycle
Fetch
Decode

t1

t2

t3

t4

t5

t6

t7

t8

F1

F2

conflit

conflit

F3

F4

D1

D2

D3

D4

R1

R2

R3

R4

X1

X2

X3

Read
Execute

Conflit pour laccs mmoire entre Fetch et Read


Les lectures de donnes R1/R2 empchent les chargements d'instruction F3/F4
Rductions des performances d'au moins 50%

Problme rgl si

Mmoire multi-accs
Programmes et Donnes dans des mmoires diffrentes (ou multi-bloc)
Universit de Savoie

47
8

Unit de commande
Effets du pipeline lors du dbogage
Code excuter :
1:
A=1
2:
B=1
3:
C=1
NOP
10:
A=2
11:
B=2
12:
C=2
13:
D=2
14:
E=2

Watch Window
A
1
B
1
C
1
Watch Window
A
1 ???
B
1
C
1
Watch Window
A
2 !!!
B
1
C
1
Watch Window
A
2
B
2
C
1

La flche indique la position du PC


Plusieurs cycles sont ncessaires
avant que la variable soit modifie :
Cela nintervient qu ltape X
(excution)

F
D
R
X

t1

t2

t3

t4

t5

t6

t7

t8

F10

F11

F12

F13

F14

D10

D11

D12

D13

D14

R10

R11

R12

R13

R14

A=2

B=2

C=2

D=2

E=2

Programme 1

Visualisation des variables

Programme 2

Visualisation des variables

Unit de commande
Utilisation des ressources par le pipeline
Etage
pipeline
P
F
D
A
R
X

Description

Partie hardware utilise

Generate program address


Get Opcode
Decode instruction
Generate read address
Read Operand
Generate write address

PC
Program memory
Decoder
ARs, ARAU
Data memory
ARs, ARAU

Execute instruction
Write result

MAC, ALU
Data Memory

PC =
Program Counter
ARAU = Auxiliary Register Arithmetic Unit
AR =
Adresse Register
MAC= Multiply ACcumulate
ALU = Arithmetic Logic Unit

50

Unit de commande
Retards dans le pipeline

Le pipeline atteint son plein rendement une


fois quil est rempli
Un retard peut se produire

Sil existe un conflit de ressources (retard ponctuel)

accs la mmoire
utilisation des bus

En cas de rupture de squence (vidange du


pipeline)

branchement non prvu


appel de sous-programme
interruption
Universit de Savoie

51

Unit de commande
Gestion des boucles

Lobjectif est doptimiser 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

Exemple boucle mono-instruction


MOVE
LOOP MAC
DEC
JNE

#16,B
(R0)+,(R4)+,A
B
LOOP

Boucle logicielle

Universit de Savoie

RPT
MAC

#16
(R0)+,(R4)+,A

Boucle matrielle
52

Unit de commande
Exemple : Calcul dun filtre RIF
N 1

Gestion matrielle des boucles :


Unit de gnration dadresses programme
Unit MAC matrielle
+ Chargement simultan
de linstruction et des
oprandes
A=0;
for (i=0; i<N; ++i) {
A = A +
}
Y = A >> 15;

B[i] *

X[i];

Unit de gnration
dadresses donnes

Code C

y n b(i ) x n i
i 0

B[i] X[i]

SSBX FRCT
STM #B, AR2
STM #X, AR3
STM #Y, AR4
RPTZ A, #N-1
(x1)
MAC *AR2+,*AR3+, A (xN)
STH A, *AR4
(x1)
Equivalent ASM

Universit de Savoie

53

Unit de commande
Optimisation du compilateur C
Code C
#define N 256
short in[N];
short out[N];
void toto()
{
int i;
for (i=0; i<N; i++)
{
out[i]=in[i];
}
}

Adresses des tableaux


_inputData = 331h = 817
_outputData = 431h = 1073

Prise en compte des


capacits matrielles du DSP

Pas doptimisation
813D toto
813D
PSHM 11h
813E
FRAME -1
813F
SSBX SXM
8140
LD
#100h,0,A
8142
ST
#0h,0h
8144
SUB
0h,A
8145
BC
8154h,ALEQ
debut :
8147
MVDK 0h,11h
8149
LD
*AR1(817),A
814B
STL
A,*AR1(1073)
814D
LD
#100h,0,A
814F
ADDM 1h,0h
8151
SUB
0h,A
8152
BC
8147h,AGT
fin:
8154
FRAME 1
8155
POPM 11h
8156
FRET

Sauvegarde AR1 (save-on-entry)


Manipulation de nombres signs
A <= 256 (100h)
Met la valeur initiale 0 de i dans pile[0h]
A <= A - pile[0h]
Si A<=0, alors aller fin:
Copie pile[0h] dans AR1
Charge in[AR1] dans A
Stocke A dans out[AR1]
A <= 256 (100h)
pile[0h] <= pile[0h] + 1
A <= A - pile[0h]
Si A>0 alors reboucler sur debut:
Restaure de AR1
Retour de la fonction

8033 toto Optimisation au niveau fonction (-o2)


8033
STM
431h,13h
AR3 <= @out
8035
STM
331h,12h
AR2 <= @in
8037
RPT
#0ffh
Rpter 256=255+1 fois
8038
MVDD *AR2+,*AR3+
*AR3 <= *AR2
8039
NOP
803A
NOP
Universit
803B
FRET de Savoie

54

Unit de commande
Unit de contrle du C50

PC sur 16 bits
pile de 8 * 16 bits
PFC,IR: pour le pipeline

Registres de status ST0,ST1,PMST

Gestion des boucles


RPTC: repeat instruction
BRCR: repeat bloc

Interruptions :
IMR: masque interruptions
IFR: flags interruptions

BMAR: bloc move


GREG: mmoire globale

Universit de Savoie

55

Chapitre 3 : Les units spcifiques des DSP

3.1
3.2
3.2
3.3
3.4

Architecture gnrale et objectifs


Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation

Universit de Savoie

56

Unit de traitement
DSP virgule fixe / virgule flottante

Il existe deux types de DSP :


Les DSPs virgule fixe traitent des nombres
entiers seulement
Les DSPs virgule flottante traitent des
nombres rels cods sous la forme mantisse
exposant.

Universit de Savoie

57

Unit de traitement
DSP virgule fixe (1)

Arithmtique :

Dynamique limite : [-Xmax et Xmax] : Possibilit de


dbordement ncessit de recadrer les donnes

Dveloppement :

Temps de dveloppement plus long : tude de la


dynamique des donnes, dtermination du codage et
des recadrages

Universit de Savoie

58

Unit de traitement
DSP virgule fixe (2)

Architecture :

Oprateurs plus simples


Largeur des donnes b : 16 bits

Efficacit nergtique plus importante : consommation


moins importante
Processeur moins cher (surface du circuit moins importante)
Processeur rapide (seulement pour les calculs virgule fixe)

March :

applications grand public

Xx % des ventes en xx

TMS320C62x :
TMS320C64x :

59

Unit de traitement
DSP virgule flottante (1)

Arithmtique :

Dynamique importante : 1500 dB pour 32 bits

Dveloppement

Temps de dveloppement plus court

Recadrage des donnes assur par le processeur

Compilateur de langage de haut niveau plus efficace : plus


grande portabilit

Universit de Savoie

60

Unit de traitement
DSP virgule flottante (2)

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
61

Unit de traitement
Exemple

Filtre numrique FIR sur N points


N 1

y(n) h(i).x(n i) x(n) h(n)


i 0

Dessiner la structure matrielle permettant de raliser le calcul de y(n).


D

x(n)
h(0)

h(1)

x
+

h(2)

h(3)

x
+

h(4)

x
+

y(n)

Cellule

Objectif : traitement dune cellule par cycle


Universit de Savoie

62

Unit de traitement
Elments de lunit de traitement (1)

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 : b
rsultat : bmultiplication = 2.b

Units de saturation ou darrondi


Units spcifiques

Unit de manipulation de bit, Viterbi, ...


Universit de Savoie

63

Unit de traitement
Elments de lunit de traitement (2)

U.A.L.

Oprations arithmtiques : addition, soustraction,


incrmentation, ngation
Oprations logiques : and, or, not

Additionneur indpendant de lUAL


Registres dcalage (recadrage des donnes)

spcialis : ralisation de quelques dcalages prdfinis


en //
en barillet : ralisation d un dcalage quelconque en 1
cycle
Universit de Savoie

64

Unit de traitement
lments de lunit de traitement (3)

Units de stockage de lunit de traitement

Registres oprandes

Stockage des oprandes sources ou des rsultats intermdiaires

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 = bmultiplication + bgarde
Bits de garde

bgarde

ACCH

ACCL
2.b

65

Unit de traitement
Structure de lunit de traitement MAC

bmult

MAC

badd

Accumulateur

Sat /Arr

Universit de Savoie

66

Unit de traitement
Exemple : TMS320C54x
DB PB DB
CB

CB DB CBDBEB

1 multiplieur 16*16 bits


Op source 1 : registre T
Op source 2 : mmoire
Op destination :

1 additionneur 40 bits
1 ALU (40 bits)

Universit de Savoie

2 registres d accumulation 40
bits

1 registre dcalage en
barillet

1 unit ddie l algorithme


de Viterbi

67

Chapitre 3 : Les units spcifiques des DSP

3.1
3.2
3.2
3.3
3.4

Architecture gnrale et objectifs


Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation

Universit de Savoie

68

Unit de mmorisation
Les diffrents accs la mmoire

Exemple Filtre FIR

Recherche de linstruction
Lecture de la donne xn-k
Lecture du coefficient hk
Vieillissement des donnes xn-k-1 = xn-k
D

x(n)

h(0)

h(1)

h(2)

h(3)

h(4)

y(n)
+

TAP
69

Unit de mmorisation
Rappels : Bus

Le CPU est le matre du bus

Il est le seul crire sur les bus adresse et contrle

Le priphrique obtempre sur le bus donnes

CPU

Lecture : il fournit la donne demande


Ecriture : il rcupre la donne fournie par le CPU
Haute impdance : il se dconnecte du bus
BUS

Priphrique

Adresses : slection du priphrique


et localisation dune donne
Donnes : valeur de la donne changer

adresses
CPU

donnes
contrle

Priphrique

Contrle : lire / crire / haute impdance

Universit de Savoie

70

Unit de mmorisation
Accs mmoire pour un calcul
1
2

CPU

Mmoire

4
3

(1)
(2)
(3)
(4)

Charger une instruction depuis la mmoire


Charger les oprandes depuis la mmoire
Effectuer les calculs
Stocker le rsultat en mmoire

Universit de Savoie

71

Unit de mmorisation
Architecture Von Neuman

CPU

BUS

Mmoire
Programme
+ Donnes

Un seul chemin d'accs la mmoire


Architecture des processeurs dusage gnral (Pentium,
68000)
Goulot d'tranglement pour l'accs la mmoire

Universit de Savoie

72

Unit de mmorisation
Architecture Harvard
Mmoire Programme

CPU
Mmoire Donnes

Sparation des mmoires programme et donnes


Meilleure utilisation du CPU

Chargement du programme et des donnes en parallle

Universit de Savoie

73

Unit de mmorisation
Accs mmoire multi-port
Mmoire Programme
+ Donnes

CPU
Mmoire Donnes

Plusieurs bus de donnes


Accs simultan plusieurs donnes
Combin avec

mmoire multi-accs (plusieurs accs la mme mmoire en un


cycle)
mmoire multi-blocs (accs simultan deux blocs de mmoire
distincts)

Exemple du TMS320C54xx :
1 bus programme (P)
2 bus de lecture des donnes (C et D)
1 bus dcriture des donnes (E)

74

Unit de mmorisation
Exemple du TMS320C5416
Program A/D Bus (P)

Internal

Data Read A/D Bus (D)

Memory

Data Read A/D Bus (C)

Extl
Mem
I/F

External

Memory

Data Write A/D Bus (E)

Internal: Up to 4 accesses / cycle

External: 1 access / cycle


up to 8M words program

Exemple du TMS320C54xx :

1 bus programme (P)


2 bus de lecture des donnes (C et D)
1 bus dcriture des donnes (E)
Universit de Savoie

75

Unit de mmorisation
Exemple du TMS320C5416

Universit de Savoie

77

Unit de mmorisation
Exemple du TMS320C5416

Program

Data

ROM

ROM

SARAM

DARAM

P Bus

Extl
Mem
I/F

D Bus
C Bus

A
D

E Bus

Universit de Savoie

78

Unit de mmorisation
Cache d'instructions
DSP
cache
dinstructions

Mmoire Programme
+ Donnes

CPU

Cache = mmoire associative rapide

Contient les dernires instructions excutes

Utile en cas de boucle

Mmoire Donnes

Accs aux instructions sans accs en mmoire programme


Libre le bus pour des donnes

Pas appliqu aux donnes

Problme de validation du temps rel


Universit de Savoie

79

Unit de mmorisation
Bus externes
Boitier du DSP
Mmoire Programme
+ Donnes

CPU
Mmoire Donnes

MUX

Transfert entre les bus


internes et externe par
multiplexage temporel

Limitation du nombre de broches


Rduction des cots
Diminution des performances lors
des accs au bus externe

80

Unit de mmorisation
Accs Direct la Mmoire : DMA
Mmoire Programme
+ Donnes

CPU
Mmoire Donnes

interruptions

DMA

configuration

Accs DMA : entres-sorties vers la mmoire interne

indpendant du CPU et des bus internes

Systme d'interruptions "donnes reues"/"donnes transmises"


81

Unit de mmorisation
DMA et buffer ping-pong
DSP

McBSP2
CAN

McBSP2

DRR

DXR

DMA4

PING
IN
31
PONG
IN
2

CNA

DMA5

PING
OUT
1

Traitement

Buffers en mmoire

PONG
OUT
2
Buffers en mmoire

Universit de Savoie

Source: Texas Instruments C5000 DSP Teaching Kit82

Unit de mmorisation
Mmoire interne sur les C54x
Capacit en mmoire interne de diffrents modles C54x

Dcoupage en blocs

Plusieurs types de RAM incluse sur le chip

Single access (SARAM) : un accs par cycle


Dual access (DARAM) : deux accs par cycle
Two-way shared : deux accs par cycle mme depuis l'extrieur

DARAM dcoupe en blocs

Accs simultan deux blocs de mmoire diffrents


2x2=4 accs par cycle en thorie (en ralit limit par le reste de l'architecture)

sources : "TMS320C54x DSP Functional Overview", SPRU307A, Texas Instrument


"TMS320VC5416 DSK Reference Technical", Spectrum Digital

83

Unit de mmorisation
Adressage indirect : *ARx (1)

MPY

Linstruction contient un numro de registre auxiliaire


ARx qui contient ladresse en mmoire ou se trouve la
donne
Analogue aux pointeurs en C
Possibilit de modifier la valeur du registre

*AR4, *AR3, A

; Multiplication de la donne ladresse contenue dans AR4


; par celle pointe par AR3 et stockage du rsultat en A
; On remarque laccs simultan deux donnes
; A dm(AR4) dm(AR3)

Universit de Savoie

84

Unit de mmorisation
Adressage indirect : exemple (3)
Option

Syntax

Action

No Modification

*ARn

no modification to ARn

Increment /
Decrement

*ARn+
*ARn-

post increment by 1
post decrement by 1

Indexed

*ARn+0
*ARn-0

post increment by AR0


post decrement by AR0

AR0

Circular

*ARn+%
*ARn-%
*ARn+0%
*ARn-0%

post increment by 1 - circular


post decrement by 1 - circular
post increment by AR0 - circular
post decrement by AR0 - circular

BK

Bit-Reversed

*ARn+0B
*ARn-0B

post inc. ARn by AR0 with reverse carry


post dec. ARn by AR0 with reverse carry

Pre-modify

*ARn (lk)
*+ARn (lk)
*+ARn (lk)%
*+ARn

*(ARn+LK), ARn unchanged


*(ARn+LK), ARn changed
*(ARn+LK), ARn changed - circular
pre-increment by 1, during write only

*(lk)

16-bit lk is used as an absolute address


Universit de
Savoie
See Absolute
Addressing

Absolute

Affected by:

BK, AR0
AR0
(=FFT size/2)

BK

85

Unit de mmorisation
ARAU (Unit dadressage indirect)
Registres d'adressage

Units de calcul spcialises

Ecriture sur les bus


d'adresse des bus C, D et E

86

Unit de mmorisation
Buffer linaire

Chaque nouvel chantillon donne lieu au dplacement


de lensemble des donnes du buffer, ladresse du
nouvel chantillon est toujours la mme.

Time n

Time n+1

Time n+2

Time n+3

x(n)
x(n-1)
x(n-2)
x(n-3)

x(n+1)
x(n)
x(n-1)
x(n-2)

x(n+2)
x(n+1)
x(n)
x(n-1)

x(n+3)
x(n+2)
x(n+1)
x(n)

Universit de Savoie

87

Unit de mmorisation
Adressage circulaire

Exemple : stockage des chantillons dentre dans un


filtre FIR.

Time n

Time n+1

Time n+2

Time n+3

x(n-1)
x(n)
x(n-3)
x(n-2)

x(n-1)
x(n)
x(n+1)
x(n-2)

x(n-1)
x(n)
x(n+1)
x(n+2)

x(n+3)
x(n)
x(n+1)
x(n+2)

Chaque nouvel chantillon donne lieu lcriture dune


donne. Cette adresse est calcule par le gnrateur
dadresse.
Universit de Savoie

88

Unit de mmorisation
MMR : Memory Mapped Registers Addressing

MMRs are in page 0 of data memory.


They can be accessed by some specific MMR
instructions allowing simple access to page 0.
In these cases DP, SP and CPL are ignored
Example : STM (STore to Memory-mapped register):

Stores an immediate value to the specified MMR or Scratch


memory address.

0000h
MMRs
0060h
007Fh

Scratch

Tip: use the .mmregs directive


to allow MMR names to be
interpreted as addresses
Universit de Savoie

89

Unit de mmorisation
Memory Mapped Registers
Name

Addr.
(Hex)

Description

Name

Addr.
(Hex)

Description

IMR

0000

Interrupt Mask Register

AR0

0010

Address Register 0

IFR

0001

Interrupt Flag Register

AR1

0011

Address Register 1

-----

2-5

Reserved

AR2

0012

Address Register 2

ST0

0006

Status 0 Register

AR3

0013

Address Register 3

ST1

0007

Status 1 Register

AR4

0014

Address Register 4

AL

0008

A accumulator low (A[15:00])

AR5

0015

Address Register 5

AH

0009

A accumulator high (A[31:16])

AR6

0016

Address Register 6

AG

000A

A accumulator guard (A[39:32])

AR7

0017

Address Register 7

BL

000B

B accumulator low (B[15:00])

SP

0018

Stack Pointer Register

BH

000C

B accumulator high (B[31:16])

BK

0019

Circular Size Register

BG

000D

B accumulator guard (B[39:32])

BRC

001A

Block Repeat Counter

000E

Temporary Register

RSA

001B

Block Repeat Start Address

TRN

000F

Transition Register

REA

001C

Block Repeat End Address

PMST

001D

PMST Register

-------

01E-01F

Reserved

Note: XPC and Peripheral MMR locations are device dependent

90

Chapitre 3 : Les units spcifiques des DSP

3.1
3.2
3.2
3.3
3.4

Architecture gnrale et objectifs


Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation

Universit de Savoie

91

Performance / Consommation
Consommation nergtique

Filtrage numrique FIR:

C549

C6201

200MHz, 2.5V

ADSP-21160

100MHz, 3.3V

ZSP16401

200MHz, 1.8V

DSP16210

100MHz, 2.5V

100MHz, 2.5V

C6701

167MHz, 1.8V
92

Performance / Consommation
Mesures des performances

MFLOPS

Million FloatingPoint
Operation Per Second

Mesure le nombre doprations


arithmtiques virgule flottante que le
DSP virgule flottante peut raliser
en une seconde

MOPS

Million Operation
Per Second

Mesure le nombre total doprations


(calcul, accs DMA, transferts, etc.) que
le DSP peut raliser en une seconde

MIPS

Million Instructions
Per Second

Mesure le nombre de codes machine


(instructions) que le DSP peut raliser
en une seconde

MMACS

Million of MAC
per Second

Mesure le nombre doprations MAC


(Multiply+Accumulate) que le DSP peut
raliser en une seconde

MBPS

Mega-Bytes
Per Second

Mesure la bande passante dun bus


particulier ou dun dispositif dE/S
Universit de Savoie

93

Performance / Consommation
Panorama des DSP (2)

Universit de Savoie

94

Chapitre 4 : Le DSP TMS320C5416


4.1 Larchitecture
4.2 Lorganisation mmoire

Universit de Savoie

95

Larchitecture
Diagramme bloc du TMS320C5416 (1)

Universit de Savoie

96

Larchitecture
Diagramme bloc du TMS320C5416 (2)
Program/Data ROM
16K Words

Program/Data RAM
128K Words

JTAG Test/
Emulation
Control

Bus externe

MUX

D(15-0)

Mmoire
interne

Program/Data Buses
Timer

A(23-0)
MAC
17 x 17 MPY

ALU
40-Bit ALU

40-Bit Adder

CMPS Operator
(VITERBI)

RND, SAT

EXP Encoder

Ch 2

Shifter

Accumulators
40-Bit ACC A

Ch 3

Muxed GP I/O

Ch 0
Ch 1

Ch 4
Ch 5

Addressing Unit
8 Auxiliary Registers

Peripheral Bus

CPU40-Bit ACC B

40-Bit Barrel
(-16, 31)

DMA

8/16-bit Host Port


Interface (HPI)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)

PLL Clock
Generator

2 Addressing Units

S/W Waitstate
Generator

Power Management

Universit de Savoie

Entres
Sorties
97

Larchitecture
Diagramme bloc du TMS320C5416 (3)
Program/Data ROM
16K Words

Program/Data RAM
128K Words

JTAG Test/
Emulation
Control

Bus externe

MUX

D(15-0)
Program/Data Buses

Timer

A(23-0)
MAC
17 x 17 MPY

ALU
40-Bit ALU

40-Bit Adder

CMPS Operator
(VITERBI)

RND, SAT

EXP Encoder

Ch 2

Shifter

Accumulators
40-Bit ACC A

Ch 3

40-Bit Barrel
(-16, 31)

Gnration
dadresses

40-Bit ACC B

DMA

Muxed GP I/O

Ch 0
Ch 1

Ch 4
Ch 5

Addressing Unit
8 Auxiliary Registers

Peripheral Bus

Units de
calcul

Mmoire
interne

8/16-bit Host Port


Interface (HPI)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)

PLL Clock
Generator

2 Addressing Units

S/W Waitstate
Generator

Power Management

CPU
Universit de Savoie

Entres
Sorties
98

Structure interne du
TMS320C54x

Source : Texas Instruments


TMS320C54x DSP
Reference Set
Vol 1 : CPU and Peripherals

Unit de controle

Gnration
d'adresses
programme

Gnration
d'adresses
donnes

Bus P
programme

Bus C / D
lecture
donnes

Bus E
criture
donnes

Universit de Savoie

100

Registres

ALU

Shifter

MAC

Viterbi

Chapitre 4 : Le DSP TMS320C5416


4.1 Larchitecture
4.2 Lorganisation mmoire

Universit de Savoie

102

Lorganisation mmoire
Les types de mmoires

Larchitecture Harward Modifie du DSP lui


donne donc une organisation autour de deux
types de mmoire :

De la mmoire pour le programme


De la mmoire pour les donnes

Ces types de mmoire seront physiquement de


la ROM ou de la RAM (DARAM, SARAM). Selon
la version du circuit, le type (ROM, RAM) et la
taille de la mmoire intgre dans le circuit
diffre.
Universit de Savoie

103

Lorganisation mmoire
Quantit et type de mmoire programme

Universit de Savoie

104

Lorganisation mmoire
Quantit et type de mmoire donnes

Universit de Savoie

105

Lorganisation mmoire
Type de mmoire

Chaque DSP possde donc une certaine


quantit de RAM double accs (DARAM), de
la RAM simple accs (SARAM) et de la ROM
interne.

La RAM est gnralement rserv aux donnes


et la ROM au programme mais on trouve
beaucoup dexception cette rgle.

Universit de Savoie

106

Lorganisation mmoire
Mmoire Programme (1)

La zone de la mmoire programme de


ladresse 0 13FFh , sera situe
lextrieur du circuit si le bit OVLY
(Overlay) est mis 0.

Lorsque ce bit est 1 la zone 80h


13FF (4992 mots) est situe en
mmoire interne. Elle est constitu de
RAM double accs commune
lespace de mmoire donne. Dans ce
cas 0 7Fh est interdit.

Lorsque la zone est commune aux 2


espaces, cela signifie quelle peut
contenir aussi bien des instructions
que des donnes : on se sert de cette
possibilit plus particulirement
lorsque lon souhaite faire la mise
jour dynamique dun programme
pralablement charg en mmoire.

Lorganisation mmoire
Mmoire Programme (2)

De 1400h 8FFFh (31 Kmots) se


trouve une zone de mmoire
adressable lextrieur du circuit. La
zone de 9000h FFFFh (28Kmots)
pourra tre de la ROM interne si la
broche MP/MC =0, ou de la ROM
externe si la broche est 1.

Dans les 2 cas, la zone situe de FF80h


FFFFh (128 mots) est rserv aux
vecteurs dinterruption.

108

Lorganisation mmoire
Mmoire de donnes

Cet espace comporte une zone de RAM


double accs de 0 13FFh (5Kmots)
dont 96 mots, de ladresse 0 5 Fh
rservs au stockage des registres
mapps en mmoires et une zone de
mmoire de travail de 60h 7Fh. La
mmoire situ de 80h 13FFh pourra,
comme nous lavons vu
prcdemment, tre partage par
lespace programme (OVLY=1).

La zone suivant de 1400h E000h


(50Kmots) sera situe lextrieur du
circuit.

Si DROM est 0, la mmoire de


ladresse E000h FFFFh sera
accessible lextrieur, ce sera de la
ROM interne si DROM=1

Chapitre 5 : Un outil de dveloppement logiciel


Code Composer Studio

5.1 Linterface et la compilation


5.2 Les librairies

Universit de Savoie

110

Linterface Code Composer Studio

1. Introduction
Chaine de compilation : exemple de CCS V3.3
Program.c

*.asm, *.c

module.h

Module.h54

program.cdb

Generate
programcfg.h54

Compile or
Assemble

program.obj

*.obj

Programcfg_c.c

programcfg.s54

Programcfg.h

Assemble

Compile

programcfg.obj

programcfg_c.obj

programcfg.cmd

program.cmd

Link
program.out
112

1. Introduction
Emulateur JTAG
HOST

TARGET

CCS

JTAG
Interface
JTAG
Emulator

DSP
Target

JTAG est un outil puissant pour faire du debug logiciel bas niveau. Son
implementation demande une carte quipe dun mulateur JTAG. Celui-ci est
parfois jumel avec la connectivit USB qui alimente la carte.
Sur le starter kit DSK5416, lmulateur JTAG est intgr : chargement du
code, execution en pas pas, breakpoint, visualisation de la mmoire
113

Linterface et la compilation
Chane de compilation (3)

projet.pjt :
fichier contenant lensemble des options du projet et qui fourni le lien
vers tous les fichiers que contient le projet.

program.c :
Programme source en langage C contenant la fonction main(). Nous
pouvons aussi avoir dautres fichier.c pour les fonctions utilisateur.

program.asm :
Programme source en assembleur contenant la fonction main(). Nous
pouvons aussi avoir dautres fichier.asm pour les fonctions utilisateur.

header.h :
Fichier header pour les dclaration des fonctions ou variables du langage
C utilises dans le projet.
Universit de Savoie

114

Linterface et la compilation
Chane de compilation (4)

header.h54 :
Fichier header pour les dclaration des fonctions ou variables assembleur
utilises dans le projet.

librairie.lib :
Librairie compile. Ce genre de fichier est souvent donn par le
constructeur pour fournir des fonctions utilisateurs spcifiques pour son
composant.

program.obj :
Fichier objet. Cest un fichier compil depuis une fichier assembleur ou
un fichier C.

command.cmd:
Fichier de commande. Indispensable pour le linker afin quil dfinisse
lemplacement des variables et du code en mmoire.

Linterface et la compilation
Chane de compilation (5)
Fichier gnr par la chaine de compilation

program.out :
Cest le programme excutable pour une cible spcifique. Il sagit
du code charg en mmoire.

program.lst :
Fichier listing, il sagit dun fichier o sont superposs le code en
C, le code assembleur gnr, le code machine gnr, et les
adresses mmoires utilises pour chaque instruction.

program.map :
Fichier mapping, il sagit dun fichier rsumant toutes les
quantits et les zones mmoires utilises.
>> Document dexemples de code

Linterface et la compilation
Outils de dbogage

Type doutils

Emulateur

Boundary-scan (JTAG)

Communique avec le DSP


grande vitesse
Capable de simuler/enregistrer
en temps-rel ltat interne
exact du DSP
Protocole intgr au sein du
processeur
Interrompt le DSP pour
accder linformation

DSP

Emulateur
ou

IDE

Contrleur JTAG

Dfinition de breakpoints
et modification des variables
Rcupration des donnes
depuis la mmoire du DSP

Oprations

Interruption et relance de
lexcution

Chargement du code
Breakpoints

Accs en lecture/criture

Visualisation et modification du
contenu mmoire
Registres internes
117

Linterface et la compilation
Affichage du code dsassembl
#define N 256
short inputData[N];
short outputData[N];
void toto()
{
int i;
for (i=0; i<N; i++)
{
outputData[i] = inputData[i];
}
}

Compilation et dition des liens


puis affichage du code dsassembl
Mixed Source/ASM

Chapitre 5 : Un outil de dveloppement


logiciel: Code Composer Studio

5.1 Linterface et la compilation


5.2 Les librairies

Universit de Savoie

119

Les librairies
Avantages d'une librairie
Il existe plusieurs librairies :

CSL : Chip support Library, fourni par le constructeur de composant


BSL : Board support Library fourni par le constructeur de la carte de
dveloppement.
Librairies spcialises : DSPLIB,IMGLIB

Il sagit de faire une abstraction du matriel travers une API logicielle


(Application Programmable Interface). Ces interfaces logicielles sont
pilotes par une interface graphique dans le cas du CSL et permettent :

un temps de dveloppement rduit


une programmation de plus haut niveau

Elles sont presque indispensables pour compenser la complexit des


processeurs actuels.
Universit de Savoie

120

Les librairies
Exemple : Board Support Library

Cas du TP 2 sur DSP TMS320

Ces fonctions font parties des librairies de la carte (Board Support Library)
>> Voir
C:\CCStudio_v3.1\docs\hlp\C5416DSK.HLP

Universit de Savoie

121

Les librairies
Exemple : Chip Support Library

Universit de Savoie

122

Les librairies
Exemple : DSPLIB

Cette librairies est un support pour le calcul. Elle est

La library DSPLIB est compose de 3 parties

Dj programme
Optimise
Utilisable depuis le langage C

Un fichier header : dsplib.h


Un fichier objet (54xdsp.lib) comportant le code compil des
fonctions dclares dans dsplib.h
Un fichier source 54xdsp.src permettant la customisation des
fonctions par lutilisateur.

Exemple :

short cfft8 (DATA *x, DATA scale);


short fir(DATA *x, DATA *h, DATA *r,DATA **d, ushort nh, ushort nx);

Les librairies
Vue synoptique des modules utiles

User Application

Logiciel applicatif

Abstraction du matriel
et systme dexploitation

DSP/BIOS
Kernel/Scheduler

CPU Timer EMIF


Matriel

USB/
JTAG

CSL

Dsplib
Imglib

BSL

Drivers

McBSP

DSP

CODEC

LED
Boutons

Carte DSK
Universit de Savoie

124