Vous êtes sur la page 1sur 68

2006-2007

Les processeurs de
traitement du signal

Caroline Petitjean
Caroline.Petitjean@univ-rouen.fr

DSP : Digital Signal


Processor 000
• Produits utilisant des DSP:
Lecteur codes barres
CCD ScanPLus 1800 SR Interscan

Amplificateur home
cinéma Denon AVR3806 Téléphone portable
Ericsson R600

Autoradio MP3
KD-SHX851 JVC

Console de mixage Allen&Heath


2

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

Applications des DSP


000
• Médical • Automatisation
– Equipements de – Commande de
monitoring (EEG, machines
ECG) – Contrôle de moteurs
– Imagerie (IRM…) – Robots

• 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

Source : EETimes.com, 2004


5

Plan de l’exposé
000

• 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…
6

3
Plan de l’exposé
000

• 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…
7

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

• Chaîne classique de traitement


numérique du signal :
Signal
analogique Mémoire
d’entrée

Filtre anti CAN ? Filtre de


CNA
repliement reconstruction

Signal
Ports d’E/S analogique
de sortie
numérique
9

Solutions pour le TNS


000
• Classification des processeurs

ASIC
ASSP
FPGA

ASIC : Application Specific Integrated Circuit


ASSP : Application Specific Standard Product
Source : d’après [1] FPGA : Field Programmable Gate Array 10

5
Classification des processeurs
000
• 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
11

Classification des processeurs


000
• 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


12

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

• Ne sont pas programmables

• Mise en œuvre complexe et longue

• Coût élevé

• FPGA : sorte de ASIC programmable


13

Classification des processeurs


000
• 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
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

• Contrainte de temps réel


• Ex : taux d’échantillonnage 48kHz
Te = 20.833 µs
Arrivée de Arrivée de
l’échantillon x(n) l’échantillon x(n+1)
t
t t+Te

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

Les DSP ont une architecture


matérielle et logicielle dédiée
permettant de répondre à ces besoins
17

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

Spécificités des DSP


000
Opérations les Contraintes
imposent
+ courantes matérielles sur
dans les algos l’architecture
de TNS DSP

• Plan de cette partie :


– 2 algorithmes classiques de TNS :
• Filtre à Réponse Impulsionnelle Finie
(RIF)
• Transformée de Fourier rapide (FFT)

Spécificités des DSP


26

13
Spécificités des DSP
000

• Algo n°1 : Filtre RIF

N −1
Une équation aux différences finies y (n) = a (i ) x(n − i )

spécifie la sortie y(n) i =0

27

Spécificités des DSP


000
N −1
y (n) = ∑ a (i ) x(n − i)
• Pour chaque cellule a(i)x(n-i) : i =0

– 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
28

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

Spécificités des DSP


000

• Objectifs :
– Réduire les accès mémoire
– Augmenter les accès mémoire simultanés

Architecture Architecture
Von Neuman Harvard
(microcontrôleur) (DSP)

Source images : [1]

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

Spécificités des DSP


000
• Buffer linéaire
nouvel échantillon
x(n) y(n)
Xtab(t-1) Xtab(t)
0 x(n-1) 0 x(n) a0
déc
alag
1 x(n-2) e1 x(n-1) a1 N −1

… 2 x(n-2) a2 y (n) = ∑ a (i ) x(n − i )


i =0
… … …
… … …
… … …
N-2 x(n-N+1) N-2 x(n-N+2) aN-2
N-1 x(n-N) N-1 x(n-N+1) aN-1
x(n-N)

source image : [9]


Mise à jour du buffer Calcul de y(n) 32

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 … …

x(n-N+1) x(n-N+1) aN-1 N −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

Mise à jour du buffer Calcul de y(n) source image : [9]


33

Spécificités des DSP


000

• Algo n°2 : FFT (Fast Fourier Transform)


sur N points N −1 − 2πj
in
y (n) = ∑ x(i )e N
pour 0 ≤ n ≤ N − 1
i =0

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

