Vous êtes sur la page 1sur 85

D.S.

P
Digital Signal Processor

Olivier Romain
Professeur des Universités
olivier.romain@u-cergy.fr
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
Partie 1

Quelles architectures pour le


traitement numérique du
signal ?

5
Synoptique d’une application de TNS
caméra

Numérique
Consignes

microphone

CAN µP CNA
son

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


q  JPEG2000

n  Etc.

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

x FFT
IFFT y
h FFT 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
Algorithmes types : Filtres FIR vs IIR

n  FIR n  IIR

14
TFD

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

n  TFD 4 points

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

n  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 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 ?

n  Conclusion

21
Partie 2

Caractéristiques générales des


DSP

22
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 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
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 −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  Simple précision sur 32 bits.
q  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.  Architecture des DSP


2.  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 n  DSP


q  1 multiplication : 70 q  1 Multiplication + 1
cycles horloge addition + accès
q  1 addition : 10 cycles mémoires : 1 voir <1
horloge cycles horloge

⇒  FIR 50 coefficients ⇒  FIR 50 coefficients


⇒  > 4000 cycles ⇒  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.  Architecture matérielle //
2.  Mode d’adressage
3.  DMA
4.  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  1982 : 390ns
q  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  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
2. Modes d’adressage

43
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
Adressage circulaire
n  But : n  Moyen :
q  Ne conserver que les n dernières q  Adressage modulo longueur du buffer
valeurs des entrées, ou d'un calcul
précèdent, comme dans une FIFO n  Ressources (dépend du DSP) :
sans gestion explicite de la mémoire. 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 : 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

N −1
Signal
analogique Echantillonnage
X(n)
∑ A(k)* X (n − k )
et Conversion A/N k=0
d’entrée
Contrôleur
Codec Processeur
de DMA
Signal
analogique Conversion N/A Y(n)
de sortie

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  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
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
Partie 3

Carte Blackfin 561


1.  Détails de la carte de développement
2.  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 n  Coeur
q  Dual core à 600MHz q  2 MAC de 16 bits
n  > 1.2 GMACs q  2 ALU de 40 bits
q  328ko de mémoire intégrée / q  4 ALU de 8 bits
coeur q  Un registre à décalage de 40 bits

61
Caractéristique carte développement
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.

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 CODEC
DSP
son AD1836 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  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 // Stratix III

q  IP FIR
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
Prototypage de filtre sous Simulink / Matlab
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
Exemple : architecture tuile de calcul

Processeur

84
Fin du cours

85

Vous aimerez peut-être aussi