Title: ARCHITECTURE ET UTILISATION DES DSP (Programmable Digital Signal Processors)
16. Architecture des DSP
1. Caractéristiques générales 2. Unités de
calcul 4. Architecture mémoire 5. Architecture
pipeline
26.1- Architecture générale
Adr.
Don.
CAN
CNA
Proc. DSP
ROM
RAM
Comm.
Horloge Timers...
Cont.
3Architecture 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
4Architecture 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....
5Architecture générale
Interruption, horloge dacquisition
Programme principal
Entrée dun échantillon
Init.
Mémorisation et Traitement
Boucle infinie
Sortie dun échantillon
Retour dinterruption
6Architecture générale
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
7Fré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
8Fré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...)
9Caracté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
10Repré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
11Quelques 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
126.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
13Virgule 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)
14Virgule fixe
Motorola, DSP5600x
15Virgule 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é
16Virgule fixe
- Multiplieur Multiplieur -accumulateur
MAC
Reg.
Reg.
Multiplication-addition en
Deux instructions
Une instruction
17Virgule 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.
18Virgule 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
19Virgule fixe
Texas Instrument, TMS320C50
20Virgule 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
21Virgule 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
22Virgule 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
23Virgule 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.
24Virgule 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
25Virgule fixe
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)
26Virgule flottante
Lucent, DSP3210
27Virgule 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...)
28Virgule 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
29Virgule 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)
30Virgule 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
31Virgule 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...
326.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
33Ré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
/
34Ré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
35Architecture 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
36Organisation 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
37Organisation 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.
38Organisation mémoire
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
39Organisation 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
40Organisation 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
41Organisation 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
42Organisation 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
43Organisation mémoire
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
44Organisation 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)
45Organisation mémoire
- Cycles spéciaux READ/WRITE
- Exemple
Mémoire
x
x1
x2
x3
Registre
Processeur
46In
hL-1 hL-2 . . . h0
XN XN-1 . . . XN-(L-1)
... 0F03 0F04
pma
dma
0F04
AR0
RPT L-1 MACD hL-1,- APAC
47Ré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
48Ré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.
49Ré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
50Ré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
51Ré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,...
52Ré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,...
53Ré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
54X0 - -
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
55Ré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
566.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
57Principe 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
58Principe 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
59Principe 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
60Principe 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)
61Principe 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
627. 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