2006-2007
Les processeurs de traitement du signal
Caroline Petitjean
000
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
• Produits utilisant des DSP:
Téléphone portable
Ericsson R600
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
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
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 sur un DSP :programmation…
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 sur un 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
000
9
Le TNS : comment ?
• Chaîne classique de traitement numérique du signal :
? Mémoire
Ports d’E/S
CAN CNA
Filtre anti
repliement Filtre de
reconstruction
numérique Signal
analogique d’entrée
Signal analogique
de sortie
000
Solutions pour le TNS
• Classification des processeurs
ASIC : Application Specific Integrated Circuit ASSP : Application Specific Standard Product ASIC ASSP FPGA
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
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
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
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 T doit être <Te pour le temps réel
Arrivée de l’échantillon x(n+1)
000
17
Les DSP ont une architecture matérielle et logicielle dédiée permettant de répondre à ces besoins
Le TNS : besoins
• 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
000
Exemples d’applications
• Lecteur MP3 dictaphone
Source : ti.com
000
19
Exemples d’applications
• Scanner de codes barres
Source : ti.com
000
20
Exemples d’applications
• Appareil photo numérique
Source : ti.com
000
21
Exemples d’applications
• Imagerie par Résonance Magnétique
Source : ti.com
000
Exemples d’applications
• Console de mixage
000
23
Exemples d’applications
• Récepteur GPS
Source : ti.com
000
24
Exemples d’applications
• TV à écran LCD
Source : ti.com
000
25
Exemples d’applications
• Kit mains libres
Source : ti.com
000
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 algos
de TNS
Contraintes matérielles sur
l’architecture DSP imposent
Spécificités des DSP
000
27
Spécificités des DSP
• Algo n°1 : Filtre RIF
Une équation aux différences finies
spécifie la sortie y(n) ∑−
=
−
= 1
0
) ( ) ( )
(
N
i
i n x i a n
y
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
i
i n x i a n y
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
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]
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 échantillon
x(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
i n x i a n y
000
33
Spécificités des DSP
ak+1 x(n-k+1)
… x(n-N+1)
x(n-N) x(n-1) x(n-2)
… x(n-k)
nouvel échantillon x(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
i
i n x i a n y
000
Spécificités des DSP
• Algo n°2 : FFT (Fast Fourier Transform)
sur N points
∑
−=
− ≤ ≤ −
= 1
0
2 0 1
) ( )
(
N
i
N jin
N n pour e
i x n
y π
Simultané Séquentiel
Calcul des N échantillons y(n)
N/2 log2(N) Nombre de N²
multiplications
Algorithme de Cooley-Tukey Sans
optimisation
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
in N N
jin
W i x e
i x n
y π
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
• Mode
d’adressage spécifique :
“Bit reverse”
3 011
110 6
5 101
101 5
7 111
111 7
001 110 010 100 000
Ordre pour la FFT Cooley-Tuckey
100 011 010 001 000
6 3
0 0
1 4
2 2
4 1
Ordre naturel des échantillons
000
37
Entrées/sorties spécifiques
Spécificités des DSP
• Résumé :
Organisation mémoire
Architecture Harvard
Jeu
d’instructions
MAC en 1 cycle
Modes d’adressage
Bit reverse, circulaire Flot continu de données
000
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 sur un DSP :programmation…
000
39
Architecture des DSP
• Plan de cette partie :
– Représentation des nombres – CPU
– Unité de mémoire – Périphériques
ÆUnité de calcul
ÆUnité 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
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 une grande dynamique
• Applications : Audio professionnel, vidéo, médical…
000
Représentation des nombres
• Virgule fixe : Complément à 2 (C2)
Signe
1 2N−1−
2 −1
− N 00
1 1 0 0 1 1
0 1 -4
1 1 -3
0 1 -2
1 1 -1
0 0 0
1 0 1
0 0 2
1 0 3
Nombre Codage
Nombre positif : codé comme un binaire naturel Nombre négatif : Inversion des bits puis ajout de 1
Le codage C2 convient bien aux opérations maths.
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égative extrême
– Ex sur 3 bits :
000 001 111
010 110
100 011 101
0 1
2 3 -4
-3 -2
-1
000
44
Représentation des nombres
• Virgule fixe : Codage des entiers
∑
=+
−
= 6
0 7
72 2
i i
bi
b
Exemple sur 8 bits x −27 ≤x≤27−1
1 1 0 1 1 0 0 0 27
20 21 22 23 24 25 26 -27 Poids
0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 -4
Bit de signe
000
45
Représentation des nombres
• Virgule fixe : Codage des réels Æ Format Qk
Partie fractionnaire sur k bits
Partie entière sur N-k bits en C2
Ex : 2,3125
• Cas particulier : k = 0 Æ entiers
000
Représentation des nombres
• Virgule fixe : Codage des réels Æ Format 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
∑
− −−
= +
− +
−
= 2 1 2
k n
k i
i k i k
n
n b
b x
0 1 0 1 0 0 1 0 2,3125
2-5 2-4 2-3 2-2 2-1 20 21 -22 Poids
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
) 2 round( x
y = k
0 1 0 1 0 0 1 0 2,3125
2-5 2-4 2-3 2-2 2-1 20 21 -22 Poids
000
48
Représentation des nombres
• Exemple : Format Q5 sur 8 bits
– Dynamique : -2N-k-1 … 2N-k-1-2-k 0 0 0 0 0 0 0 1 -4
1 0 0 0 0 0 0 1 -3.96875
0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 0 3.9375
1 1 1 1 1 1 1 0 3.96875
2-5 2-4 2-3 2-2 2-1 20 21 -22
Poids
,
max min
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,3125 010.01011 = 2,3438
– Si on doit coder 2,33, l’erreur sera de 2-6 max.
+q = +2-k
000
Représentation des nombres
• Un format très classique :
Q15 sur 16 bits : réels entre -1 et 1
99997 . 0 1
, 2 , 2
2 15
14
0 15 0
15 + = − ≤ ≤
−
=
∑
=
− q x
b b
x
i i i
signe
2-15 2-1
±20
0 14
15
Exemple
0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1
0 1 2 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-1+0,5+2-4+2-5 = -0,40625
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 chiffres
fractionnaires significatifs en
décimal, quelle doit être le format Qk ?
000
53
Représentation des nombres
• Si l’on veut D chiffres fractionnaires significatifs en décimal, quel doit être le format Qk ?
• Il faut avoir soit :
Puis :
Ex : le format Q15 a une précision de 4 chiffres décimaux après la virgule
q ≤10−D D
k −
− ≤10
2
D ( ) D
k ≥ log
210 ≈ 3 . 3
000
Représentation des nombres
• Virgule flottante : mots de 32 bits sous forme mantisse-exposant
2
127).
, 1 .(
) 1
( −
−=
sf
ex ∑
=
= 7
0
2
i i
ei
e
∑
=
= 22 − 0
2 23 i
i
fi
f
partie fractionnaire de la mantisse exposant
signe
f0
…
… f22
e0 e7
s
0 22
23 30
31
0 0 0
…
… 0 1 1 1 1 1 0 0 0 0 0 0
0 22
23 30
31
+1,75.27-127 = 1,3165.10-36
000
55
Représentation des nombres
1500 dB 190 dB
Dynamique max.
Complexe Simple
Complexité hard
Faible Elevée
Complexité progr.
Elevée Faible
Consommation
Elevé Faible
Coût
Virgule flottante Virgule fixe
(95% des DSP)
000
56
Architecture des DSP
CPU
000
57
Structure interne du CPU
Bus de programme
Unités de génération d’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 données
000
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
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 bits
2N bits
000
60
Unité de calcul
• Lors de nombreux MAC successifs :
– Taille de l’accumulateur (2N bits) insuffisante
2 solutions :
– Accumulateur sur 2N + p bits Exemple : ADSP2181
2 registres 16 bits, résultat sur 32 bits Æ dans l’accu 40 bits
– Pre-Scaling : décalage avant l’accumulation
000
61
Unité de calcul
• TMS320c5x (TI)
000
Unité de calcul
• DSP56300 (Freescale)
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
i
i n x i a n
y
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étique saturée :
saturation overflow
Source images : [2]
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
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/logique Execute
Lecture ou écriture d’un opérande en mémoire de donnée Read/Write
Décodage de l’instruction Decode
Lecture de l’instruction en mémoire programme Fetch
000
67
Pipeline
Sans Pipeline
Avec pipeline
… 11 10 9 8 7 6 5 4 3 2 Cycle 1
C3 C3
C3 C2
C2 C3
C1 C2
C2 C1
C1
Execute
C1 Read/Write
Decode Fetch
Fin C1 Fin C2 Fin C3
… 11 10 9 8 7 6 5 4 3 2 1 Cycle
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 C6 C1
C1 C2
Execute
C1 Read/Write
C2 Decode
C3 Fetch
Fin C1
Fin C2Fin C3
000
68
Pipeline
• Différents types de pipelines
Séquentiel Pas de pipeline (ex: Motorola 56000)
Pipeline simple (plupart des DSP)
Double pipeline (ex: Pentium)
Superpipeliné Nombre d'étages plus élevé
(ex: TMS320C6000)
t t
t t
Source : [9]
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
Pipeline
• Pipeline présent dans quasiment tous les DSP
– Le nombre d’étages varie de 3 à 12 – Exemples :
7-12 TMS320 C62
10-11 TMS320 C55
6 TMS320 C54
3 DSP568xx
7 DSP563xx
3 SHARC
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èle
Source image : [9]
Mémoire Programme
Mémoire Données CPU
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
Unité de mémoire
• Architecture Harvard modifiée
– Bancs de mémoire
Mémoire Programme
Mémoire Données 1 CPU
Mémoire Données 2
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
cache d’instructions
Source image : [9]
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
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
000
79
Architecture générale
DSP56303 (Source : Freescale)
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 sur un DSP :programmation…
000
81
Performances des DSP
• Plan de cette partie :
– DSP hautes performances – Mesures de performances – Gamme de DSP
000
DSP hautes performances
Processeur unique
20 000lignes de code
Multiples processeurs
100 000lignes de code
Multiples processeurs + protocoles
+500 000lignes de code
Lecteur MP3
Robot familial
(Wakamaru, Mitsubishi)
Système VoIP pour traders
(IPC)
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
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
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]
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
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
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 »
000
91
Mesure de performance
• Mesure de la vitesse
Nombre de MAC que le DSP peut effectuer en une seconde.
Million Multiply and Accumulate Per 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 ?
30 625 / 1
8 , 20
n instructio d'1
Temps
ns instructio les
pour max Temps ns
instructio d'
Nombre
≈
=
=
M µs
000
93
Mesure de performance
300 1000
40 750 600 160 300 150 MHz
- na
1500 MS8101
- na
1500 ADS-BF533
>1000 na
4800 ADSP-TS201
1800 2400
600 TMS320 C67
- 40
40 TMS320 C24
8000 160 150 MIPS
- - - MFLOPS
8000 na 150 MMACS
TMS320 C6455 ADSP-2191 DSP56367
DSP
Analog Devices
Texas Instr
umentsFreescale
000
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
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)
000
97
Gamme de DSP
Road Map C60 (Texas Instruments)
000
Gamme de DSP
Road map BlackFin (Analog Devices)
000
99
Quelques DSP
16 Fixe 160
160 TMS320 C54
400 400 400 40 120 80/100 400 80/100
MMACS
16 Fixe 300
TMS320 C62
16 Fixe 120
DSP568xx
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èle Constructeur
TMS320 C24 ADSP-21XX SHARC
Texas Instruments
DSP563xx Freescale
Analog Devices
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 sur un DSP :programmation…
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
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,40 Haut de gamme : $30
pour 1000 unités achetées
000
103
Développement d’applications
• Exemple : implantation d’un filtre RIF sur un DSP virgule fixe
∑
−=
−
= 1
0
) ( ) ( )
(
N
i
i n x i a n
y
Gabarit du filtre Coefficients 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 de traitement d’une interruption Initialisation des
registres, tables d’interruption,
coefficients…
Attente (idle) Prog. principal
∑
−=
−
= 1
0
) ( ) ( )
(
N
i
i n x i a n
y
Retour au prog. principal