3. Traitement numérique du signal
Filtre anti- Échantillonnage +
Traitement
repliement Conversion
Blocage +
Filtrage
Conversion
De quelles solutions dispose-t-on pour effectuer ce travail
Quelle est la spécificité d’un processeur DSP
3
4. Traitement numérique du signal
Signal original grandeur
physique
Signal traité
Capteur Signal numérique
Adaptation du signal
G d’entrée
(gain+démodulation)
MEM
Filtre anti-
repliement
Quantification DSP
Filtre de
CAN CNA
E/S lissage
Échantillonnage
fs
4
5. Profils d’utilisation du DSP
Embarqué Haute performance
Faible coût unitaire Puissance : Calcul
intensif
Faible consommation :
part importante de la Parallélisme
consommation pour la Multiplication des
mémoire unités de calcul
internes
Architecture limitée au Interfaces multi-DSP
strict nécessaire
Interface avec un
Temps réel ordinateur hôte
5
6. Applications des DSP
Communications Image / vidéo
Filaire (xDSL, câble) Compression/Codage
Sans fil Composition
(cellulaires, télévision Traitement
numérique, radio
numérique)
Modem
Cryptage
Militaire
Imagerie :
Audio radar, sonar…
Mixage et effets Cryptographie
Suppression de bruit Guidage de missiles
Annuleur d’echo
6
7. Applications des DSP
Automatisation Biomédical
Commande de Équipements de monitoring
machines Signaux biophysiques
Contrôle de moteurs ElectroEncéphaloGramme
Robots (EEG)
ElectroCardioGramme
(ECG)
Radiographie
Electronique Automobile Instrumentation
Contrôle du moteur Analyseurs de spectre
Assistance au freinage Générations de fonctions
Aide à la navigation Analyseurs de régimes
Commandes vocales
transitoires
7
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
8
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
9
10. Représentation des nombres
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.
10
11. Virgule fixe ou virgule flottante ?
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.
11
15. Spécificités des DSP
Algorithme classique de TNS : Filtre RIF
N 1
y ( n) a(i) x(n i)
i 0
Pour chaque a(i) x(n-i) :
Recherche de l’instruction
3 accès à la Recherche du coefficients a(i)
mémoire
Recherche de la donnée x(n-i)
2 accès à Multiplication a(i) x(n-i)
l’unité
de calcul Accumulation a(i-1) x(n-i-1) + a(i) x(n-i)
15
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
16
17. Architectures Von Neuman et Harvard
Von Neuman Harvard
Un seul chemin d'accès à la Séparation des mémoires
mémoire programme et données
Architecture des processeurs Meilleure utilisation du CPU :
d’usage général Chargement du programme et
(Pentium, 68000) des données en parallèle
Architecture des DSP
17
18. Cache d'instructions
DSP
Mémoire Cache
d’instructions Mémoire Instruction
CPU
Mémoire Cache
de données Mémoire Données
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.
18
19. DSP améliorés
Exécution parallèle VLIW (Very Long Instruction Word)
d’instructions simples Une instruction contient plusieurs
sous-instructions destinées à des
unités distinctes.
Architecture plus homogène Exemples :
Se prête mieux à TMS320C62xx
l’optimisation par le StarCore SC140
compilateur.
Superscalaire
Processeurs hautes- Réorganisation automatique des
performances instructions dans le pipeline de
Bus larges, consommation façon à maximiser le parallélisme.
plus élevée.
Coût élevé. Peu utilisé dans les DSP, à cause
des contraintes temps réel.
19
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
20
21. SIMD : TigerSHARC
Le TigerSHARC d’Analog Devices met en œuvre les deux types de
SIMD :
Instruction MAC SIMD
SIMD par unités parallèles
Unité de Unité de
calcul n°1 calcul n°2
ALU MAC Shift ALU MAC Shift
SIMD par partage de
l’unité de traitement
(split-MAC)
4 multiplications 16 bits 4 multiplications 16 bits
au lieu de au lieu de
1 multiplication 64 bits 1 multiplication 64 bits
21
22. C54x Block Diagram • 17x17 MAC Unit
• Saturation and
Rounding
Program/Data ROM Program/Data SRAM
16K Words JTAG Test/ Hardware
128K Words
Emulation • Two 40-bit ACC’s
D(15-0) Control
• 40-bit ALU
Program/Data Buses
• 40-bit Barrel Shifter
Muxed GP I/O
A(23-0) • Temporary
MAC ALU DMA Timer Register
17 x 17 MPY 40-Bit ALU
CMPS Operator
Ch 0
8/16-bit Host Port • Exponent Encoder
40-Bit Adder Ch 1 Interface (HPI)
• Program and Data
Peripheral Bus
(VITERBI)
RND, SAT EXP Encoder Ch 2 Multichannel Buffered
Serial Port (McBSP) Address
Shifter Accumulators Ch 3
40-Bit ACC A Multichannel Buffered Generation
40-Bit Barrel Ch 4 Serial Port (McBSP)
(-16, 31) 40-Bit ACC B Units
Ch 5
Addressing Unit
Multichannel Buffered
Serial Port (McBSP) • Compare, Select
8 Auxiliary Registers
PLL Clock and Store Unit
2 Addressing Units Generator • 4 Internal Bus
S/W Waitstate
Generator Pairs
Power Management
• External Interface
C5416 example
22
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.
Shared memory
two-way RAM : permet
l'accès simultané à la
mémoire par les deux DSP
Architecture du C5421 24
26. VLIW : TMS320C62x
Data path
Deux ensembles d’unités de C62 CPU
traitement (1 et 2)
Interrupt
Instruction Fetch Control
Control
Instruction de 256 bits Registers
Instruction Dispatch
8 sous-instructions de 32 bits Instruction Decode Emulation
Data Path 1 Data Path 2
Unités logique .L
Register File A Register File B
Arithmétique et comparaisons
A15-A0 B15-B0
Unité de décalage .S
ALU et Shifter
L1 S1 M1 D1 D2 M2 S2 L2
Unités de multiplication .M + + + + + +
Multiplication + x x +
Unités de données .D
Mouvement de données
de/vers la mémoire
26
27. 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)
Chemin de données A Chemin de données B
Registre A0 à A31 Registre B0 à B31
.L1 .S1 .M1 .D1 .L2 .S2 .M2 .D2
Chemin croisé 27
28. Paquet de Fetch et d’Exécution
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
28
29. Pipeline
Instructions segmentées en étages.
Exécution entrelacée de plusieurs instructions.
Augmentation de la fréquence d'horloge.
É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 séquentielle
É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 …
Exécution avec pipeline
29
30. Pipeline
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
Fetch Decode Execute
Étapes d’extraction du Programme
(fetch, PF)
PG PS PR
PW
Génération Transmission de Réception et
Attente accès
d’adresse l’adresse lecture du PF
mémoire
Dans le CPU (à la mémoire) (au CPU)
30