Professional Documents
Culture Documents
e
s
Gnration
adresses P
Gnration
adresses D
Units de
calcul
Mmoire P Mmoire D
CPU
priphriques
pilotage
24
Fetch (lecture instruction)
addr
data
ctrl
addr
data
ctrl
Squenceur
B
u
s
p
r
o
g
r
a
m
m
e
B
u
s
d
o
n
n
e
s
Gnration
adresses P
Gnration
adresses D
Units de
calcul
Mmoire P Mmoire D
25
Read/Write (lecture/criture donne)
Squenceur
Gnration
adresses P
Gnration
adresses D
Units de
calcul
Mmoire P Mmoire D
addr
data
ctrl
addr
data
ctrl
B
u
s
p
r
o
g
r
a
m
m
e
B
u
s
d
o
n
n
e
s
26
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
P
e
r
i
p
h
e
r
a
l
B
u
s
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
Generator
Power Management
Gnration
dadresses
Units de
calcul
Mmoire
interne
Entres
Sorties
JTAG Test/
Emulation
Control
CPU
M
U
X
27
Structure interne du
TMS320C54x
Source : Texas Instruments
TMS320C54x DSP
Reference Set
Vol 1 : CPU and Peripherals
28
Le bus programme PB sert vhiculer les
instructions et les coefficients stocks dans la
mmoire programme. Ces donnes sont
adresses par le bus dadresse de la mmoire
programme PAB
Trois bus daccs aux donnes sont raccords
lunit centrale de calcul, la mmoire de donne,
aux priphrique et aux circuits de gnrations
dadresse (programme et donnes). Ces bus CB,
DB, et EB vhiculent les donnes des lments
adresss par CAB, DAB, et EAB respectivement.
Bus
29
Unit de controle
Gnration
d'adresses
programme
Gnration
d'adresses
donnes
Bus P
programme
Bus C / D
lecture
donnes
Bus E
criture
donnes
30
Unit arithmtique et logique(UAL)
Multiplieur-Accumulateur (MAC)
Registre dcalage
Units spcialises
Unit de traitementnt mathmatique
31
MAC
ALU
Shifter
Viterbi
Accumulateurs
32
Ce bloc effectue des calculs arithmtiques et
logique
2 accumulateurs sur 40 bits :
Oprations entires et binaires
(+, -, inc, dec, et, ou, xor, shl, ...)
Unit Arithmtique et Logique (ALU)
AL AH AG
15-0 31-16 39-32
BL BH BG
15-0 31-16 39-32
33
IMR Registre Masque dInterruption
IFR Registre de Statut dInterruption
ST0 Registre dEtat 0
ST1 Registre dEtat 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 dAddressage Circulaire
RC Compteur Rption 1 Instruction
RSA Premire Addresse Rptition Bloc
REA Dernire Addresse Rptition Bloc
BRC Compteur Rption dun Bloc
TIM Registre du Timer
PRD Compteur de la Priode de Timer
TRN Registre de Transition
TCR Registre de Contrle du Timer
PMST Registre de Contrle de la Mmoire
Registres
34
Rle central dans un DSP
Plus de 50% des instructions
Caractristiques principales
Temps dexcution = 1 cycle instruction
Structure pipeline
Un rsultat par cycle horloge, si le pipeline est
bien utilis
Multiplieur-accumulateur (MAC)
35
ce registre de 40 bits, sert cadrer les donnes en
provenant de la mmoire ou bien de laccumulateur avant
une opration dans ALU
Oprations de mise lchelle (Scaling) par puissance de
deux
Indispensable pour viter les dpassements de capacit
Son utilisation doit tre maitrise par le programmeur
Rduction de la prcision des calculs
Nombre, emplacement et possibilits des Shifters trs
diffrents dun DSP un autre.
Shifter (registre dcalage)
36
Protocole JTAG
Permet de piloter les units internes du DSP
Intgr par le constructeur lors de la
conception du chip
Utile pour le prototypage et le dbogage
d'applications
Interruption momentane en cours d'excution
Donne accs en lecture/modification aux
Registres internes
Mmoires internes, et ventuellement externes
Ports d'entres/sorties
37
Pipelining
Instructions
segmentes en tages
Excution entrelace de
plusieurs instructions
Chacune une tage diffrent
Gr par le squenceur
Augmentation de la
frquence 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
38
Squentiel 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
tage\temps t1 t2 t3 t4 t5 t6 t7 t8
Fetch F1 F2
Decode D1 D2
Read R1 R2
Execute X1 X2
Chargement du pipeline
Excution avec pipeline
Excution squentielle
39
Pipelining
Exemple du TMS320C54x
6 tages de traitement
Prefetch (P) : Incrmentation du PC
(Program Counter)
Fetch (F) : Lecture de linstruction en mmoire
Decode (D) : Dcodage de linstruction
Access (A) : Calcul des adresses des oprandes
Read (R) : Lecture des oprandes en mmoire
et calcul de ladresse du rsultat
Execute (X) : Excution et criture en mmoire
40
Retards dans le pipeline
Le pipeline atteint son plein rendement une
fois quil est plein
Une retard peut se produire
sil existe un conflit de ressources (retard ponctuel)
accs la mmoire
utilisation des bus
en cas de rupture de squence (vidange du pipeline)
branchement non prvu
appel de sous-programme
interruption
Exemple de conflit d'accs mmoire
P
1
P
2
F
1
D
1
P
3
F
2
A
1
D
2
P
4
F
3
D
3
A
2
--
--
R
1
X
1
A
3
--
--
--
R
2
X
2
--
--
--
R
3
X
3
P
5
--
F
4
D
4
P
6
F
5
A
4
D
5
F
6
A
5
D
6
R
4
X
4
A
6
R
5
X
5
R
6
8
Programme et donnes
dans une mmoire 1 accs par cycle
Les lectures de donnes R1/R2/R3 sont en conflit avec les
chargements d'instruction F4/F5/F6
Peut rduire les performances d'au moins 50%
Rsolution du conflit d'accs mmoire
P
1
F
1
D
1
A
1
R
1
X
1
P
2
F
2
P
3
F
3
D
3
A
3
R
3
X
3
D
2
A
2
R
2
X
2
P
4
F
4
D
4
A
4
R
4
X
4
P
5
F
5
D
5
A
5
R
5
X
5
P
6
F
6
D
6
A
6
R
6
X
6
9
Programme et donnes
dans des mmoires accs spars (Bus Programme/Bus Donnes)
ou dans une mme mmoire accs double (DARAM)
Bilan accs mmoire
A retenir pour viter les problmes:
ROM/SARAM - 1 accs par bloc par cycle
DARAM - 2 accs par bloc par cycle
Program
ROM
Data
ROM
SARAM DARAM
E Bus
C Bus
D Bus
P Bus
A
D
I
n
t
e
r
f
a
c
e
M
m
o
i
r
e
e
x
t
e
r
n
e
10
TMS320C62X
44
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
oprations sur
8/16/32 bits de
donnes.
45
TMS320C62X
46
Chaque groupe doprateurs dispose de :
3 UALs + 1 multiplieur (.L, .S, .D et .M) :
.L : oprations arithmtiques et logiques et instruction de
branchement.
.S : oprations arithmtiques et logiques, de dcalage, de
branchement et de gnration de constantes.
.M : multiplieur cbl 16x16
.D : lecture, chargement et oprations arithmtiques.
16 registres de 32 bits non orthogonaux
Chaque UAL est contrle par une instruction de 32
bits.
TMS320C62X : groupe oprateurs
47
TMS320C62X : groupe oprateurs
MPY .M a1, x1, prod
ADD .L Y, prod, Y
=
=
N
n
n n
x a Y
0
32 bits
a1
x1
prod
Y
.
.
.
.
.M
.L
A0
A1
A2
A3
A4
A15
48
VLIW (Very-Long-Instruction-Word)
Paralllisme gr par le compilateur
Contrle simple mais compilateur complexe
Microarchitecture simple et performante
Mais taille de code importante
Gnralement clusteris (1 cluster : banc de registres
+ units fonctionnelles)
Rduction de la complexit des chemins de donnes
49
inst1
inst2
inst3
inst4
inst5
inst6
inst7
inst8
I
n
s
t
r
u
c
t
i
o
n
V
L
I
W
VLIW (Very-Long-Instruction-Word)
50
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 M2 D2 S2 L2 S1
+
+ +
+
+
x
+
M1
x
D1
+ +
51
Reprsentation de Nombres Rels
La reprsentation des nombres doit rpondre deux
exigences contradictoires:
Prcision: intervalle entre deux rationnels cods
doit tre le plus petit possible
Dynamique: rapport entre le plus grand rationnel et le plus petit
rationnel cods
doit tre la plus tendue possible
Dans ce contexte les units de calcul des DSP travaillent
soit en format fixe (notation dcimale)
soit en format flottant (notation scientifique)
52
Reprsentation en format fixe
Aussi appele reprsentation virgule fixe
Dfinition "format Q
k
" :
La reprsentation Q
k
du rel x correspond
la reprsentation complment 2 (C2) de
l'entier y tel que:
) 2 round( x y
k
=
Proprits:
Partie fractionnaire code sur k bits
Partie entire code sur N-k bits en C2
Q
0
dsigne le cas particuler des entiers signs en C2
Exemple: Le binaire 01011101 peut reprsenter :
Q
2
: 23.25 Q
4
: 5.8125 Q
7
: 0.7265625
53
Reprsentation en Format Fixe
Exemple: Q
5
sur 8 bits
Partie entire cod sur 3 bits (dont 1 de signe)
Partie fractionnaire code sur 5 bits
Valeurs comprises entre -4 et +3.96875
0
0
0
0
0
0
0
1 -4
1
0
0
0
0
0
0
1 -3.96875
0
0
0
0
0
0
0
0 0
0
1
1
1
1
1
1
0 3.9375
1
1
1
1
1
1
1
0 3.96875
#/Poids -2
3
2
2
2
0
2
-1
2
-2
2
-3
2
-4
2
-5
,
54
Reprsentation en Format Fixe
Pour obtenir une dynamique sur lintervalle [-1, 1[ ,utiliser le format
Q
N-1
sur N bits
Format Q
15
:
sur 16 bits, le format Q
15
permet de reprsenter tous les
rels entre -1 et 1 avec une prcision q=2
-15
Prcision: quantification uniforme de pas q
q=2
-k
Dynamique:
-2
N-k-1
.. 2
N-k-1
-2
-k
55
Reprsentation en Format Flottant
Aussi appele reprsentation en virgule flottante
est une reprsentation avec une prcision finie,
dfinie selon lexpression
La mantisse M est exprime sur m bits,
avec un format Q
m-1
en complment 2
Lexposant E est un entier sign sur e bits
en binaire dcal
E
M x 2 =
N e m = +
Opration de normalisation:
Pour rendre la reprsentation unique, M doit satisfaire en
outre:
1
2
1
< s M
dtermine le nombre de
chiffres significatifs
dtermine la
dynamique
56
111 01111
| |
( )
46875 . 0 2 9375 . 0 2 2 1 2 1 2 1 2 1
1 1 2 4 4 3 2 1
= = + + +
+ +
Reprsentation en Format Flottant
Exemples en 8 bits
La mantisse est code sur 5 bits et lexposant sur 3 bits en C2
110 01111
| |
( )
234375 . 0 2 9375 . 0 2 2 1 2 1 2 1 2 1
2 0 2 4 4 3 2 1
= = + + +
+ +
011 10010
| |
( )
7 2 875 . 0 2 2 0 2 1 2 0 2 0 1
3 1 2 0 4 3 2 1
= = + + + +
+ +
57
Format virgule flottante IEEE 754
Format pour N=32 bits
1 bit
signe
8 bits
exposant
en binaire dcal
23 bits
fraction (partie fractionnaire de la mantisse)
C2 avec des codes spciaux
Cas spciaux
Zro: tous les bits 0
Underflow: exposant = 00000000
2
Overflow: exposant = 11111111
2
x = (-1)
signe
(1,fraction)
2
2
exposant-127