30
DSP : Processeurs de Traitement du Signal

Chap1 dsp

Embed Size (px)

DESCRIPTION

PPROPOSE PAR Mr.Abdelhamid Helali

Citation preview

Page 1: Chap1 dsp

DSP : Processeurs de Traitement du Signal

Page 2: Chap1 dsp

Chapitre 1Généralités sur l’architecture

des DSPs

Page 3: Chap1 dsp

De quelles solutions dispose-t-on pour effectuer ce travail

Quelle est la spécificité d’un processeur DSP

Traitement numérique du signal

Filtre anti-repliement

Échantillonnage + Conversion

Traitement

Blocage + Conversion

Filtrage

3

Page 4: Chap1 dsp

Filtre de lissage

Signal traité

CNA

MEM

DSP

E/S

Signal numérique

Signal original grandeur physique

Capteur

G

Filtre anti-repliement

CAN

Échantillonnagefs

Quantification

Adaptation du signal d’entrée

(gain+démodulation)

4

Traitement numérique du signal

Page 5: Chap1 dsp

5

Profils d’utilisation du DSP

Embarqué

Faible coût unitaire

Faible consommation : part importante de la consommation pour la mémoire

Architecture limitée au strict nécessaire

Temps réel

Haute performance

Puissance : Calcul intensif

Parallélisme Multiplication des

unités de calcul internes

Interfaces multi-DSP

Interface avec un ordinateur hôte

Page 6: Chap1 dsp

6

Applications des DSP

Communications Filaire (xDSL, câble) Sans fil (cellulaires,

télévision numérique, radio numérique)

Modem Cryptage

Audio Mixage et effets Suppression de bruit Annuleur d’echo

Image / vidéo Compression/Codage Composition Traitement

Militaire Imagerie : radar,

sonar… Cryptographie Guidage de missiles

Page 7: Chap1 dsp

7

Applications des DSP

Biomédical Équipements de monitoring

Signaux biophysiques ElectroEncéphaloGramme

(EEG) ElectroCardioGramme

(ECG) Radiographie

Instrumentation Analyseurs de spectre Générations de fonctions Analyseurs de régimes

transitoires

Automatisation Commande de

machines Contrôle de moteurs Robots

Electronique Automobile Contrôle du moteur Assistance au freinage Aide à la navigation Commandes vocales

Page 8: Chap1 dsp

8

Caractéristiques classiques des DSP

Chemin de données organisé pour traitement du signal

Jeu d’instructions spécialisé

Plusieurs mémoire et plusieurs bus

Modes d’adressage spécifiques

Périphériques spéciaux pour le traitement du signal

Augmentation du parallélisme

Page 9: Chap1 dsp

9

Caractéristiques classiques des DSP

Augmentation du parallélisme

Calculs Unités de calcul en parallèle

Mémoire à accès multiples Lecture/Écriture de plusieurs données simultanément

Pipeline Découpage des instructions de façon à les exécuter à

intervalles plus rapprochés

Page 10: Chap1 dsp

10

Les DSP à virgule fixe

Les données sont représentées comme étant des nombres fractionnaires à

virgule fixe, (exemple -1.0 à +1.0), ou comme des entiers classiques.

La représentation de ces nombres fractionnaires s’appuie sur la méthode du

«complément à deux».

Permet facilement l’addition binaire de nombres positifs et négatifs.

Les DSP à virgule flottante

Les données sont représentées en utilisant une mantisse et un exposant.

La représentation de ces nombres s’effectue selon la formule suivante :  

n = signe mantisse 2exposant

Généralement, la mantisse est un nombre fractionnaire (-1.0 à +1.0), et

l’exposant est un entier indiquant la place de la virgule en base 2.

Représentation des nombres

Page 11: Chap1 dsp

11

Les profiles d’application nécessitant un processeur flottant sont :

Haute précision

Dynamique importante

Les inconvénients du DSP flottant sont :

Consommation

Coût

Moins performant que le DSP à virgule fixe

95% des DSP sont en virgule fixe.

Virgule fixe ou virgule flottante ?

Page 12: Chap1 dsp

12

Panorama des DSP

Texas Instrument C2000 : virgule fixe 16 bits, Contrôle. C5000 : virgule fixe 16 bits, Faible consommation. C6000 : virgule fixe et flottante, Hautes performances.

Analog Devices ADSP21xx : virgule fixe 16 bits. SHARC : virgule fixe ou flottante 32 bits. ADSPBFxx : virgule fixe 16 bits, Hautes performances. TigerSHARC : virgule flottante 24 bits, Hautes performances.

