• Aucun résultat trouvé

Les processeurs de traitement du signal

N/A
N/A
Protected

Academic year: 2022

Partager "Les processeurs de traitement du signal"

Copied!
68
0
0

Texte intégral

(1)

2006-2007

Les processeurs de traitement du signal

Caroline Petitjean

[email protected]

000

DSP : Digital Signal Processor

Amplificateur home cinéma Denon AVR3806

Lecteur codes barres

CCD ScanPLus 1800 SR Interscan

Autoradio MP3

KD-SHX851 JVC

Console de mixage

• Produits utilisant des DSP:

Téléphone portable

Ericsson R600

(2)

000

3

Applications des DSP

Communications Modem, téléphonie Télévision & radio

numérique Cryptage

Audio

Mixage et édition Effets

Suppression de bruit Annulation d’écho

Image / Vidéo Compression/Codage Traitement

Militaire

Imagerie (radar, sonar)

Cryptographie

Guidage de missiles Navigation

000

4

Applications des DSP

Médical

Equipements de monitoring (EEG, ECG)

Imagerie (IRM…)

Instrumentation Analyseurs de

spectre

Générations de fonctions

Automatisation Commande de

machines

Contrôle de moteurs Robots

Automobile

Contrôle du moteur Assistance au freinage Aide à la navigation Commandes vocales Tableau de bord

(3)

000

5 49,7%

12,9%

9,8%

7,7%

6,8%

13,1%

Principaux constructeurs de DSP

Source : EETimes.com, 2004

autres

ex-Motorola ex-Lucent

Achats de DSP en millions de dollars

000

Plan de l’exposé

• Le Traitement Numérique du Signal (TNS) et les DSP

• Architecture des DSP : CPU, mémoire…

• Performances des DSP : augmentation, mesure de performances, gamme de DSP…

• Développement d’applications sur un DSP :programmation…

(4)

000

7

Plan de l’exposé

• Le Traitement Numérique du Signal (TNS) et les DSP

• Architecture des DSP : CPU, mémoire…

• Performances des DSP : augmentation, mesure de performances, gamme de DSP…

• Développement d’applications sur un DSP :programmation…

000

8

Le TNS : pourquoi ?

Stabilité

• Insensibilité à l’environnement

• Précision connue et contrôlée

• Reproductibilité

Souplesse

• Programmation flexible

• Développement rapide

• Facilité pour certains

traitements

(5)

000

9

Le TNS : comment ?

• Chaîne classique de traitement numérique du signal :

? Mémoire

Ports d’E/S

CAN CNA

Filtre anti

repliement Filtre de

reconstruction

numérique Signal

analogique d’entrée

Signal analogique

de sortie

000

Solutions pour le TNS

• Classification des processeurs

ASIC : Application Specific Integrated Circuit ASSP : Application Specific Standard Product ASIC ASSP FPGA

(6)

000

11

Classification des processeurs

• Le processeur généraliste (GPP)

Coût relativement élevé

Forte consommation électrique

Bonnes performances en calcul numérique Certains surpassent les DSP en puissance brute

GPP moins bons que les DSP pour : la consommation électrique

la gestion des entrées-sorties le prix

000

12

Classification des processeurs

• Le microcontrôleur

Faible coût

Faible consommation électrique

Mémoire limitée

Peu adapté aux signaux numériques

Adapté aux tâches de contrôle

Programmation bas niveau

(7)

000

13

Classification des processeurs

• ASIC/ASSP (Application-Specific…)

Circuit intégré dédié à une application dans une entreprise : ASIC

pour un marché (ex: téléphonie) : ASSP

Ne sont pas programmables

Mise en œuvre complexe et longue

Coût élevé

FPGA : sorte de ASIC programmable

000

Classification des processeurs

• DSP

Coût relativement faible

Faible consommation électrique

Jeu d'instruction spécialisé

Calculs numériques

Entrée-sortie de données à grand débit

Mémoire limitée

(8)

000

15

Le TNS : besoins