• Algo n°2 : FFT par Cooley-Tukey


x0 y0

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

Besoin d’accéder aux x5 y5

échantillons dans
cet ordre x3 y6

x7 y7
Source : [5]
35

Spécificités des DSP


000
Ordre naturel Ordre pour la FFT
• Mode des échantillons Cooley-Tuckey
d’adressage 0 000 000 0
spécifique : 1 001 100 4
“Bit reverse” 2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7
36

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

• Architecture des DSP : CPU, mémoire…

• Performances des DSP : augmentation,


mesure de performances, gamme de DSP…

• Développement d’applications sur


un DSP : programmation…
38

19
Architecture des DSP
000

• Plan de cette partie :

– Représentation des nombres


Æ Unité de calcul
– CPU Æ Unité de commande (pipeline)
Æ Unité de génération d’adresses

– Unité de mémoire

– Périphériques

39

Représentation des nombres


000

• Les valeurs traitées (coefficients, échantillons…)


sont représentées sous 2 formes :
Virgule fixe Virgule flottante
• Format courant : 16/24 bits

• Idéal avec CAN/CNA 12/14 bits

• Applications : Contrôle industriel,


communications, instrumentation,
parole, médical, militaire…

40

20
Représentation des nombres
000

• 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…

41

Représentation des nombres


000

• Virgule fixe : Complément à 2 (C2)


Nombre Codage
N −1
2 −1 3 0 1 1
2 0 1 0
Nombre positif :
1 0 0 1 codé comme un
0 0 0 0 binaire naturel
-1 1 1 1
-2 1 1 0 Nombre négatif :
-3 1 0 1 Inversion des
− 2 N −1 -4 1 0 0 bits puis ajout
de 1
Signe

Le codage C2 convient bien aux opérations maths.


42

21
Représentation des nombres
000

• Virgule fixe : Complément à 2


• Représentation “circulaire”
– En ajoutant 1 à la plus grande valeur
positive on obtient la valeur négative
extrême 0
-1 1
111 000 001
– Ex sur 3 bits :
-2 110 010 2

101 011 3
100
-3
-4
43

Représentation des nombres


000

• Virgule fixe : Codage des entiers


6
Exemple sur 8 bits x = −b7 27 + ∑ bi 2i − 27 ≤ x ≤ 27 − 1
i =0

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

• Virgule fixe : Codage des réels


Æ Format Qk

Ex : 2,3125
Partie entière Partie fractionnaire
sur N-k bits en C2 sur k bits

• Cas particulier : k = 0 Æ entiers

45

Représentation des nombres


000

• Virgule fixe : Codage des réels


Æ Format Qk
– Pour coder le réel x, trouver les bi tels que :
n − k −1
x = −bn 2 n−k
+ ∑b
i=− k
i+k 2i

– Ex : format Q5 sur 8 bits (n=8, k=5)


Partie entière : 3 bits / fractionnaire : 5 bits
Poids -22 21 20 2-1 2-2 2-3 2-4 2-5
2,3125 0 1 0 0 1 0 1 0
46

23
Représentation des nombres
000

• Virgule fixe : Codage des réels


Æ Format Qk
– Correspond à la représentation C2 de
l'entier y tel que : k
y = round(2 x)

– 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

Représentation des nombres


000

• Exemple : Format Q5 sur 8 bits

– Dynamique : -2N-k-1 … 2N-k-1-2-k


Poids -22 21 20 ,2 -1 2-2 2-3 2-4 2-5
min -4 1 0 0 0 0 0 0 0
-3.96875 1 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0
3.9375 0 1 1 1 1 1 1 0
max 3.96875 0 1 1 1 1 1 1 1
48

24
Représentation des nombres
000

• Exemple : Format Q5 sur 8 bits


– Précision : q = 2-k
– Erreur maximale : q/2 = 2-(k+1)

– Ex : 010.01010 = 2,3125
+q = +2-k
010.01011 = 2,3438

– Si on doit coder 2,33, l’erreur sera de 2-6


