Académique Documents
Professionnel Documents
Culture Documents
Architecture Des DSP
Architecture Des DSP
1. Caractéristiques générales
2. Unités de calcul
4. Architecture mémoire
5. Architecture pipeline
Traitement du Signal 1
TC
6.1- Architecture générale
Adr. Don.
CAN
CNA
Proc.
DSP
ROM
RAM
Comm.
Horloge
Timers...
Cont.
Traitement du Signal 2
TC
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
l’architecture 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
Traitement du Signal 3
TC
Architecture générale
Traitement du Signal 4
TC
Architecture générale
Mémorisation
Boucle infinie et Traitement
Sortie d’un
échantillon
Retour d’interruption
Traitement du Signal 5
TC
Architecture générale
• Diagramme temporel
Te
Hor.Acqu.
Interruption
Activité
du proc.
T Sortie du résultat
Durée du traitement
Entrée de l’échantillon
T < Te
Traitement du Signal 6
TC
Fréquence d’échantillonnage
• Domaine d’utilisation des DSP
Fréquence d’échantillonnage (Hz)
1G Radar
100M HDTV
10M
1M Vidéo
100k Modem radio
Audio
10k
Parole Modem vocaux
1k
100 Contrôle sismique
10
1 Instrumentation
1/10
1
1/10 Finances
1/100
1/1000 Météo
Complexité des algorithmes
Traitement du Signal 7
TC
Fréquence d’horloge
Traitement du Signal 8
TC
Caractéristiques principales
• Multiplication-addition rapide
(MAC) avec un format de calcul
étendu pour éviter les dépassements
• Mémoire à accès multiple
• Modes d’adressage spécialisés
• Exécution rapide des boucles
• I/O intégrées avec le processeur
Traitement du Signal 9
TC
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
Traitement du Signal 10
TC
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
Traitement du Signal 11
TC
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
Traitement du Signal 12
TC
Virgule fixe
• Eléments principaux
– Multiplieur
– Accumulateurs
– Unité arithmétique et logique
– Shifters
Traitement du Signal 13
TC
Virgule fixe
Motorola, DSP5600x
Traitement du Signal 14
TC
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é
I1
I2
I3
I4
Instruction
Horloge
Traitement du Signal 15
TC
Virgule fixe
– Multiplieur Multiplieur
-
accumulateur
MAC
Reg.
Reg.
Multiplication-addition en
Deux instructions Une instruction
Traitement du Signal 16
TC
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
l’ennemi de la performance.
Traitement du Signal 17
TC
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
Traitement du Signal 18
TC
Virgule fixe
Traitement du Signal 19
TC
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
Traitement du Signal 20
TC
Virgule fixe
• Certains DSP n’ont 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
Traitement du Signal 21
TC
Virgule fixe
ALU
• Opérations entières et binaires
(+, -, inc, dec, et, ou, xor...)
• Taille des opérandes de l’ALU
– taille des accumulateurs ou
– taille des opérandes du
multiplieur
Traitement du Signal 22
TC
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 d’un DSP
à un autre.
Traitement du Signal 23
TC
Virgule fixe
Max.
x
y
Min
Ex: En décimal, 2 chiffres 00 à 99
23+80 = 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
Traitement du Signal 24
TC
Virgule fixe
• Saturation
x+y
Max.
y
x
Min
ex: 23+80 = 99 !!
Résultat faux mais moins dangereux
Traitement du Signal 25
TC
Virgule flottante
Lucent, DSP3210
Traitement du Signal 26
TC
Virgule flottante
• Structure similaire aux unités en virgule
fixe
• DSP avec
– unité flottante seule (TI, AD, Motorola)
• l’unité flottante accepte la virgule
fixe
– unité flottante + unité fixe (AT&T)
Traitement du Signal 27
TC
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
Traitement du Signal 28
TC
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)
Traitement du Signal 29
TC
Virgule flottante
Registres Opérandes
• Entrée quasiment exclusives du
multiplieur flottant
• Les calculs flottants doivent donc
être précédés d’une lecture explicite
(Move) des opérandes en mémoire
• Chargement des registres en
parallèle avec les opérations
arithmétiques
Traitement du Signal 30
TC
Virgule flottante
Exceptions
• Overflow
– positionnement d’un indicateur
et/ou interruption
– saturation du résultat
• Underflow
– positionnement d’un indicateur
et/ou interruption
– Mise à zéro du résultat
• Autres exceptions
Division par 0, format invalide...
Traitement du Signal 31
TC
6.4 - Architecture mémoire
Traitement du Signal 32
TC
Réalisation d’un filtre FIR
• Structure non récursive ou
filtre transverse
x(n) T x(n-1) x(n-Q)
T T
b(0) b(1) b(2) b(Q-1) b(Q)
y(n)
Traitement du Signal 33
TC
Réalisation d’un filtre FIR
• Multiplication-addition en un cycle
instruction
• Filtre FIR ordre Q calculé
en Q+1 instructions
• MAIS pour chaque cycle instruction:
– Lire l’instruction (Opcode Fetch)
– Lire une valeur x(i)
– Lire un coefficient b(i)
– Ecrire x(i) en x(i+1)
Soit 4 accès mémoire par instruction
• Dans la pratique, diverses techniques
réduisent le nombre d’accès à 2 ou 3.
• Ceci reste vrai pour d’autres types
d’algorithmes
Traitement du Signal 34
TC
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 d’accès
• Mémoire cache programme
• Adressage circulaire (Modulo Adr.)
• Programmation «intelligente»
Traitement du Signal 35
TC
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
Traitement du Signal 36
TC
Organisation mémoire
Traitement du Signal 37
TC
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
Traitement du Signal 38
TC
Organisation 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
Mémoire de données et données
B A
Traitement du Signal 39
TC
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 d’entrée
• Une étape du filtre calculée en deux
instructions
– Exemples:
• ADSP 21xx
• AT&T DSP16xx
– Extension à 3 mémoires
• DSP5600x, DSP96002
• Zilog Z893
Traitement du Signal 40
TC
Organisation mémoire
Traitement du Signal 41
TC
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
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 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)
Traitement du Signal 44
TC
Organisation mémoire
• Cycles spéciaux READ/WRITE
– Exemple
x Mémoire
x+1
x+2
x+3
Registre
Processeur
Traitement du Signal 45
TC
In XN hL-1
XN-1 hL-2
. .
... . .
0F03 . .
0F04 X h0
N-(L-1)
AR0
RPT #L-1
MACD hL-1,*-
APAC
Traitement du Signal 46
TC
Réduction du nombre d’accès
• Mémoire cache programme
(En général, les DSP n’ont 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
Traitement du Signal 48
TC
Réduction du nombre d’accès
Traitement du Signal 49
TC
Réduction du nombre d’accès
• Adressage circulaire
– But: éviter l’opé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
t+1 2 3 4 5 6 7 8
D F
t+2 9 3 4 5 6 7 8
F D
Traitement du Signal 50
TC
Réduction du nombre d’accès
• Adressage circulaire
– Gérer les pointeurs par programme ?
Diminution très importante des
performances
– Les DSP disposent de générateur
d’adressage circulaire
• exemple:
Tampon circulaire
adresse de départ 100
longueur 4
Registre d’adressage circulaire R0
initialisation R0=100
valeur successive de R0+1:
101,102,103,100,101,...
Traitement du Signal 51
TC
Réduction du nombre d’accès
Traitement du Signal 52
TC
Réduction du nombre d’accès
Traitement du Signal 53
TC
* X0 X0 X0 X3
*
- * X1 X1 X1
- - * X2 X2
dma dma dma dma
t=0 t=1 t=2 t=3
h0 0CE0
h1 0CE1
h2 0CE2
RPT #L-1
pma
MAC h0,*-
APAC
Traitement du Signal 54
TC
Réduction du nombre d’accè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 = R0*R1 , LD R0,x(0) ; c(1)*x(1)
R3 = R0*R1 , LD R1,c(2) ; c(1)*x(0)
R2 = R2 + R0*R1 , LD R0,x(-1) ; x(0)*c(2)
R3 = R3 + R0*R1 , LD R1,c(3) ; x(-1)*c(2)
R2 = R2 + R0*R1 , LD R0,x(-2) ; x(-1)*c(3)
R3 = R3 + R0*R1 , LD R1,c(4) ; x(-2)*c(3)
R2 = R2 + R0*R1 , LD R0,x(-3) ; x(-2)*c(4)
R3 = R3 + R0*R1 ; x(-3)*c(4)
1 instruction par étage du filtre
1vs 2 accès mémoire par instruction
Traitement du Signal 55
TC
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)
R Opération R
Traitement du Signal 56
TC
Principe du pipeline
• Exemple (proche TMS320C3x)
– Exécution d’une instruction
• Lecture de l’instruction en mémoire
programme (OpCodeFetch)
• Décodage de l’instruction
• Lecture ou écriture d’un opérande
en mémoire de donnée
• Exécution éventuelle d’un opération
arithmétique ou logique
Cycle 1 2 3 4 5 6 7 8
I/F I1 I2
Dec I1 I2
R/W I1 I2
Exec I1 I2
Exécution non-pipelinée
Traitement du Signal 57
TC
Principe du pipeline
Cycle 1 2 3 4 5 6 7 8
I/F I1 I2 I3 I4 I5 I6
Dec I1 I2 I3 I4 I5
R/W I1 I2 I3 I4 I5
Exec I1 I2 I3 I4 I5
Exécution pipelinée
• La vitesse d’éxécution d’un programme est
multipliée par N (ici 4) nombre d’étage du
pipeline
Traitement du Signal 58
TC
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
d’accès à la mémoire (cf chap. précédent)
– Dans l’exemple précédent il passe de
½ accès à 2 accés /cycle horloge
Traitement du Signal 59
TC
Principe du pipeline
• Avantage d’un 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 d’accé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)
Traitement du Signal 60
TC
Principe du pipeline
• Le parallélisme d’éxécution dans un
pipeline peut créer
– des erreurs dûes à l’inversion de
l’ordre d’éxécution
(Pipeline Hazards)
• READ puis WRITE
• WRITE puis READ
• WRITE puis WRITE
– des «trous» dans l’activité du
pipeline dûs aux conflits d’accès
aux ressources
• Solutions
– Interlocking hardware
– Optimisation par table de
réservation
Traitement du Signal 61
TC
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