ARCHITECTURE ET UTILISATION DES DSP (Programmable Digital Signal Processors) - PowerPoint PPT Presentation

About This Presentation
Title:

ARCHITECTURE ET UTILISATION DES DSP (Programmable Digital Signal Processors)

Description:

Processeur: Organe de calcul dont l'architecture est 'adapt e' au traitement du signal ... l'unit flottante accepte la virgule fixe. unit flottante unit ... – PowerPoint PPT presentation

Number of Views:754
Avg rating:3.0/5.0
Slides: 63
Provided by: odetchr
Category:

less

Transcript and Presenter's Notes

Title: ARCHITECTURE ET UTILISATION DES DSP (Programmable Digital Signal Processors)


1
6. Architecture des DSP
1. Caractéristiques générales 2. Unités de
calcul 4. Architecture mémoire 5. Architecture
pipeline
2
6.1- Architecture générale
Adr.
Don.
CAN
CNA
Proc. DSP
ROM
RAM
Comm.
Horloge Timers...
Cont.
3
Architecture générale
  • CAN conversion analogique numérique, filtre anti
    repliement
  • nombre de bits, loi de conversion, fréquence
    déchantillonnage
  • Processeur Organe de calcul dont larchitecture
    est adaptée au traitement du signal
  • CNA conversion numérique analogique, filtre de
    restitution
  • nombre de bits, loi de conversion, fréquence
    déchantillonnage

4
Architecture générale
  • ROM Mémoire contenant les programmes de contrôle
    du système et de traitement du signal
  • RAM Mémoire vive contenant les données en entrée
    en sortie et en cours de traitement
  • Comm. Organe de communication avec un éventuel
    système externe
  • Horloge, timers... horloge du processeur,
    horloge dacquisition, horloge de
    communication....

5
Architecture générale
  • Structure des programmes

Interruption, horloge dacquisition
Programme principal
Entrée dun échantillon
Init.
Mémorisation et Traitement
Boucle infinie
Sortie dun échantillon
Retour dinterruption
6
Architecture générale
  • Diagramme temporel

Te
Hor.Acqu.
Interruption
Activité du proc.
Sortie du résultat
T
Durée du traitement
Entrée de léchantillon
Fréquence déchantillonnage 1/Te
Contraintes temps réel très fortes
T lt Te
7
Fréquence déchantillonnage
  • Domaine dutilisation des DSP

Fréquence déchantillonnage (Hz)
Radar
1G
100M
HDTV
10M
Vidéo
1M
Modem radio
100k
Audio
10k
Modem vocaux
Parole
1k
100
Contrôle
sismique
10
Instrumentation
1
1/10
1
Finances
1/10
1/100
Météo
1/1000
Complexité des algorithmes
8
Fréquence dhorloge
  • Fh Rythme la vie du processeur
  • Actuellement (2000), 1Ghz
  • Le rapport RFh/Fe est déterminant pour la
    complexité du système
  • Quand R décroit
  • Complexité du système plus grande (parallélisme,
    multiprocesseurs...)
  • Algorithmes simples
  • Programmation complexe, optimisation
    indispensable (gestion du pipeline...)

9
Caractéristiques principales
  • Multiplication-addition rapide (MAC) avec un
    format de calcul étendu pour éviter les
    dépassements
  • Mémoire à accès multiple
  • Modes dadressage spécialisés
  • Exécution rapide des boucles
  • I/O intégrées avec le processeur

10
Représentation des nombres
  • Deux grandes catégories de DSP
  • Format virgule fixe
  • 16, 20, 24 bits
  • Calcul en précision étendue par logiciel
    (performance réduite)
  • Emulation du calcul flottant par logiciel
    (performance réduite)
  • Hardware plus simple, coût réduit
  • Dynamique réduite (144 dB pour 24 bits)
  • programmation complexe (Scaling) pour les
    traitements nécessitant une bonne précision
  • Format virgule flottante
  • 32 bits (mantisse 24 bits, exposant 8 bits)
  • Calcul en virgule fixe généralement possible
  • Hardware plus complexe, coût élevé
  • Dynamique élevée (1535dB pour 32 bits)
  • Progammation simplifiée

11
Quelques DSP...
  • Analog Devices
  • ADSP 21xx fixe 16 bits 33 Mips
  • ADSP210xx flottant 32 40
  • Lucent
  • DSP16xx fixe 16 70
  • DSP32xx Flottant 32 20
  • Motorola
  • DSP5600x fixe 24 40
  • DSP561xx fixe 16 30
  • DSP563xx fixe 24 80
  • DSP96002 flottant 32 20
  • Texas Instrument
  • TMS320C1x fixe 16 9
  • TMS320C2x fixe 16 12
  • TMS320C2xx fixe 16 40
  • TMS320C3x flottant 32 25
  • TMS320C4x flottant 32 30
  • TMS320C5x fixe 16 50
  • TMS320C8x fixe 8/16 50