• Algorithmes de TNS :

filtrage

transformées codage/décodage

reconnaissance de la parole synthèse de signaux

élimination d’écho estimation spectrale…

000

16

Le TNS : besoins

• Contrainte de temps réel

• Ex : taux d’échantillonnage 48kHz

Te = 20.833 µs

t

Arrivée de l’échantillon x(n)

t t+Te

Temps de traitement T doit être <Te pour le temps réel

Arrivée de l’échantillon x(n+1)

(9)

000

17

Les DSP ont une architecture matérielle et logicielle dédiée permettant de répondre à ces besoins

Le TNS : besoins

• Cahier des charges :

1. Calculs rapides

2. Contraintes temps réel (entrées/sorties à débit fixe)

3. Contraintes systèmes embarqués (taille limitée, faible consommation d’énergie)

4. Production de masse

000

Exemples d’applications

• Lecteur MP3 dictaphone

Source : ti.com

(10)

000

19

Exemples d’applications

• Scanner de codes barres

Source : ti.com

000

20

Exemples d’applications

• Appareil photo numérique

Source : ti.com

(11)

000

21

Exemples d’applications

• Imagerie par Résonance Magnétique

Source : ti.com

000

Exemples d’applications

• Console de mixage

(12)

000

23

Exemples d’applications

• Récepteur GPS

Source : ti.com

000

24

Exemples d’applications

• TV à écran LCD

Source : ti.com

(13)

000

25

Exemples d’applications

• Kit mains libres

Source : ti.com

000

Spécificités des DSP

• Plan de cette partie :

2 algorithmes classiques de TNS :

Filtre à Réponse Impulsionnelle Finie (RIF)

Transformée de Fourier rapide (FFT) Opérations les

+ courantes dans les algos

de TNS

Contraintes matérielles sur

l’architecture DSP imposent

Spécificités des DSP

(14)

000

27

Spécificités des DSP

• Algo n°1 : Filtre RIF

Une équation aux différences finies

spécifie la sortie y(n)

=

= 1

0

) ( ) ( )

(

N

i

i n x i a n

y

000

28

Spécificités des DSP

• Pour chaque cellule a(i)x(n-i) :

Recherche de l’instruction Recherche du coefficients a(i)

Recherche de la donnée x(n-i)

Multiplication a(i)x(n-i)

Accumulation a(i-1)x(n-i-1) + a(i)x(n-i)

Décalage en mémoire x(n-i) Æ x(n-i-1)

4 accès en mémoire 2 accès à l’unité de calcul

=

= 1

0

) ( ) ( ) (

N

i

i n x i a n y

(15)

000

29

Spécificités des DSP

• Objectifs :

Réduire les accès mémoire

Augmenter les accès mémoire simultanés Réduire le temps passé à faire des calculs

Instruction MAC (multiplication-accumulation) en 1 seul cycle d’instruction

000

Spécificités des DSP

• Objectifs :

Réduire les accès mémoire

Augmenter les accès mémoire simultanés

Architecture Harvard

(DSP) Architecture

Von Neuman

(microcontrôleur)

Source images : [1]

(16)

000

31

Spécificités des DSP

Buffer circulaire : Segment mémoire contenant des données

(échantillons, cœfficients…)

Accès par pointeurs générés et incrémentés automatiquement

Pas de test sur les pointeurs Pas de reset nécessaire

L L+1 L+2 L+N

• Objectifs :

Réduire les accès mémoire Mode d’adressage circulaire

000

32 2

0 1

N-2 N-1

Spécificités des DSP

x(n-1) x(n-2)

x(n-N+1)

x(n-N)

x(n) x(n-1) x(n-2)

x(n-N+2) x(n-N+1) x(n-N) nouvel échantillon

x(n)

a0 a1 a2

aN-2 aN-1

y(n)

Mise à jour du buffer Calcul de y(n)

décalage

Xtab(t-1) Xtab(t) 0

1

N-2 N-1

1

Buffer linéaire

source image : [9]

=

= 1

0

) ( ) ( ) (

N

i

i n x i a n y

(17)

000

33

Spécificités des DSP

ak+1 x(n-k+1)

x(n-N+1)

x(n-N) x(n-1) x(n-2)

x(n-k)

nouvel échantillon x(n)

aN-1 a0 a1 a2

ak

y(n)

Mise à jour du buffer Calcul de y(n) x(n-k+1)

x(n-N+1)

x(n) x(n-1) x(n-2)

x(n-k) idx

0 1

N-2 N-1

0 1

N-2 N-1 idx

Xtab(t-1) Xtab(t)

Buffer circulaire

source image : [9]

=

= 1

0

) ( ) ( ) (

N

i

i n x i a n y

000

Spécificités des DSP

• Algo n°2 : FFT (Fast Fourier Transform)

sur N points

=

= 1

0

2 0 1

) ( )

