Vous êtes sur la page 1sur 62

6.

Architecture des DSP


1. Caractristiques gnrales 2. Units de calcul 4. Architecture mmoire 5. Architecture pipeline

TC

Traitement du Signal

6.1- Architecture gnrale


Adr. Don. CAN CNA

Proc. DSP ROM

RAM

Comm.
Horloge Timers... Cont.
TC
Traitement du Signal

Architecture gnrale
CAN: conversion analogique numrique, filtre anti repliement nombre de bits, loi de conversion, frquence dchantillonnage Processeur: Organe de calcul dont larchitecture est adapte au traitement du signal CNA: conversion numrique analogique, filtre de restitution nombre de bits, loi de conversion, frquence dchantillonnage

TC

Traitement du Signal

Architecture gnrale
ROM: Mmoire contenant les programmes de contrle du systme et de traitement du signal RAM: Mmoire vive contenant les donnes en entre en sortie et en cours de traitement Comm.: Organe de communication avec un ventuel systme externe Horloge, timers...: horloge du processeur, horloge dacquisition, horloge de communication....

TC

Traitement du Signal

Architecture gnrale
Structure des programmes
Programme principal Interruption, horloge dacquisition Entre dun chantillon

Init.

Boucle infinie

Mmorisation et Traitement

Sortie dun chantillon


Retour dinterruption
TC
Traitement du Signal

Architecture gnrale
Diagramme temporel
Te Hor.Acqu.
Interruption

Activit du proc.

Sortie du rsultat Dure du traitement Entre de lchantillon T Frquence dchantillonnage = 1/Te Contraintes temps rel trs fortes

T < Te
TC
Traitement du Signal

Frquence dchantillonnage
Domaine dutilisation des DSP
Frquence dchantillonnage (Hz) Radar 1G 100M HDTV 10M Vido 1M Modem radio 100k Audio 10k Parole Modem vocaux 1k Contrle 100 sismique 10 Instrumentation 1 1/10 1 Finances 1/10 1/100 Mto 1/1000 Complexit des algorithmes
TC
Traitement du Signal

Frquence dhorloge
Fh Rythme la vie du processeur Actuellement (2000), 1Ghz Le rapport R=Fh/Fe est dterminant pour la complexit du systme Quand R dcroit : Complexit du systme plus grande (paralllisme, multiprocesseurs...) Algorithmes simples Programmation complexe, optimisation indispensable (gestion du pipeline...)

TC

Traitement du Signal

Caractristiques principales
Multiplication-addition rapide (MAC) avec un format de calcul tendu pour viter les dpassements Mmoire accs multiple Modes dadressage spcialiss Excution rapide des boucles I/O intgres avec le processeur

TC

Traitement du Signal

Reprsentation des nombres


Deux grandes catgories de DSP Format virgule fixe
16, 20, 24 bits Calcul en prcision tendue par logiciel (performance rduite) Emulation du calcul flottant par logiciel (performance rduite) Hardware plus simple, cot rduit Dynamique rduite (144 dB pour 24 bits) programmation complexe (Scaling) pour les traitements ncessitant une bonne prcision

Format virgule flottante


32 bits (mantisse 24 bits, exposant 8 bits) Calcul en virgule fixe gnralement possible Hardware plus complexe, cot lev Dynamique leve (1535dB pour 32 bits) Progammation simplifie

TC

Traitement du Signal

10

Quelques DSP...
Analog Devices
ADSP 21xx ADSP210xx fixe 16 bits 33 Mips flottant 32 40

Lucent
DSP16xx DSP32xx fixe 16 Flottant 32
fixe fixe fixe flottant fixe fixe fixe flottant flottant fixe fixe 24 16 24 32 16 16 16 32 32 16 8/16

70 20
40 30 80 20 9 12 40 25 30 50 50
11

Motorola
DSP5600x DSP561xx DSP563xx DSP96002 TMS320C1x TMS320C2x TMS320C2xx TMS320C3x TMS320C4x TMS320C5x TMS320C8x
TC

Texas Instrument

Traitement du Signal

6.3-Units de Calcul
Data Paths
Units Arithmtiques et Logiques Units de calcul en entier Units de calcul en virgule fixe Units de calcul en flottant Shifter Structures spcifiques des DSP gnralement absentes des autres types de processeurs (ou avec une organisation diffrente)

Deux grandes catgories pour les DSP:


Virgule fixe

Virgule flottante

TC

Traitement du Signal

12

