SlideShare uma empresa Scribd logo
1 de 56
Architectures des DSPs
3
Architecture générale d’un processeur
Unité de
contrôle
Unités de
traitement
Mémoire
interne
Unité de
Communication
Bus internes
CPU
Périphériques
et mémoire externes
4
Accès à la mémoire
5
Rappels : Bus
 Le CPU est le maître du
bus
 Il est le seul à écrire sur les
bus adresse et contrôle
 Le périphérique accepte
sur le bus données
 Lecture: il fournit la donnée
demandée
 Ecriture : il récupère la
donnée fournie par le CPU
 Haute impédance: il se
déconnecte du bus
PériphériqueCPU BUS
PériphériqueCPU
adresses
données
contrôle
Contrôle : lire / écrire / haute impédance
Adresses : sélection du périphérique
et d’une donnée en son sein
Données : valeur de la donnée à échanger
6
Rappels: le fonctionnement basique d’une
opération de calcul
 (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
MémoireCPU
1
2
3
4
7
Architecture Von Neuman
 Un seul chemin d'accès à la mémoire
 Architecture des processeurs d’usage général
(Pentium, 68000)
 Goulot d'étranglement pour l'accès à la mémoire
 Pas de sécurisation matérielle du programme
CPU BUS
Mémoire
Programme
+ Données
8
Architecture Harvard
 Séparation des mémoires programme et données
 Moins de risque de corruption du programme
 Meilleure utilisation du CPU
 Chargement du programme et des données en parallèle
Mémoire Programme
Mémoire Données
CPU
9
Architecture Harvard modifiée
 Mémoire programme contient des données
 Possibilité de charger 2 données en un cycle
 Utilisation classique en TNS
 Mémoire Programme+Données → coefficients des filtres
 Mémoire Données → échantillons d’entrée
CPU
Mémoire Programme
Mémoire Programme
+ Données
Mémoire Données
10
Accès mémoire multi-port
 Plusieurs bus de données
 Accès simultané à plusieurs données
 Combiné avec
 mémoire multi-accès (plusieurs accès à la même mémoire en un cycle)
 mémoire multi-blocs (accès simultané à deux blocs de mémoire distincts)
 Exemple du TMS320C54xx :
 1 bus programme (P)
 2 bus de lecture des données (C et D)
 1 bus d’écriture des données (E)
CPU
Mémoire Programme
+ Données
Mémoire Données
11
Cache d'instructions
 Cache = mémoire associative 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
 Pas appliqué aux données
 Problème de validation du temps réel
DSP
Mémoire Programme
+ Données
Mémoire Données
CPU
cache
d’instructions
12
Mémoire interne sur les processeurs C54x
 Plusieurs types de RAM incluse sur le chip
 Single access (SARAM) : un accès par cycle
 Dual access (DARAM) : deux accès par cycle
 Two-way shared : deux accès par cycle même depuis l'extérieur
 DARAM découpée en blocs
 Accès simultané à deux blocs de mémoire différents
 2x2=4 accès par cycle en théorie (en réalité limité par le reste de l'architecture)
Capacité en mémoire interne de différents modèles C54x
13
Bus externe
dans une architecture Harvard modifiée
DSP
Transfert entre les bus
internes et externe par
multiplexage temporel
• Limitation du nombre de broches
• Réduction des coûts
• Diminution des performances lors
des accès au bus externe
MUX
CPU
Mémoire Programme
+ Données
Mémoire Données
14
Accès Direct à la Mémoire
(DMA : Direct Memory Access)
DMA
•Accès DMA : entrées-sorties vers la mémoire interne
• indépendant du CPU et des bus internes
•Système d'interruptions "données reçues"/"données transmises"
CPU
Mémoire Programme
+ Données
Mémoire Données
interruptions
configuration
15
Bus externe
Diagramme bloc du TMS320C5416
Muxed GP I/O
D(15-0)
A(23-0)
Program/Data Buses
Timer
Program/Data RAM
128K Words
Ch 0
Ch 1
Ch 2
Ch 3
Ch 4
Ch 5
DMA
8/16-bit Host Port
Interface (HPI)
Program/Data ROM
16K Words
PeripheralBus
RND, SAT
17 x 17 MPY
40-Bit Adder
MAC
Shifter
40-Bit Barrel
(-16, 31)
EXP Encoder
40-Bit ALU
CMPS Operator
(VITERBI)
ALU
Accumulators
40-Bit ACC A
40-Bit ACC B
8 Auxiliary Registers
2 Addressing Units
Addressing Unit
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
PLL Clock
Generator
S/W Waitstate
GeneratorPower Management
Mémoire
interne
Entrées
Sorties
JTAG Test/
Emulation
Control
CPU
MUX
16
Les Périphériques du C54x
 Timer
 Ports série
 Port série synchrone
 Port série bufferisé (BSP)
 Port série bufferisé multi-canaux (McBSP)
 Port série à multiplexage temporel (TDM)
 Contrôleur DMA à 6 canaux
 Port d’interface hôte (HPI)
 Broches accessibles par software
 Broche XF (external flag) en écriture
 Broche BIO en lecture
 Générateur de temps d’attente
17
Architecture interne du CPU
18
Structure interne du CPU
19
Unité de commande
 Chef d’orchestre du CPU
 Chargement des instructions
 Compteur de programme (PC)
 Registre d’instruction
 Cache d’instructions
 Séquençage
 Décodage des instructions
 Pilotage des autres unités
20
Unités de traitement mathématique
 Calculs au format fixe
ou flottant
 Parallélisme entre les
sous-unités
 Registres de données
 pour stocker les opérandes
et les résultats
 Multiplieur
 Multiplication et
accumulation (MAC)
 ALU
 Opérations arithmétiques,
logiques et de conversion
entre formats
 Registre de décalage
 Multiplication rapide par 2k
 Unités spécialisées
 Compare, Select and Store
(Viterbi)
 DCT
21
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)
22
Schéma de principe des échanges
addr
data
ctrl
addr
data
ctrl
Séquenceur
Bus
programme
Bus
données
Génération
adresses P
Génération
adresses D
Unités de
calcul
Mémoire P Mémoire D
CPU
périphériques
pilotage
23
Fetch (lecture instruction)
addr
data
ctrl
addr
data
ctrl
Séquenceur
Bus
programme
Bus
données
Génération
adresses P
Génération
adresses D
Unités de
calcul
Mémoire P Mémoire D
24
Read/Write (lecture/écriture donnée)
Séquenceur
Génération
adresses P
Génération
adresses D
Unités de
calcul
Mémoire P Mémoire D
addr
data
ctrl
addr
data
ctrl
Bus
programme
Bus
données
25
Bus externe
Diagramme bloc du TMS320C54x
Muxed GP I/O
D(15-0)
A(23-0)
Program/Data Buses
Timer
Program/Data RAM
128K Words
Ch 0
Ch 1
Ch 2
Ch 3
Ch 4
Ch 5
DMA
8/16-bit Host Port
Interface (HPI)
Program/Data ROM
16K Words
PeripheralBus
RND, SAT
17 x 17 MPY
40-Bit Adder
MAC
Shifter
40-Bit Barrel
(-16, 31)
EXP Encoder
40-Bit ALU
CMPS Operator
(VITERBI)
ALU
Accumulators
40-Bit ACC A
40-Bit ACC B
8 Auxiliary Registers
2 Addressing Units
Addressing Unit
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
PLL Clock
Generator
S/W Waitstate
GeneratorPower Management
Génération
d’adresses
Unités de
calcul
Mémoire
interne
Entrées
Sorties
JTAG Test/
Emulation
Control
CPU
MUX
26
Structure interne du
TMS320C54x
Source : Texas Instruments
TMS320C54x DSP
Reference Set
Vol 1 : CPU and Peripherals
27
 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
 Trois bus d’accès aux données sont raccordés à
l’unité centrale de calcul, à la mémoire de donnée,
aux périphérique et aux circuits de générations
d’adresse (programme et données). Ces bus CB,
DB, et EB véhiculent les données des éléments
adressés par CAB, DAB, et EAB respectivement.
Bus
28
Unité de controle
Génération
d'adresses
programme
Génération
d'adresses
données
Bus P
programme
Bus C / D
lecture
données
Bus E
écriture
données
29
 Unité arithmétique et logique(UAL)
 Multiplieur-Accumulateur (MAC)
 Registre à décalage
 Unités spécialisées
Unité de traitementnt mathématique
30
MAC
ALU
Shifter
Viterbi
Accumulateurs
31
 Ce bloc effectue des calculs arithmétiques et
logique
 2 accumulateurs sur 40 bits :
 Opérations entières et binaires
 (+, -, inc, dec, et, ou, xor, shl, ...)
Unité Arithmétique et Logique (ALU)
ALAHAG
15-031-1639-32
BLBHBG
15-031-1639-32
32
IMR Registre Masque d’Interruption
IFR Registre de Statut d’Interruption
ST0 Registre d’Etat 0
ST1 Registre d’Etat 1
AL Accumulateur A (0-15)
AH Accumulateur A (16-31)
AG Accumulateur A (32-39)
BL Accumulateur B (0-15)
BH Accumulateur B (16-31)
BG Accumulateur B (32-39)
TREG Registre Temporaire
AR0 Registre Auxiliaire 0 (Index)
AR1-7 Registres Auxiliaires 1 à 7
SP Registre Pointeur de Pile
BK Registre d’Addressage Circulaire
RC Compteur Répétion 1 Instruction
RSA Première Addresse Répétition Bloc
REA Dernière Addresse Répétition Bloc
BRC Compteur Répétion d’un Bloc
TIM Registre du Timer
PRD Compteur de la Période de Timer
TRN Registre de Transition
TCR Registre de Contrôle du Timer
PMST Registre de Contrôle de la Mémoire
Registres
33
 Rôle central dans un DSP
 Plus de 50% des instructions
Caractéristiques principales
 Temps d’exécution = 1 cycle instruction
 Structure pipeline
 Un résultat par cycle horloge, si le pipeline est
bien utilisé
Multiplieur-accumulateur (MAC)
34
 ce registre de 40 bits, sert à cadrer les données en
provenant de la mémoire ou bien de l’accumulateur avant
une opération dans ALU
 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.
Shifter (registre à décalage)
35
Protocole JTAG
 Permet de piloter les unités internes du DSP
 Intégré par le constructeur lors de la
conception du chip
 Utile pour le prototypage et le débogage
d'applications
 Interruption momentanée en cours d'exécution
 Donne accès en lecture/modification aux
 Registres internes
 Mémoires internes, et éventuellement externes
 Ports d'entrées/sorties
36
Pipelining
 Instructions
segmentées en étages
 Exécution entrelacée de
plusieurs instructions
 Chacune à une étage différent
 Géré par le séquenceur
 Augmentation de la
fréquence d'horloge
 Etages plus simples donc plus
rapides
Fetch F1
Decode D1
Read R1
Execute X1
Instruction Instruction 1
Fetch F1 F2 F3 F4 F5
Decode D1 D2 D3 D4
Read R1 R2 R3
Execute X1 X2
Segmentation
en étages
Entrelacement
37
Séquentiel vs pipeline
é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
étagetemps t1 t2 t3 t4 t5 t6 t7 t8
Fetch F1 F2
Decode D1 D2
Read R1 R2
Execute X1 X2
Chargement du pipeline
Exécution avec pipeline
Exécution séquentielle
38
Pipelining
 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
39
Retards dans le pipeline
 Le pipeline atteint son plein rendement une
fois qu’il est “plein”
 Une retard peut se produire
 s’il existe un conflit de ressources (retard ponctuel)
 accès à la mémoire
 utilisation des bus
 en cas de rupture de séquence (vidange du pipeline)
 branchement non prévu
 appel de sous-programme
 interruption
Exemple de conflit d'accès mémoire
P1
P2
F1 D1
P3
F2
A1
D2
P4
F3 D3
A2
--
--
R1 X1
A3
--
--
--
R2 X2
--
--
--
R3 X3
P5
--
F4 D4
P6
F5
A4
D5
F6
A5
D6
R4 X4
A6
R5 X5
R6
8
Programme et données
dans une mémoire à 1 accès par cycle
Les lectures de données R1/R2/R3 sont en conflit avec les
chargements d'instruction F4/F5/F6
Peut réduire les performances d'au moins 50%
Résolution du conflit d'accès mémoire
P1 F1 D1 A1 R1 X1
P2 F2
P3 F3 D3 A3 R3 X3
D2 A2 R2 X2
P4 F4 D4 A4 R4 X4
P5 F5 D5 A5 R5 X5
P6 F6 D6 A6 R6 X6
9
Programme et données
dans des mémoires accès séparés (Bus Programme/Bus Données)
ou dans une même mémoire à accès double (DARAM)
Bilan accès mémoire
A retenir pour éviter les problèmes:
 ROM/SARAM - 1 accès par bloc par cycle
 DARAM - 2 accès par bloc par cycle
Program
ROM
Data
ROM
SARAM DARAM
E Bus
C Bus
D Bus
P Bus
A
D
Interface
Mémoireexterne
10
TMS320C62X
43
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.
44
TMS320C62X
45
Chaque groupe d’opérateurs dispose de :
3 UALs + 1 multiplieur (.L, .S, .D et .M) :
.L : opérations arithmétiques et logiques et instruction de
branchement.
.S : opérations arithmétiques et logiques, de décalage, de
branchement et de génération de constantes.
.M : multiplieur câblé 16x16
.D : lecture, chargement et opérations arithmétiques.
16 registres de 32 bits non orthogonaux
Chaque UAL est contrôlée par une instruction de 32
bits.
TMS320C62X : groupe opérateurs
46
TMS320C62X : groupe opérateurs
MPY .M a1, x1, prod
ADD .L Y, prod, Y


N
n
nn xaY
0
32 bits
a1
x1
prod
Y
.
.
.
.
.M
.L
A0
A1
A2
A3
A4
A15
47
VLIW (Very-Long-Instruction-Word)
 Parallélisme géré par le compilateur
 Contrôle simple mais compilateur complexe
 Microarchitecture simple et performante
 Mais taille de code importante
 Généralement clusterisé (1 cluster : banc de registres
+ unités fonctionnelles)
 Réduction de la complexité des chemins de données
48
inst1
inst2
inst3
inst4
inst5
inst6
inst7
inst8
InstructionVLIWVLIW (Very-Long-Instruction-Word)
49
VLIW : exemple du TMS320C62x
32 bits
Instruction de 128 bits
8 sous-instructions de 32 bits
32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits
L1 M2D2 S2 L2S1
+
+ +
+
+
x
+
M1
x
D1
++
50
Représentation de Nombres Réels
 La représentation des nombres doit répondre à deux
exigences contradictoires:
 Précision: intervalle entre deux rationnels codés
 doit être le plus petit possible
 Dynamique: rapport entre le plus grand rationnel et le plus petit
rationnel codés
 doit être la plus étendue possible
 Dans ce contexte les unités de calcul des DSP travaillent
 soit en format fixe (notation décimale)
 soit en format flottant (notation scientifique)
51
Représentation en format fixe
•Aussi appelée représentation à “virgule fixe”
Définition "format Qk" :
La représentation Qk du réel x correspond à
la représentation complément à 2 (C2) de
l'entier y tel que: )2round( xy k

Propriétés:
Partie fractionnaire codée sur k bits
Partie entière codée sur N-k bits en C2
Q0 désigne le cas particuler des entiers signés en C2
•Exemple: Le binaire 01011101 peut représenter :
Q2 : 23.25 Q4 : 5.8125 Q7 : 0.7265625
52
Représentation en Format Fixe
• Exemple: Q5 sur 8 bits
• Partie entière codé sur 3 bits (dont 1 de signe)
• Partie fractionnaire codée sur 5 bits
• Valeurs comprises entre -4 et +3.96875
00000001-4
10000001-3.96875
000000000
011111103.9375
111111103.96875
#/Poids -23 22 20 2-1 2-2 2-3 2-4 2-5
,
53
Représentation en Format Fixe
Pour obtenir une dynamique sur l’intervalle [-1, 1[ ,utiliser le format
QN-1 sur N bits
Format Q15:
sur 16 bits, le format Q15 permet de représenter tous les
réels entre -1 et 1 avec une précision q=2-15
Précision: quantification uniforme de pas q
q=2-k
Dynamique:
-2N-k-1 .. 2N-k-1-2-k
54
Représentation en Format Flottant
• Aussi appelée représentation en “virgule flottante”
est une représentation avec une précision finie,
définie selon l’expression
• La mantisse M est exprimée sur m bits,
avec un format Qm-1 en complément à 2
• L’exposant E est un entier signé sur e bits
en binaire décalé
E
Mx 2
Nem 
•Opération de normalisation:
Pour rendre la représentation unique, M doit satisfaire en
outre:
1
2
1
 M
détermine le nombre de
chiffres significatifs
détermine la
dynamique
55
11101111
   
46875.029375.0221212121 11244321
 
Représentation en Format Flottant
• Exemples en 8 bits
• La mantisse est codée sur 5 bits et l’exposant sur 3 bits en C2
11001111
   
234375.029375.0221212121 20244321
 
01110010
   
72875.02202120201 31204321
 
56
Format virgule flottante IEEE 754
 Format pour N=32 bits
1 bit
signe
8 bits
exposant
en binaire décalé
23 bits
fraction (partie fractionnaire de la mantisse)
C2 avec des codes spéciaux
•Cas spéciaux
Zéro: tous les bits à 0
Underflow: exposant = 000000002
Overflow: exposant = 111111112
x = (-1)signe × (1,fraction)2 × 2exposant-127

Mais conteúdo relacionado

Mais procurados

Projet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptProjet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptMouhcine Nid Belkacem
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Karim Touati
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..sunprass
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurAbdoulaye Dieng
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84guest1e7b02
 
Projet boat loader avec le pic16F887_rapport
Projet boat loader avec le pic16F887_rapportProjet boat loader avec le pic16F887_rapport
Projet boat loader avec le pic16F887_rapportMouhcine Nid Belkacem
 
Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Mohammed Lamghari
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursSana Aroussi
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresAbdoulaye Dieng
 
Cours Aide PL72
Cours Aide PL72Cours Aide PL72
Cours Aide PL72youri59490
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threadsSana Aroussi
 

Mais procurados (20)

Projet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptProjet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_ppt
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Assembleur
AssembleurAssembleur
Assembleur
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseur
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
 
Mini projet 3t2i se
Mini projet 3t2i seMini projet 3t2i se
Mini projet 3t2i se
 
Processeur
ProcesseurProcesseur
Processeur
 
Projet boat loader avec le pic16F887_rapport
Projet boat loader avec le pic16F887_rapportProjet boat loader avec le pic16F887_rapport
Projet boat loader avec le pic16F887_rapport
 
Chapitre 8 - les entrées - sorties
Chapitre 8  - les entrées - sortiesChapitre 8  - les entrées - sorties
Chapitre 8 - les entrées - sorties
 
Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoires
 
Cours Aide PL72
Cours Aide PL72Cours Aide PL72
Cours Aide PL72
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
SoC Hamdi -chap4
SoC Hamdi -chap4SoC Hamdi -chap4
SoC Hamdi -chap4
 
Ladder
LadderLadder
Ladder
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
Chapitre 7 - la pile
Chapitre 7 -  la pileChapitre 7 -  la pile
Chapitre 7 - la pile
 

Destaque

Le mans 1793-nébot-1ère-version-2011
Le mans 1793-nébot-1ère-version-2011Le mans 1793-nébot-1ère-version-2011
Le mans 1793-nébot-1ère-version-2011CoeursdeChouans
 
Résultats de l'enquête gardes et astreintes et propositions.
Résultats de l'enquête gardes et astreintes et propositions.Résultats de l'enquête gardes et astreintes et propositions.
Résultats de l'enquête gardes et astreintes et propositions.Réseau Pro Santé
 
Guidence for student
Guidence for studentGuidence for student
Guidence for studentejw1346
 
Les enjeux du développement durable
Les enjeux du développement durableLes enjeux du développement durable
Les enjeux du développement durablemlaugel
 
Regards sur l'Afrique
Regards sur l'AfriqueRegards sur l'Afrique
Regards sur l'Afriquemlaugel
 
Administraci
AdministraciAdministraci
Administracimmpena
 
2014sessionPara 2
2014sessionPara 22014sessionPara 2
2014sessionPara 2acvq
 
Informatique
InformatiqueInformatique
Informatiqueyassine18
 
Presentacion preuniversitario lrf
Presentacion preuniversitario lrfPresentacion preuniversitario lrf
Presentacion preuniversitario lrfJose Avendaño
 
Cuidaatupareja
CuidaatuparejaCuidaatupareja
Cuidaatuparejayadixtreme
 
Presentación trabajo en red CONGDE
Presentación trabajo en red CONGDEPresentación trabajo en red CONGDE
Presentación trabajo en red CONGDESomos Más
 
2013 03-20 --ump_-_discours_-_jean-francois_cope_-_motion_de_censure
2013 03-20 --ump_-_discours_-_jean-francois_cope_-_motion_de_censure2013 03-20 --ump_-_discours_-_jean-francois_cope_-_motion_de_censure
2013 03-20 --ump_-_discours_-_jean-francois_cope_-_motion_de_censureDELPHINEMANSION
 
Informe semanal de Análisis Técnico de Cortal Consors - 5 de enero de 2011
Informe semanal de Análisis Técnico de Cortal Consors - 5 de enero de 2011Informe semanal de Análisis Técnico de Cortal Consors - 5 de enero de 2011
Informe semanal de Análisis Técnico de Cortal Consors - 5 de enero de 2011Salainversion
 
enquête kheolia escalquens
enquête kheolia escalquensenquête kheolia escalquens
enquête kheolia escalquensescalquens
 

Destaque (20)

Uint3 vtu format
Uint3 vtu formatUint3 vtu format
Uint3 vtu format
 
Le mans 1793-nébot-1ère-version-2011
Le mans 1793-nébot-1ère-version-2011Le mans 1793-nébot-1ère-version-2011
Le mans 1793-nébot-1ère-version-2011
 
Résultats de l'enquête gardes et astreintes et propositions.
Résultats de l'enquête gardes et astreintes et propositions.Résultats de l'enquête gardes et astreintes et propositions.
Résultats de l'enquête gardes et astreintes et propositions.
 
Trabajo De Tic N2 En Power Point
Trabajo De Tic N2 En Power PointTrabajo De Tic N2 En Power Point
Trabajo De Tic N2 En Power Point
 
Guidence for student
Guidence for studentGuidence for student
Guidence for student
 
READ OFF CLIENT
READ OFF CLIENT READ OFF CLIENT
READ OFF CLIENT
 
Les enjeux du développement durable
Les enjeux du développement durableLes enjeux du développement durable
Les enjeux du développement durable
 
Regards sur l'Afrique
Regards sur l'AfriqueRegards sur l'Afrique
Regards sur l'Afrique
 
Administraci
AdministraciAdministraci
Administraci
 
2014sessionPara 2
2014sessionPara 22014sessionPara 2
2014sessionPara 2
 
Reformas en un Hospital Publico
Reformas en un Hospital PublicoReformas en un Hospital Publico
Reformas en un Hospital Publico
 
Informatique
InformatiqueInformatique
Informatique
 
Presentacion preuniversitario lrf
Presentacion preuniversitario lrfPresentacion preuniversitario lrf
Presentacion preuniversitario lrf
 
Cuidaatupareja
CuidaatuparejaCuidaatupareja
Cuidaatupareja
 
Gm
GmGm
Gm
 
Presentación trabajo en red CONGDE
Presentación trabajo en red CONGDEPresentación trabajo en red CONGDE
Presentación trabajo en red CONGDE
 
G. Marquez
G. MarquezG. Marquez
G. Marquez
 
2013 03-20 --ump_-_discours_-_jean-francois_cope_-_motion_de_censure
2013 03-20 --ump_-_discours_-_jean-francois_cope_-_motion_de_censure2013 03-20 --ump_-_discours_-_jean-francois_cope_-_motion_de_censure
2013 03-20 --ump_-_discours_-_jean-francois_cope_-_motion_de_censure
 
Informe semanal de Análisis Técnico de Cortal Consors - 5 de enero de 2011
Informe semanal de Análisis Técnico de Cortal Consors - 5 de enero de 2011Informe semanal de Análisis Técnico de Cortal Consors - 5 de enero de 2011
Informe semanal de Análisis Técnico de Cortal Consors - 5 de enero de 2011
 
enquête kheolia escalquens
enquête kheolia escalquensenquête kheolia escalquens
enquête kheolia escalquens
 

Semelhante a Chap2dsp 120209101928-phpapp02

Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdfAliRami3
 
Programmation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationProgrammation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationECAM Brussels Engineering School
 
cours_carte_d_acquitition.pdf
cours_carte_d_acquitition.pdfcours_carte_d_acquitition.pdf
cours_carte_d_acquitition.pdftarek784863
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busSana Aroussi
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseAbdoulaye Dieng
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...Pôle Systematic Paris-Region
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspgharbisalah
 
Structure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptxStructure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptxHathat10
 
laboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .pptlaboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .pptprofsn
 
Composants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de ConfigurationComposants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de ConfigurationZakariaBouzzitMadrid
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------NasriMohsen2
 
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL   PROGRAMMATION ET _ETAPES pour comprendreCOURS VHDL   PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendreMariamHafsa
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptxSihemNasri3
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDmohamedsaidi212001
 

Semelhante a Chap2dsp 120209101928-phpapp02 (20)

prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
 
Programmation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationProgrammation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communication
 
cours_carte_d_acquitition.pdf
cours_carte_d_acquitition.pdfcours_carte_d_acquitition.pdf
cours_carte_d_acquitition.pdf
 
Chap2 dsp
Chap2 dspChap2 dsp
Chap2 dsp
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-base
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
 
Architecture
ArchitectureArchitecture
Architecture
 
Structure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptxStructure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptx
 
laboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .pptlaboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .ppt
 
Composants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de ConfigurationComposants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de Configuration
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
 
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL   PROGRAMMATION ET _ETAPES pour comprendreCOURS VHDL   PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
Cours algo1 (1)
Cours algo1 (1)Cours algo1 (1)
Cours algo1 (1)
 
Cours algo1
Cours algo1Cours algo1
Cours algo1
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 

Chap2dsp 120209101928-phpapp02

  • 1.
  • 3. 3 Architecture générale d’un processeur Unité de contrôle Unités de traitement Mémoire interne Unité de Communication Bus internes CPU Périphériques et mémoire externes
  • 4. 4 Accès à la mémoire
  • 5. 5 Rappels : Bus  Le CPU est le maître du bus  Il est le seul à écrire sur les bus adresse et contrôle  Le périphérique accepte sur le bus données  Lecture: il fournit la donnée demandée  Ecriture : il récupère la donnée fournie par le CPU  Haute impédance: il se déconnecte du bus PériphériqueCPU BUS PériphériqueCPU adresses données contrôle Contrôle : lire / écrire / haute impédance Adresses : sélection du périphérique et d’une donnée en son sein Données : valeur de la donnée à échanger
  • 6. 6 Rappels: le fonctionnement basique d’une opération de calcul  (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 MémoireCPU 1 2 3 4
  • 7. 7 Architecture Von Neuman  Un seul chemin d'accès à la mémoire  Architecture des processeurs d’usage général (Pentium, 68000)  Goulot d'étranglement pour l'accès à la mémoire  Pas de sécurisation matérielle du programme CPU BUS Mémoire Programme + Données
  • 8. 8 Architecture Harvard  Séparation des mémoires programme et données  Moins de risque de corruption du programme  Meilleure utilisation du CPU  Chargement du programme et des données en parallèle Mémoire Programme Mémoire Données CPU
  • 9. 9 Architecture Harvard modifiée  Mémoire programme contient des données  Possibilité de charger 2 données en un cycle  Utilisation classique en TNS  Mémoire Programme+Données → coefficients des filtres  Mémoire Données → échantillons d’entrée CPU Mémoire Programme Mémoire Programme + Données Mémoire Données
  • 10. 10 Accès mémoire multi-port  Plusieurs bus de données  Accès simultané à plusieurs données  Combiné avec  mémoire multi-accès (plusieurs accès à la même mémoire en un cycle)  mémoire multi-blocs (accès simultané à deux blocs de mémoire distincts)  Exemple du TMS320C54xx :  1 bus programme (P)  2 bus de lecture des données (C et D)  1 bus d’écriture des données (E) CPU Mémoire Programme + Données Mémoire Données
  • 11. 11 Cache d'instructions  Cache = mémoire associative 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  Pas appliqué aux données  Problème de validation du temps réel DSP Mémoire Programme + Données Mémoire Données CPU cache d’instructions
  • 12. 12 Mémoire interne sur les processeurs C54x  Plusieurs types de RAM incluse sur le chip  Single access (SARAM) : un accès par cycle  Dual access (DARAM) : deux accès par cycle  Two-way shared : deux accès par cycle même depuis l'extérieur  DARAM découpée en blocs  Accès simultané à deux blocs de mémoire différents  2x2=4 accès par cycle en théorie (en réalité limité par le reste de l'architecture) Capacité en mémoire interne de différents modèles C54x
  • 13. 13 Bus externe dans une architecture Harvard modifiée DSP Transfert entre les bus internes et externe par multiplexage temporel • Limitation du nombre de broches • Réduction des coûts • Diminution des performances lors des accès au bus externe MUX CPU Mémoire Programme + Données Mémoire Données
  • 14. 14 Accès Direct à la Mémoire (DMA : Direct Memory Access) DMA •Accès DMA : entrées-sorties vers la mémoire interne • indépendant du CPU et des bus internes •Système d'interruptions "données reçues"/"données transmises" CPU Mémoire Programme + Données Mémoire Données interruptions configuration
  • 15. 15 Bus externe Diagramme bloc du TMS320C5416 Muxed GP I/O D(15-0) A(23-0) Program/Data Buses Timer Program/Data RAM 128K Words Ch 0 Ch 1 Ch 2 Ch 3 Ch 4 Ch 5 DMA 8/16-bit Host Port Interface (HPI) Program/Data ROM 16K Words PeripheralBus RND, SAT 17 x 17 MPY 40-Bit Adder MAC Shifter 40-Bit Barrel (-16, 31) EXP Encoder 40-Bit ALU CMPS Operator (VITERBI) ALU Accumulators 40-Bit ACC A 40-Bit ACC B 8 Auxiliary Registers 2 Addressing Units Addressing Unit Multichannel Buffered Serial Port (McBSP) Multichannel Buffered Serial Port (McBSP) Multichannel Buffered Serial Port (McBSP) PLL Clock Generator S/W Waitstate GeneratorPower Management Mémoire interne Entrées Sorties JTAG Test/ Emulation Control CPU MUX
  • 16. 16 Les Périphériques du C54x  Timer  Ports série  Port série synchrone  Port série bufferisé (BSP)  Port série bufferisé multi-canaux (McBSP)  Port série à multiplexage temporel (TDM)  Contrôleur DMA à 6 canaux  Port d’interface hôte (HPI)  Broches accessibles par software  Broche XF (external flag) en écriture  Broche BIO en lecture  Générateur de temps d’attente
  • 19. 19 Unité de commande  Chef d’orchestre du CPU  Chargement des instructions  Compteur de programme (PC)  Registre d’instruction  Cache d’instructions  Séquençage  Décodage des instructions  Pilotage des autres unités
  • 20. 20 Unités de traitement mathématique  Calculs au format fixe ou flottant  Parallélisme entre les sous-unités  Registres de données  pour stocker les opérandes et les résultats  Multiplieur  Multiplication et accumulation (MAC)  ALU  Opérations arithmétiques, logiques et de conversion entre formats  Registre de décalage  Multiplication rapide par 2k  Unités spécialisées  Compare, Select and Store (Viterbi)  DCT
  • 21. 21 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)
  • 22. 22 Schéma de principe des échanges addr data ctrl addr data ctrl Séquenceur Bus programme Bus données Génération adresses P Génération adresses D Unités de calcul Mémoire P Mémoire D CPU périphériques pilotage
  • 24. 24 Read/Write (lecture/écriture donnée) Séquenceur Génération adresses P Génération adresses D Unités de calcul Mémoire P Mémoire D addr data ctrl addr data ctrl Bus programme Bus données
  • 25. 25 Bus externe Diagramme bloc du TMS320C54x Muxed GP I/O D(15-0) A(23-0) Program/Data Buses Timer Program/Data RAM 128K Words Ch 0 Ch 1 Ch 2 Ch 3 Ch 4 Ch 5 DMA 8/16-bit Host Port Interface (HPI) Program/Data ROM 16K Words PeripheralBus RND, SAT 17 x 17 MPY 40-Bit Adder MAC Shifter 40-Bit Barrel (-16, 31) EXP Encoder 40-Bit ALU CMPS Operator (VITERBI) ALU Accumulators 40-Bit ACC A 40-Bit ACC B 8 Auxiliary Registers 2 Addressing Units Addressing Unit Multichannel Buffered Serial Port (McBSP) Multichannel Buffered Serial Port (McBSP) Multichannel Buffered Serial Port (McBSP) PLL Clock Generator S/W Waitstate GeneratorPower Management Génération d’adresses Unités de calcul Mémoire interne Entrées Sorties JTAG Test/ Emulation Control CPU MUX
  • 26. 26 Structure interne du TMS320C54x Source : Texas Instruments TMS320C54x DSP Reference Set Vol 1 : CPU and Peripherals
  • 27. 27  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  Trois bus d’accès aux données sont raccordés à l’unité centrale de calcul, à la mémoire de donnée, aux périphérique et aux circuits de générations d’adresse (programme et données). Ces bus CB, DB, et EB véhiculent les données des éléments adressés par CAB, DAB, et EAB respectivement. Bus
  • 28. 28 Unité de controle Génération d'adresses programme Génération d'adresses données Bus P programme Bus C / D lecture données Bus E écriture données
  • 29. 29  Unité arithmétique et logique(UAL)  Multiplieur-Accumulateur (MAC)  Registre à décalage  Unités spécialisées Unité de traitementnt mathématique
  • 31. 31  Ce bloc effectue des calculs arithmétiques et logique  2 accumulateurs sur 40 bits :  Opérations entières et binaires  (+, -, inc, dec, et, ou, xor, shl, ...) Unité Arithmétique et Logique (ALU) ALAHAG 15-031-1639-32 BLBHBG 15-031-1639-32
  • 32. 32 IMR Registre Masque d’Interruption IFR Registre de Statut d’Interruption ST0 Registre d’Etat 0 ST1 Registre d’Etat 1 AL Accumulateur A (0-15) AH Accumulateur A (16-31) AG Accumulateur A (32-39) BL Accumulateur B (0-15) BH Accumulateur B (16-31) BG Accumulateur B (32-39) TREG Registre Temporaire AR0 Registre Auxiliaire 0 (Index) AR1-7 Registres Auxiliaires 1 à 7 SP Registre Pointeur de Pile BK Registre d’Addressage Circulaire RC Compteur Répétion 1 Instruction RSA Première Addresse Répétition Bloc REA Dernière Addresse Répétition Bloc BRC Compteur Répétion d’un Bloc TIM Registre du Timer PRD Compteur de la Période de Timer TRN Registre de Transition TCR Registre de Contrôle du Timer PMST Registre de Contrôle de la Mémoire Registres
  • 33. 33  Rôle central dans un DSP  Plus de 50% des instructions Caractéristiques principales  Temps d’exécution = 1 cycle instruction  Structure pipeline  Un résultat par cycle horloge, si le pipeline est bien utilisé Multiplieur-accumulateur (MAC)
  • 34. 34  ce registre de 40 bits, sert à cadrer les données en provenant de la mémoire ou bien de l’accumulateur avant une opération dans ALU  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. Shifter (registre à décalage)
  • 35. 35 Protocole JTAG  Permet de piloter les unités internes du DSP  Intégré par le constructeur lors de la conception du chip  Utile pour le prototypage et le débogage d'applications  Interruption momentanée en cours d'exécution  Donne accès en lecture/modification aux  Registres internes  Mémoires internes, et éventuellement externes  Ports d'entrées/sorties
  • 36. 36 Pipelining  Instructions segmentées en étages  Exécution entrelacée de plusieurs instructions  Chacune à une étage différent  Géré par le séquenceur  Augmentation de la fréquence d'horloge  Etages plus simples donc plus rapides Fetch F1 Decode D1 Read R1 Execute X1 Instruction Instruction 1 Fetch F1 F2 F3 F4 F5 Decode D1 D2 D3 D4 Read R1 R2 R3 Execute X1 X2 Segmentation en étages Entrelacement
  • 37. 37 Séquentiel vs pipeline é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 étagetemps t1 t2 t3 t4 t5 t6 t7 t8 Fetch F1 F2 Decode D1 D2 Read R1 R2 Execute X1 X2 Chargement du pipeline Exécution avec pipeline Exécution séquentielle
  • 38. 38 Pipelining  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
  • 39. 39 Retards dans le pipeline  Le pipeline atteint son plein rendement une fois qu’il est “plein”  Une retard peut se produire  s’il existe un conflit de ressources (retard ponctuel)  accès à la mémoire  utilisation des bus  en cas de rupture de séquence (vidange du pipeline)  branchement non prévu  appel de sous-programme  interruption
  • 40. Exemple de conflit d'accès mémoire P1 P2 F1 D1 P3 F2 A1 D2 P4 F3 D3 A2 -- -- R1 X1 A3 -- -- -- R2 X2 -- -- -- R3 X3 P5 -- F4 D4 P6 F5 A4 D5 F6 A5 D6 R4 X4 A6 R5 X5 R6 8 Programme et données dans une mémoire à 1 accès par cycle Les lectures de données R1/R2/R3 sont en conflit avec les chargements d'instruction F4/F5/F6 Peut réduire les performances d'au moins 50%
  • 41. Résolution du conflit d'accès mémoire P1 F1 D1 A1 R1 X1 P2 F2 P3 F3 D3 A3 R3 X3 D2 A2 R2 X2 P4 F4 D4 A4 R4 X4 P5 F5 D5 A5 R5 X5 P6 F6 D6 A6 R6 X6 9 Programme et données dans des mémoires accès séparés (Bus Programme/Bus Données) ou dans une même mémoire à accès double (DARAM)
  • 42. Bilan accès mémoire A retenir pour éviter les problèmes:  ROM/SARAM - 1 accès par bloc par cycle  DARAM - 2 accès par bloc par cycle Program ROM Data ROM SARAM DARAM E Bus C Bus D Bus P Bus A D Interface Mémoireexterne 10
  • 43. TMS320C62X 43 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.
  • 45. 45 Chaque groupe d’opérateurs dispose de : 3 UALs + 1 multiplieur (.L, .S, .D et .M) : .L : opérations arithmétiques et logiques et instruction de branchement. .S : opérations arithmétiques et logiques, de décalage, de branchement et de génération de constantes. .M : multiplieur câblé 16x16 .D : lecture, chargement et opérations arithmétiques. 16 registres de 32 bits non orthogonaux Chaque UAL est contrôlée par une instruction de 32 bits. TMS320C62X : groupe opérateurs
  • 46. 46 TMS320C62X : groupe opérateurs MPY .M a1, x1, prod ADD .L Y, prod, Y   N n nn xaY 0 32 bits a1 x1 prod Y . . . . .M .L A0 A1 A2 A3 A4 A15
  • 47. 47 VLIW (Very-Long-Instruction-Word)  Parallélisme géré par le compilateur  Contrôle simple mais compilateur complexe  Microarchitecture simple et performante  Mais taille de code importante  Généralement clusterisé (1 cluster : banc de registres + unités fonctionnelles)  Réduction de la complexité des chemins de données
  • 49. 49 VLIW : exemple du TMS320C62x 32 bits Instruction de 128 bits 8 sous-instructions de 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits L1 M2D2 S2 L2S1 + + + + + x + M1 x D1 ++
  • 50. 50 Représentation de Nombres Réels  La représentation des nombres doit répondre à deux exigences contradictoires:  Précision: intervalle entre deux rationnels codés  doit être le plus petit possible  Dynamique: rapport entre le plus grand rationnel et le plus petit rationnel codés  doit être la plus étendue possible  Dans ce contexte les unités de calcul des DSP travaillent  soit en format fixe (notation décimale)  soit en format flottant (notation scientifique)
  • 51. 51 Représentation en format fixe •Aussi appelée représentation à “virgule fixe” Définition "format Qk" : La représentation Qk du réel x correspond à la représentation complément à 2 (C2) de l'entier y tel que: )2round( xy k  Propriétés: Partie fractionnaire codée sur k bits Partie entière codée sur N-k bits en C2 Q0 désigne le cas particuler des entiers signés en C2 •Exemple: Le binaire 01011101 peut représenter : Q2 : 23.25 Q4 : 5.8125 Q7 : 0.7265625
  • 52. 52 Représentation en Format Fixe • Exemple: Q5 sur 8 bits • Partie entière codé sur 3 bits (dont 1 de signe) • Partie fractionnaire codée sur 5 bits • Valeurs comprises entre -4 et +3.96875 00000001-4 10000001-3.96875 000000000 011111103.9375 111111103.96875 #/Poids -23 22 20 2-1 2-2 2-3 2-4 2-5 ,
  • 53. 53 Représentation en Format Fixe Pour obtenir une dynamique sur l’intervalle [-1, 1[ ,utiliser le format QN-1 sur N bits Format Q15: sur 16 bits, le format Q15 permet de représenter tous les réels entre -1 et 1 avec une précision q=2-15 Précision: quantification uniforme de pas q q=2-k Dynamique: -2N-k-1 .. 2N-k-1-2-k
  • 54. 54 Représentation en Format Flottant • Aussi appelée représentation en “virgule flottante” est une représentation avec une précision finie, définie selon l’expression • La mantisse M est exprimée sur m bits, avec un format Qm-1 en complément à 2 • L’exposant E est un entier signé sur e bits en binaire décalé E Mx 2 Nem  •Opération de normalisation: Pour rendre la représentation unique, M doit satisfaire en outre: 1 2 1  M détermine le nombre de chiffres significatifs détermine la dynamique
  • 55. 55 11101111     46875.029375.0221212121 11244321   Représentation en Format Flottant • Exemples en 8 bits • La mantisse est codée sur 5 bits et l’exposant sur 3 bits en C2 11001111     234375.029375.0221212121 20244321   01110010     72875.02202120201 31204321  
  • 56. 56 Format virgule flottante IEEE 754  Format pour N=32 bits 1 bit signe 8 bits exposant en binaire décalé 23 bits fraction (partie fractionnaire de la mantisse) C2 avec des codes spéciaux •Cas spéciaux Zéro: tous les bits à 0 Underflow: exposant = 000000002 Overflow: exposant = 111111112 x = (-1)signe × (1,fraction)2 × 2exposant-127

Notas do Editor

  1. Schéma copié de Intro to DSP Prof. Brian L. Evans