(

N

i

N jin

N n pour e

i x n

y π

Simultané Séquentiel

Calcul des N échantillons y(n)

N/2 log2(N) Nombre de

multiplications

Algorithme de Cooley-Tukey Sans

optimisation

(18)

000

35

Spécificités des DSP

• Algo n°2 : FFT par Cooley-Tukey

Besoin d’accéder aux échantillons dans cet ordre

=

=

=

= 1

0

1

0 2

) ( )

( ) (

N

i

N

i

in N N

jin

W i x e

i x n

y π

Ex : N = 8

Source : [5]

x0 x4 x2

x6 x1 x5

x3 x7

y0 y1 y2

y3 y4 y5

y6 y7

000

36

Spécificités des DSP

• Mode

d’adressage spécifique :

“Bit reverse”

3 011

110 6

5 101

101 5

7 111

111 7

001 110 010 100 000

Ordre pour la FFT Cooley-Tuckey

100 011 010 001 000

6 3

0 0

1 4

2 2

4 1

Ordre naturel des échantillons

(19)

000

37

Entrées/sorties spécifiques

Spécificités des DSP

• Résumé :

Organisation mémoire

Architecture Harvard

Jeu

d’instructions

MAC en 1 cycle

Modes d’adressage

Bit reverse, circulaire Flot continu de données

000

Plan de l’exposé

• Le Traitement Numérique du Signal (TNS) et les DSP

• Architecture des DSP : CPU, mémoire…

• Performances des DSP : augmentation, mesure de performances, gamme de DSP…

• Développement d’applications sur un DSP :programmation…

(20)

000

39

Architecture des DSP

• Plan de cette partie :

Représentation des nombres CPU

Unité de mémoire Périphériques

ÆUnité de calcul

ÆUnité de commande (pipeline) ÆUnité de génération d’adresses

000

40

Format courant : 16/24 bits

Idéal avec CAN/CNA 12/14 bits

Applications : Contrôle industriel, communications, instrumentation, parole, médical, militaire…

Représentation des nombres

• Les valeurs traitées (coefficients, échantillons…)

sont représentées sous 2 formes : Virgule fixe Virgule flottante

(21)

000

41

Représentation des nombres

• Les valeurs traitées (coefficients, échantillons…)

sont représentées sous 2 formes : Virgule fixe Virgule flottante

Format courant : 32 bits

Idéal pour le traitement sur une grande dynamique

Applications : Audio professionnel, vidéo, médical…

000

Représentation des nombres

• Virgule fixe : Complément à 2 (C2)

Signe

1 2N1

2 1

N 00

1 1 0 0 1 1

0 1 -4

1 1 -3

0 1 -2

1 1 -1

0 0 0

1 0 1

0 0 2

1 0 3

Nombre Codage

Nombre positif : codé comme un binaire naturel Nombre négatif : Inversion des bits puis ajout de 1

Le codage C2 convient bien aux opérations maths.

(22)

000

43

Représentation des nombres

• Virgule fixe : Complément à 2

• Représentation “circulaire”

En ajoutant 1 à la plus grande valeur positive on obtient la valeur négative extrême

Ex sur 3 bits :

000 001 111

010 110

100 011 101

0 1

2 3 -4

-3 -2

-1

000

44

Représentation des nombres

• Virgule fixe : Codage des entiers

=

+

= 6

0 7

72 2

i i

bi

b

Exemple sur 8 bits x 27 x271

1 1 0 1 1 0 0 0 27

20 21 22 23 24 25 26 -27 Poids

0 0 0 0 0 0 0 0 0

0 0 1 1 1 1 1 1 -4

Bit de signe

(23)

000

45

Représentation des nombres

• Virgule fixe : Codage des réels Æ Format Qk

Partie fractionnaire sur k bits

Partie entière sur N-k bits en C2

Ex : 2,3125

• Cas particulier : k = 0 Æ entiers

000

Représentation des nombres

• Virgule fixe : Codage des réels Æ Format Qk

Pour coder le réel x, trouver les bi tels que :

Ex : format Q5 sur 8 bits (n=8, k=5)

Partie entière : 3 bits / fractionnaire : 5 bits

= +

+

= 2 1 2

k n

k i

i k i k

n

n b

b x

0 1 0 1 0 0 1 0 2,3125

2-5 2-4 2-3 2-2 2-1 20 21 -22 Poids

(24)

000

47

Représentation des nombres

• Virgule fixe : Codage des réels Æ Format Qk

Correspond à la représentation C2 de l'entier y tel que :

Ex : y = round(25.2,3125)

= 74 = (0100 1010)b

) 2 round( x

y = k

0 1 0 1 0 0 1 0 2,3125

2-5 2-4 2-3 2-2 2-1 20 21 -22 Poids

000

48

Représentation des nombres

• Exemple : Format Q5 sur 8 bits

Dynamique : -2N-k-1 … 2N-k-1-2-k 0 0 0 0 0 0 0 1 -4

1 0 0 0 0 0 0 1 -3.96875

0 0 0 0 0 0 0 0 0

0 1 1 1 1 1 1 0 3.9375

1 1 1 1 1 1 1 0 3.96875

2-5 2-4 2-3 2-2 2-1 20 21 -22

Poids

,

max min

(25)

000

49

Représentation des nombres

• Exemple : Format Q5 sur 8 bits

Précision : q = 2-k

Erreur maximale : q/2 = 2-(k+1)

Ex : 010.01010 = 2,3125 010.01011 = 2,3438

Si on doit coder 2,33, l’erreur sera de 2-6 max.

+q = +2-k

000

Représentation des nombres

• Un format très classique :

Q15 sur 16 bits : réels entre -1 et 1

99997 . 0 1

, 2 , 2

2 15

14

0 15 0

15 + =

=

=

q x

b b

x

i i i

signe

2-15 2-1

±20

0 14

15

Exemple

0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1

0 1 2 2 3 4 5 6 7 8 9 10 11 12 13 14 15

-1+0,5+2-4+2-5 = -0,40625

(26)

000

51

Représentation des nombres

• Ecrire le mot binaire 8 bits signé au format Q7 :

• +0.5

• +1.0

• -1.0

• +1/3

• -1/3

000

52

Représentation des nombres

• Si l’on veut D chiffres

fractionnaires significatifs en

décimal, quelle doit être le format Qk ?

(27)

000

53

Représentation des nombres

Si l’on veut D chiffres fractionnaires significatifs en décimal, quel doit être le format Qk ?

Il faut avoir soit :

Puis :

Ex : le format Q15 a une précision de 4 chiffres décimaux après la virgule

q ≤10D D

k

≤10

2

D ( ) D

k ≥ log

2

10 ≈ 3 . 3

000

Représentation des nombres

• Virgule flottante : mots de 32 bits sous forme mantisse-exposant

2

127

).