max.

49

Représentation des nombres


000

• Un format très classique :


Q15 sur 16 bits : réels entre -1 et 1
14
x = −b15 20 + ∑ bi 2i −15 , q = 215 , − 1 ≤ x ≤ 0.99997
15 14 i =0 0
±20 2-1 2-15

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

• Ecrire le mot binaire 8 bits signé


au format Q7 :
• +0.5
• +1.0
• -1.0
• +1/3
• -1/3

51

Représentation des nombres


000

• Si l’on veut D chiffres


fractionnaires significatifs en
décimal, quelle doit être le format
Qk ?

52

26
Représentation des nombres
000

• Si l’on veut D chiffres fractionnaires


significatifs en décimal, quel doit être le
format Qk ?
−D
• Il faut avoir q ≤ 10
soit : 2− k ≤ 10 − D
Puis :
k ≥ D log 2 (10) ≈ 3.3D

Ex : le format Q15 a une précision de 4 chiffres


décimaux après la virgule
53

Représentation des nombres


000

• Virgule flottante : mots de 32 bits


sous forme mantisse-exposant

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

signe exposant partie fractionnaire de la mantisse


31 30 23 22 0
0 0 0 0 0 0 1 1 1 1 1 0 … … 0 0 0

+1,75.27-127 = 1,3165.10-36
54

27
Représentation des nombres
000

Virgule fixe Virgule


(95% des DSP) flottante
Complexité hard Simple Complexe
Coût Faible Elevé
Consommation Faible Elevée
Dynamique max. 190 dB 1500 dB
Complexité progr. Elevée Faible

55

Architecture des DSP


000

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

• 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

60

30
Unité de calcul
000

• TMS320c5x
(TI)

61

Unité de calcul
000

• DSP56300
(Freescale)

62

31
Unité de calcul
000

Exo : Soit un filtre RIF à calculer.


N −1
y (n) = ∑ a (i ) x( n − i )
i =0

• coefficients a sur B = 16 bits


• é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 ?
63

Unité de calcul
000

• 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 !

overflow

– Les DSP utilisent une arithmétique


saturée :
saturation

Source images : [2] 64

32
Unité de commande
000

• 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
65

Pipeline
000

• Principe : découper une opération


en tâches élémentaires à effectuer
en parallèle
• Ex : pipeline à 4 étages
Fetch Lecture de l’instruction en mémoire programme
Decode Décodage de l’instruction
Read/Write Lecture ou écriture d’un opérande en mémoire de donnée
Execute Exécution éventuelle d’une opération arithmétique/logique

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 C2 Fin C3


Cycle 1 2 3 4 5 6 7 8 9 10 11 …
Avec
Fetch C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11
pipeline
Decode C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 …
Read/Write C1 C2 C3 C4 C5 C6 C7 C8 C9 …
Execute C1 C2 C3 C4 C5 C6 C7 C8 …

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

• 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
69

Pipeline
000

• Pipeline présent dans quasiment


tous les DSP
– Le nombre d’étages varie de 3 à 12
– Exemples :
SHARC 3
DSP563xx 7
DSP568xx 3
TMS320 C54 6
TMS320 C55 10-11
TMS320 C62 7-12
70

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

– 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]
72

36
Unité de mémoire
000

• Architecture Harvard modifiée


Mémoire Programme
+ Données
CPU

Mémoire Données

– 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]
73

Unité de mémoire
000

• Architecture Harvard modifiée


Mémoire Programme

CPU Mémoire Données 1

Mémoire Données 2

– Bancs de mémoire

Source image : [9] 74

37
Unité de mémoire
000
• 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 75

Unité de mémoire
000

• Canaux DMA : Direct Memory Access


• Réduction des accès mémoire
• Adressages spécifiques (circulaire)
• Mémoire cache programme

cache Mémoire Programme


d’instructions + Données

CPU
Mémoire Données

Source image : [9] 76

38
Unité de mémoire
000

• 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 77

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

