Chapitre 1 DSP 2019-2020
Chapitre 1 DSP 2019-2020
Prof. M. Bouziani
Chapitre 1 : Architecture et Périphériques des DSP
2
Chapitre 1. Architecture et Périphériques des
DSP
- Présentation des différentes familles de DSP
- Classification des DSP
- Introduction de l'unité de calcul MAC (Multiply and ACcumulate)
- Les mémoires internes (Architecture Harvard)
- Présentation du jeu d'instructions de chaque unité de calcul (Architecture RISC)
- Les différents périphériques internes pour l'interfaçage avec le monde extérieur: (HPI,
GPIO, McBSP, Timers, PLL…)
3
Introduction
• Traitement numérique du signal : application
d’opérations mathématiques sur des signaux représentés
sous forme numérique
• Représentation des signaux sous forme de séquences
d’échantillons
• Les signaux numériques sont obtenus à partir de signaux
physiques via des récepteurs (ex : microphones) et des
convertisseurs analogiques-numériques (ADC)
• Les signaux numériques sont reconvertis en signaux
physiques par des convertisseurs numériques-analogiques
(DAC)
• Processeurs de traitement du signal (DSP) : système
électronique qui traite des signaux numériques
4
Introduction
Les DSP sont utilises dans de nombreux domaines d’applications.
La façon dont un DSP s’insère dans une chaine de traitement du
signal est illustrée dans la figure suivante. Cette chaine comporte
généralement trois étapes :
- la conversion analogique numérique,
- le traitement par le DSP,
- et la conversion numérique analogique.
5
Introduction
6
Algorithmes et applications typiques
7
Un DSP (Digital System Processing) est un type
particulier de microprocesseur. Il se caractérise par le fait
qu’il intègre un ensemble de fonctions spéciales. Ces
fonctions sont destinées à le rendre particulièrement
performant dans le domaine du traitement numérique du
signal.
La plupart des DSP sont particulièrement destinés à des
applications temps réel, dans lesquelles le temps de
traitement est primordial. En plus, ils se caractérisent par
une architecture optimisée pour le traitement d’une
grande quantité de données en parallèle à chaque cycle
d’horloge, ce qui rend les applications à base de DSP se
caractérisent par une grande souplesse.
8
Traitement numérique du signal
Signal original grandeur
physique
Signal traité
Adaptation du signal
G d’entrée
(gain+démodulation) MEM
Filtre anti-
repliement DSP
Quantification
Filtre de
CAN CNA
E/S lissage
Échantillonnage
fs
9
TNS : contraintes
1
0
TNS : contraintes
11
TNS
1
2
DSP : Définition
1
3
DSP : Définition
1
5
Architecture d’un système à base Processeur
Processeur
1
6
Schéma Fonctionnel d’un processeur
Processeur
1
7
Schéma Fonctionnel d’un processeur
1
8
Schéma Fonctionnel d’un processeur
1- Unité de commande :
Elle permet de séquencer le déroulement des instructions. Elle
effectue la recherche en mémoire de l'instruction et en assure le
décodage pour enfin réaliser son exécution puis effectue la
préparation de l'instruction suivante.
Elle est composée de :
Le compteur de programme : (Program Counter PC)
Il est constitué par un registre dont le contenu représente
l’adresse de la prochaine instruction à exécuter. Il est donc initialisé
avec l'adresse de la première instruction du programme. Puis il sera
incrémenté automatiquement pour pointer vers la prochaine
instruction à exécuter.
1
9
Schéma Fonctionnel d’un processeur
2
0
Schéma Fonctionnel d’un processeur
2- Unité de traitement :
Elle regroupe les circuits qui assurent les traitements nécessaires à
l'exécution des instructions. L’unité de traitement est composée des
principales blocs d’exécution suivantes :
- Bloc d’unités arithmétiques et logiques (UAL),
- Bloc des registres,
- Bloc d’unités MAC (Multiply and Accumulate),
2
1
DSP : Avantages
2
3
DSP : Avantages
• Répétabilité, reproductibilité :
les valeurs des composants analogiques sont
définies avec une marge de précision plus ou
moins grande. Dans ces conditions, aucun
montage analogique n’est strictement
reproductible à l’identique, il existe toujours des
différences qu’il convient de maintenir dans des
limites acceptables. Un programme réalisant un
traitement numérique est par contre
parfaitement reproductible.
2
4
Rôle du DSP
• Opération MAC :
Le traitement numérique du signal, qu'il provienne du son ou
d'une image vidéo, est rendu accessible par le DSP grâce à son
unité de calcul spécifique multiplicateur / additionneur /
accumulateur de données.
En effet, tout DSP est prévu pour effectuer le plus rapidement
possible, en principe en un seul cycle d'horloge, l'opération
multiplication/addition et accumuler (MAC) sur des grandeurs
numériques :
MR
où X et Y sont soit des données, soit des constantes et R une
donnée, une constante ou un résultat précédent. MR est alors le
résultat de l'opération arithmétique.
2
5
Traitement typiques
x
pointeur sur x
N 1 *
x ( n)
pointeur ++
2 MAC
• Energie + mémoire
i 0
N 1
• Convolution y ( n ) x ( n m)
i 0
x h
pointeur sur x
MAC * pointeur ++
N 1 mémoire
• Corrélation x ( n) x ( n m)
i 0
+
pointeur sur h
pointeur ++
N 1
x (n) y (n)
mémoire
• Produit scalaire
i 0
N 1
x ( n) y ( n)
2
• Distance
i 0
2
7
Architecture générale d’un processeur
Unité de
DSP
Unités de
DSP
contrôle traitement
Bus internes
2
8
Structure interne du DSP
2
9
DSP : Unité de commande ou de contrôle
Séquençage
Décodage des instructions
Pilotage des autres unités
3
0
DSP : Unités de traitement mathématique
3
2
DSP : Mesure de performance
3
3
DSP : Unités de génération d’adresses
Unités de traitement spéciales
Pilotées par le séquenceur
Calculs sur des entiers
Adresses mémoires
Méthodes pré-programmées
Incrémentation
Décrémentation
Adressage circulaire
Incrémentation bit-reverse (pour la FFT)
3
4
Présentation des différentes familles de DSP
3
5
Accès à la Mémoire
3
6
Rappels : Bus
Le DSP est le maître du
BUS
Périphérique bus
DSP
Il est le seul à écrire sur les
bus adresse et contrôle
Le périphérique accepte
adresses Périphérique sur le bus données
DSP données Lecture: il fournit la donnée
contrôle demandée
Ecriture : il récupère la
donnée fournie par le DSP
Adresses : sélection du périphérique Haute impédance: il se
et d’une donnée en son sein déconnecte du bus
Données : valeur de la donnée à échanger
3
(1) Charger une instruction depuis la mémoire
(2) Charger les opérandes depuis la mémoire
(3) Effectuer les calculs
(4) Stocker le résultat en mémoire
3
8
Fonctionnement basique d’une opération de calcul
Op Code
Op Code
Tous les Code opérations et les opérandes sont des codes binaires
Un Programme est une série d’instructions successives de Op Codes
et d’opérandes sauvegardés en mémoire (RAM, ROM, ….)
Operation code
Instruction 1
Opérande
Operation code
Instruction 2
Opérande
Operation code
Instruction 3
Opérande
Operation code Instruction 4
4
0
Assembleur – Langage Machine
Op Code Opérande
Hexadecimal
RAM
Adresse de
3E 0000H localisation e
mémoire
01 0001H 3E 01
4
1
Principales Architectures des systèmes à base de DSP
4
2
Principales Architectures des systèmes à base de DSP
4
4
Architecture de Harvard
Mémoire Programme
DSP
Mémoire Données
4
5
Architecture Harvard modofiée
Mémoire Données
4
6
Accès Mémoire Multi-port
Mémoire Données
4
7
Cache d’Instructions ou mémoire cache
DSP
cache
Mémoire Programme
d’instructions
+ Données
DSP
Mémoire Données
4
8
Mémoire interne sur les processeurs C54x
DSP
Mémoire Données
MUX
Mémoire Données
interruptions
DMA
configuration
programme
addr
Bus
data
ctrl
addr
données
Bus
data
ctrl
Mémoire P Mémoire D
périphériques
5
2
Fetch (lecture instruction)
programme
addr
Bus
data
ctrl
addr
données
Bus
data
ctrl
Mémoire P Mémoire D
5
3
Read/Write (lecture/écriture donnée)
programme
addr
Bus
data
ctrl
addr
données
Bus
data
ctrl
Mémoire P Mémoire D
5
4
Exemple : Diagramme bloc du TMS320C54x
Program/Data ROM
Program/Data RAM Mémoire
128K Words
16K Words JTAG Test/ interne
Emulation
D(15-0)
Control
MUX
Bus externe Program/Data Buses
Timer
A(23-0)
MAC ALU DMA Muxed GP I/O
17 x 17 MPY 40-Bit ALU Ch 0
40-Bit Adder CMPS Operator 8/16-bit Host Port
(VITERBI) Ch 1 Interface (HPI)
Peripheral Bus
Unités de RND, SAT EXP Encoder Ch 2 Multichannel Buffered
calcul Serial Port (McBSP)
Shifter Accumulators Ch 3
Multichannel Buffered
40-Bit Barrel 40-Bit ACC A Ch 4 Serial Port (McBSP)
(-16, 31) 40-Bit ACC B Ch 5 Multichannel Buffered
Serial Port (McBSP)
Addressing Unit
Génération
8 Auxiliary Registers PLL Clock
d’adresses Generator
2 Addressing Units
S/W Waitstate
Power Management Generator Entrées
Sorties
CPU
5
5
Structure interne du
TMS320C54x
5
6
Bus
Le bus programme PB sert à véhiculer les
instructions et les coefficients stockés dans la
mémoire programme. Ces données sont
adressées par le bus d’adresse de la mémoire
programme PAB
5
7
Bus Génération Génération
d'adresses d'adresses
Unité de controle programme données
Bus P
programme
Bus C / D
lecture
données
Bus E
écriture
données
5
8
Unité de traitementnt mathématique
5
9
Accumulateurs ALU
Shifter
Viterbi
MAC
6
0
Unité Arithmétique et Logique (ALU)
6
1
Multiplieur-accumulateur (MAC)
6
2
Unité de calcul : MAC
6
3
Shifter (registre à décalage)
6
4
Registres
IMR Registre Masque d’Interruption TREG Registre Temporaire
6
5
Pipeline
6
6
Pipeline
6
7
Pipelining
Instructions segmentées en Instruction Instruction 1
étages
Exécution entrelacée de Segmentation
en étages
plusieurs instructions
Chacune à un étage différent Fetch F1
Decode D1
Géré par le séquenceur Read R1
Augmentation de la Execute X1
fréquence d'horloge
Etages plus simples donc plus
rapides Entrelacement
6
8
Séquentiel vs pipeline
étage\temps t1 t2 t3 t4 t5 t6 t7 t8
Fetch F1 F2
Decode D1 D2
Read R1 R2
Execute X1 X2
étage \ temps t1 t2 t3 t4 t5 t6 t7 t8
Fetch F1 F2 F3 F4 F5 … … …
Decode D1 D2 D3 D4 D5 … …
Read R1 R2 R3 R4 R5 …
Execute X1 X2 X3 X4 X5
Chargement du pipeline
Exécution avec pipeline (Architecture de Harvard)
6
9
Pipeline : nombre de cycles
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
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 DSP (à la mémoire) (au DSP)
7
0
Pipeline
7
1
Pipeline
Exemple du TMS320C54x
6 étages de traitement
Prefetch (P) : Incrémentation du PC
(Program Counter)
Fetch (F) : Lecture de l’instruction en mémoire
Decode (D) : Décodage de l’instruction
Access (A) : Calcul des adresses des opérandes
Read (R) : Lecture des opérandes en mémoire
et calcul de l’adresse du résultat
Execute (X) : Exécution et écriture en mémoire
7
2
Retards dans le Pipeline
7
3
Exemple de conflit d'accès mémoire
Programme et données
dans une mémoire à 1 accès par cycle
P1 F1 D1 A1 R1 X1
P2 F2 D2 A2 R2 X2
P3 F3 D3 A3 R3 X3
P4 -- -- -- F4 D4 A4 R4 X4
-- -- -- P5 F5 D5 A5 R5 X5
-- -- -- P6 F6 D6 A6 R6
P1 F1 D1 A1 R1 X1
P2 F2 D2 A2 R2 X2
P3 F3 D3 A3 R3 X3
P4 F4 D4 A4 R4 X4
P5 F5 D5 A5 R5 X5
P6 F6 D6 A6 R6 X6
7
5
Bilan accès mémoire
Program Data
SARAM DARAM
ROM ROM
P Bus
Mémoire externe
A
Interface
D Bus
C Bus D
E Bus
7
6
Architecture CISC
7
8
TMS320C62X
Processeur à
virgule fixe
comportant 2
multiplieurs, 6 UALs
et 2 groupes de 16
registres de 32 bits
Instructions du type
RISC
Le processeur
peut effectuer des
opérations sur
8/16/32 bits de
données.
7
9
TMS320C62X
8
0
TMS320C62X : groupe opérateurs
8
1
TMS320C62X : groupe opérateurs
A0
A1 a1 N
A2 x1 Y a n xn
A3 prod .M n 0
A4 Y
.
. MPY .M a1, x1, prod
. ADD .L Y, prod, Y
. .L
A15
32 bits
8
2
VLIW (Very-Long-Instruction-Word)
Le processeur présente une architecture d’unités
opératives lui permettant d’exécuter plusieurs macro-
instructions contenues une instruction plus longue
(VLIW)
8
3
VLIW (Very-Long-Instruction-Word)
inst1
inst2
Instruction VLIW
inst3
inst4
inst5
inst6
inst7
inst8
8
4
VLIW : exemple du TMS320C62x
L1 S1 M1 D1 D2 M2 S2 L2
+ + + +
+ x x +
+ +
8
5
Applications des DSP
8
6
Applications des DSP
Lecteur MP3
8
7
Applications des DSP
8
8
Applications des DSP
8
9
Caractéristiques classiques des DSP
Augmentation du parallélisme
9
0
Caractéristiques classiques des DSP
Augmentation du parallélisme
Calculs
Unités de calcul en parallèle
Pipeline
Découpage des instructions de façon à les exécuter à
intervalles plus rapprochés
9
1
Familles de DSP
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.
Dynamique importante
Coût
Moins performant que le DSP à virgule fixe
Analog Devices
ADSP21xx : virgule fixe 16 bits.
SHARC : virgule fixe ou flottante 32 bits.
ADSPBFxx : virgule fixe 16 bits, Hautes performances.
TigerSHARC : virgule flottante 24 bits, Hautes performances.
Motorola
DSP560xx, DSP563xx : virgule fixe 24 bits, Audionumérique.
DSP566xx, DSP568xx: virgule fixe 16 bits.
StarCore : virgule fixe 16 bits, Hautes performances.
9
4
DSP TI (Texas Instrument)
9
5
DSP TI (Texas Instrument)
3ème Génération
Hybride
Multi-core C64x™ DSP
1.1 GHz
2ème Génération
Performance
C6416
C6414
C6412 C6415 DM642
C6411
1ère Génération
C6203
C6713
C6202 C6204
C6201 C6205
C6211 C62x/C64x/DM642 : Fixed Point
C6701 C6711 C6712
C67x : Floating Point
9
6
Spécificités des DSP
Instruction MAC
(multiplication-accumulation)
en 1 seul cycle d’instruction
9
8
Mémoire Cache
9
9
Cache d'instructions
DSP
Mémoire Cache Mémoire Instruction
d’instructions
DSP
Mémoire Cache Mémoire Données
de données
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.
1
0
SIMD
Unité de Unité de
calcul n°1 calcul n°2
Shift ALU MAC Shift
ALU MAC
Peripheral Bus
RND, SAT EXP Encoder Ch 2 Multichannel Buffered
Serial Port (McBSP) Address
Shifter Accumulators Ch 3
40-Bit Barrel 40-Bit ACC A Ch 4
Multichannel Buffered
Serial Port (McBSP)
Generation
(-16, 31) 40-Bit ACC B Ch 5
Units
Multichannel Buffered
Addressing Unit Serial Port (McBSP) • Compare, Select
8 Auxiliary Registers PLL Clock and Store Unit
Generator
2 Addressing Units • 4 Internal Bus
S/W Waitstate
Power Management Generator Pairs
• External Interface
C5416 example
1
0
C54x Block Diagram
1
0
DSP multicore
Shared memory
two-way RAM : permet
l'accès simultané à la
mémoire par les deux DSP
Architecture du C5421 1
0
DSP multicore
DSP haute
performance.
TMS320C64x+.
3 C64x+ intégrés
fonctionnant à
1Ghz chacun.
Architecture du C6474 1
0
VLIW : TMS320C62x
Data path
Deux ensembles d’unités de C62 DSP
traitement (1 et 2)
Instruction Fetch Control
Interrup
Instruction de 256 bits
Control
t
Instruction Dispatch Registers
8 sous-instructions de 32 bits Instruction Decode Emulation
Multiplication
+ x x +
Unités de données .D
Mouvement de données
de/vers la mémoire
1
0
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
Chemin croisé 1
0
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
1
1
Les différents périphériques internes pour l'interfaçage avec
le monde extérieur
1
1
Les différents périphériques internes pour l'interfaçage avec
le monde extérieur
1
1
3