, 1 .(

) 1

( −

=

s

f

e

x

=

= 7

0

2

i i

ei

e

=

= 22 0

2 23 i

i

fi

f

partie fractionnaire de la mantisse exposant

signe

f0

f22

e0 e7

s

0 22

23 30

31

0 0 0

0 1 1 1 1 1 0 0 0 0 0 0

0 22

23 30

31

+1,75.27-127 = 1,3165.10-36

(28)

000

55

Représentation des nombres

1500 dB 190 dB

Dynamique max.

Complexe Simple

Complexité hard

Faible Elevée

Complexité progr.

Elevée Faible

Consommation

Elevé Faible

Coût

Virgule flottante Virgule fixe

(95% des DSP)

000

56

Architecture des DSP

CPU

(29)

000

57

Structure interne du CPU

Bus de programme

Unités de génération d’adresses AddP

Unités de traitement mathématique DataP

Registre de données Générateur

d’adresses MD AddD

DataD

Unité de commande Cache

Générateur d’adresses MP

Multiplieur ALU Registre décalage Séquenceur

CPU

Bus de données

000

Unité de calcul

• Éléments principaux :

Unité Arithmétique et Logique (ALU)

Opérations classiques (+, -, AND, OR…) Multiplieur-Additionneur

Accumulateurs

Registres à décalage (shifters) Manipulation de bits

(30)

000

59

Unité de calcul

• Multiplication accumulation :

Multiplieur

ALU Accumulateur

Résultat sur 2N bits

Résultat sur 2N bits Troncature

data bus (N bits)

N bits N bits

2N bits

000

60

Unité de calcul

• Lors de nombreux MAC successifs :

Taille de l’accumulateur (2N bits) insuffisante

2 solutions :

Accumulateur sur 2N + p bits Exemple : ADSP2181

2 registres 16 bits, résultat sur 32 bits Æ dans l’accu 40 bits

Pre-Scaling : décalage avant l’accumulation

(31)

000

61

Unité de calcul

• TMS320c5x (TI)

000

Unité de calcul

• DSP56300 (Freescale)

(32)

000

63

Unité de calcul

Exo : Soit un filtre RIF à calculer.

• coefficients a

• échantillons d’entrée x

• accumulateur sur B’ = 40 bits Æ Quel est le nombre max Nmax de

produits que l’on peut accumuler sans risque de saturation ?

=

= 1

0

) ( ) ( )