• Architecture des DSP : CPU, mémoire…

• Performances des DSP : augmentation,


mesure de performances, gamme de DSP…

• Développement d’applications sur


un DSP : programmation…
80

40
Performances des DSP
000

• Plan de cette partie :


– DSP hautes performances
– Mesures de performances
– Gamme de DSP

81

DSP hautes performances


000
Robot familial Système VoIP
(Wakamaru, pour traders
Lecteur MP3 Mitsubishi) (IPC)

Processeur Multiples Multiples


unique processeurs processeurs +
20 000 lignes de 100 000 lignes de protocoles
code code +500 000 lignes de code

Source : d’après [7]


82

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

DSP hautes performances


000

• On vient de voir l’architecture de base


des DSP

Comment augmenter les performances ?


Plusieurs solutions :
Diminuer la Augmenter le travail
durée d’un réalisé au cours d’un
cycle d’horloge cycle d’horloge
84

42
DSP hautes performances
000

• 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

85

DSP hautes performances


000

• Augmentation du travail effectué


pendant un cycle : parallélisme

Plus d’opérations dans 1 instruction

– SIMD
(Single Instruction,
Multiple Data)

Source : [8]
86

43
DSP hautes performances
000

• 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

87

DSP hautes performances


000

• 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

88

44
DSP hautes performances
000

• Augmentation du travail effectué


pendant un cycle : parallélisme

Plus d’instructions dans 1 cycle d’horloge

– Superscalaire
– VLIW
– Approches hybrides SIMD/VLIW

89

DSP hautes performances


000

• Augmentation du nombre de cœurs


DSP en parallèle (multi-core):

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

• 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 ?
Temps max pour les instructions
Nombre d' instructions =
Temps d'1 instruction
20,8µs
= ≈ 625
1 / 30M 92

46
Mesure de performance
000

DSP MHz MMACS MIPS MFLOPS


Freescale

DSP56367 150 150 150 -


MS8101 300 1500 na -
ADSP-2191 160 na 160 -
Devices
Analog

ADSP-TS201 600 4800 na >1000


ADS-BF533 750 1500 na -
Instruments

TMS320 C24 40 40 40 -
TMS320 C6455 1000 8000 8000 -
Texas

TMS320 C67 300 600 2400 1800

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)

Très grande puissance :


8000 MIPS (imagerie,
vidéo…)

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)

Analog ADSP-21XX 80/160 80/100 Fixe 16


Devices SHARC 200 400 Flottante 32/40

DSP563xx 80/100 80/100 Fixe 24


Freescale
DSP568xx 120 120 Fixe 16

TMS320 C24 40 40 Fixe 16

TMS320 C54 160 160 Fixe 16


Texas
Instruments TMS320 C55 200 400 Fixe 16

TMS320 C62 300 400 Fixe 16


TMS320 C67 300 400 Flottante 32

99

Plan de l’exposé
000

• 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…
100

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

• Exemple : implantation d’un filtre RIF


sur un DSP virgule fixe

• Choix du DSP en fonction de


l’application :
– Choix de la famille Audio Æ C54x chez TI
– Choix des caractéristiques
• Quantité de RAM/ROM
• Vitesse d’horloge
pour 1000
• Prix d’un DSP Bas de gamme : $5,40 unités
Haut de gamme : $30 achetées
102

51
Développement d’applications
000

• Exemple : implantation d’un filtre


RIF sur un DSP virgule fixe

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

• Ecriture du programme (C, assembleur)

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

Retour au prog. principal


104

52
Développement d’applications
000

• Test du programme :

– Simulateurs

– Carte d’évaluation
(Starter Kits chez TI)

– Emulateurs source : ti.com

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

• Les instructions sont codées sur une


ligne incluant une étiquette (optionnelle)

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

• Modes d’adressage classiques


Adressage Où se trouve la donnée ? Exemple

Immédiat Dans l’instruction MOV R1, 17

En mémoire à l’adresse spécifiée


