Vous êtes sur la page 1sur 85

D.S.

P
DigitalSignalProcessor

Olivier Romain
Professeur des Universités
olivier.romain@u-cergy.fr
http://olivieromain.free.fr 1
Objectif de ce
cours
 Sensibiliser l’étudiant à l’architecture d’un
DSP

 Qu’elles sont les différences avec un


processeur généraliste

 Implémenter un algorithmes de traitement


audio en temps réel

2
Plan du
cours
 Partie 1 : Quelles architectures pour le traitement du signal ?
 Introduction aux DSP

 Partie 2 : Caractéristiques générales des DSP


 Architectures conventionnelles, Format des données, Mode
d’adressage, DMA, Pipeline, etc.

 Partie 3 : Détails du DSP BF561


 Plateforme Blackfin BF561

 Visual DSP++

 Partie 4 : Alternatives au DSP


 FPGA

 GPU

3
Références
 Internet
 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
 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
Synoptiqued’une application de
TNS
caméra

Numérique
Consignes

microphone

CAN µP CNA
son

capteurs
Résultats

6
Contraintes d’une application de
TNS
Travaille à intervalles réguliers sur des
valeurs discrètes d’un signal continue

 2 types d’applications temps réels :

7
Paramètres d’une
TNS
Latence :

 Cadence :

8
Algorithmes
types
 Corrélations : mesure de vraisemblance

 Convolutions : filtrage

 Filtres numériques
 FIR : Réponse Impulsionnelle Finie
 IIR : Réponse Impulsionnelle Infinie

 DFT: Transformé de Fourier discrète

 DCT :Transformé en Cosinus discret


 MP3

 DWT : Transformé en Odelettes DWT


 JPEG2000

 Etc.

9
Corrélation
 Mesure la ressemblance de deux signaux
 Utilisée dans les systèmes radar, sonar, etc.

 Formulation mathématique
 Signal C représente la corrélation des signaux a et
b

 Nécessite N*M multiplication-accumulation

10
Convolution
 Fonction mathématique utilisée en filtrage des données

 Élément filtrant  noyau de convolution

 Formulation mathématique

 Convolution rapide

x FFT
IFFT y
h FFT 11
Filtre
FIR
 N échantillons les plus récents dans
une ligne à retards X(i)
 Filtre non-récursif

 Le nouvel échantillon fait avancé les


N-1 suivant

 La cellule de base correspond à une


addition-multiplication
 N+1 étapes au total
 Chaque étape :
 2 accès mémoires aux données
 1 addition
 1 multiplication
 1 écriture mémoire pour le résultat
 Objectif :
 Réaliser une étape/instruction

12
Filtre IIR
 Sortie dépend des échantillons
d’entrées et des valeurs des sorties
aux instants précédents pondérées.
 Filtre récursif

 N échantillons les plus récents dans


une ligne à retards x(i)

 N-1 échantillons les plus récents


dans une ligne à retards y(i)

13
Algorithmes types : Filtres FIRvs
IIR
 FIR  IIR

14
TFD

 TFD : Transformée
de Fourier Discrète
 FFT d’un vecteur
numérique

 TFD 4 points

15
TFD
Même sous-matrice
 TFD 4 points Etage Butterfly
 Inversion des colonnes 2
et 3

 TFD
 Sorties inversées

 Entrées inversées

16
Estimation des
besoins
 Ordre de grandeur des applications TNS

17
Quel processeur utiliser
?

18
Classification
ASIC

Processeurs Circuits programmables

Spécialisés Généralistes PLD Mémoires

DSP GPU Multi-coeurs FPGA

19
Quel processeur pour le TNS
?

20
Quels processeurs pour le TNS
?
 Conclusion

21
Partie
2
Caractéristiques générales
des DSP

22
Introduction
 DSP ont 30 ans
 Introduits par Texas
Instrument en 1982
 TMS32010

 Evolutions
 SIMD
 Multi-coeurs
 VLIW
 Hétérogène
 Processeur Généraliste +
DSP

23
Types de DSP

 On peut classer les DSP en deux grandes


catégories / au format des données