(

N

i

i n x i a n

y

sur B = 16 bits

000

64

Unité de calcul

• Gestion des débordements

Complément à 2 : représentation circulaire Æ Si on ajoute 1 au plus grand positif, on obtient le plus grand négatif !

Les DSP utilisent une arithmétique saturée :

saturation overflow

Source images : [2]

(33)

000

65

Unité de commande

• Chef d’orchestre du CPU

• Chargement des instructions

Compteur de programme (PC) Registre d’instruction

Cache d’instructions

• Séquençage

Décodage des instructions Pilotage les autres unités

000

Pipeline

• Principe : découper une opération en tâches élémentaires à effectuer en parallèle

• Ex : pipeline à 4 étages

Exécution éventuelle d’une opération arithmétique/logique Execute

Lecture ou écriture d’un opérande en mémoire de donnée Read/Write

Décodage de l’instruction Decode

Lecture de l’instruction en mémoire programme Fetch

(34)

000

67

Pipeline

Sans Pipeline

Avec pipeline

11 10 9 8 7 6 5 4 3 2 Cycle 1

C3 C3

C3 C2

C2 C3

C1 C2

C2 C1

C1

Execute

C1 Read/Write

Decode Fetch

Fin C1 Fin C2 Fin C3

11 10 9 8 7 6 5 4 3 2 1 Cycle

C7 C8 C9 C10

C8 C9 C10 C11

C4 C5 C6 C7

C5 C6 C7 C8

C6 C7 C8 C9

C1 C2 C3 C4

C2 C3 C4 C5

C3 C4 C5 C6 C1

C1 C2

Execute

C1 Read/Write

C2 Decode

C3 Fetch

Fin C1

Fin C2Fin C3

000

68

Pipeline

• Différents types de pipelines

Séquentiel Pas de pipeline (ex: Motorola 56000)

Pipeline simple (plupart des DSP)

Double pipeline (ex: Pentium)

Superpipeliné Nombre d'étages plus élevé

(ex: TMS320C6000)

t t

t t

Source : [9]

(35)

000

69

Pipeline

• Avantage d’un DSP pipeliné

Gain en vitesse d’exécution

• Inconvénients

Electronique et programmation plus complexe

• Un retard peut se produire

s’il existe un conflit de ressources en cas de rupture de séquence

000

Pipeline

• Pipeline présent dans quasiment tous les DSP

Le nombre d’étages varie de 3 à 12 Exemples :

7-12 TMS320 C62

10-11 TMS320 C55

6 TMS320 C54

3 DSP568xx

7 DSP563xx

3 SHARC

(36)

000

71

Unité de génération d’adresse

• Unités de traitement spéciales

DAG (Data Address Generation) AGU (Adress Generation Unit) Pilotées par le séquenceur

Calculs sur des entiers (adresses mémoires)

• Méthodes pré-programmées

Incrémentation Décrémentation Adressage circulaire

Incrémentation bit-reverse (pour la FFT)

000

72

Unité de mémoire

• Architecture Harvard

Mémoires données et programme séparées

Meilleure utilisation du CPU

Chargement du programme et des données en parallèle

Source image : [9]

Mémoire Programme

Mémoire Données CPU

(37)

000

73

Unité de mémoire

• Architecture Harvard modifiée

Possibilité de charger 2 types de données en 1 cycle

Mém. prog+données Æ coefficients Mémoire données Æ signal d’entrée

Source image : [9]

Mémoire Programme + Données

Mémoire Données CPU

000

Unité de mémoire

• Architecture Harvard modifiée

Bancs de mémoire

Mémoire Programme

Mémoire Données 1 CPU

Mémoire Données 2

(38)

000

75

Unité de mémoire

• Mémoire interne sur les DSP C54xx

• Plusieurs types de RAM :

Single access (SARAM) : un accès par cycle Dual access (DARAM) : deux accès par cycle Two-way shared : deux accès par cycle même

depuis l'extérieur

000

76

Unité de mémoire

• Canaux DMA : Direct Memory Access

• Réduction des accès mémoire

Adressages spécifiques (circulaire)

Mémoire cache programme

Mémoire Programme + Données

Mémoire Données CPU

cache d’instructions

Source image : [9]

(39)

000

77

Unité de mémoire

• Mémoire cache programme

Contient des instructions exécutées fréquemment (boucles...)

Structure plus simple que dans les processeurs généraux

Exemple :DSP563xx 1KB TMS320C67 64 KB

Configurable par l’utilisateur

Pas de cache de données en général

000

Périphériques

• Port série

Communication avec codecs

• Port parallèle

Communication avec une mémoire externe

Timer

• Contrôleur d’interruption

• Horloge interne

(40)

000

79

Architecture générale

DSP56303 (Source : Freescale)

000

80

Plan de l’exposé

• Le Traitement Numérique du Signal (TNS) et les DSP

• Architecture des DSP : CPU, mémoire…

• Performances des DSP : augmentation, mesure de performances, gamme de DSP…

• Développement d’applications sur un DSP :programmation…

(41)

000

81

Performances des DSP

• Plan de cette partie :

DSP hautes performances Mesures de performances Gamme de DSP

000

DSP hautes performances

Processeur unique

20 000lignes de code

Multiples processeurs

100 000lignes de code

Multiples processeurs + protocoles

+500 000lignes de code

Lecteur MP3

Robot familial

(Wakamaru, Mitsubishi)

Système VoIP pour traders

(IPC)

(42)

000

83

Architecture conventionnelle

Spécialisée pour le TNS

Faible consommation, faible coût Difficulté de programmation

Nouvelles architectures

Plus grande consommation Coût plus élevé

Rendues nécessaires par de nouveaux besoins

Performance (téléphonie 3G)

Rapidité de développement

DSP hautes performances

000

84

DSP hautes performances

• On vient de voir l’architecture de base des DSP

Comment augmenter les performances ? Plusieurs solutions :

Diminuer la durée d’un cycle d’horloge

Augmenter le travail réalisé au cours d’un cycle d’horloge

(43)

000

85

DSP hautes performances

• Augmentation de la fréquence CPU

Facilité de portage des applis existantes

Limites :

Consommation proportionnelle à la vitesse CPU

Interfaces mémoire deviennent des goulets d’étranglement

000

DSP hautes performances

• Augmentation du travail effectué pendant un cycle : parallélisme

Plus d’opérations dans 1 instruction

SIMD

(Single Instruction, Multiple Data)

Source : [8]

(44)

000

87

DSP hautes performances

• Augmentation du travail effectué pendant un cycle : parallélisme

Plus d’instructions dans 1 cycle d’horloge

Superscalaire

Plusieurs MAC, plusieurs ALU, cache données

Circuit de contrôle complexe

000

88

DSP hautes performances

• Augmentation du travail effectué pendant un cycle : parallélisme

Plus d’instructions dans 1 cycle d’horloge

Superscalaire

VLIW (Very Long Instruction Word)

VLIW 8 voies = 8 instr. 32 bits = 256 bits

Instructions en parallèle à la compilation

Hardware + simple que superscalaire

(45)

000

89

DSP hautes performances

• Augmentation du travail effectué pendant un cycle : parallélisme

Plus d’instructions dans 1 cycle d’horloge

Superscalaire VLIW

Approches hybrides SIMD/VLIW

000

DSP hautes performances

• Augmentation du nombre de cœurs DSP en parallèle (multi-core):

Source : analog.com

Ex : ADSP2192 de Analog Devices 2 cores « on-chip »

(46)

000

91

Mesure de performance

• Mesure de la vitesse

Nombre de MAC que le DSP peut effectuer en une seconde.

Million Multiply and Accumulate Per Second MMACS

Nombre total d’opérations (traitement et transferts de données, accès DMA, opérations d’E/S) que le DSP peut effectuer en une seconde.

Million

Operations Per Second

MOPS

Nombre de codes machines (instructions) que le DSP peut effectuer en une seconde.

Million

Instructions Per Second

MIPS

Nombre d’opérations à virgule flottante

(multiplications, additions, soustractions, etc.) que le DSP à virgule flottante peut réaliser en une seconde.

Million Floating- Point Operations Per Second MFLOPS

000

92

Mesure de performance

• Ex 1 : DSP dans un téléphone portable Æ 40 MIPS

• Ex 2: DSP56156 30 MIPS

Taux d’échantillonnage 48kHz Te= 20.833 µs

Quel est le nombre d’instructions maximum entre 2 échantillons ?

30 625 / 1

8 , 20

n instructio d'1

Temps

ns instructio les

pour max Temps ns

instructio d'

Nombre

=

=

M µs

(47)

000

93

Mesure de performance

300 1000

40 750 600 160 300 150 MHz

- na

1500 MS8101

- na

1500 ADS-BF533

>1000 na

4800 ADSP-TS201

1800 2400

600 TMS320 C67

- 40

40 TMS320 C24

8000 160 150 MIPS

- - - MFLOPS

8000 na 150 MMACS

TMS320 C6455 ADSP-2191 DSP56367

DSP

Analog Devices

Texas Instr

umentsFreescale

000

Mesure de performance

• Benchmark :

mesurer le temps que met le DSP pour exécuter des programmes

"standard" de TNS Programmes standard

Comment les choisir ?

Dépendent des domaines

N multiplications Æ Filtre RIF 2D

Problème : dépend de la qualité de l’implémentation

(48)

000

95

Gamme de DSP

La gamme Texas Instruments Contrôle numérique

Faible consommation

(lecteur MP3, récepteur GPS, équipement médical portable)

Très grande puissance : 8000 MIPS (imagerie, vidéo…)

000

96

Gamme de DSP

Road Map C50 (Texas Instruments)

(49)

000

97

Gamme de DSP

Road Map C60 (Texas Instruments)

000

Gamme de DSP

Road map BlackFin (Analog Devices)

(50)

000

99

Quelques DSP

16 Fixe 160

160 TMS320 C54

400 400 400 40 120 80/100 400 80/100

MMACS

16 Fixe 300

TMS320 C62

16 Fixe 120

DSP568xx

32 16 16 24 32/40 16

Données (bits)

Flottante

Fixe Fixe Fixe

Flottante

Fixe

Virg.

Fi/Flo

300 200 40 80/100 200 80/160

Horloge (MHz)

TMS320 C67 TMS320 C55

Modèle Constructeur

TMS320 C24 ADSP-21XX SHARC

Texas Instruments

DSP563xx Freescale

Analog Devices

000

100

Plan de l’exposé

• Le Traitement Numérique du Signal (TNS) et les DSP

• Architecture des DSP : CPU, mémoire…

• Performances des DSP : augmentation, mesure de performances, gamme de DSP…

• Développement d’applications sur un DSP :programmation…

(51)

000

101

Développement d’applications

Conception algorithmique

Choix du DSP

Développement sur PC C ou assembleur

Environnement pas universel

Compilation, link

Chargement de l’exécutable sur le DSP

Exécution du programme sur le DSP

PC DSP

000

Développement d’applications

• Exemple : implantation d’un filtre RIF sur un DSP virgule fixe

• Choix du DSP en fonction de l’application :

Choix de la famille

Choix des caractéristiques

Quantité de RAM/ROM

Vitesse d’horloge

Prix d’un DSP

Audio Æ C54x chez TI

Bas de gamme : $5,40 Haut de gamme : $30

pour 1000 unités achetées

(52)

000

103

Développement d’applications

• Exemple : implantation d’un filtre RIF sur un DSP virgule fixe

=

= 1

0

) ( ) ( )

