D.S.P Digital Signal Processor

publicité
D.S.P
Digital Signal Processor
Olivier Romain
Professeur des Universités
[email protected]
http://olivieromain.free.fr
1
Objectif de ce cours
n 
Sensibiliser l’étudiant à l’architecture d’un
DSP
n 
Qu’elles sont les différences avec un
processeur généraliste
n 
Implémenter un algorithmes de traitement
audio en temps réel
2
Plan du cours
n 
Partie 1 : Quelles architectures pour le traitement du signal ?
q  Introduction aux DSP
n 
Partie 2 : Caractéristiques générales des DSP
q  Architectures conventionnelles, Format des données, Mode
d’adressage, DMA, Pipeline, etc.
n 
Partie 3 : Détails du DSP BF561
q  Plateforme Blackfin BF561
q  Visual DSP++
n 
Partie 4 : Alternatives au DSP
q  FPGA
q  GPU
3
Références
n 
Internet
q 
q 
q 
q 
q 
q 
q 
q 
n 
www.ti.com
www.freescale.com
www.analog.com
www.dspguide.com
www.dspguru.com
www.dsprelated.com
http://www.tde.lth.se/ugradcourses/DSPDesign/DSPDesign-eng.html
http://www.bdti.com/articles/evolution/sld001.htm
Livres
q 
q 
q 
Les DSP : Famille ADSP218X : Principe et Applications, Michel Pinard, Dunod
DSP : Les processeurs de traitement du signal. Famille 320C50, Geneviève
Baudoin, Ferial Virolleau, Dunod
The scientist and Engineer’s guide to digital signal processing. Steven W smith.
www.dspguide.com
4
Partie 1
Quelles architectures pour le
traitement numérique du
signal ?
5
Synoptique d’une application de TNS
caméra
Numérique
Consignes
microphone
son
CAN
µP
CNA
capteurs
Résultats
6
Contraintes d’une application de TNS
n 
Travaille à intervalles réguliers sur des
valeurs discrètes d’un signal continue
n 
2 types d’applications temps réels :
7
Paramètres d’une TNS
n 
Latence :
n 
Cadence :
8
Algorithmes types
n 
Corrélations : mesure de vraisemblance
n 
Convolutions : filtrage
n 
Filtres numériques
q 
q 
FIR : Réponse Impulsionnelle Finie
IIR : Réponse Impulsionnelle Infinie
n 
DFT: Transformé de Fourier discrète
n 
DCT :Transformé en Cosinus discret
q 
n 
DWT : Transformé en Odelettes
q 
n 
MP3
JPEG2000
DWT
Etc.
9
Corrélation
n 
Mesure la ressemblance de deux signaux
q 
n 
Utilisée dans les systèmes radar, sonar, etc.
Formulation mathématique
q 
Signal C représente la corrélation des signaux a et b
q 
Nécessite N*M multiplication-accumulation
10
Convolution
n 
Fonction mathématique utilisée en filtrage des données
n 
Élément filtrant ó noyau de convolution
n 
Formulation mathématique
n 
Convolution rapide
x
h
FFT
IFFT
FFT
y
11
Filtre FIR
n 
N échantillons les plus récents dans
une ligne à retards X(i)
q 
Filtre non-récursif
n 
Le nouvel échantillon fait avancé les
N-1 suivant
n 
La cellule de base correspond à une
addition-multiplication
q 
N+1 étapes au total
n 
Chaque étape :
q 
q 
q 
q 
q 
2 accès mémoires aux données
1 addition
1 multiplication
1 écriture mémoire pour le résultat
Objectif :
n 
Réaliser une étape/instruction
12
Filtre IIR
n 
Sortie dépend des échantillons
d’entrées et des valeurs des sorties
aux instants précédents pondérées.
q 
Filtre récursif
n 
N échantillons les plus récents dans
une ligne à retards x(i)
n 
N-1 échantillons les plus récents
dans une ligne à retards y(i)
13
Algorithmes types : Filtres FIR vs IIR
n 
FIR
n 
IIR
14
TFD
n 
TFD : Transformée
de Fourier Discrète
q 
n 
FFT d’un vecteur
numérique
TFD 4 points
15
TFD
Même sous-matrice
n 
TFD 4 points
q 
n 
Etage Butterfly
Inversion des colonnes 2
et 3
TFD
q 
Sorties inversées
q 
Entrées inversées
16
Estimation des besoins
n 
Ordre de grandeur des applications TNS
17
Quel processeur utiliser ?
18
Classification
ASIC
Processeurs
Spécialisés
DSP
Circuits programmables
Généralistes
GPU
Multi-coeurs
PLD
Mémoires
FPGA
19
Quel processeur pour le TNS ?
20
Quels processeurs pour le TNS ?
n 
Conclusion
21
Partie 2
Caractéristiques générales des
DSP
22
Introduction
n 
DSP ont 30 ans
q 
q 
n 
Introduits par Texas
Instrument en 1982
TMS32010
Evolutions
q 
q 
q 
q 
SIMD
Multi-coeurs
VLIW
Hétérogène
n 
Processeur Généraliste +
DSP
23
Types de DSP
n 
On peut classer les DSP en deux grandes
catégories / au format des données
DSP virgule fixe
•  Codage en virgule fixe
•  Données codées de 16 à 32 bits
•  MIPS
•  Exemple
•  DSP56000 (freescale)
•  Shark (Analog Device)
•  Blackfin (Analog Device)
•  TMS320C25
DSP virgule flottante
•  Codage en virgule flottante
•  Données au delà de 32 bits
•  Compatible IEEE754
•  MFLOPS
•  Exemple
•  TMS320C30
24
Codage en virgule fixe
n 
On utilise N bits (M+P) pour représenter les
nombres binaires non signés ou signés
(complément à 2)
q 
q 
M bits pour la partie entière
P bits pour la partie fractionnaire
X = (bM −1bM −2 b0 , b−1b−2 b− p+1 )
25
Codage en virgule fixe
26
Exemple
27
Format 16 bits
28
Codage en virgule flottante
n 
Sur N bits, les nombres x est représenté par une mantisse M et un
exposant E.
n 
Si m est le nombre de bit de la matisse et e le nombre de bit de
l’exposant alors :
n 
La mantisse m est un nombre compris entre [0,1[, premier chiffre
après la virgule
n 
Exemple : 2135,65798 = + 0,213565798e4
29
Codage en virgule flottante
n 
.2 Formats (IEEE754)
q 
q 
Simple précision sur 32 bits.
Double précision 64 bits.
30
Codage en virgule flottante
n 
Virgule fixe (>90% des ventes des
DSP)
n 
Virgule flottante
31
Exemple de DSP existants
32
Pourquoi un DSP est rapide ?
1. 
2. 
Architecture des DSP
Mode d’adressage
33
Quel est le problème ?
n 
On veut réaliser un filtrage passe-bas par un
filtre FIR de 50 coefficients
q 
Le calcul de la sortie nécessite 50 MACs
34
Quel est le problème ?
n 
General Processor
q 
q 
⇒ 
1 multiplication : 70
cycles horloge
1 addition : 10 cycles
horloge
FIR 50 coefficients
⇒ 
n 
> 4000 cycles
DSP
q 
⇒ 
1 Multiplication + 1
addition + accès
mémoires : 1 voir <1
cycles horloge
FIR 50 coefficients
⇒ 
50 cycles
35
Exemple
n 
Benchmark des
DSP de Analog
Device
n 
Données
constructeurs
accessibles à :
http://
www.analog.com/
processors/
36
Pourquoi un DSP est rapide ?
n 
Quelles sont les caractéristiques d’un DSP qui
permettent de réaliser un traitement le plus
rapidement possible ( >=1MAC par cycle ) ?.
n 
4 facteurs :
1. 
2. 
3. 
4. 
Architecture matérielle //
Mode d’adressage
DMA
Pipeline
37
1. Architectures
38
Architecture Harvard : TMS32010
n 
Virgule fixe 16 bits
n 
Instructions et mémoires
séparées
n 
1 MAC en 1 cycle horloge
n 
Temps d’un MAC
q 
q 
1982 : 390ns
2012 : 0.23ns
39
Architecture SHARC : Analog Device
Instructions Données
SHARC
Super HARvard Computing
Architecture SIMD
n 
SIMD : Single Instruction
Multi Data Stream
n 
Opérations parallèles sur
différentes largeurs de
chemins de données (16 bit,
8 bit, ...).
q  Split unités d'exécution.
q  Unités d'exécution
multiples.
Blackfin
n 
n 
n 
n 
n 
n 
n 
n 
n 
n 
Virgule fixe 16 bits
SIMD : même instruction
simultanément.
Instruction DSP sur 16 Bits
Instruction RISC sur 32 Bits.
2 Multiplieurs de 16 bits
4 Additionneurs 8 Bits
2 Additionneurs 40 Bits
750MHz / 1512 MMAC
Jusqu’à 3000MMAC
0.15mW/MMAC
2. Modes d’adressage
43
Mode d’adressage
n 
Objectifs :
q 
n 
Puissance d’un DSP dépend de ces modes
d’adressage
Type d’adressage classique
q 
q 
q 
q 
q 
q 
Adressage immédiat
Adressage indirect
Adressage direct
Adressage pré & post-incrémentation
Adressage circulaire
Adressage Bit-reverse
Mode d’adressage
n 
Immédiat
q 
q 
n 
Direct
q 
n 
Valeur spécifiée
n  DM(R1, 74h) ou PM(R1, 32h)
Utilisé pour l’initialisation par exemple de registre
Valeur spécifiée à une adresse mémoire
n  DM(R1, 0x20045) ou PM(R1, 0x320001)
Indirect
q 
A une adresse mémoire spécifiée ó adresse mémoire de
l’instruction ou de l’opérande
n  DM(R1, R3 ) à l’adresse de R3 ó adresse cherchée
45
Mode d’adressage
n 
Pré & Post-incrémentation
q 
q 
Adressage indirect avec spécification d’un registre
de base (RB) et d’incrément (RI)
n  DM(RB, RI)
Attention :
n 
RB incrémenté avant ou après accès mémoire
q 
pré-incrémentation et post-incrémentation
46
Adressage circulaire
n 
But :
q 
Ne conserver que les n dernières
valeurs des entrées, ou d'un calcul
précèdent, comme dans une FIFO
sans gestion explicite de la mémoire.
n 
Moyen :
q 
n 
Adressage modulo longueur du buffer
Ressources (dépend du DSP) :
q 
Registre d’index (RI)
n 
q 
Registre d’incrément (RM)
n 
q 
RI=RI+RM
Registre de base (RB)
n 
q 
position courante dans le buffer
Adresse du début du buffer
Registre de longueur (RL)
n 
Taille du buffer circulaire
Adressage circulaire : exemple
48
Exercice
49
Adressage de type bit reverse
n 
Adressage avec inversion de l'ordre des bits
q 
Pour faire des calculs comme la FFT, on peut avoir
besoin de manipuler directement certains bits des
adresses.
Adressage bit reverse
n 
Transformée de Fourrier Discrète de taille 4
q 
Algorithme dit du Papillon óButterfly
51
3. Le DMA : Direct Memory Access
Signal
analogique
d’entrée
N −1
Echantillonnage
et Conversion A/N
X(n)
Contrôleur
de DMA
Codec
Signal
analogique
de sortie
Conversion N/A
∑ A(k)* X (n − k )
k=0
Processeur
Y(n)
Direct Memory Access
52
Principe du DMA
n 
Mécanisme qui permet plusieurs types de transfert de
données sans passer par le processeur permettant ainsi
une accélération assez importante des performances.
n 
Le transfert de données peut être :
q  Entre la mémoire et la mémoire (MDMA).
q  Entre la mémoire et le SPI (Serial Peripheral Interface).
q  Entre la mémoire et le port série (SPORT).
q  Entre la mémoire et le port UART.
q  Entre la mémoire et le PPI. (Parallel Peripheral
Interface ).
53
DMA : paramètres
n 
Certain paramètres ont besoin d’être définie avant de commencer le
transfert DMA. Ces paramètres sont :
q 
q 
q 
q 
Configuration
n  Décrit certain caractéristiques du transfert DMA comme la taille des
données, la direction du transfert……
Start Address
n  Spécifie l’adresse a partir de laquelle le transfert DMA commencera.
Count
n  Spécifie le nombre d’éléments que le contrôleur DMA transférera.
Modify
n  Spécifie le pas d’incrémentation après le transfert de chaque
donnée.
54
Conclusion
n 
Pourquoi un DSP est rapide ?
q 
Architecture optimisée pour le traitement
n 
n 
n 
n 
Plusieurs unités de calcul en // ó Archi SIMD
Modes d’adressages spécifiques
DMA
Un DSP permet de réaliser un MAC dans un
temps <= à 1 cycle d’horloge.
55
Partie 3
Carte Blackfin 561
1. 
2. 
Détails de la carte de développement
Environnement logiciel
56
1. Famille Blackfin
n 
Analog Device
q 
Depuis 2001 : BF535
57
ADSP BF561
58
ADSP BF561
DSP BF561
Processor
59
Schéma fonctionnel du BF561
60
Caractéristiques techniques
n 
BF561
q 
Dual core à 600MHz
n 
q 
> 1.2 GMACs
328ko de mémoire intégrée /
coeur
n 
Coeur
q 
q 
q 
q 
2 MAC de 16 bits
2 ALU de 40 bits
4 ALU de 8 bits
Un registre à décalage de 40 bits
61
Caractéristique carte développement
n 
n 
n 
n 
n 
n 
n 
n 
n 
Fréquence d’horloge du cœur : 600MHz.
Interface USB pour le déboguage
Mémoire
q  32 MB de SDRAM (16M x 16 bits)
q  2 MB de mémoire Flash (2 block de (512k x 16 bits))
Codeur audio AD1836 connecté au port série SPORT 0 (6 out / 4
in RCA)
Décodeur vidéo ADV7183 connecté au port parallèle (3 in RCA)
Codeur vidéo ADV7171 connecté au port parallèle (3 out RCA)
Connecteur JTAG de 14-Pin pour l’émulation
4 boutons poussoirs et 6 LED.
Interface d’extension.
62
Codec Audio AD1836
n 
Le codec AD1836 permet d’acquérir des signaux audio
sur deux entrées analogiques (canaux stéréo 0 et 1)
indépendantes à une fréquence d’échantillonnage fixe de
96kHZ. Il permet aussi de restituer à partir de données
numériques des signaux analogiques sur trois canaux de
sortie indépendant.
63
Codec AD1836
n 
L’interface série SPORT0 du DSP permet d’envoyer et
de recevoir les données respectivement en entrées ou
en sorties du CODEC.
n 
Le port série (SPI) est connecté au codec audio
AD1836. La connexion SPI est utilisé pour accéder au
registres de contrôle du codec audio.
64
2. Environnement de
développement
VISUAL DSP++ 4.5
65
66
67
68
69
70
71
72
73
74
75
76
Application au TP
Aiguës
Filtres FIR
Lecteur
MP3
Médium
CODEC
son
AD1836
DSP
CODEC
AD1836
Grave
77
Partie 4
Alternative aux DSP
78
Introduction
n 
Le traitement numérique du signal était à
l’origine réalisée sur des architectures de
type DSP
n 
Actuellement, il existe 2 grands concurrents :
q 
q 
FPGA
GPU
79
TNS sur FPGA
n 
Multiplieur HW enfouie dans
un FPGA
q 
n 
« Cœur de DSP »
Optimiser les performances
des architectures de
traitement //
q 
IP FIR
Stratix III
Carte DSP Cyclone II
n 
Cyclone II
q 
n 
techno 90nm
Analog IO
o 
o 
o 
o 
One 12-bit, 125-million samples per
second (MSPS) analog-to-digital (A/
D) converter—TI ADS5520
One 14-bit, 165-MSPS digital-toanalog (D/A) converter—TI DAC904
VGA digital-to-analog converter
(DAC)
Stereo audio coder/decoder
(CODEC), 96 KHz
Prototypage de filtre sous Simulink / Matlab
GPU : Graphics Processing Unit
n 
n 
n 
Processeur graphique
utilisée sur la carte
pour l’affichage sur un
moniteur
Depuis peu utilisé
pour le calcul
Architecture
massivement parallèle
83
Exemple : architecture tuile de calcul
Processeur
84
Fin du cours
85
Téléchargement