d.s.p digital signal processor · 53 n mécanisme qui permet plusieurs types de transfert de...

85
D.S.P Digital Signal Processor Olivier Romain Professeur des Universités [email protected] http://olivieromain.free.fr 1

Upload: others

Post on 24-Mar-2020

1 views

Category:

Documents


0 download

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

Partie 1

Quelles architectures pour le traitement numérique du

signal ?

5

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

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

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

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

Estimation des besoins

n  Ordre de grandeur des applications TNS

17

Quel processeur utiliser ?

18

Classification

ASIC

Processeurs

Spécialisés

DSP

Généralistes

GPU Multi-coeurs

Circuits programmables

PLD

FPGA

Mémoires

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

•  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

Codage en virgule fixe

26

27

Exemple

28

Format 16 bits

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

31

n  Virgule fixe (>90% des ventes des DSP)

n  Virgule flottante

Codage en virgule flottante

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

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

SHARC

Super HARvard Computing

Instructions Données

Architecture SHARC : Analog Device

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

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

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

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

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

58

ADSP BF561

59

ADSP BF561

DSP BF561 Processor

Schéma fonctionnel du BF561

60

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

2. Environnement de développement

VISUAL DSP++ 4.5

65

66

67

68

69

70

71

72

73

74

75

76

Application au TP

Lecteur MP3

CODEC

AD1836

CODEC

AD1836 son DSP

Filtres FIR

77

Aiguës

Médium

Grave

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

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

84

Processeur

Fin du cours

85