Vous êtes sur la page 1sur 3

Ministère de l’Enseignement Supérieur ‫وزارة التعليـم العالي و البحث العلمي‬

et de la Recherche Scientifique

Université de Carthage
‫جامعـة قرطاج‬

Ecole Polytechnique de Tunisie ‫المدرسـة التونسية للتقنيات‬

» Mastère Systèmes complexes et intelligents « SysCoIn


Matière : Systèmes Embarqués

Exercice d’application sur le pipeline


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.
MGBM1 TD2

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.

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)
ADDI R1, R1, #1
SW R1, 10(R2)
ADDI R2, R2, #4
SUB R4, R3, R2
LW R5, 10(R6)
BNZ R4, etiq

2- Une nouvelle spécification des instructions est considérée dans le tableau suivant :
Instructions pouvant Signification Cycle du pipeline

2
MGBM1 TD2

ê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