12
6.3-Unités de Calcul
  • Data Paths
  • Unités Arithmétiques et Logiques
  • Unités de calcul en entier
  • Unités de calcul en virgule fixe
  • Unités de calcul en flottant
  • Shifter
  • Structures spécifiques des DSP généralement
    absentes des autres types de processeurs (ou avec
    une organisation différente)
  • Deux grandes catégories pour
  • les DSP
  • Virgule fixe
  • Virgule flottante

13
Virgule fixe
  • Eléments principaux
  • Multiplieur
  • Accumulateurs
  • Unité arithmétique et logique
  • Shifters
  • Remarque Calculs dadresse effectués dans une
    unité particulière
  • Adr. Generation Unit (AGU)
  • Data Adress Generation (DAG)
  • Adressage circulaire
  • Adressage spécifique FFT (bit-reversed)

14
Virgule fixe
Motorola, DSP5600x
15
Virgule fixe
  • Multiplieur
  • Rôle central dans un DSP
  • Plus de 50 des instructions
  • Caractéristiques principales
  • Temps déxécution 1 cycle instruction
  • Structure pipeline
  • Un résultat par cycle horloge, si le pipeline est
    bien utilisé

16
Virgule fixe
  • Multiplieur Multiplieur -accumulateur

MAC
Reg.
Reg.
Multiplication-addition en
Deux instructions
Une instruction
17
Virgule fixe
  • Entrées du multiplieur
  • Uniquement les registres
  • Architecture Load-Store
  • Lecture mémoire avant calcul
  • Programme plus complexe, mais Hardware plus
    efficace (Architecture RISC)
  • Registres et mémoire
  • Programmation plus simple
  • Mais... la facilité peut être lennemi de la
    performance.

18
Virgule fixe
  • Tailles opérandes/résultats
  • n bits x n bits 2 n bits
  • Troncature du résultat à n bits souvent
    indispensable (calculs enchainés)
  • Mise à léchelle (scaling) est nécessaire
  • Perte de précision
  • Perte de temps
  • Programme plus complexe

19
Virgule fixe
Texas Instrument, TMS320C50
20
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 dépassement de capacité (Overflow)
  • Exemple ADSP 21xx
  • Format fixe 16 bits
  • Résultat multiplieur 32 bits
  • Accumulateurs 40 bits
  • Une bonne utilisation des accumulateurs est
    indispensable pour une programmation optimale

21
Virgule fixe
  • Certains DSP nont pas de Guard bits
  • Scaling par décalage généralement en même temps
    que la multiplication, sans perte de temps
  • Perte de précision relativement faible car les
    bits de poids faibles seront souvent tronqués 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

22
Virgule fixe
  • ALU
  • Opérations entières et binaires
  • (, -, inc, dec, et, ou, xor...)
  • Taille des opérandes de lALU
  • taille des accumulateurs ou
  • taille des opérandes du multiplieur

23
Virgule fixe
  • Shifter(s)
  • Opérations de mise à léchelle (Scaling) par
    puissance de deux
  • Indispensable pour éviter les dépassements de
    capacité
  • Son utilisation doit être maitrisée par le
    programmeur
  • Réduction de la précision des calculs
  • Nombre, emplacement et possibilités des Shifters
    très différents dun DSP à un autre.

24
Virgule fixe
  • Dépassement de capacité (Overflow) et saturation

Overflow
xy
Max.
x
y
Min
Ex En décimal, 2 chiffres 00 à 99 2380 03
(103 mais le 1 est perdu)
  • Overflow inacceptable en traitement du signal
    (résultat faux, fonctionnement perturbé,
    oscillations...)
  • Remédes
  • Mise à léchelle (Scaling) mais...précision?
  • Saturation

25
Virgule fixe
  • Saturation

xy
Max.
y
x
Min
  • ex 2380 99 !!
  • Résultat faux mais moins dangereux
  • En général, impossible déliminer
  • complètement les risques de dépassement.
  • Utiliser systématiquement la saturation
  • Instructions spéciales
  • Modes particuliers de fonctionnement
  • (Mode bits)

