Upload
lynhu
View
226
Download
2
Embed Size (px)
Citation preview
1
2006-2007
Les processeurs de traitement du signal
Caroline [email protected]
000
2
DSP : Digital Signal Processor
Amplificateur home cinéma Denon AVR3806
Lecteur codes barres CCD ScanPLus 1800 SR Interscan
Autoradio MP3 KD-SHX851 JVC
Console de mixage Allen&Heath
• Produits utilisant des DSP:
Téléphone portable Ericsson R600
2
000
3
Applications des DSP
• Communications– Modem, téléphonie– Télévision & radio
numérique– Cryptage
• Audio– Mixage et édition– Effets– Suppression de bruit– Annulation d’écho
• Image / Vidéo– Compression/Codage– Traitement
• Militaire– Imagerie (radar,
sonar)– Cryptographie– Guidage de missiles– Navigation
000
4
Applications des DSP
• Médical– Equipements de
monitoring (EEG, ECG)
– Imagerie (IRM…)
• Instrumentation– Analyseurs de
spectre– Générations de
fonctions
• Automatisation– Commande de
machines– Contrôle de moteurs– Robots
• Automobile– Contrôle du moteur– Assistance au freinage– Aide à la navigation– Commandes vocales– Tableau de bord
3
000
5
49,7%
12,9%
9,8%
7,7%
6,8%
13,1%
Principaux constructeurs de DSP
Source : EETimes.com, 2004
autres
ex-Motorola
ex-Lucent
Achats de DSP en millions de dollars
000
6
Plan de l’exposé
• Le Traitement Numérique du Signal (TNS) et les DSP
• Architecture des DSP : CPU, mémoire…
• Performances des DSP : augmentation, mesure de performances, gamme de DSP…
• Développement d’applications surun DSP : programmation…
4
000
7
Plan de l’exposé
• Le Traitement Numérique du Signal (TNS) et les DSP
• Architecture des DSP : CPU, mémoire…
• Performances des DSP : augmentation, mesure de performances, gamme de DSP…
• Développement d’applications surun DSP : programmation…
000
8
Le TNS : pourquoi ?
Stabilité• Insensibilité à
l’environnement
• Précision connue et contrôlée
• Reproductibilité
Souplesse
• Programmation flexible
• Développement rapide
• Facilité pour certains traitements
5
000
9
Le TNS : comment ?
• Chaîne classique de traitement numérique du signal :
?
Mémoire
Ports d’E/S
CAN CNAFiltre antirepliement
Filtre dereconstruction
numérique
Signalanalogiqued’entrée
Signalanalogiquede sortie
000
10
Solutions pour le TNS
• Classification des processeurs
Source : d’après [1]
ASIC : Application Specific Integrated CircuitASSP : Application Specific Standard ProductFPGA : Field Programmable Gate Array
ASICASSPFPGA
6
000
11
Classification des processeurs
• Le processeur généraliste (GPP)• Coût relativement élevé
• Forte consommation électrique
• Bonnes performances en calcul numérique– Certains surpassent les DSP en puissance brute
• GPP moins bons que les DSP pour :– la consommation électrique– la gestion des entrées-sorties– le prix
000
12
Classification des processeurs
• Le microcontrôleur
• Faible coût
• Faible consommation électrique
• Mémoire limitée
• Peu adapté aux signaux numériques
• Adapté aux tâches de contrôle
• Programmation bas niveau
7
000
13
Classification des processeurs
• ASIC/ASSP (Application-Specific…)• Circuit intégré dédié à une application
– dans une entreprise : ASIC– pour un marché (ex: téléphonie) : ASSP
• Ne sont pas programmables
• Mise en œuvre complexe et longue
• Coût élevé
• FPGA : sorte de ASIC programmable
000
14
Classification des processeurs
• DSP
• Coût relativement faible
• Faible consommation électrique
• Jeu d'instruction spécialisé
• Calculs numériques
• Entrée-sortie de données à grand débit
• Mémoire limitée
8
000
15
Le TNS : besoins
• Algorithmes de TNS :
– filtrage
– transformées
– codage/décodage
– reconnaissance de la parole
– synthèse de signaux
– élimination d’écho
– estimation spectrale…
000
16
Le TNS : besoins
• Contrainte de temps réel
• Ex : taux d’échantillonnage 48kHz Te = 20.833 µs
t
Arrivée de l’échantillon x(n)
t t+Te
Temps de traitement Tdoit être <Te
pour le temps réel
Arrivée de l’échantillon x(n+1)
9
000
17
Les DSP ont une architecturematérielle et logicielle dédiée
permettant de répondre à ces besoins
Le TNS : besoins
• Cahier des charges :
1. Calculs rapides2. 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
000
18
Exemples d’applications
• Lecteur MP3 dictaphone
Source : ti.com
10
000
19
Exemples d’applications
• Scanner de codes barres
Source : ti.com
000
20
Exemples d’applications
• Appareil photo numérique
Source : ti.com
11
000
21
Exemples d’applications
• Imagerie par Résonance Magnétique
Source : ti.com
000
22
Exemples d’applications
• Console de mixage
Source : ti.com
12
000
23
Exemples d’applications
• Récepteur GPS
Source : ti.com
000
24
Exemples d’applications
• TV à écran LCD
Source : ti.com
13
000
25
Exemples d’applications
• Kit mains libres
Source : ti.com
000
26
Spécificités des DSP
• Plan de cette partie :– 2 algorithmes classiques de TNS :
• Filtre à Réponse Impulsionnelle Finie(RIF)
• Transformée de Fourier rapide (FFT)
Opérations les + courantes
dans les algosde TNS
Contraintes matérielles sur l’architecture
DSP
imposent
Spécificités des DSP
14
000
27
Spécificités des DSP
• Algo n°1 : Filtre RIF
Une équation aux différences finiesspécifie la sortie y(n)
∑−
=
−=1
0)()()(
N
iinxiany
000
28
Spécificités des DSP
• Pour chaque cellule a(i)x(n-i) :– 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)
4 accès en mémoire 2 accès à l’unitéde calcul
∑−
=
−=1
0)()()(
N
iinxiany
15
000
29
Spécificités des DSP
• 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
000
30
Spécificités des DSP
• Objectifs :– Réduire les accès mémoire– Augmenter les accès mémoire simultanés
Architecture Harvard (DSP)
Architecture Von Neuman
(microcontrôleur)
Source images : [1]
16
000
31
Spécificités des DSP
Buffer circulaire : Segment mémoire contenant des données(échantillons, cœfficients…)
Accès par pointeurs générés et incrémentés automatiquement
– Pas de test sur les pointeurs– Pas de reset nécessaire
L
L+1
L+2
L+N
… …
…
…
• Objectifs :– Réduire les accès mémoire
Mode d’adressage circulaire
000
32
2
0
1
N-2
N-1
Spécificités des DSP
x(n-1)
x(n-2)
…
…
…
…x(n-N+1)
x(n-N)
x(n)
x(n-1)
x(n-2)
…
…
…x(n-N+2)
x(n-N+1)
x(n-N)
nouvel échantillonx(n)
a0
a1
a2
…
…
…
aN-2
aN-1
y(n)
Mise à jour du buffer Calcul de y(n)
décalage
Xtab(t-1) Xtab(t)0
1
N-2
N-1
1
• Buffer linéaire
source image : [9]
∑−
=
−=1
0
)()()(N
i
inxiany
17
000
33
Spécificités des DSP
ak+1x(n-k+1)
…
x(n-N+1)
x(n-N)
x(n-1)
x(n-2)
…
x(n-k)
nouvel échantillonx(n)
…
aN-1
a0
a1
a2
…
ak
y(n)
Mise à jour du buffer Calcul de y(n)
x(n-k+1)
…
x(n-N+1)
x(n)
x(n-1)
x(n-2)
…
x(n-k)
idx
0
1
N-2
N-1
0
1
N-2
N-1
idx
Xtab(t-1) Xtab(t)
• Buffer circulaire
source image : [9]
∑−
=
−=1
0)()()(
N
iinxiany
000
34
Spécificités des DSP
• Algo n°2 : FFT (Fast Fourier Transform)
sur N points∑−
=
−−≤≤=
1
0
210)()(
N
i
Ninj
Nnpoureixnyπ
SimultanéSéquentielCalcul des N
échantillons y(n)
N/2 log2(N)N²Nombre de
multiplications
Algorithme de Cooley-Tukey
Sans optimisation
18
000
35
Spécificités des DSP
• Algo n°2 : FFT par Cooley-Tukey
Besoin d’accéder auxéchantillons dans
cet ordre
∑ ∑−
=
−
=
−==
1
0
1
0
2)()()(
N
i
N
i
inN
Ninj
Wixeixnyπ
Ex : N = 8
Source : [5]
x0
x4
x2
x6
x1
x5
x3
x7
y0
y1
y2
y3
y4
y5
y6
y7
000
36
Spécificités des DSP
• Moded’adressagespécifique :“Bit reverse”
30111106
51011015
71111117
001
110
010
100
000
Ordre pour la FFT Cooley-Tuckey
100
011
010
001
000
63
00
14
22
41
Ordre naturel des échantillons
19
000
37
Entrées/sortiesspécifiques
Spécificités des DSP
• Résumé :
Organisationmémoire
Architecture Harvard
Jeud’instructions
MAC en 1 cycle
Modes d’adressage
Bit reverse, circulaire Flot continu de données
000
38
Plan de l’exposé
• Le Traitement Numérique du Signal (TNS) et les DSP
• Architecture des DSP : CPU, mémoire…
• Performances des DSP : augmentation, mesure de performances, gamme de DSP…
• Développement d’applications surun DSP : programmation…
20
000
39
Architecture des DSP
• Plan de cette partie :
– Représentation des nombres
– CPU
– Unité de mémoire
– Périphériques
Unité de calculUnité de commande (pipeline)Unité de génération d’adresses
000
40
• Format courant : 16/24 bits
• Idéal avec CAN/CNA 12/14 bits
• Applications : Contrôle industriel, communications, instrumentation, parole, médical, militaire…
Représentation des nombres
• Les valeurs traitées (coefficients, échantillons…)
sont représentées sous 2 formes :
Virgule fixe Virgule flottante
21
000
41
Représentation des nombres
• Les valeurs traitées (coefficients, échantillons…)
sont représentées sous 2 formes :
Virgule fixe Virgule flottante
• Format courant : 32 bits
• Idéal pour le traitement sur unegrande dynamique
• Applications : Audio professionnel, vidéo, médical…
000
42
Représentation des nombres
• Virgule fixe : Complément à 2 (C2)
Signe
12 1 −−N
12 −− N 00110011
01-411-301-211-1000101002103
Nombre Codage
Nombre positif : codé comme un binaire naturel
Nombre négatif : Inversion des bits puis ajoutde 1
Le codage C2 convient bien aux opérations maths.
22
000
43
Représentation des nombres
• Virgule fixe : Complément à 2
• Représentation “circulaire”– En ajoutant 1 à la plus grande valeur
positive on obtient la valeur négativeextrême
– Ex sur 3 bits :000 001111
010110
100011101
01
2
3
-4-3
-2
-1
000
44
Représentation des nombres
• Virgule fixe : Codage des entiers
∑=
+−=6
0
77 22
i
iibbxExemple sur 8 bits 122 77 −≤≤− x
110110002720212223242526-27Poids
000000000
00111111-4
Bit de signe
23
000
45
Représentation des nombres
• Virgule fixe : Codage des réels
Format Qk
Partie fractionnairesur k bits
Partie entièresur N-k bits en C2
Ex : 2,3125
• Cas particulier : k = 0 entiers
000
46
Représentation des nombres
• Virgule fixe : Codage des réelsFormat Qk
– Pour coder le réel x, trouver les bi tels que :
– Ex : format Q5 sur 8 bits (n=8, k=5)
Partie entière : 3 bits / fractionnaire : 5 bits
∑−−
−=+
− +−=1
22kn
ki
iki
knn bbx
010100102,31252-52-42-32-22-12021-22Poids
24
000
47
Représentation des nombres
• Virgule fixe : Codage des réels
Format Qk
– Correspond à la représentation C2 de l'entier y tel que :
– Ex : y = round(25.2,3125)
= 74 = (0100 1010)b
)2round( xy k=
010100102,31252-52-42-32-22-12021-22Poids
000
48
Représentation des nombres
• Exemple : Format Q5 sur 8 bits
– Dynamique : -2N-k-1 … 2N-k-1-2-k
00000001-410000001-3.96875
000000000
011111103.9375111111103.96875
2-52-42-32-22-12021-22Poids ,
max
min
25
000
49
Représentation des nombres
• Exemple : Format Q5 sur 8 bits– Précision : q = 2-k
– Erreur maximale : q/2 = 2-(k+1)
– Ex : 010.01010 = 2,3125010.01011 = 2,3438
– Si on doit coder 2,33, l’erreur sera de 2-6
max.
+q = +2-k
000
50
Représentation des nombres
• Un format très classique :Q15 sur 16 bits : réels entre -1 et 1
99997.01,2,22 1514
0
15015 ≤≤−=+−= ∑
=
− xqbbxi
ii
signe
2-152-1±20
01415
Exemple
0000000000110011
01223456789101112131415
-1+0,5+2-4+2-5 = -0,40625
26
000
51
Représentation des nombres
• Ecrire le mot binaire 8 bits signéau format Q7 :
• +0.5
• +1.0
• -1.0
• +1/3
• -1/3
000
52
Représentation des nombres
• Si l’on veut D chiffresfractionnaires significatifs en décimal, quelle doit être le format Qk ?
27
000
53
Représentation des nombres
• Si l’on veut D chiffres fractionnairessignificatifs en décimal, quel doit être le format Qk ?
• Il faut avoirsoit :Puis :
Ex : le format Q15 a une précision de 4 chiffresdécimaux après la virgule
Dq −≤ 10Dk −− ≤102( ) DDk 3.310log2 ≈≥
000
54
Représentation des nombres
• Virgule flottante : mots de 32 bits sous forme mantisse-exposant
1272).,1.()1( −−= es fx ∑=
=7
02
i
iiee ∑
=
−=22
0
232i
iiff
partie fractionnaire de la mantisseexposantsigne
f0……f22e0e7s
022233031
000……011111000000
022233031
+1,75.27-127 = 1,3165.10-36
28
000
55
Représentation des nombres
1500 dB190 dBDynamique max.
ComplexeSimpleComplexité hard
FaibleElevéeComplexité progr.
ElevéeFaibleConsommation
ElevéFaibleCoût
Virgule flottante
Virgule fixe(95% des DSP)
000
56
Architecture des DSP
CPU
29
000
57
Structure interne du CPU
Bus de program
me
Unités de générationd’adresses
AddP
Unités de traitement
mathématique
DataP
Registre de données
Générateur d’adresses MD
AddD
DataD
Unité de commande
Cache
Générateur d’adresses MP
Multiplieur
ALU
Registre décalage
Séquenceur
CPU
Bus
de d
onné
es
000
58
Unité de calcul
• Éléments principaux :– Unité Arithmétique et Logique (ALU)
• Opérations classiques (+, -, AND, OR…)
– Multiplieur-Additionneur– Accumulateurs– Registres à décalage (shifters)– Manipulation de bits
30
000
59
Unité de calcul
• Multiplication accumulation :
Multiplieur
ALU
Accumulateur
Résultat sur 2N bits
Résultat sur 2N bits
Troncature
data bus (N bits)
N bits
N bits2N bits
000
60
Unité de calcul
• Lors de nombreux MAC successifs :– Taille de l’accumulateur (2N bits)
insuffisante2 solutions :– Accumulateur sur 2N + p bits
Exemple : ADSP2181
2 registres 16 bits, résultatsur 32 bits dans l’accu 40 bits
– Pre-Scaling : décalage avant l’accumulation
31
000
61
Unité de calcul
• TMS320c5x
(TI)
000
62
Unité de calcul
• DSP56300
(Freescale)
32
000
63
Unité de calcul
Exo : Soit un filtre RIF à calculer.
• coefficients a • échantillons d’entrée x• accumulateur sur B’ = 40 bits
Quel est le nombre max Nmax de produits que l’on peut accumuler sans risque de saturation ?
∑−
=
−=1
0)()()(
N
iinxiany
sur B = 16 bits
000
64
Unité de calcul
• Gestion des débordements– Complément à 2 : représentation
circulaire Si on ajoute 1 au plus grand positif, on obtient le plus grand négatif !
– Les DSP utilisent une arithmétiquesaturée :
saturation
overflow
Source images : [2]
33
000
65
Unité de commande
• Chef d’orchestre du CPU
• Chargement des instructions– Compteur de programme (PC)– Registre d’instruction– Cache d’instructions
• Séquençage– Décodage des instructions– Pilotage les autres unités
000
66
Pipeline
• Principe : découper une opération en tâches élémentaires à effectuer en parallèle
• Ex : pipeline à 4 étages
Exécution éventuelle d’une opération arithmétique/logiqueExecute
Lecture ou écriture d’un opérande en mémoire de donnéeRead/Write
Décodage de l’instructionDecode
Lecture de l’instruction en mémoire programmeFetch
34
000
67
Pipeline
SansPipeline
Avecpipeline
…1110987654321Cycle
C3
C3
C3
C2
C2
C3
C1
C2
C2
C1
C1
Execute
C1Read/Write
Decode
Fetch
Fin C1 Fin C2 Fin C3
…1110987654321Cycle
C7
C8
C9
C10
C8
C9
C10
C11
…
…
…
C4
C5
C6
C7
C5
C6
C7
C8
C6
C7
C8
C9
C1
C2
C3
C4
C2
C3
C4
C5
C3
C4
C5
C6C1
C1
C2
Execute
C1Read/Write
C2Decode
C3Fetch
Fin C1Fin C2
Fin C3
000
68
Pipeline• Différents types de pipelines
SéquentielPas de pipeline
(ex: Motorola 56000)
Pipeline simple(plupart des DSP)
Double pipeline(ex: Pentium)
SuperpipelinéNombre d'étages plus élevé
(ex: TMS320C6000)
tt
t t
Source : [9]
35
000
69
Pipeline
• Avantage d’un DSP pipeliné– Gain en vitesse d’exécution
• Inconvénients– Electronique et programmation plus
complexe
• Un retard peut se produire– s’il existe un conflit de ressources
– en cas de rupture de séquence
000
70
Pipeline
• Pipeline présent dans quasiment tous les DSP– Le nombre d’étages varie de 3 à 12– Exemples :
7-12TMS320 C62
10-11TMS320 C55
6TMS320 C54
3DSP568xx
7DSP563xx
3SHARC
36
000
71
Unité de génération d’adresse
• 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)
000
72
Unité de mémoire
• Architecture Harvard
– Mémoires données et programme séparées
– Meilleure utilisation du CPU• Chargement du programme et des données en
parallèleSource image : [9]
Mémoire Programme
Mémoire Données
CPU
37
000
73
Unité de mémoire
• Architecture Harvard modifiée
– Possibilité de charger 2 types de données en 1 cycle
– Mém. prog+données coefficients– Mémoire données signal d’entrée
Source image : [9]
Mémoire Programme+ Données
Mémoire Données
CPU
000
74
Unité de mémoire
• Architecture Harvard modifiée
– Bancs de mémoire
Source image : [9]
Mémoire Programme
Mémoire Données 1CPU
Mémoire Données 2
38
000
75
Unité de mémoire
• Mémoire interne sur les DSP C54xx
• Plusieurs types de RAM :– Single access (SARAM) : un accès par cycle– Dual access (DARAM) : deux accès par cycle– Two-way shared : deux accès par cycle même
depuis l'extérieur
000
76
Unité de mémoire
• Canaux DMA : Direct Memory Access
• Réduction des accès mémoire• Adressages spécifiques (circulaire)• Mémoire cache programme
Mémoire Programme+ Données
Mémoire Données
CPU
cached’instructions
Source image : [9]
39
000
77
Unité de mémoire
• Mémoire cache programme– Contient des instructions exécutées
fréquemment (boucles...)
– Structure plus simple que dans les processeurs généraux
– Exemple :DSP563xx 1KB
TMS320C67 64 KB
– Configurable par l’utilisateur
– Pas de cache de données en général
000
78
Périphériques
• Port série– Communication avec codecs
• Port parallèle– Communication avec une mémoire
externe
• Timer
• Contrôleur d’interruption
• Horloge interne
40
000
79
Architecture généraleD
SP5
6303 (
Sourc
e :
Free
scal
e)
000
80
Plan de l’exposé
• Le Traitement Numérique du Signal (TNS) et les DSP
• Architecture des DSP : CPU, mémoire…
• Performances des DSP : augmentation, mesure de performances, gamme de DSP…
• Développement d’applications surun DSP : programmation…
41
000
81
Performances des DSP
• Plan de cette partie :
– DSP hautes performances
– Mesures de performances
– Gamme de DSP
000
82
DSP hautes performances
Processeur unique20 000 lignes de code
Multiples processeurs100 000 lignes de code
Multiples processeurs + protocoles+500 000 lignes de code
Lecteur MP3
Robot familial (Wakamaru, Mitsubishi)
Système VoIPpour traders
(IPC)
Source : d’après [7]
42
000
83
• 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
DSP hautes performances
000
84
DSP hautes performances
• On vient de voir l’architecture de base des DSP
Comment augmenter les performances ?
Plusieurs solutions :
Diminuer la durée d’un cycle d’horloge
Augmenter le travail réalisé au cours d’un cycle d’horloge
43
000
85
DSP hautes performances
• Augmentation de la fréquence CPU
– Facilité de portage des applis existantes
– Limites :• Consommation proportionnelle à la vitesse CPU
• Interfaces mémoire deviennent des goulets d’étranglement
000
86
DSP hautes performances
• Augmentation du travail effectuépendant un cycle : parallélisme
Plus d’opérations dans 1 instruction
– SIMD(Single Instruction,Multiple Data)
Source : [8]
44
000
87
DSP hautes performances
• Augmentation du travail effectuépendant un cycle : parallélisme
Plus d’instructions dans 1 cycle d’horloge
– Superscalaire• Plusieurs MAC, plusieurs ALU, cache données• Circuit de contrôle complexe
000
88
DSP hautes performances
• Augmentation du travail effectuépendant un cycle : parallélisme
Plus d’instructions dans 1 cycle d’horloge
– 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
45
000
89
DSP hautes performances
• Augmentation du travail effectuépendant un cycle : parallélisme
Plus d’instructions dans 1 cycle d’horloge
– Superscalaire– VLIW– Approches hybrides SIMD/VLIW
000
90
DSP hautes performances
• Augmentation du nombre de cœurs DSP en parallèle (multi-core):
Source : analog.com
Ex : ADSP2192 de Analog Devices
2 cores « on-chip »
46
000
91
Mesure de performance
• Mesure de la vitesse
Nombre de MAC que le DSP peut effectuer en une seconde.
Million Multiplyand AccumulatePer Second
MMACS
Nombre total d’opérations (traitement et transferts de données, accès DMA, opérations d’E/S) que le DSP peut effectuer en une seconde.
Million Operations Per Second
MOPS
Nombre de codes machines (instructions) que le DSP peut effectuer en une seconde.
Million Instructions Per Second
MIPS
Nombre d’opérations à virgule flottante (multiplications, additions, soustractions, etc.) que le DSP à virgule flottante peut réaliser en une seconde.
Million Floating-Point Operations Per Second
MFLOPS
000
92
Mesure de performance
• Ex 1 : DSP dans un téléphone portable 40 MIPS
• Ex 2: DSP56156 30 MIPS– Taux d’échantillonnage 48kHz Te = 20.833 µs
– Quel est le nombre d’instructions maximum entre 2 échantillons ?
62530/18,20
ninstructiod'1Tempsnsinstructio lespour max Tempsnsinstructiod'Nombre
≈=
=
Msµ
47
000
93
Mesure de performance
300
1000
40
750
600
160
300
150
MHz
-na1500MS8101
-na1500ADS-BF533
>1000na4800ADSP-TS201
18002400600TMS320 C67
-4040TMS320 C24
8000
160
150
MIPS
-
-
-
MFLOPS
8000
na
150
MMACS
TMS320 C6455
ADSP-2191
DSP56367
DSP
Anal
og
Dev
ices
Tex
asIn
stru
men
tsFr
eesc
ale
000
94
Mesure de performance
• 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
48
000
95
Gamme de DSP
La gamme Texas Instruments
Contrôle numérique
Faible consommation (lecteur MP3, récepteur GPS, équipement médical portable)
Très grande puissance : 8000 MIPS (imagerie, vidéo…)
000
96
Gamme de DSP
Road Map C50 (Texas Instruments)
49
000
97
Gamme de DSP
Road Map C60 (Texas Instruments)
000
98
Gamme de DSP
Road map BlackFin (Analog Devices)
50
000
99
Quelques DSP
16Fixe160160TMS320 C54
400
400
400
40
120
80/100
400
80/100
MMACS
16Fixe300TMS320 C62
16Fixe120DSP568xx
32
16
16
24
32/40
16
Données (bits)
Flottante
Fixe
Fixe
Fixe
Flottante
Fixe
Virg. Fi/Flo
300
200
40
80/100
200
80/160
Horloge (MHz)
TMS320 C67
TMS320 C55
ModèleConstructeur
TMS320 C24
ADSP-21XX
SHARC
Texas Instruments
DSP563xxFreescale
AnalogDevices
000
100
Plan de l’exposé
• Le Traitement Numérique du Signal (TNS) et les DSP
• Architecture des DSP : CPU, mémoire…
• Performances des DSP : augmentation, mesure de performances, gamme de DSP…
• Développement d’applications surun DSP : programmation…
51
000
101
Développement d’applications
• 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
• Exécution du programme sur le DSP
PC DSP
000
102
Développement d’applications
• Exemple : implantation d’un filtre RIF sur un DSP virgule fixe
• Choix du DSP en fonction de l’application :– Choix de la famille– Choix des caractéristiques
• Quantité de RAM/ROM• Vitesse d’horloge• Prix d’un DSP
Audio C54x chez TI
Bas de gamme : $5,40Haut de gamme : $30
pour 1000 unités
achetées
52
000
103
Développement d’applications
• Exemple : implantation d’un filtre RIF sur un DSP virgule fixe
∑−
=
−=1
0)()()(
N
iinxiany
Gabarit du filtreCoefficients a(i)(à convertir au
format virgule fixe)
000
104
Développement d’applications
• Ecriture du programme (C, assembleur)
Réception de l’échantillon d’entrée x(n)
Calcul de l’échantillon de sortie avec :
Sous-programme detraitement d’une interruption
Initialisation des registres, tables d’interruption, coefficients…
Attente (idle)
Prog. principal
∑−
=
−=1
0)()()(
N
iinxiany
Retour au prog. principal
53
000
105
Développement d’applications
• Test du programme :
– Simulateurs
– Carte d’évaluation(Starter Kits chez TI)
– Emulateurs source : ti.com
000
106
Développement d’applications
Assembleur• Langage bas-niveau
– Fastidieux– Jeux d’instructions
complexes et irréguliers– Spécifique à chaque
constructeur
• Plus puissant– Accès à certains registres
inconnus du C
• Permet d’optimiser
Langage C• Langage de plus
haut-niveau– Plus rapide à coder– Meilleure portabilité
• Code machine générémoins efficace
• Outils de développement
54
000
107
• Les instructions sont codées sur une ligne incluant une étiquette (optionnelle)
Start :
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
Instruction
Opérande
Commentaire
Assembleur
000
108
Types d’instructions• 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
55
000
109
Modes d’adressage
MOV R1, M(R2+R3)En mémoire à l’adresse résultat de la somme de 2 registres
Indexé
MOV R1, M(R2)
MOV R1, M(238)
MOV R1, 17
ExempleOù se trouve la donnée ?Adressage
En mémoire à l’adresse spécifiée dans un registre (pointeur)
Dans l’instruction
Indirect
En mémoire à l’adresse spécifiée dans l’instruction
Direct
Immédiat
• Modes d’adressage classiques
000
110
Modes d’adressage
• Modes d’adressage spécifiques
– Circulaire (ou modulo) : utilisé dans les filtres RIF, RII, la convolution…
– Bit reverse (ou inversion de bits) : utilisédans la FFT
56
000
111
La R&D sur les DSP en France
• Texas Instruments : Villeneuve-Loubet (06)
• Freescale : Toulouse, Crolles (38)
• ST Microelectronics : Crolles, Rousset (13)
• ARM : Sophia-Antipolis
• Atmel : Rousset, Grenoble
• Infineon : Sophia-Antipolis
000
112
Annexe
Présentationdes TP sur les DSP
57
000
113
TP sur les DSP
• Le DSP : TMS320 C5416
• Programmation d’algorithmes de traitement du signal : effets audio
Apporter un lecteur CD/MP3 ou clé USB
En pratique :
• 3 séances : Lundi 29 janvier, 5 & 12 février
• Evaluation sur CR + oral
000
114
Le DSP Starter Kit C5416
(CPLD)ROM
SARAM
DARAM
mémoireexterne
mémoireinterne
source : "TMS320V
C5416 D
SK
Reference
Technical", Spectrum D
igital
58
000
115
Bus externe
Diagramme bloc du TMS320C5416
Muxed GP I/O
D(15-0)
A(23-0)
Program/Data BusesTimer
Program/Data RAM128K Words
Ch 0
Ch 1
Ch 2
Ch 3
Ch 4
Ch 5
DMA
8/16-bit Host PortInterface (HPI)
Program/Data ROM16K Words
Perip
hera
l Bus
RND, SAT
17 x 17 MPY
40-Bit Adder
MAC
Shifter40-Bit Barrel
(-16, 31)
EXP Encoder
40-Bit ALUCMPS Operator
(VITERBI)
ALU
Accumulators40-Bit ACC A
40-Bit ACC B
8 Auxiliary Registers
2 Addressing Units
Addressing Unit
Multichannel BufferedSerial Port (McBSP)
Multichannel BufferedSerial Port (McBSP)
Multichannel BufferedSerial Port (McBSP)
PLL Clock Generator
S/W WaitstateGeneratorPower Management
Générationd’adresses
Unités decalcul
Mémoireinterne
EntréesSorties
JTAG Test/Emulation
Control
CPU
MU
X
000
116
Effets audio
• Principe de tous les effets audio : ajout au signal d’une version décalée de lui-même
delaychorus
flangerreverb
59
000
117
Effets audio : delay
• Delay = retard simple• 1ère possibilité : y(n) = x(n)+ a.x(n-D)
• Selon la valeur de D– Entre 50 et 100 ms : effet d’ambiance– >100 ms : écho
Filtre RIF
000
118
Effets audio : delay
• RIF : y(n) = x(n)+ a.x(n-D)• Fonction de transfert :
Filtre en peigne (comb filter)
DazzH −+=1)(
sourc
e :
[11]
60
000
119
Effets audio : delay
• 2ème possibilité : y(n) = x(n)+ a.y(n-D)
revient à ajouterun retour (feedback)
Filtre RII
000
120
Effets audio : delay
• RII : y(n) = x(n)+ a.y(n-D)• Fonction de transfert :
DazzH −+=
11)(
source : [11]
61
000
121
Delay : exemples
• 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
canauxsource des sons : [10,12]
000
122
Effets audio : chorus
• Principe : simuler le fait que plusieurs instruments identiques jouent simultanément, « élargir » le son.
• D varie dans le temps !
y(n) = x(n)+ a.x(n-D(n))
• D varie de 20 à 30 ms
LFO : Lowfrequencyoscillator(ex : 3 Hz)
62
000
123
Chorus : exemples
• Son 1 : guitare sans, avec • Son 2 : 1 note avec différentes
formes pour le LFO :
000
124
Effets audio : flanger
• Principe : bruit de réacteur d’avionou métallique, effet circulaire
• Similaire à chorus mais :– Feedback possible– D = 1 à 20 ms pas d’effet d’écho
mais filtre
63
000
125
Effets audio : flanger
• D plus petit que pour le chorus
D1 D1< D2
000
126
Flanger : exemples
• Très employé dans la musique ! (Jimi Hendrix, Pink Floyd, David bowie…)
• Son 1 : batterie sans, avec• Son 2 : Are you gonna go my
way, Lenny Kravitz• Son 3 : Killer queen, Queen
64
000
127
Effets audio : reverb
• Principe : prise en compte du volume de la pièce– Résultat de toutes les réflexions du son– Dépend de la surface (hall de concert : 1.5 à 2s)
000
128
Effets audio : reverb
• Principe : prise en compte du volume de la pièce
65
000
129
Effets audio : reverb
• Structure du réverbérateur de Schroëder
000
130
Reverb : exemples
• Son1 : voix chantée sans , avec• Son2 : guitare sans, avec• Son3 : reverse reverb (50ms, 150 ms)
66
000
131
Effets audio : résumé
Simultanéité de +ieurs instruments id.
Effet d’ambiance (50 à 100ms), écho (>100ms)
Réacteur d’avion, effet circulaire
FixeRIF : yn = xn+axn-D
RII : yn = xn+ayn-DDelay
Variable (1 à 20ms)RIF : yn = xn+axn-D(n)
RII : yn = xn+ayn-D(n)Flanger
Variable (20 à 30ms)RIF : yn = xn+axn-D(n)Chorus
DStructure
000
132
Quelques références
• F. Virolleau, G. Baudoin. DSP Les processeurs de traitement du signal -Famille TMS320C5x. Dunod, 1996.
• P. Lapsley, J. Bier, A. Shoham, E. Lee. DSP Processor Fundamentals, Architectures and Features, IEEE Press, 1997.
• G. Baudoin, F. Virolleau. Les DSP Famille TMS320C54x – Développementd’applications. Dunod, 2000.
67
000
133
Bibliographie complète
• [1] A. Tisserand. DSP : des processeursdé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.
000
134
Bibliographie complète
• [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.
68
000
135
Bibliographie complète
• 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/DigitalAudioNotions/DigitalAudioNotions.htm
[12] http://www-dsp.efrei.fr/DOCUMENTS/reverb.htm
000
136
Bibliographie complète
• Effets audio :
• [10] http://www.harmony-central.com/Effects/effects-explained.html
• [11] http://www.bluecatonline.org/eng/DigitalAudioNotions/DigitalAudioNotions.htm
• [12] http://www-dsp.efrei.fr/DOCUMENTS/reverb.htm