Virgule fixe
Elments principaux Multiplieur Accumulateurs Unit arithmtique et logique Shifters
Remarque: Calculs dadresse effectus dans une unit particulire Adr. Generation Unit (AGU) Data Adress Generation (DAG) Adressage circulaire Adressage spcifique FFT (bitreversed)

TC

Traitement du Signal

13

Virgule fixe

Motorola, DSP5600x

TC

Traitement du Signal

14

Virgule fixe
Multiplieur Rle central dans un DSP Plus de 50% des instructions Caractristiques principales Temps dxcution = 1 cycle instruction Structure pipeline
Un rsultat par cycle horloge, si le pipeline est bien utilis
I1 I2

I3
I4 Instruction Horloge
TC
Traitement du Signal

15

Virgule fixe
Multiplieur Multiplieur -accumulateur

MAC Reg.

Reg.
Multiplication-addition en Deux instructions Une instruction
TC
Traitement du Signal

16

Virgule fixe
Entres du multiplieur
Uniquement les registres Architecture Load-Store Lecture mmoire avant calcul Programme plus complexe, mais Hardware plus efficace (Architecture RISC) Registres et mmoire Programmation plus simple Mais... la facilit peut tre lennemi de la performance.

TC

Traitement du Signal

17

Virgule fixe
Tailles oprandes/rsultats
n bits x n bits = 2 n bits

Troncature du rsultat n bits souvent indispensable (calculs


enchains)

Mise lchelle (scaling) est ncessaire


Perte de prcision Perte de temps Programme plus complexe

TC

Traitement du Signal

18

Virgule fixe

Texas Instrument, TMS320C50


TC
Traitement du Signal

19

Virgule fixe
Accumulateurs Taille 2 n bits + p bits p bits (Guard bits) pour additionner plusieurs valeurs en sortie des multiplieurs en limitant le risque de dpassement de capacit (Overflow)
Exemple: ADSP 21xx Format fixe 16 bits Rsultat multiplieur 32 bits Accumulateurs 40 bits

Une bonne utilisation des accumulateurs est indispensable pour une programmation optimale

TC

Traitement du Signal

20

Virgule fixe
Certains DSP nont pas de Guard bits Scaling par dcalage gnralement en mme temps que la multiplication, sans perte de temps Perte de prcision relativement faible car les bits de poids faibles seront souvent tronqus en fin de traitement. Programmation plus complexe Scaling suffisant pour de nombreuses applications Un DSP doit avoir des Guard bits ou un Scaling possible en sortie du multiplieur

TC

Traitement du Signal

21

Virgule fixe
ALU Oprations entires et binaires (+, -, inc, dec, et, ou, xor...) Taille des oprandes de lALU taille des accumulateurs ou taille des oprandes du multiplieur

TC

Traitement du Signal

22

Virgule fixe
Shifter(s) Oprations de mise lchelle (Scaling) par puissance de deux Indispensable pour viter les dpassements de capacit Son utilisation doit tre maitrise par le programmeur Rduction de la prcision des calculs Nombre, emplacement et possibilits des Shifters trs diffrents dun DSP un autre.

TC

Traitement du Signal

23

Virgule fixe
Dpassement de capacit (Overflow) et saturation
x+y Overflow Max. x y

Min
Ex: En dcimal, 2 chiffres 00 99 23+80 = 03 (103 mais le 1 est perdu) Overflow inacceptable en traitement du signal (rsultat faux, fonctionnement perturb, oscillations...) Remdes: Mise lchelle (Scaling) mais...prcision? Saturation
TC
Traitement du Signal

24

Virgule fixe
Saturation
x+y Max. y x Min

ex: 23+80 = 99 !! Rsultat faux mais moins dangereux


En gnral, impossible dliminer compltement les risques de dpassement. Utiliser systmatiquement la saturation Instructions spciales Modes particuliers de fonctionnement (Mode bits)
Traitement du Signal

25

TC

Virgule flottante

Lucent, DSP3210

TC

Traitement du Signal

26

Virgule flottante
Structure similaire aux units en virgule fixe DSP avec unit flottante seule (TI, AD, Motorola) lunit flottante accepte la virgule fixe unit flottante + unit fixe (AT&T)

Programmation plus simple Scaling automatique (exposant) Plus de protection contre les erreurs de calcul (exception) Fonctions spciales (Division, racine carre, conversion de format...)

TC

Traitement du Signal

27

Virgule flottante
Multiplieur Entre 32 bits mantisse 24 bits exposant 8 bits Sortie (32)40 44 bits mantisse 32 36 bits exposant 8 bits Format interne pour multiplication/accumulation Arrondi systmatique perte de prcision ngligeable

TC

Traitement du Signal

28