26
Virgule flottante
Lucent, DSP3210
27
Virgule flottante
  • Structure similaire aux unités en virgule fixe
  • DSP avec
  • unité flottante seule (TI, AD, Motorola)
  • lunité flottante accepte la virgule fixe
  • unité flottante unité fixe (ATT)
  • Programmation plus simple
  • Scaling automatique (exposant)
  • Plus de protection contre les erreurs de calcul
    (exception)
  • Fonctions spéciales (Division, racine carrée,
    conversion de format...)

28
Virgule flottante
  • Multiplieur
  • Entrée 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 systématique
  • perte de précision négligeable

29
Virgule flottante
  • ALU
  • Soustraction, addition, négation, valeur absolue,
    minimum, maximum
  • Opérations spéciales (racine carrée, division...)
  • Shifter
  • Présent mais invisible pour le programmeur (Sauf
    en mode virgule fixe)
  • Normalisation automatique (Scaling) des résultats
    flottants
  • Registres accumulateurs
  • Plusieurs, au format des résultats flottants (40
    à 44 bits)

30
Virgule flottante
  • Registres Opérandes
  • Entrée quasiment exclusives du multiplieur
    flottant
  • Les calculs flottants doivent donc être précédés
    dune lecture explicite (Move) des opérandes en
    mémoire
  • Chargement des registres en parallèle avec les
    opérations arithmétiques

31
Virgule flottante
  • Exceptions
  • Overflow
  • positionnement dun indicateur et/ou interruption
  • saturation du résultat
  • Underflow
  • positionnement dun indicateur et/ou interruption
  • Mise à zéro du résultat
  • Autres exceptions
  • Division par 0, format invalide...

32
6.4 - Architecture mémoire
  • Transmettre les instructions et les données vers
    les unités de calculs
  • Maintenir une activité maximale dans les unités
    de calcul
  • Eviter de créer un goulot détranglement
    (Bottleneck)
  • Programme organisé en fonction de larchitecture
    mémoire
  • Facteur critique pour la performance globale dun
    DSP

33
Réalisation dun filtre FIR
  • Structure non récursive ou
  • filtre transverse

x(n-1)
x(n)
x(n-Q)
T
T
T
b(Q)
b(Q-1)
b(0)
b(1)
b(2)
y(n)
  • / H(z) b(0) b(1) z -1 b(2) z-2 /
  • int x3, xin, yout
  • float b3
  • x0xin / xin contient
    l'echantillon d'entree /
  • / calcul du
    filtre RIF /
  • yout x0b0
  • for(i2 igt0 i - -)
  • youtyoutxibi xixi-1
  • / sortie de yout
    /

34
Réalisation dun filtre FIR
  • Multiplication-addition en un cycle instruction
  • Filtre FIR ordre Q calculé
  • en Q1 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(i1)
  • Soit 4 accès mémoire par instruction
  • Dans la pratique, diverses techniques réduisent
    le nombre daccès à 2 ou 3.
  • Ceci reste vrai pour dautres types dalgorithmes

35
Architecture mémoire
  • Plusieurs accès mémoire nécessaires pour chaque
    instruction
  • Solutions
  • Organisation mémoire
  • Architectures HARVARD
  • Mémoires à accès multiples
  • Cycles spéciaux READ/WRITE
  • Réduction du nombre daccès
  • Mémoire cache programme
  • Adressage circulaire (Modulo Adr.)
  • Programmation intelligente

36
Organisation mémoire
  • Principe de base
  • Architecture de Von Neumann

Unités de contrôle et de calcul
Bus Adresses
Bus Données
Mémoire programme et données
  • Un seul accès mémoire par cycle instruction
  • FIR dordre Q calculé en au moins 4Q cycle
    instructions
  • Architecture mal adaptée, bande passante mémoire
    limitée

37
Organisation mémoire
  • Les DSP ont tous une organisation mémoire
    spéciale pour augmenter la bande passante
  • Chaque DSP a ses particularités
  • Lutilisation de la mémoire est soumise à des
    restrictions qui compliquent beaucoup la
    programmation.

38
Organisation mémoire
  • Architecture Harvard

Unités de contrôle et de calcul
Bus Adresse A
Bus Adresse B
Bus Donnée A
Bus Donnée B
Mémoire programme A
Mémoire de données B
39
Organisation mémoire
  • Architecture Harvard Modifiée

Unités de contrôle et de calcul
Bus Adresse A
Bus Adresse B
Bus Donnée A
Bus Donnée B
Mémoire programme et données
A
Mémoire de données B
40
Organisation mémoire
  • Architecture Harvard modifiée
  • Avantage 2 accès mémoire par cycle instruction
  • Mémoire A programme et coefficients du filtre
  • Mémoire B échantillons dentrée
  • Une étape du filtre calculée en deux instructions
  • Exemples
  • ADSP 21xx
  • ATT DSP16xx
  • Extension à 3 mémoires
  • DSP5600x, DSP96002
  • Zilog Z893

