Professional Documents
Culture Documents
0 31
1
A
0 31
0
B
0 31
1
C
0 31
1
D
0 31
0
E
0 31
0 31
1
F
1
G
0
H
Exemple 4 :
Pipeline
PG
PS
PW
Fetch
PR
DP
DC
Decode
E1
E2
E3
E4
E5
E6
Execute
PG
Gnration
dadresse
Dans le CPU
PS
Transmission de
ladresse
( la mmoire)
PW
Attente accs
mmoire
PR
Rception et lecture
du PF
(au CPU)
Pipeline
tape du dcodage
dinstruction (D)
DP
Rpartition des
instructions dun PF sous
forme de PE
DC
Dcodage des PEs
tape dexcution
(E)
E2
Instruction MPY
E3; E4
Slots de
retard
E5
Chargement
des valeurs
dans un
registre
E6
Branchement
Pipeline
Considrons les 3 exemples suivants :
Srie
1 cycle
2 cycles
MVK
.S1
MVK
.S1
ADD
.L1
ADD
.L1
MPY
5 cycles
Parallle partielle
Parallle totale
MVK
.S1
MVK
.S2
.S1
ADD
.L1
||
||
ADD
.L2
.S2
||
MPY
.M1
||
||
.M1
MPY
MPY
.M1
.M1
||
LDW
.D1
.D1
||
LDB
.D2
MVK
MVK
ADD
.L1
||
LDW
ADD
.L2
||
LDB
MPY
||
.M1
Pipeline
1er exemple : Excution en srie
MVK
.S1
MVK
.S1
ADD
.L1
PG
ADD
.L1
MPY
.M1
MPY
.M1
LDW
.D1
LDB
.D1
Cycle = 1
Program Fetch
PS
MVK
ADD
MVK
ADD
MPY
MPY
LDW
LDB
PW
PR
Decode
DP
DC
Execute
E1
E2
E3
Done
E4
E5
E6
Pipeline
Cycle = 2
MVK
MVK
.S1
.S1
ADD
PG
.L1
ADD
.L1
Program Fetch
PS
MVK
MPY
FP2
.M1
MPY
.M1
LDW
.D1
LDB
.D1
9
PW
ADD
MVK
ADD
MPY
MPY
LDW
LDB
PR
Decode
DP
DC
Execute
E1
E2
E3
Done
E4
E5
E6
Pipeline
MVK
.S1
MVK
.S1
ADD
PG
.L1
ADD
.L1
MPY
.M1
MPY
.M1
LDW
.D1
LDB
.D1
10
Cycle = 3
Program Fetch
PS
PW
PR
MVK
FP3
FP2
ADD
MVK
ADD
MPY
MPY
LDW
LDB
Decode
DP
DC
Execute
E1
E2
E3
Done
E4
E5
E6
Pipeline
MVK
.S1
MVK
.S1
ADD
.L1
PG
ADD
.L1
MPY
.M1
MPY
.M1
LDW
.D1
LDB
.D1
11
Cycle = 4
Program Fetch
PS
PW
PR
Decode
DP
MVK
ADD
MVK
ADD
MPY
MPY
LDW
LDB
DC
Execute
E1
E2
E3
Done
E4
E5
E6
Pipeline
Un seul PE par cycle entre dans le pipeline en arrivant ltape
DC (Decode) :
MVK
.S1
MVK
.S1
ADD
.L1
ADD
.L1
Cycle = 5
PF
PF
MPY
.M1
MPY
.M1
LDW
.D1
LDB
.D1
12
PF2
Execute
Decode
DP
MVK
MVK
ADD
ADD
MPY
MPY
LDW
LDB
DC
E1
E2
E3
Done
E4
E5
E6
Pipeline
Cycle = 6
PF
Decode
Execute
PFDPDCE1E2E3E4E5E6
PF2
13
MVK
ADD
ADD
MPY
MPY
LDW
LDB
+
MVK
Done
Pipeline
Cycle = 7
PF
Decode
Execute
PFDPDCE1E2E3E4E5E6
PF2
14
MVK
ADD
ADD
MPY
MPY
LDW
LDB
MVK
Done
Pipeline
Cycle = 8
PF
Execute
Decode
PFDPDCE1E2E3E4E5E6
Done
MVK
MVK
PF2
15
ADD
ADD
MPY
MPY
LDW
LDB
Pipeline
Cycle = 9
PF
Execute
Decode
PFDPDCE1E2E3E4E5E6
Done
MVK
PF2
16
ADD
ADD
MPY
MPY
LDW
LDB
MVK
Mmoire interne
Program
Cache
(L1P)
Internal
Core
RAM or
Cache
(L2)
EMIF
Data
Cache
(L1D)
L1
Level 2
Level 3
17
Mmoire interne
CPU cherche
une donne
La donne
dans L1 ?
Oui
Envoyer la
donne vers
Core
Non
La donne
dans L2 ?
Non
Copier la donne
de la mmoire
externe vers L2
Oui
Copier la donne
de L2 vers L1
18
Mmoire cache L1
L1P
(16ko)
DSP
C64
L1D
(16ko)
19
Jeu dinstructions
Arithmtique
ADD(U)
ADD2
ADD4
SUB(U)
SUB2
SUB4
Nb de
cycles
dexcutio
n
20
Jeu dinstructions
Arithmtique
ADD(U)
ADD2
ADD4
SUB(U)
SUB2
SUB4
Nb de
cycles
dexcutio
n
21
Jeu dinstructions
Multiplication entires
MPY
MPYH
MPYLH
MPYHL
MPYU4
MPYSU4
MPYUS4
Nb de
cycles
dexcutio
n
22
Jeu dinstructions
Multiplication entires
MPY
MPYH
MPYLH
MPYHL
MPYU4
MPYSU4
MPYUS4
Nb de
cycles
dexcutio
n
23
Jeu dinstructions
5
1
Accs mmoire
LD(B/H/W/DW)(U)
ST(B/H/W/DW)(U)
1
1
1
Affectation
MV
MVK
MVKH
24
Dcalage
SHL
SHR2
SSHL
SHLMB
SHRMB
Branchement
B
Branchement conditionnel
Nb de
cycles
dexcutio
n
25
.M
MPY
MPYSU4
MPYUS4
MPYU4
.S
ADD2
AND
B
MVK
MVKH
OR
SHL
SHLMB
SHR2
SHRMB
SUB2
XOR
.D
ADD(U)
ADD2
AND
LDB
LDDW
MVK
OR
STH
STDW
SUB(U)
SUB2
XOR
...
Modes dadressages
Ladressage le plus utilis est le mode linaire
indirect.
Supposant que R est un registre dadresse :
*R : Le registre R pointe sur une adresse mmoire.
*R++(d) : Le registre R contient une adresse mmoire en
plus il y aura une post-incrmentation c..d aprs une lecture
R va sauto incrmenter par une valeur (d) qui est 1 par
dfaut.
*++R(d) : Mme chose que le cas prcdent mais
maintenant une pr-incrmentation.
26
; A3 + A7 A8
SUB .S1
A1, 1, A2
2 instructions en parallle :
MPY .M2 A7, B7, B6
|| MPYH .M2 A7, B7, A6
; A1 1 A2
; LSB(A7) * LSB(B7) B6
; MSB(A7) * MSB(B7) A6
M1
Le choix de lunit de traitement (1 ou 2) dpend de la
destination.
27
STW .D1
A1, *+A4[20] ;
28
SUB
[A1] B
NOP
STW
29
Dcrmenter A1
.S1
.S2
5;
.D1
A1, 1, A1;
Loop ;
A3, *A7 ;
Contraintes
Contrainte chemin crois :
Le code suivant est valide :
ADD .L1x
A1, B1, A0
|| MPY .M2x A2, B2, B3
Le code suivant nest pas valide :
ADD .L1x
A1, B1, A0
|| MPY .M1x A2, B2, B3
M2
x
30
Contraintes
Contrainte stockage/chargement :
Les registres adresses utiliss doivent tre du mme chemin que
lunit .D :
Le code suivant est valide :
LDW .D1
*A1, A2
|| LDW .D2
*B1, B2
Le code suivant nest pas valide :
LDW .D1
*A1, A2
|| LDW .D2
*A3, B2
*B
3
31
Contraintes
Le chargement et le stockage en parallle ne peuvent pas tre du
mme chemin de registres (les registres A et les registres B) :
32
FIN Chapitre
33