Cours dsp06 07
Cours dsp06 07
Cours dsp06 07
Les processeurs de
traitement du signal
Caroline Petitjean
[email protected]
Amplificateur home
cinéma Denon AVR3806 Téléphone portable
Ericsson R600
Autoradio MP3
KD-SHX851 JVC
1
Applications des DSP
000
• Communications • Image / Vidéo
– Modem, téléphonie – Compression/Codage
– Télévision & radio – Traitement
numérique
– Cryptage
• Militaire
• Audio – Imagerie (radar,
– Mixage et édition sonar)
– Effets – Cryptographie
– Suppression de bruit – Guidage de missiles
– Annulation d’écho – Navigation
• Instrumentation • Automobile
– Analyseurs de – Contrôle du moteur
spectre – Assistance au freinage
– Générations de – Aide à la navigation
fonctions – Commandes vocales
– Tableau de bord
2
Principaux constructeurs de DSP
000
autres
13,1%
6,8%
7,7% 49,7%
9,8%
Achats de DSP en
12,9%
millions de dollars
ex-Lucent
ex-Motorola
Plan de l’exposé
000
• Le Traitement Numérique du
Signal (TNS) et les DSP
3
Plan de l’exposé
000
• Le Traitement Numérique du
Signal (TNS) et les DSP
Le TNS : pourquoi ?
000
Stabilité Souplesse
• Insensibilité à • Programmation
l’environnement flexible
• Développement
• Précision rapide
connue et
contrôlée • Facilité pour
certains
• Reproductibilité traitements
8
4
Le TNS : comment ?
000
Signal
Ports d’E/S analogique
de sortie
numérique
9
ASIC
ASSP
FPGA
5
Classification des processeurs
000
• Le processeur généraliste (GPP)
• Coût relativement élevé
• Mémoire limitée
6
Classification des processeurs
000
• ASIC/ASSP (Application-Specific…)
• Circuit intégré dédié à une application
– dans une entreprise : ASIC
– pour un marché (ex: téléphonie) : ASSP
• Coût élevé
• Calculs numériques
• Mémoire limitée
14
7
Le TNS : besoins
000
• Algorithmes de TNS :
– filtrage
– transformées
– codage/décodage
– reconnaissance de la parole
– synthèse de signaux
– élimination d’écho
– estimation spectrale…
15
Le TNS : besoins
000
Temps de traitement T
doit être <Te
pour le temps réel
16
8
Le TNS : besoins
000
• Cahier des charges :
1. Calculs rapides
2. Contraintes temps réel (entrées/sorties à débit fixe)
3. Contraintes systèmes embarqués (taille limitée,
faible consommation d’énergie)
4. Production de masse
Exemples d’applications
000
• Lecteur MP3 dictaphone
Source : ti.com
18
9
Exemples d’applications
000
• Scanner de codes barres
Source : ti.com
19
Exemples d’applications
000
• Appareil photo numérique
Source : ti.com 20
10
Exemples d’applications
000
• Imagerie par Résonance Magnétique
Source : ti.com 21
Exemples d’applications
000
• Console de mixage
Source : ti.com 22
11
Exemples d’applications
000
• Récepteur GPS
Source : ti.com 23
Exemples d’applications
000
• TV à écran LCD
Source : ti.com 24
12
Exemples d’applications
000
• Kit mains libres
Source : ti.com 25
13
Spécificités des DSP
000
N −1
Une équation aux différences finies y (n) = a (i ) x(n − i )
∑
spécifie la sortie y(n) i =0
27
– Recherche de l’instruction
– Recherche du coefficients a(i)
– Recherche de la donnée x(n-i)
– Multiplication a(i)x(n-i)
– Accumulation a(i-1)x(n-i-1) + a(i)x(n-i)
– Décalage en mémoire x(n-i) Æ x(n-i-1)
14
Spécificités des DSP
000
• Objectifs :
– Réduire les accès mémoire
– Augmenter les accès mémoire simultanés
– Réduire le temps passé à faire des calculs
Instruction MAC
(multiplication-accumulation)
en 1 seul cycle d’instruction
29
• Objectifs :
– Réduire les accès mémoire
– Augmenter les accès mémoire simultanés
Architecture Architecture
Von Neuman Harvard
(microcontrôleur) (DSP)
30
15
Spécificités des DSP
000
• Objectifs :
– Réduire les accès mémoire
Mode d’adressage circulaire
Buffer circulaire : Segment
mémoire contenant des données
(échantillons, cœfficients…) L+N L
Accès par pointeurs générés et … L+1
incrémentés automatiquement
… L+2
– Pas de test sur les pointeurs … …
– Pas de reset nécessaire
31
16
Spécificités des DSP
000
• Buffer circulaire
nouvel échantillon y(n)
Xtab(t-1) x(n) Xtab(t)
0 x(n-k+1) 0 x(n-k+1) ak+1
1 … 1 … …
a0 y (n) = ∑ a (i ) x(n − i )
x(n-N) idx x(n) i =0
idx x(n-1) x(n-1) a1
x(n-2) x(n-2) a2
N-2 … N-2 … …
N-1 x(n-k) N-1 x(n-k) ak
Sans Algorithme de
optimisation Cooley-Tukey
Calcul des N
Séquentiel Simultané
échantillons y(n)
Nombre de
N² N/2 log2(N)
multiplications
34
17
Spécificités des DSP
000
x4 y1
N −1 − 2πj
in N −1
y (n) = ∑ x (i )e N
= ∑ x(i )WNin y2
i =0 i =0
x2
x6 y3
Ex : N = 8 x1 y4
échantillons dans
cet ordre x3 y6
x7 y7
Source : [5]
35
18
Spécificités des DSP
000
• Résumé :
Organisation Jeu
mémoire d’instructions
Architecture Harvard MAC en 1 cycle
Modes Entrées/sorties
d’adressage spécifiques
Bit reverse, circulaire Flot continu de données
37
Plan de l’exposé
000
• Le Traitement Numérique du
Signal (TNS) et les DSP
19
Architecture des DSP
000
– Unité de mémoire
– Périphériques
39
40
20
Représentation des nombres
000
41
21
Représentation des nombres
000
101 011 3
100
-3
-4
43
Poids -27 26 25 24 23 22 21 20
27 0 0 0 1 1 0 1 1
0 0 0 0 0 0 0 0 0
-4 1 1 1 1 1 1 0 0
Bit de signe
44
22
Représentation des nombres
000
Ex : 2,3125
Partie entière Partie fractionnaire
sur N-k bits en C2 sur k bits
45
23
Représentation des nombres
000
– Ex : y = round(25.2,3125)
= 74 = (0100 1010)b
Poids -22 21 20 2-1 2-2 2-3 2-4 2-5
2,3125 0 1 0 0 1 0 1 0
47
24
Représentation des nombres
000
– Ex : 010.01010 = 2,3125
+q = +2-k
010.01011 = 2,3438
49
signe
Exemple
15 14 13 12 11 10 9 8 7 6 5 4 3 22 1 0
1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0
-1+0,5+2-4+2-5 = -0,40625
50
25
Représentation des nombres
000
51
52
26
Représentation des nombres
000
e −127
x = (−1) .(1, f ).2
7 22
s
e = ∑ ei 2i f = ∑ f i 2i − 23
i =0 i =0
31 30 23 22 0
s e7 e0 f22 … … f0
+1,75.27-127 = 1,3165.10-36
54
27
Représentation des nombres
000
55
CPU
56
28
Structure interne du CPU
000
CPU Unités de génération
d’adresses
Bus de programme
AddD AddP
Bus de données
Générateur Générateur
d’adresses MD d’adresses MP
Unité de commande
Séquenceur
DataD Cache
DataP
Registre de données
Multiplieur Unités de
traitement
ALU
mathématique
Registre décalage
57
Unité de calcul
000
• Éléments principaux :
– Unité Arithmétique et Logique (ALU)
• Opérations classiques (+, -, AND, OR…)
– Multiplieur-Additionneur
– Accumulateurs
– Registres à décalage (shifters)
– Manipulation de bits
58
29
Unité de calcul
000
data bus (N bits)
• Multiplication
accumulation :
Multiplieur
Résultat
N bits sur 2N bits
2N bits ALU
Accumulateur
Résultat
sur 2N bits
Troncature
N bits
59
Unité de calcul
000
60
30
Unité de calcul
000
• TMS320c5x
(TI)
61
Unité de calcul
000
• DSP56300
(Freescale)
62
31
Unité de calcul
000
Unité de calcul
000
overflow
32
Unité de commande
000
• Séquençage
– Décodage des instructions
– Pilotage les autres unités
65
Pipeline
000
66
33
Pipeline
000
Cycle 1 2 3 4 5 6 7 8 9 10 11 …
Sans
Fetch C1 C2 C3
Pipeline
Decode C1 C2 C3
Read/Write C1 C2 C3
Execute C1 C2 C3
Fin C1 Fin C3
Fin C2 67
Pipeline
000
• Différents types de pipelines
Séquentiel Pipeline simple
Pas de pipeline (plupart des DSP)
(ex: Motorola 56000)
t t
Double pipeline Superpipeliné
(ex: Pentium) Nombre d'étages plus élevé
(ex: TMS320C6000)
t t
Source : [9]
68
34
Pipeline
000
Pipeline
000
35
Unité de génération d’adresse
000
• Unités de traitement spéciales
– DAG (Data Address Generation)
– AGU (Adress Generation Unit)
– Pilotées par le séquenceur
– Calculs sur des entiers (adresses mémoires)
• Méthodes pré-programmées
– Incrémentation
– Décrémentation
– Adressage circulaire
– Incrémentation bit-reverse (pour la FFT)
71
Unité de mémoire
000
• Architecture Harvard
Mémoire Programme
CPU
Mémoire Données
36
Unité de mémoire
000
Mémoire Données
Unité de mémoire
000
Mémoire Données 2
– Bancs de mémoire
37
Unité de mémoire
000
• Mémoire interne sur les DSP C54xx
Unité de mémoire
000
CPU
Mémoire Données
38
Unité de mémoire
000
Périphériques
000
• Port série
– Communication avec codecs
• Port parallèle
– Communication avec une mémoire
externe
• Timer
• Contrôleur d’interruption
• Horloge interne
78
39
Architecture générale
000
DSP56303 (Source : Freescale)
79
Plan de l’exposé
000
• Le Traitement Numérique du
Signal (TNS) et les DSP
40
Performances des DSP
000
81
41
DSP hautes performances
000
• Architecture conventionnelle
– Spécialisée pour le TNS
– Faible consommation, faible coût
– Difficulté de programmation
• Nouvelles architectures
– Plus grande consommation
– Coût plus élevé
– Rendues nécessaires par de nouveaux besoins
• Performance (téléphonie 3G)
• Rapidité de développement
83
42
DSP hautes performances
000
– Limites :
• Consommation proportionnelle à la
vitesse CPU
85
– SIMD
(Single Instruction,
Multiple Data)
Source : [8]
86
43
DSP hautes performances
000
– Superscalaire
• Plusieurs MAC, plusieurs ALU, cache données
• Circuit de contrôle complexe
87
– Superscalaire
– VLIW (Very Long Instruction Word)
• VLIW 8 voies = 8 instr. 32 bits = 256 bits
• Instructions en parallèle à la compilation
• Hardware + simple que superscalaire
88
44
DSP hautes performances
000
– Superscalaire
– VLIW
– Approches hybrides SIMD/VLIW
89
Ex : ADSP2192 de
Analog Devices
2 cores « on-chip »
Source : analog.com
90
45
Mesure de performance
000
• Mesure de la vitesse
Million Floating- Nombre d’opérations à virgule flottante
(multiplications, additions, soustractions, etc.) que
MFLOPS Point Operations le DSP à virgule flottante peut réaliser en une
Per Second seconde.
Million
Nombre de codes machines (instructions) que le
MIPS Instructions Per DSP peut effectuer en une seconde.
Second
Million Nombre total d’opérations (traitement et transferts
MOPS Operations Per de données, accès DMA, opérations d’E/S) que le
DSP peut effectuer en une seconde.
Second
Million Multiply
Nombre de MAC que le DSP peut effectuer en une
MMACS and Accumulate seconde.
Per Second
91
Mesure de performance
000
46
Mesure de performance
000
TMS320 C24 40 40 40 -
TMS320 C6455 1000 8000 8000 -
Texas
93
Mesure de performance
000
• Benchmark :
– mesurer le temps que met le DSP
pour exécuter des programmes
"standard" de TNS
– Programmes standard
• Comment les choisir ?
• Dépendent des domaines
• N multiplications Æ Filtre RIF 2D
– Problème : dépend de la qualité de
l’implémentation
94
47
Gamme de DSP
000
La gamme Texas Instruments
Contrôle numérique
Faible consommation
(lecteur MP3, récepteur GPS,
équipement médical portable)
95
Gamme de DSP
000
Road Map C50 (Texas Instruments)
96
48
Gamme de DSP
000
Road Map C60 (Texas Instruments)
97
Gamme de DSP
000
Road map BlackFin (Analog Devices)
98
49
Quelques DSP
000
Horloge Virg. Données
Constructeur Modèle (MHz) MMACS Fi/Flo (bits)
99
Plan de l’exposé
000
• Le Traitement Numérique du
Signal (TNS) et les DSP
50
Développement d’applications
000
• Conception algorithmique
• Choix du DSP
• Développement sur PC
– C ou assembleur
– Environnement pas universel
• Compilation, link
• Chargement de l’exécutable sur le DSP
PC DSP
• Exécution du programme sur le DSP
101
Développement d’applications
000
51
Développement d’applications
000
N −1
y (n) = ∑ a(i ) x(n − i )
i =0
Coefficients a(i)
Gabarit du filtre (à convertir au
format virgule fixe)
103
Développement d’applications
000
Sous-programme de
Prog. principal
traitement d’une interruption
Initialisation des Réception de l’échantillon
registres, tables d’entrée x(n)
d’interruption,
coefficients…
Calcul de l’échantillon
de sortie avec :
N −1
Attente (idle) y (n) = ∑ a(i ) x(n − i )
i =0
52
Développement d’applications
000
• Test du programme :
– Simulateurs
– Carte d’évaluation
(Starter Kits chez TI)
105
Développement d’applications
000
Assembleur Langage C
• Langage bas-niveau • Langage de plus
– Fastidieux haut-niveau
– Jeux d’instructions – Plus rapide à coder
complexes et irréguliers – Meilleure portabilité
– Spécifique à chaque
constructeur
• Code machine généré
• Plus puissant moins efficace
– Accès à certains registres
inconnus du C
• Outils de
développement
• Permet d’optimiser
106
53
Assembleur
000
Instruction
Start : Commentaire
LD #540, AR2 ; Premier opérande en AR2
LD #180, AR3 ; Deuxième opérande en AR3
MAC *AR2, *AR3, A ; Multiplication des opérandes
Etiquette
Opérande
107
Types d’instructions
000
• Calcul
– Opérations arithmétiques
• Addition, soustraction, multiplication
– Opérations logiques
• AND, OR, tests
• Décalage
• Contrôle du programme
– Branchement, répétition
– Appels et Retours
• Sous-programmes, interruptions
– Manipulation de la pile
– Divers (NOP)
• Mémoire
– Chargement et sauvegarde
– Déplacement de données de mémoire à mémoire
108
54
Modes d’adressage
000
109
Modes d’adressage
000
110
55
La R&D sur les DSP en France
000
111
Annexe
000
Présentation
des TP sur les DSP
112
56
TP sur les DSP
000
En pratique :
• 3 séances : Lundi 29 janvier, 5 & 12 février
• Evaluation sur CR + oral
113
mémoire
interne
ROM
(CPLD)
SARAM
DARAM
mémoire
externe
114
57
Diagramme bloc du
TMS320C5416 000
Program/Data ROM Program/Data RAM Mémoire
16K Words 128K Words
JTAG Test/
interne
D(15-0) Emulation
Control
MUX
Peripheral Bus
(VITERBI) Ch 1 Interface (HPI)
Unités de RND, SAT EXP Encoder Ch 2 Multichannel Buffered
calcul Shifter Accumulators
Serial Port (McBSP)
Ch 3
40-Bit ACC A Multichannel Buffered
40-Bit Barrel Ch 4 Serial Port (McBSP)
(-16, 31) 40-Bit ACC B
Ch 5 Multichannel Buffered
Addressing Unit Serial Port (McBSP)
Génération 8 Auxiliary Registers PLL Clock
d’adresses 2 Addressing Units
Generator
S/W Waitstate
Power Management Generator Entrées
Sorties
CPU
115
Effets audio
000
delay
chorus
flanger
reverb
116
58
Effets audio : delay
000
Filtre RIF
• Selon la valeur de D
– Entre 50 et 100 ms : effet d’ambiance
– >100 ms : écho
117
118
59
Effets audio : delay
000
Filtre RII
revient à ajouter
un retour
(feedback)
119
60
Delay : exemples
000
• Son 1 : impulsion
• RIF : 60 ms, 100 ms, 150 ms, 250 ms
• RII (avec feedback) 250 ms : gain1, gain2 >
gain1
• Son 2 : voix chantée
• sans , avec
• Son 3 : guitare
• grand retard 1,5 s (intérêt de la synchro)
• effet stéréo : 20 ms de décalage entre les 2
canaux
source des sons : [10,12] 121
LFO : Low
frequency
oscillator
(ex : 3 Hz)
• D varie de 20 à 30 ms
122
61
Chorus : exemples
000
123
124
62
Effets audio : flanger
000
D1
D1< D2
125
Flanger : exemples
000
126
63
Effets audio : reverb
000
127
128
64
Effets audio : reverb
000
• Structure du réverbérateur de
Schroëder
129
Reverb : exemples
000
130
65
Effets audio : résumé
000
Structure D
RIF : yn = xn+axn-D
Fixe
Delay RII : yn = xn+ayn-D
Effet d’ambiance (50 à 100ms), écho (>100ms)
Quelques références
000
• F. Virolleau, G. Baudoin. DSP Les
processeurs de traitement du signal -
Famille TMS320C5x. Dunod, 1996.
66
Bibliographie complète
000
• [1] A. Tisserand. DSP : des processeurs
dédiés au traitement numérique du
signal, séminaire LIP, 2003.
• [2] Bores Signal Processing (www.bores.com)
• [3] C. Odet. Cours sur les DSP, INSA Lyon,
2005.
• [4] Berkeley Design Technology, Inc.
www.bdti.com (juin 2006)
• [5] D. Prêtre. Fast Fourier Transform. HE-Arc
Ingénierie, 2004.
133
Bibliographie complète
000
• [6] L. Battista. Une introduction aux DSP,
Mémoire CNAM, 1997.
• [7] M. Vinez. Domaines d’application par type
d’architecture, séminaire Jessica, 2006.
• [8] Dossier : Les processeurs de traitement du
signal, Electronique n°143, 2004.
• [9] R. Mégret. Processeurs dédiés au
traitement du signal, cours ENSEIRB,
2005.
134
67
Bibliographie complète
000
• Sites des constructeurs :
– ti.com,
– freescale.com,
– analog.com.
• Effets audio :
[10] http://www.harmony-
central.com/Effects/effects-explained.html
[11]
http://www.bluecatonline.org/eng/DigitalAu
dioNotions/DigitalAudioNotions.htm
[12] http://www-
dsp.efrei.fr/DOCUMENTS/reverb.htm
135
Bibliographie complète
000
• Effets audio :
• [10] http://www.harmony-
central.com/Effects/effects-explained.html
• [11]
http://www.bluecatonline.org/eng/DigitalAudi
oNotions/DigitalAudioNotions.htm
• [12] http://www-
dsp.efrei.fr/DOCUMENTS/reverb.htm
136
68