41
Organisation mémoire
  • Architecture Harvard modifiée
  • Mémoires intégrées avec le processeur (On-chip)
  • Un seul bus (adressedonnée) disponible à
    lextérieur (Off-chip) pour limiter le nombres de
    broches diminution des performances
  • Rappel Il faut 4 accès mémoire par instruction
    ????
  • Il faudra utiliser dautres techniques pour
    atteindre les performances maximales

42
Organisation mémoire
  • Mémoire à accès multiple
  • Mémoire rapide autorisant plusieurs accès
    séquentiels par cycle instruction

Cycle instruction
Ad.
1
2
3
4
Donnée
1
2
3
4
  • Avec une architecture Harvard Modifiée
  • 3 ou 4 accès mémoire par cycle
  • Ex Zoran ZR3800x
  • Avec une architecture type VonNeumann
  • 4 accès par cycle
  • Ex Lucent DSP32

43
Organisation mémoire
  • Mémoire multi-port

Unités de contrôle et de calcul
Bus Adresse A
Bus Adresse B
Bus Donnée A
Bus Donnée B
Bus Adresse C
Bus Donnée C
Mémoire programme et données
A
Mémoire de données B
44
Organisation mémoire
  • Mémoire multi-port
  • Avantage programmation simplifiée
  • Inconvénients
  • électronique beaucoup plus complexe donc plus
    coûteuse
  • Extension Off-chip pratiquement impossible
  • Exemple Motorola DSP561xx
  • (Voir schéma précédent)

45
Organisation mémoire
  • Cycles spéciaux READ/WRITE
  • Exemple

Mémoire
x
x1
x2
x3
Registre
Processeur
46
In
hL-1 hL-2 . . . h0
XN XN-1 . . . XN-(L-1)
... 0F03 0F04
pma
dma
0F04
AR0
RPT L-1 MACD hL-1,- APAC
47
Réduction du nombre daccès
  • Mémoire cache programme
  • (En général, les DSP nont pas de mémoire cache
    pour les données)

Unités de contrôle et de calcul
Cache Instruct.
Bus Adresses
Bus Données
Mémoire programme et données
Mémoire contenant des instructions
éxécutées souvent (boucles...) Réduction
du nombre daccès à la mémoire programme
48
Réduction du nombre daccès
  • Mémoire cache programme
  • Il existe de nombreuses variations autour du
    principe de base
  • Dans les DSP, la structure de la mémoire cache
    est beaucoup plus simple que dans les processeurs
    dusage général (type Pentium...)
  • Loptimisation nécessite une prise en compte par
    le programmeur de la structure et des
    possibilités de la mémoire cache
  • Contrôle manuel du cache pour maîtriser les
    timings.

49
Réduction du nombre daccès
  • Mémoire cache programme
  • Repeat buffer 1 à N instructions
  • ex ATT DSP16 16 instructions
  • ex TMS 320C2x/5x 1 instruction
  • Vrai cache mono-ligne
  • exZoran ZR3800x
  • Vrai cache multi-ligne
  • exTMS320C3x 2 fois 32 instructions

50
Réduction du nombre daccès
  • Adressage circulaire
  • But éviter lopération décriture x(i)x(i-1)
    dans le filtre RIF
  • Principe utiliser des pointeurs mobiles pour
    repérer le début et la fin des données

t
1
2
3
4
5
6
7
D
F
t1
2
3
4
5
6
7
8
D
F
t2
3
4
5
6
7
8
9
D
F
51
Réduction du nombre daccès
  • Adressage circulaire
  • Gérer les pointeurs par programme ?
  • Diminution très importante des performances
  • Les DSP disposent de générateur dadressage
    circulaire
  • exemple
  • Tampon circulaire
  • adresse de départ 100
  • longueur 4
  • Registre dadressage circulaire R0
  • initialisation R0100
  • valeur successive de R01
  • 101,102,103,100,101,...

52
Réduction du nombre daccès
  • Adressage circulaire de type 1
  • Registre auxiliaire indiquant la longueur du
    tampon
  • ladresse de départ doit en général être un
    multiple de la puissance de deux supérieure à la
    longueur
  • exemple
  • tampon circulaire de 48 octets,
  • adresse de départ multiple de 64
  • TMS320C3x/4x, ADSP, Motorola,...

53
Réduction du nombre daccès
  • Adressage circulaire de type 2
  • Registres auxiliaires indiquant le début et la
    fin du tampon circulaire
  • TMS320C5x, ATT DSP16xx
  • Nombre de tampons circulaires simultanés
  • ATT DSP16xx 1
  • TMS320C5x 2
  • Motorola 5600x 4
  • ADSP 8