Virgule flottante
ALU Soustraction, addition, ngation, valeur absolue, minimum, maximum Oprations spciales (racine carre,
division...)

Shifter Prsent mais invisible pour le programmeur (Sauf en mode virgule fixe) Normalisation automatique (Scaling) des rsultats flottants Registres accumulateurs Plusieurs, au format des rsultats flottants (40 44 bits)

TC

Traitement du Signal

29

Virgule flottante
Registres Oprandes Entre quasiment exclusives du multiplieur flottant Les calculs flottants doivent donc tre prcds dune lecture explicite (Move) des oprandes en mmoire Chargement des registres en parallle avec les oprations arithmtiques

TC

Traitement du Signal

30

Virgule flottante
Exceptions Overflow positionnement dun indicateur et/ou interruption saturation du rsultat Underflow positionnement dun indicateur et/ou interruption Mise zro du rsultat Autres exceptions Division par 0, format invalide...

TC

Traitement du Signal

31

6.4 - Architecture mmoire

Transmettre les instructions et les donnes vers les units de calculs Maintenir une activit maximale dans les units de calcul Eviter de crer un goulot dtranglement (Bottleneck) Programme organis en fonction de larchitecture mmoire Facteur critique pour la performance globale dun DSP

TC

Traitement du Signal

32

Ralisation dun filtre FIR


Structure non rcursive ou filtre transverse
x(n)
b(0) T x(n-1) b(1)

T
b(2)

T b(Q-1)

x(n-Q) b(Q) y(n)

y(n) b(0) x(n) b(1) x(n 1) b(Q) x(n Q)


/* H(z) = b(0) + b(1) z -1 + b(2) z-2 */ int x[3], xin, yout; float b[3]; x[0]=xin; /* xin contient l'echantillon d'entree */ /* calcul du filtre RIF */ yout = x[0]*b[0]; for(i=2; i>0; i - -) { yout=yout+x[i]*b[i]; x[i]=x[i-1]; } /* sortie de yout */

TC

Traitement du Signal

33

Ralisation dun filtre FIR


Multiplication-addition en un cycle instruction Filtre FIR ordre Q calcul en Q+1 instructions MAIS pour chaque cycle instruction: Lire linstruction (Opcode Fetch) Lire une valeur x(i) Lire un coefficient b(i) Ecrire x(i) en x(i+1) Soit 4 accs mmoire par instruction Dans la pratique, diverses techniques rduisent le nombre daccs 2 ou 3. Ceci reste vrai pour dautres types dalgorithmes
TC
Traitement du Signal

34

Architecture mmoire
Plusieurs accs mmoire ncessaires pour chaque instruction Solutions: Organisation mmoire
Architectures HARVARD Mmoires accs multiples Cycles spciaux READ/WRITE

Rduction du nombre daccs


Mmoire cache programme Adressage circulaire (Modulo Adr.) Programmation intelligente

TC

Traitement du Signal

35

Organisation mmoire
Principe de base : Architecture de Von Neumann
Units de contrle et de calcul
Bus Adresses Bus Donnes

Mmoire programme et donnes


Un seul accs mmoire par cycle instruction FIR dordre Q calcul en au moins 4Q cycle instructions Architecture mal adapte, bande passante mmoire limite
TC
Traitement du Signal

36

Organisation mmoire
Les DSP ont tous une organisation mmoire spciale pour augmenter la bande passante Chaque DSP a ses particularits Lutilisation de la mmoire est soumise des restrictions qui compliquent beaucoup la programmation.

TC

Traitement du Signal

37

Organisation mmoire
Architecture Harvard
Units de contrle et de calcul
Bus Adresse A Bus Adresse B Bus Donne A Bus Donne B

Mmoire de donnes B

Mmoire programme A

TC

Traitement du Signal

38

Organisation mmoire
Architecture Harvard Modifie
Units de contrle et de calcul
Bus Adresse A

Bus Adresse B
Bus Donne A Bus Donne B Mmoire programme et donnes A
39

Mmoire de donnes B

TC

Traitement du Signal

Organisation mmoire
Architecture Harvard modifie Avantage: 2 accs mmoire par cycle instruction
Mmoire A: programme et coefficients du filtre Mmoire B: chantillons dentre Une tape du filtre calcule en deux instructions

Exemples:
ADSP 21xx AT&T DSP16xx

Extension 3 mmoires
DSP5600x, DSP96002 Zilog Z893

TC

Traitement du Signal

40

Organisation mmoire
Architecture Harvard modifie Mmoires intgres avec le processeur (On-chip) Un seul bus (adresse+donne) disponible lextrieur (Off-chip) pour limiter le nombres de broches: diminution des performances Rappel: Il faut 4 accs mmoire par instruction ????
Il faudra utiliser dautres techniques pour atteindre les performances maximales