(

N

i

i n x i a n

y

Gabarit du filtre Coefficients a(i) (à convertir au format virgule fixe)

000

104

Développement d’applications

• Ecriture du programme (C, assembleur)

Réception de l’échantillon d’entrée x(n)

Calcul de l’échantillon de sortie avec : Sous-programme de traitement d’une interruption Initialisation des

registres, tables d’interruption,

coefficients…

Attente (idle) Prog. principal

=

= 1

0

) ( ) ( )

(

N

i

i n x i a n

y

Retour au prog. principal

Références

Documents relatifs

SLIT à temps discret – Réponse impulsionnelle - Convolution discrète – Réponse en fréquence – Fonction filtrage Filtre à Réponse Impulsionnelle Finie (RIF) - Filtre à

1) Les calculateurs sont des systèmes discrets : Ils peuvent tout au plus mémoriser et calculer les valeurs des signaux à des instants dénombrables. Il faut donc opérer

(more internal data buses, I-cache can handle external code) Init code External Memory.. ESIEE/SIGTEL -

• Valeur du gain de ce filtre à la fréquence de coupure : –3dB (quel que soit l’ordre N).. Rm : le temps de propagation

Une variable simple (ce qu’on appelle &#34;un scalaire&#34;) est vue comme un tableau à une ligne et une colonne ; un vecteur de N éléments est vu comme une matrice à une colonne et

La même TFD que ci-dessus peut être appliquée en boucle, au signal entier, en découpant ce dernier en parties de tailles égales, appelées trames. Le résultat est alors un ensemble de

où ω 0 est la pulsation de coupure. 1.1) En définissant un vecteur de valeurs de fréquences variant de 0 à 10000 Hertz par pas de 1, réaliser un affichage graphique du module

1.1) Générer quelques périodes d’un signal constitué par la somme de 2 signaux sinusoïdaux de mêmes amplitudes et de fréquences respectives f 1 =10Hz et f 2 =100Hz. 1.2)