Direct MOV R1, M(238)
dans l’instruction
En mémoire à l’adresse spécifiée
Indirect MOV R1, M(R2)
dans un registre (pointeur)
En mémoire à l’adresse résultat
Indexé MOV R1, M(R2+R3)
de la somme de 2 registres

109

Modes d’adressage
000

• 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

110

55
La R&D sur les DSP en France
000

• Texas Instruments : Villeneuve-Loubet (06)


• Freescale : Toulouse, Crolles (38)
• ST Microelectronics : Crolles, Rousset (13)
• ARM : Sophia-Antipolis
• Atmel : Rousset, Grenoble
• Infineon : Sophia-Antipolis

111

Annexe
000

Présentation
des TP sur les DSP

112

56
TP sur les DSP
000

• 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
113

Le DSP Starter Kit C5416


000
source : "TMS320VC5416 DSK Reference Technical", Spectrum Digital

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

Bus externe Program/Data Buses


Timer
A(23-0)
MAC ALU DMA Muxed GP I/O
17 x 17 MPY 40-Bit ALU Ch 0
CMPS Operator 8/16-bit Host Port
40-Bit Adder

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

• Principe de tous les effets audio :


ajout au signal d’une version
décalée de lui-même

delay
chorus
flanger
reverb
116

58
Effets audio : delay
000

• Delay = retard simple


• 1ère possibilité : y(n) = x(n)+ a.x(n-D)

Filtre RIF

• Selon la valeur de D
– Entre 50 et 100 ms : effet d’ambiance
– >100 ms : écho
117

Effets audio : delay


000

• RIF : y(n) = x(n)+ a.x(n-D)


• Fonction de transfert :
H ( z ) = 1 + az − D
Filtre en peigne (comb filter)
source : [11]

118

59
Effets audio : delay
000

• 2ème possibilité : y(n) = x(n)+ a.y(n-D)

Filtre RII

revient à ajouter
un retour
(feedback)

119

Effets audio : delay


000

• RII : y(n) = x(n)+ a.y(n-D)


• Fonction de transfert : 1
H ( z) =
1 + az − D

source : [11] 120

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

Effets audio : chorus


000

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

LFO : Low
frequency
oscillator
(ex : 3 Hz)
• D varie de 20 à 30 ms
122

61
Chorus : exemples
000

• Son 1 : guitare sans, avec


• Son 2 : 1 note avec différentes
formes pour le LFO :

123

Effets audio : flanger


000

• Principe : bruit de réacteur d’avion


ou métallique, effet circulaire
• Similaire à chorus mais :
– Feedback possible
– D = 1 à 20 ms Æ pas d’effet d’écho
mais filtre

124

62
Effets audio : flanger
000

• D plus petit que pour le chorus

D1
D1< D2

125

Flanger : exemples
000

• 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

126

63
Effets audio : reverb
000

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

127

Effets audio : reverb


000

• Principe : prise en compte du volume


de la pièce

128

64
Effets audio : reverb
000

• Structure du réverbérateur de
Schroëder

129

Reverb : exemples
000

• Son1 : voix chantée sans , avec


• Son2 : guitare sans, avec
• Son3 : reverse reverb (50ms, 150 ms)

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)

Chorus RIF : yn = xn+axn-D(n) Variable (20 à 30ms)

Simultanéité de +ieurs instruments id.


RIF : yn = xn+axn-D(n)
Variable (1 à 20ms)
Flanger RII : yn = xn+ayn-D(n)
Réacteur d’avion, effet circulaire 131

Quelques références
000
• F. Virolleau, G. Baudoin. DSP Les
processeurs de traitement du signal -
Famille TMS320C5x. Dunod, 1996.

• G. Baudoin, F. Virolleau. Les DSP


Famille TMS320C54x – Développement
d’applications. Dunod, 2000.

• P. Lapsley, J. Bier, A. Shoham, E. Lee.


DSP Processor Fundamentals,
Architectures and Features, IEEE Press,
1997.
132

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

Vous aimerez peut-être aussi