TC

Traitement du Signal

41

Organisation mmoire
Mmoire accs multiple Mmoire rapide autorisant plusieurs accs squentiels par cycle instruction
Cycle instruction

Ad.

1 1

2 2

3 3

4 4

Donne

Avec une architecture Harvard Modifie: 3 ou 4 accs mmoire par cycle Ex: Zoran ZR3800x Avec une architecture type VonNeumann: 4 accs par cycle Ex: Lucent DSP32
TC
Traitement du Signal

42

Organisation mmoire
Mmoire multi-port
Units de contrle et de calcul Bus Adresse A Bus Adresse B Bus Donne A Bus Donne B Bus Adresse C Bus Donne C Mmoire de donnes B Mmoire programme et donnes A
43

TC

Traitement du Signal

Organisation mmoire
Mmoire multi-port Avantage: programmation simplifie Inconvnients:
lectronique beaucoup plus complexe donc plus coteuse Extension Off-chip pratiquement impossible

Exemple: Motorola DSP561xx


(Voir schma prcdent)

TC

Traitement du Signal

44

Organisation mmoire
Cycles spciaux READ/WRITE Exemple
x x+1 x+2 Mmoire

x+3

Registre
Processeur

TC

Traitement du Signal

45

XN XN-1 . . ... 0F03 . 0F04 XN-(L-1) dma 0F04 AR0 RPT #L-1 MACD hL-1,*APAC

In

hL-1 hL-2 . . . h0 pma

TC

Traitement du Signal

46

Rduction du nombre daccs


Mmoire cache programme
(En gnral, les DSP nont pas de mmoire cache
pour les donnes)

Units de contrle et de calcul Cache Instruct. Bus Adresses Bus Donnes Mmoire programme et donnes Mmoire contenant des instructions xcutes souvent (boucles...) Rduction du nombre daccs la mmoire programme
TC
Traitement du Signal

47

Rduction du nombre daccs


Mmoire cache programme Il existe de nombreuses variations autour du principe de base Dans les DSP, la structure de la mmoire cache est beaucoup plus simple que dans les processeurs dusage gnral (type Pentium...) Loptimisation ncessite une prise en compte par le programmeur de la structure et des possibilits de la mmoire cache Contrle manuel du cache pour matriser les timings.

TC

Traitement du Signal

48

Rduction du nombre daccs


Mmoire cache programme Repeat buffer 1 N instructions
ex: AT&T DSP16 : 16 instructions ex: TMS 320C2x/5x : 1 instruction

Vrai cache mono-ligne


ex:Zoran ZR3800x

Vrai cache multi-ligne


ex:TMS320C3x: 2 fois 32 instructions

TC

Traitement du Signal

49

Rduction du nombre daccs


Adressage circulaire But: viter lopration dcriture x(i)=x(i-1) dans le filtre RIF Principe: utiliser des pointeurs mobiles pour reprer le dbut et la fin des donnes
t 1 2 3 4 5 6 7 D t+1 F 2 3 4 5 6 7 8

D
t+2 9 F
TC

F
3 4 5 6 7 8 D
50

Traitement du Signal

Rduction du nombre daccs


Adressage circulaire Grer les pointeurs par programme ?
Diminution trs importante des performances

Les DSP disposent de gnrateur dadressage circulaire


exemple: Tampon circulaire adresse de dpart 100 longueur 4 Registre dadressage circulaire R0 initialisation R0=100 valeur successive de R0+1: 101,102,103,100,101,...

TC

Traitement du Signal

51

Rduction du nombre daccs


Adressage circulaire de type 1 Registre auxiliaire indiquant la longueur du tampon
ladresse de dpart doit en gnral tre un multiple de la puissance de deux suprieure la longueur exemple: tampon circulaire de 48 octets, adresse de dpart multiple de 64

TMS320C3x/4x, ADSP, Motorola,...

TC

Traitement du Signal

52

Rduction du nombre daccs


Adressage circulaire de type 2 Registres auxiliaires indiquant le dbut et la fin du tampon circulaire TMS320C5x, AT&T DSP16xx Nombre de tampons circulaires simultans AT&T DSP16xx : 1 TMS320C5x : 2 Motorola 5600x : 4 ADSP : 8

TC

Traitement du Signal

53

X0 dma t=0

X0 X1 dma t=1

X0 X1 X2 dma t=2

X3 X1 X2 dma t=3

