Vous êtes sur la page 1sur 3

Le DLX est un processeur RISC 32 bits.

On y retrouve nombre des principes architecturaux qui


y sont mis en œuvre dans des processeurs tels que les MIPS ou les PowerPC.
Le DLX comporte 5 niveaux de pipeline qui sont détaillés sur la figure suivante :

Architecture DLX simplifiée

Cette architecture est celle d’une machine “pédagogique”. Elle est dotée de :
- 32 registres entiers 32 bits (R0 est spécial et important : son contenu est 0 !) ;
- 32 registres flottants 32 bits (non représentés dans la figure) ;
- Les instructions arithmétiques et logiques ne peuvent pas s’effectuer en
mémoire ;
- Les opérations arithmétiques et logiques comportent 3 opérandes ;
- Les modes d’adressage sont les suivants :
o Immédiat : add r1,r2,#5 ; // r1 := r2+5
o Par registres : add r1,r2,r3 ; // r1 := r2+r3
o Déplacement : lw r1,22(r2) ; // r1 := [r2+22]
o Indirection : sw 0(r1),r2 ; // r2 ! [r1]
o Absolu : lw r12,2004(r0) ; // r12 := [2004]

Les cinq phases du pipeline exécutent les opérations suivantes :


1- Fetch (F) : lecture instruction ;
The next instruction to be executed is read from the instruction memory at the address pointed by the Program
Counter(PC) register. The next address is computed as the current address plus 4 or the value coming from
the next stage if a jump has to be executed.
2- Decode (D) : décodage et accès aux registres impliqués dans l’instruction ;
The instruction coming from the IF stage is decoded and the register file is accessed. Conditional branches
are also evaluated in this stage and the jump address is computed and sent back to the IF stage.
3- Execute (E) : exécution des opérations arithmétiques et calcul d’adresses ;
Logic and arithmetic operations are executed on the operand coming from the ID stage. The result of this
operation can either be a value to be written back in the register file or the address of the data memory to be
accessed in the next stage.
4- Memory (M) : accès à la mémoire. Pour les branchements, c’est dans cette phase que
s’effectue la modification du compteur ordinal ;
Data memory is accessed (either read or write).
5- Write back (W) : écriture des résultats dans les registres.
The value to be written in the register file (if any) is sent back to the ID stage.

I/Pipeline d’instructions
Soit la boucle suivante :
etiq : LW R1, 10(R2)
ADDI R1, R1, #1
SW R1, 10(R2)
ADDI R2, R2, #4
SUB R4, R3, R2
LW R5, 10(R6)
BNZ R4, etiq
1- La spécification des instructions est donnée par le tableau suivant :
Instructions pouvant Signification Cycle du pipeline
être pipelinées où l’opération
termine (le résultat
étant disponible 1
cycle plus tard)
LW R1, 10(R2) R1 :=Mem[10+R2] W
ADDI R1, R1, #1 R1 :=R1+1 W
SW R1, 10(R2) Mem[10+R2] :=R1 M
SUB R4, R3, R2 R4 :=R3-R2 W
BNZ R4, etiq Branchement si non zéro E
Dresser dans un tableau la trace de l’exécution de cette boucle en utilisant au besoin
des suspensions (rupture de séquence). Pour l’instruction de branchement, considérez
que le pipeline suspend en attendant la fin de toutes les instructions de la boucle. En
déduire le nombre de cycles d’horloge requis pour l’exécution de cette boucle

Cycle d’horloge 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
LW R1, 10(R2) F D E M W
ADDI R1, R1, #1 F D ! ! E M W
SW R1, 10(R2) F ! ! D E ! M W
ADDI R2, R2, #4 F D ! E M W
SUB R4, R3, R2 F ! D ! ! E M W
LW R5, 10(R6) F ! ! D E M W
BNZ R4, etiq F D ! E M W
LW R1, 10(R2) ! ! ! F D
Ou
Instruction x
Pas de prédiction du
branchement ->
exécution de la
boucle en 15 cycles
d’horloge
LW R1, 10(R2) F D E M W
Avec prédiction de
branchement
exécution de la
boucle en 12 cycles
d’horloge

ADDI R1, R1, #1 F …


2- Une nouvelle spécification des instructions est considérée dans le tableau suivant :
Instructions pouvant Signification Cycle du pipeline
être pipelinées où l’opération
termine
LW R1, 10(R2) R1 :=Mem[10+R2] W
ADDI R1, R1, #1 R1 :=R1+1 E
SW R1, 10(R2) Mem[10+R2] :=R1 M
SUB R4, R3, R2 R4 :=R3-R2 E
BNZ R4, etiq Branchement si non zéro D

Dresser la trace d’exécution de cette boucle et déduire le nouveau nombre de cycles.


En considère dans ce cas une politique de prédiction de branchement pris.
Cycle d’horloge 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
LW R1, 10(R2)
ADDI R1, R1, #1
SW R1, 10(R2)
ADDI R2, R2, #4
SUB R4, R3, R2
LW R5, 10(R6)
BNZ R4, etiq

Vous aimerez peut-être aussi