d.s.p digital signal processor · 53 n mécanisme qui permet plusieurs types de transfert de...
TRANSCRIPT
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 www.ti.com q www.freescale.com q www.analog.com q www.dspguide.com q www.dspguru.com q www.dsprelated.com q http://www.tde.lth.se/ugradcourses/DSPDesign/DSPDesign-eng.html q http://www.bdti.com/articles/evolution/sld001.htm
n Livres q Les DSP : Famille ADSP218X : Principe et Applications, Michel Pinard, Dunod q DSP : Les processeurs de traitement du signal. Famille 320C50, Geneviève
Baudoin, Ferial Virolleau, Dunod q The scientist and Engineer’s guide to digital signal processing. Steven W smith.
www.dspguide.com
4
Synoptique d’une application de TNS
caméra
microphone
capteurs
CAN CNA son
µP
Consignes
Numérique
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
Algorithmes types
n Corrélations : mesure de vraisemblance
n Convolutions : filtrage
n Filtres numériques q FIR : Réponse Impulsionnelle Finie q IIR : Réponse Impulsionnelle Infinie
n DFT: Transformé de Fourier discrète
n DCT :Transformé en Cosinus discret q MP3
n DWT : Transformé en Odelettes q JPEG2000
n Etc.
DWT
9
Corrélation
n Mesure la ressemblance de deux signaux q Utilisée dans les systèmes radar, sonar, etc.
n 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
FFT
FFT IFFT
x
h 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 2 accès mémoires aux données q 1 addition q 1 multiplication q 1 écriture mémoire pour le résultat
q 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
TFD
n TFD 4 points q Inversion des colonnes 2
et 3
n TFD q Sorties inversées
q Entrées inversées
Même sous-matrice Etage Butterfly
16
Classification
ASIC
Processeurs
Spécialisés
DSP
Généralistes
GPU Multi-coeurs
Circuits programmables
PLD
FPGA
Mémoires
19
Introduction
n DSP ont 30 ans q Introduits par Texas
Instrument en 1982 q TMS32010
n Evolutions q SIMD q Multi-coeurs q VLIW q 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 M bits pour la partie entière q P bits pour la partie fractionnaire
X = (bM−1bM−2b0,b−1b−2b− p+1)
25
29
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
Codage en virgule flottante
30
n .2 Formats (IEEE754) q Simple précision sur 32 bits. q Double précision 64 bits.
Codage en virgule flottante
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 1 multiplication : 70
cycles horloge q 1 addition : 10 cycles
horloge
⇒ FIR 50 coefficients ⇒ > 4000 cycles
n DSP q 1 Multiplication + 1
addition + accès mémoires : 1 voir <1 cycles horloge
⇒ FIR 50 coefficients ⇒ 50 cycles
35
36
n Benchmark des DSP de Analog Device
n Données constructeurs accessibles à : http://www.analog.com/processors/
Exemple
37
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. Architecture matérielle // 2. Mode d’adressage 3. DMA 4. Pipeline
Pourquoi un DSP est rapide ?
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 1982 : 390ns q 2012 : 0.23ns
39
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.
Architecture SIMD
n Virgule fixe 16 bits n SIMD : même instruction
simultanément.
n Instruction DSP sur 16 Bits n Instruction RISC sur 32 Bits.
n 2 Multiplieurs de 16 bits n 4 Additionneurs 8 Bits n 2 Additionneurs 40 Bits
n 750MHz / 1512 MMAC n Jusqu’à 3000MMAC n 0.15mW/MMAC
Blackfin
Mode d’adressage
n Objectifs : q Puissance d’un DSP dépend de ces modes
d’adressage
n Type d’adressage classique q Adressage immédiat q Adressage indirect q Adressage direct q Adressage pré & post-incrémentation q Adressage circulaire q Adressage Bit-reverse
Mode d’adressage
n Immédiat q Valeur spécifiée
n DM(R1, 74h) ou PM(R1, 32h) q Utilisé pour l’initialisation par exemple de registre
n Direct q Valeur spécifiée à une adresse mémoire
n DM(R1, 0x20045) ou PM(R1, 0x320001)
n 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 Adressage indirect avec spécification d’un registre de base (RB) et d’incrément (RI) n DM(RB, RI)
q Attention : n RB incrémenté avant ou après accès mémoire
q pré-incrémentation et post-incrémentation
46
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 Adressage modulo longueur du buffer
n Ressources (dépend du DSP) : q Registre d’index (RI)
n position courante dans le buffer q Registre d’incrément (RM)
n RI=RI+RM q Registre de base (RB)
n Adresse du début du buffer q Registre de longueur (RL)
n Taille du buffer circulaire
Adressage circulaire
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
52
Contrôleur�de DMA ProcesseurCodec
Conversion N/A
Echantillonnageet Conversion A/N
€
A(k)* X(n− k)k=0
N−1∑Signal
analogiqued’entrée
Signalanalogiquede sortie
X(n)
Y(n)
Direct Memory Access
3. Le DMA : Direct Memory Access
53
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 ).
Principe du DMA
n Certain paramètres ont besoin d’être définie avant de commencer le transfert DMA. Ces paramètres sont :
q Configuration n Décrit certain caractéristiques du transfert DMA comme la taille des
données, la direction du transfert……
q Start Address n Spécifie l’adresse a partir de laquelle le transfert DMA commencera.
q Count n Spécifie le nombre d’éléments que le contrôleur DMA transférera.
q Modify n Spécifie le pas d’incrémentation après le transfert de chaque
donnée.
54
DMA : paramètres
Conclusion
n Pourquoi un DSP est rapide ? q Architecture optimisée pour le traitement
n Plusieurs unités de calcul en // ó Archi SIMD n Modes d’adressages spécifiques n DMA
n Un DSP permet de réaliser un MAC dans un
temps <= à 1 cycle d’horloge.
55
Caractéristiques techniques n BF561
q Dual core à 600MHz n > 1.2 GMACs
q 328ko de mémoire intégrée / coeur
61
n Coeur q 2 MAC de 16 bits q 2 ALU de 40 bits q 4 ALU de 8 bits q Un registre à décalage de 40 bits
62
n Fréquence d’horloge du cœur : 600MHz. n Interface USB pour le déboguage n 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))
n Codeur audio AD1836 connecté au port série SPORT 0 (6 out / 4 in RCA)
n Décodeur vidéo ADV7183 connecté au port parallèle (3 in RCA) n Codeur vidéo ADV7171 connecté au port parallèle (3 out RCA) n Connecteur JTAG de 14-Pin pour l’émulation n 4 boutons poussoirs et 6 LED. n Interface d’extension.
Caractéristique carte développement
63
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.
Codec Audio AD1836
64
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.
Codec AD1836
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 FPGA q GPU
79
TNS sur FPGA
n Multiplieur HW enfouie dans un FPGA q « Cœur de DSP »
n Optimiser les performances des architectures de traitement // q IP FIR
Stratix III
Carte DSP Cyclone II
n Cyclone II q techno 90nm
n Analog IO
o One 12-bit, 125-million samples per second (MSPS) analog-to-digital (A/D) converter—TI ADS5520
o One 14-bit, 165-MSPS digital-to-analog (D/A) converter—TI DAC904
o VGA digital-to-analog converter (DAC)
o Stereo audio coder/decoder (CODEC), 96 KHz
GPU : Graphics Processing Unit
n Processeur graphique utilisée sur la carte pour l’affichage sur un moniteur
n Depuis peu utilisé pour le calcul
n Architecture massivement parallèle
83