54
X0 - -

X0 X1 -
X0 X1 X2
X3 X1 X2



dma t0
dma t1
dma t2
dma t3
h0 h1 h2
0CE0 0CE1 0CE2
RPT L-1 MAC h0,- APAC
pma
55
Réduction du nombre daccès
  • Programmation intelligente
  • Réutiliser des informations déjà lues en mémoire
    et présentes 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) x(1)
  • LD R1,c(1) c(1)
  • R2 R0R1 , LD R0,x(0) c(1)x(1)
  • R3 R0R1 , LD R1,c(2) c(1)x(0)
  • R2 R2 R0R1 , LD R0,x(-1) x(0)c(2)
  • R3 R3 R0R1 , LD R1,c(3) x(-1)c(2)
  • R2 R2 R0R1 , LD R0,x(-2) x(-1)c(3)
  • R3 R3 R0R1 , LD R1,c(4) x(-2)c(3)
  • R2 R2 R0R1 , LD R0,x(-3) x(-2)c(4)
  • R3 R3 R0R1 x(-3)c(4)
  • 1 instruction par étage du filtre
  • 1vs 2 accès mémoire par instruction

56
6.5 - Architecture pipeline
  • Principe du pipeline
  • Découper un opération en N sous-opérations (S/op)
    et
  • Exécuter les N sous-opérations en parallèle (sur
    des données différentes)

Opération
R
R
H
S/op 2
S/op 1
S/op 3
R
R
R
R
H
57
Principe du pipeline
  • Exemple (proche TMS320C3x)
  • Exécution dune instruction
  • Lecture de linstruction en mémoire programme
    (OpCodeFetch)
  • Décodage de linstruction
  • Lecture ou écriture dun opérande en mémoire de
    donnée
  • Exécution éventuelle dun opération arithmétique
    ou logique

Exécution non-pipelinée
58
Principe du pipeline
Exécution pipelinée
  • La vitesse déxécution dun programme est
  • multipliée par N (ici 4) nombre détage du
  • pipeline
  • En apparence, une instruction est éxécutée
  • à chaque cycle horloge
  • La durée réelle déxécution dune instruction
  • est de N cycles horloge

59
Principe du pipeline
  • Utilisé depuis longtemps, sous de multiples
    formes, dans de nombreux ordinateurs
  • Dans les DSP...
  • Presque tous les DSP sont pipelinés
  • Le nombre détages varie de 2 à 5
  • ADSP 2
  • La plupart des DSP 3
  • Opcode Fetch
  • Decode/OperandRead/Write
  • Execute (MAC, ALU, ...)
  • TMS320C3x , ... 4
  • TMS320C54x , ... 5
  • Le pipelinage augmente le nombre daccès à la
    mémoire (cf chap. précédent)
  • Dans lexemple précédent il passe de ½ accès à 2
    accés /cycle horloge

60
Principe du pipeline
  • Avantage dun processeur pipeliné
  • Gain en vitesse déxécution
  • Inconvénients
  • Electronique plus complexe
  • Mémoire plus rapide
  • Programmation plus complexe (Compilateur et/ou
    programmeur)pour
  • Eviter les erreurs déxécution (Pipeline Hazards)
  • Eviter les conflits daccés aux ressources
    (mémoire, registre, unité de calcul...) pour
    optimiser un programme et atteindre les
    performances maximales (ex une Add/Mult par
    cycle horloge)

61
Principe du pipeline
  • Le parallélisme déxécution dans un pipeline peut
    créer
  • des erreurs dûes à linversion de lordre
    déxécution(Pipeline Hazards)
  • READ puis WRITE
  • WRITE puis READ
  • WRITE puis WRITE
  • des trous dans lactivité du pipeline dûs aux
    conflits daccès aux ressources
  • Solutions
  • Interlocking hardware
  • Optimisation par table de réservation

62
7. Transition
  • Chaîne de traitement numérique
  • Filtrage, échantillonnage, quantification
  • Restitution, filtrage
  • Signal aléatoire
  • Densité de probabilité, Moments
  • Autocorrelation, DSP
  • Filtres
  • h(t) / H(Z) / H(f)
  • FIR / IIR AR(MA)
  • Implantation
  • Synthèses
  • Filtrage adaptatif (principes, modes)
  • Processeurs DSP
  • Fixe/Flottant
  • Filtrage

Prêts pour la parole, le son et l image
Write a Comment
User Comments (0)
About PowerShow.com