Motorola DSP560xx, DSP563xx : virgule fixe 24 bits, Audionumérique. DSP566xx, DSP568xx: virgule fixe 16 bits. StarCore : virgule fixe 16 bits, Hautes performances.

Page 13: Chap1 dsp

13

DSP TI (Texas Instrument)

Page 14: Chap1 dsp

14

Pe

rfo

rma

nc

e

Temps

C62x/C64x/DM642 : Fixed PointC67x : Floating PointC62x/C64x/DM642 : Fixed PointC67x : Floating Point

Haute

Perform

ance

HybrideHybride

Multi-coreMulti-core C64x™ DSP 1.1 GHz

C64x™ DSP 1.1 GHz

C6201

C6701

C6202C6203

C6211C6711

C6204

1ère Génération

C6713C6713C6205

C6712

C6412C6412 DM642DM642

2ème Génération

C6415C6415

C6416C6416

C6411C6411

C6414C6414

DSP TI (Texas Instrument)3ème Génération

Page 15: Chap1 dsp

15

Spécificités des DSP

Algorithme classique de TNS : Filtre RIF

Pour chaque 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)

3 accès à la mémoire

2 accès à l’unité

de calcul

1

0

)()()(N

i

inxiany

Page 16: Chap1 dsp

16

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

Page 17: Chap1 dsp

17

Harvard Séparation des mémoires

programme et données Meilleure utilisation du CPU : Chargement du programme et

des données en parallèle Architecture des DSP

Von Neuman Un seul chemin d'accès à la

mémoire Architecture des processeurs

d’usage général (Pentium, 68000)

Architectures Von Neuman et Harvard

Page 18: Chap1 dsp

18

Cache d'instructions

Cache = mémoire rapide Contient les dernières instructions exécutées.

Utile en cas de boucle Accès aux instructions sans accès en mémoire programme. Libère le bus pour des données.

DSP

Mémoire Instruction

Mémoire Données

CPU

Mémoire Cached’instructions

Mémoire Cachede données

Page 19: Chap1 dsp

19

Exécution parallèle d’instructions simples

Architecture plus homogène Se prête mieux à

l’optimisation par le compilateur.

Processeurs hautes-performances Bus larges, consommation

plus élevée. Coût élevé.

VLIW (Very Long Instruction Word) Une instruction contient plusieurs

sous-instructions destinées à des unités distinctes.

Exemples : TMS320C62xx StarCore SC140

Superscalaire Réorganisation automatique des

instructions dans le pipeline de façon à maximiser le parallélisme.

Peu utilisé dans les DSP, à cause des contraintes temps réel.

DSP améliorés

Page 20: Chap1 dsp

20

SIMD

SIMD = Single Instruction Multiple Data

Deux types de SIMD : Unités parallèles

Effectuent la même opération sur des données différentes

Exemple : ADSP-2116x

Partage de l’unité de traitement Partage un mot de donnée en sous-mots

Effectue les calculs sur les sous-mots

Exemple : instructions MMX du Pentium

Efficace pour des algorithmes parallèles

Page 21: Chap1 dsp

21

SIMD : TigerSHARC

MACALU Shift MACALU Shift

Instruction MAC SIMD

Unité decalcul n°1

Unité decalcul n°2

SIMD par unités parallèles

4 multiplications 16 bitsau lieu de

1 multiplication 64 bits

4 multiplications 16 bitsau lieu de

1 multiplication 64 bits

SIMD par partage de l’unité de traitement

(split-MAC)

Le TigerSHARC d’Analog Devices met en œuvre les deux types de SIMD :

Page 22: Chap1 dsp

22

C54x Block Diagram• 17x17 MAC Unit• Saturation and

Rounding Hardware

• Two 40-bit ACC’s• 40-bit ALU• 40-bit Barrel Shifter• Temporary

Register• Exponent Encoder• Program and Data

Address Generation Units

• Compare, Select and Store Unit

• 4 Internal Bus Pairs

• External Interface

Muxed GP I/OMuxed GP I/O

D(15-0)

A(23-0)

Program/Data BusesProgram/Data Buses

Timer Timer

Program/Data SRAM128K Words

Program/Data SRAM128K Words

Ch 0

Ch 1

Ch 2

Ch 3

Ch 4

Ch 5

DMA

8/16-bit Host PortInterface (HPI)

8/16-bit Host PortInterface (HPI)

Program/Data ROM16K Words

Program/Data ROM16K Words

Pe

riph

era

l Bu

sP

erip

he

ral B

us

RND, SAT

17 x 17 MPY

40-Bit Adder

MAC

Shifter

40-Bit Barrel(-16, 31)

EXP Encoder

40-Bit ALUCMPS Operator(VITERBI)

ALU

Accumulators

40-Bit ACC A

40-Bit ACC B

8 Auxiliary Registers

2 Addressing Units

Addressing Unit

Multichannel BufferedSerial Port (McBSP)

Multichannel BufferedSerial Port (McBSP)

Multichannel BufferedSerial Port (McBSP)

Multichannel BufferedSerial Port (McBSP)

JTAG Test/EmulationControl

JTAG Test/EmulationControl

Multichannel BufferedSerial Port (McBSP)

Multichannel BufferedSerial Port (McBSP)

PLL Clock Generator

PLL Clock Generator

S/W WaitstateGenerator

S/W WaitstateGenerator

Power ManagementPower Management

C5416 example

Page 23: Chap1 dsp

23

C54x Block Diagram

Page 24: Chap1 dsp

24

DSP multicore

Gravure sur la même puce de deux cœurs DSP indépendants.

Communication entre les deux :Mémoire partagée. Interface FIFO.

Architecture du C5421

Shared memorytwo-way RAM : permet l'accès simultané à la

mémoire par les deux DSP

Page 25: Chap1 dsp

25

DSP multicore

Architecture du C6474

DSP haute

performance.

TMS320C64x+.

3 C64x+ intégrés

fonctionnant à

1Ghz chacun.

Page 26: Chap1 dsp

26

VLIW : TMS320C62x

Data path Deux ensembles d’unités de

traitement (1 et 2) Instruction de 256 bits

8 sous-instructions de 32 bits

Unités logique .L Arithmétique et comparaisons

Unité de décalage .S ALU et Shifter

Unités de multiplication .M Multiplication

Unités de données .D Mouvement de données

de/vers la mémoire

C62 CPU

Data Path 2Data Path 1

L1

Register File A

M2D2 S2 L2

Instruction Decode

Instruction Dispatch

Instruction Fetch Control Registers

Inte

rrup

t C

on

trolEmulation

S1

A15-A0

++ +

++x+

M1

xD1+

Register File B

B15-B0

+

Page 27: Chap1 dsp

Unités fonctionnelles

Deux chemins de données : A et B

Chaque chemin contient 4 unités de traitement :

(.M) : Multiplication

(.L) : Opération logique et arithmétique

(.S) : Branchement et manipulation binaire

(.D) : Chargement et stockage des données

64 registres de 32 bits (A0 à A31) et (B0 à B31)

2 chemins croisés (1x et 2x) (cross path)

.L1 .S1 .M1 .D1 .L2 .S2 .M2 .D2

Registre A0 à A31 Registre B0 à B31

Chemin de données A Chemin de données B

Chemin croisé 27

Page 28: Chap1 dsp

VELOCI TI : architecture élaborée par TI basée sur la structure VLIW (Very Long Instruction Word)

Instruction : 4 octets = 32 bits

PE : Paquet Exécutable : groupe d’instructions exécutables en parallèle pendant un seul cycle.

PF : Paquet Fetch formé de 8 instructions.1PF peut contenir 1 PE (si toutes les 8 instructions en //) ou 8 PE (pas d’instructions en // ).

3 étages de pipeline : Fetch : 4 étages Decode : 2 étages Execute : au maximum 6 étages

Paquet de Fetch et d’Exécution

28

Page 29: Chap1 dsp

Étage \ temps t1 t2 t3 t4 t5 t6 t7 t8 t9

Fetch F1 F2 F3 F4 F5 F6 … … …

Decode D1 D2 D3 D4 D5 D6 … …

Execute E1 E2 E3 E4 E5 E6 …

Étage \ temps t1 t2 t3 t4 t5 t6 t7 t8 t9

Fetch F1 F2 F3

Decode D1 D2 D3

Execute E1 E2 E3

Exécution avec pipeline

Exécution séquentielle

Pipeline

Instructions segmentées en étages. Exécution entrelacée de plusieurs instructions. Augmentation de la fréquence d'horloge.

29

Page 30: Chap1 dsp

Pipeline

Étapes d’extraction du Programme (fetch, PF)

PGGénération d’adresse

Dans le CPU

PSTransmission de

l’adresse(à la mémoire)

PWAttente accès

mémoire

PRRéception et lecture du PF

(au CPU)

Fetch Decode Execute

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

30