DSP virgule fixe DSP virgule



flottante •
Codage en virgule fixe Codage en virgule flottante
• Données codées de 16 à 32 bits • Données au delà de 32 bits
• MIPS • Compatible IEEE754
• Exemple • MFLOPS
• DSP56000 (freescale) • Exemple
• Shark (Analog Device) • TMS320C30
• Blackfin (Analog Device)
• TMS320C25

24
Codage en virgule
fixe
On utilise N bits (M+P) pour représenter les
nombres binaires non signés ou signés
(complément à 2)
 M bits pour la partie entière
 P bits pour la partie fractionnaire

X  (bM 1b M 2  b 0 , b 1b 2

 b  p1 )

25
Codage en virgule
fixe

26
Exemple

27
Format 16
bits

28
Codage en virgule

flottante
Sur N bits, les nombres x est représenté par une mantisse M et
un exposant E.

 Si m est le nombre de bit de la matisse et e le nombre de bit de


l’exposant alors :

 La mantisse m est un nombre compris entre [0,1[, premier chiffre


après la virgule

 Exemple : 2135,65798 = + 0,213565798e4

29
Codage en virgule
flottante
 .2 Formats (IEEE754)
 Simple précision sur 32 bits.
 Double précision 64 bits.

30
Codage en virgule
flottante
 Virgule fixe (>90% des ventes des
DSP)

 Virgule flottante

31
Exemple de DSP
existants

32
Pourquoi un DSP est
rapide ?

1. Architecture des DSP


2. Mode d’adressage

33
Quel est le
problème ?
 On veut réaliser un filtrage passe-bas par un
filtre FIR de 50 coefficients
 Le calcul de la sortie nécessite 50 MACs

34
Quel est le
problème ?
 General Processor  DSP
 1 multiplication : 70  1 Multiplication + 1
cycles horloge addition + accès
 1 addition : 10 cycles mémoires : 1 voir <1
horloge cycles horloge

 FIR 50 coefficients  FIR 50 coefficients


 > 4000 cycles  50 cycles

35
Exemple
 Benchmark des
DSP de Analog
Device

 Données
constructeurs
accessibles à :
http://
www.analog.com/
processors/

36
Pourquoi un DSP est
rapide ?
 Quelles sont les caractéristiques d’un DSP qui
permettent de réaliser un traitement le plus
rapidement possible ( >=1MAC par cycle ) ?.

 4 facteurs :
1. Architecture matérielle //
2. Mode d’adressage
3. DMA
4. Pipeline

37
1.
Architectures

38
Architecture Harvard :
TMS32010
 Virgule fixe 16 bits

 Instructions et mémoires
séparées

 1 MAC en 1 cycle
horloge

 Temps d’un MAC


 1982 : 390ns
 2012 : 0.23ns
39
Architecture SHARC : Analog
Device

Instructions
Données

SHARC
Super HARvard Computing
Architecture
SIMD
 SIMD : Single Instruction
Multi Data Stream

 Opérations parallèles sur


différentes largeurs de
chemins de données (16 bit,
8 bit, ...).
 Split unités d'exécution.

 Unités d'exécution

multiples.
Blackfi
nVirgule 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
 Objectifs :
 Puissance d’un DSP dépend de ces modes
d’adressage

 Type d’adressage classique


 Adressage immédiat
 Adressage indirect
 Adressage direct
 Adressage pré & post-incrémentation
 Adressage circulaire
 Adressage Bit-reverse
Mode
d’adressage
 Immédiat
 Valeur spécifiée
 DM(R1, 74h) ou PM(R1, 32h)
 Utilisé pour l’initialisation par exemple de registre

 Direct
 Valeur spécifiée à une adresse mémoire
 DM(R1, 0x20045) ou PM(R1, 0x320001)

 Indirect
 A une adresse mémoire spécifiée  adresse mémoire de
l’instruction ou de l’opérande
 DM(R1, R3 ) à l’adresse de R3  adresse cherchée

45
Mode
d’adressage
 Pré & Post-incrémentation

 Adressage indirect avec spécification d’un registre


de base (RB) et d’incrément (RI)
 DM(RB, RI)

 Attention :
 RB incrémenté avant ou après accès mémoire
 pré-incrémentation et post-incrémentation

46
Adressage
circulaire
 But :  Moyen :
 Ne conserver que les n dernières  Adressage modulo longueur du buffer
valeurs des entrées, ou d'un calcul
précèdent, comme dans une FIFO  Ressources (dépend du DSP) :
sans gestion explicite de la  Registre d’index (RI)
mémoire.  position courante dans le buffer
 Registre d’incrément (RM)
 RI=RI+RM
 Registre de base (RB)
 Adresse du début du buffer
 Registre de longueur (RL)
 Taille du buffer circulaire
Adressage circulaire :
exemple

48
Exercice

49
Adressage de type bit
reverse
 Adressage avec inversion de l'ordre des bits
 Pour faire des calculs comme la FFT, on peut avoir
besoin de manipuler directement certains bits des
adresses.
Adressage bit
reverse
 Transformée de Fourrier Discrète de taille 4
 Algorithme dit du Papillon Butterfly

51
3. Le DMA : Direct Memory
Access

Signal N
1
analogique Echantillonnage
et Conversion A/N X(n)  A(k)* X(n
k
d’entrée k)
0

Contrôleur Processeur
Codec
de DMA
Signal
analogique Conversion Y(n)
de sortie N/A

Direct Memory Access


52
Principe du
DMA
 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.

 Le transfert de données peut être :


 Entre la mémoire et la mémoire (MDMA).

 Entre la mémoire et le SPI (Serial Peripheral Interface).

 Entre la mémoire et le port série (SPORT).

 Entre la mémoire et le port UART.

 Entre la mémoire et le PPI. (Parallel


Peripheral Interface ).

53
DMA :
paramètres
 Certain paramètres ont besoin d’être définie avant de
commencer le transfert DMA. Ces paramètres sont :

 Configuration
 Décrit certain caractéristiques du transfert DMA comme la taille des
données, la direction du transfert……

 Start Address
 Spécifie l’adresse a partir de laquelle le transfert DMA commencera.

 Count
 Spécifie le nombre d’éléments que le contrôleur DMA transférera.
 Modify
 Spécifie pas d’incrémentation après le transfert de chaque
le
donnée.

54
Conclusion

 Pourquoi un DSP est rapide ?


 Architecture optimisée pour le traitement
 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. Détails de la carte de développement
2. Environnement logiciel

56
1. Famille
Blackfin
 Analog Device
 Depuis 2001 : BF535

57
ADSP
BF561

5
8
ADSP
BF561

DSP BF561
Processor

5
9
Schéma fonctionnel du
BF561

60
Caractéristiques
techniques
 BF561  Coeur
 Dual core à 600MHz  2 MAC de 16 bits
 > 1.2 GMACs  2 ALU de 40 bits
 328ko de mémoire intégrée /  4 ALU de 8 bits
coeur  Un registre à décalage de 40 bits

61
Caractéristique carte
développement
 Fréquence d’horloge du cœur : 600MHz.
 Interface USB pour le déboguage
 Mémoire
 32 MB de SDRAM (16M x 16 bits)

 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
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.

6
3
Codec
AD1836
 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.

 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 CODEC
DSP
son AD1836 AD1836

Grave

77
Partie
4
Alternativeaux
DSP

78
Introduction

 Le traitement numérique du signal était à


l’origine réalisée sur des architectures de
type DSP

 Actuellement, il existe 2 grands


concurrents :
 FPGA
 GPU

79
TNS sur
FPGA
 Multiplieur HW enfouie dans
un FPGA
 « Cœur de DSP »

 Optimiser les performances


des architectures de
traitement // Stratix III
 IP FIR
Carte DSP CycloneII
 Cyclone II
 techno 90nm

 Analog IO
 One 12-bit, 125-million samples per
second (MSPS) analog-to-digital (A/
D) converter—TI ADS5520

 One 14-bit, 165-MSPS digital-to-


analog (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
 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

Vous aimerez peut-être aussi