h0 0CE0 h1 0CE1 h2 0CE2 pma RPT #L-1 MAC h0,*APAC

TC

Traitement du Signal

54

Rduction du nombre daccs


Programmation intelligente
Rutiliser des informations dj lues en mmoire et prsentes dans les registres internes y(0)=c(1) x(0) +c(2) x(-1) +c(3)x(-2)+c(4)x(-3) y(1)=c(1) x(1) +c(2) x(0) +c(3)x(-1)+c(4)x(-2)
LD R0,x(1) LD R1,c(1) R2 = R0*R1 , LD R0,x(0) R3 = R0*R1 , LD R1,c(2) R2 = R2 + R0*R1 , LD R0,x(-1) R3 = R3 + R0*R1 , LD R1,c(3) R2 = R2 + R0*R1 , LD R0,x(-2) R3 = R3 + R0*R1 , LD R1,c(4) R2 = R2 + R0*R1 , LD R0,x(-3) R3 = R3 + R0*R1 ; x(1) ; c(1) ; c(1)*x(1) ; c(1)*x(0) ; x(0)*c(2) ; x(-1)*c(2) ; x(-1)*c(3) ; x(-2)*c(3) ; x(-2)*c(4) ; x(-3)*c(4)

1 instruction par tage du filtre 1vs 2 accs mmoire par instruction


TC
Traitement du Signal

55

6.5 - Architecture pipeline


Principe du pipeline Dcouper un opration en N sousoprations (S/op) et Excuter les N sous-oprations en parallle (sur des donnes diffrentes)
R H Opration R

R H

S/op 1

S/op 2

S/op 3

TC

Traitement du Signal

56

Principe du pipeline
Exemple (proche TMS320C3x) Excution dune instruction
Lecture de linstruction en mmoire programme (OpCodeFetch) Dcodage de linstruction Lecture ou criture dun oprande en mmoire de donne Excution ventuelle dun opration arithmtique ou logique
Cycle I/F Dec R/W Exec 1 I1 I1 I1 I1 2 3 4 5 I2 I2 I2 I2 6 7 8

Excution non-pipeline
TC
Traitement du Signal

57

Principe du pipeline
Cycle 1 I/F Dec R/W Exec 2 3 4 5 6 7 8 I1 I2 I3 I4 I5 I6 I1 I2 I3 I4 I5 I1 I2 I3 I4 I5 I1 I2 I3 I4 I5
Excution pipeline

La vitesse dxcution dun programme est multiplie par N (ici 4) nombre dtage du pipeline
En apparence, une instruction est xcute chaque cycle horloge La dure relle dxcution dune instruction est de N cycles horloge
TC
Traitement du Signal

58

Principe du pipeline
Utilis depuis longtemps, sous de multiples formes, dans de nombreux ordinateurs Dans les DSP...
Presque tous les DSP sont pipelins Le nombre dtages varie de 2 5 ADSP :2 La plupart des DSP :3
Opcode Fetch Decode/OperandRead/Write Execute (MAC, ALU, ...)

TMS320C3x , ... TMS320C54x , ...

:4 :5

Le pipelinage augmente le nombre daccs la mmoire (cf chap. prcdent)


Dans lexemple prcdent il passe de accs 2 accs /cycle horloge
TC
Traitement du Signal

59

Principe du pipeline
Avantage dun processeur pipelin Gain en vitesse dxcution Inconvnients Electronique plus complexe Mmoire plus rapide Programmation plus complexe (Compilateur et/ou programmeur) pour:
Eviter les erreurs dxcution (Pipeline Hazards) Eviter les conflits daccs aux ressources (mmoire, registre, unit de calcul...) pour optimiser un programme et atteindre les performances maximales (ex: une Add/Mult par cycle horloge)

TC

Traitement du Signal

60

Principe du pipeline
Le paralllisme dxcution dans un pipeline peut crer des erreurs des linversion de lordre dxcution (Pipeline Hazards)
READ puis WRITE WRITE puis READ WRITE puis WRITE

des trous dans lactivit du pipeline ds aux conflits daccs aux ressources Solutions Interlocking hardware Optimisation par table de rservation
TC
Traitement du Signal

61

7. Transition
Chane de traitement numrique
Filtrage, chantillonnage, quantification Restitution, filtrage

Signal alatoire
Densit de probabilit, Moments Autocorrelation, DSP

Filtres
h(t) / H(Z) / H(f) FIR / IIR # AR(MA) Implantation Synthses

Filtrage adaptatif (principes, modes) Processeurs DSP


Fixe/Flottant Filtrage

Prts pour la parole, le son et l image


TC
Traitement du Signal

62