Vous êtes sur la page 1sur 3

Correction TD4

Soit un processeur DLX avec les caractéristiques suivantes :


 5 étages au niveau du pipeline qui sont (IF, ID, EX, MEM, WB).
 Une unité entière pour les calculs entiers.
 Une unité flottante pour les additions, soustractions ou multiplications.
 L’exécution des Instructions : ADDI, SUB, BNE, LF : prend 1 cycle.
 L’exécution des Instructions : ADDF : 2 cycles.
.data 0x1000
.global s
s: .word 0
.global x
x: .float 10,20,30,4,50,10,10,1,10,10
.text
main:
subf f5,f5,f5
add r2,r0,x
add r4,r0,#10
loop: lf f3,0(r2)
addi r2,r2,#4
addf f5,f5,f3
sub r4,r4,#1
bnez r4,loop
sf s(r0),f5
trap 0

1. Donner la valeur finale contenue dans le registre F5.


2. Sans tenir compte d’aucune technique d’optimisation, donner le nombre de cycles par
itération de boucle loop.
3. On considère que tous les forwardings (appelé aussi chemins de renvoi) possibles
existent, donner le nombre de cycle par itération après optimisation.
4. Soit le processeur P, il intègre 4 additionneurs flottants (2 cycles d’exécutions) et 4
multiplieurs flottants (5 cycles d’exécutions) Optimiser votre code avec déroulage de
boucles (facteur 4). Quel est le nombre de cycles obtenus ?
1- F5=155

2-
loop: lf f3,0(r2) F D E M W

addi r2,r2,#4 F D E M W

addf f5,f5,f3 F D E1 E2 M W

sub r4,r4,#1 F D E M W

bnez r4,loop F D E

1 2 3 4 5 6 7 8 9 10 F
10Cycles Branchement à loop
3-
loop: lf f3,0(r2) F D E M W

addi r2,r2,#4 F D E M W

addf f5,f5,f3 F D E1 E2 M W

sub r4,r4,#1 F D E M W

bnez r4,loop F D E M W

1 2 3 4 5 6 7 F
7Cycles Branchement à loop
4-
Le nombre de répétition de la boucle égale à 10 nombre d’elets , donc on peut dérouler cette
boucle par facteur de 4 , la nouvelle boucle déroulée sera répéter 2 fois et le travail restant sera
en dehors de la boucle.

Subf f5,f5,f5
Subf f14,f14,f14
Subf f16,f16,f16
Subf f17,f17,f17
add r2,r0,x
add r4,r0,#8
loop: lf f3,0(r2) F D E M W
lf f4,4(r2) F D E M W
lf f6,8(r2) F D E M W
lf f7,12(r2) F D E M W

addi r2,r2,#16 F D E M W

sub r4,r4,#4 F D E M W
addf f5,f5,f3 F D E1 E2 M W
addf f14,f14,f4 F D E1 E2 M W

addf f16,f16,f6 F D E1 E2 M

addf f17,f17,f7 F D E1 E2

bnez r4,loop F D E

1 2 3 4 5 6 7 8 9 10 11 12

addf f5,f5,f14
addf f17,f17,f16
addf f5,f5,f17
lf f3,0(r2)
lf f4,4(r2)
addf f5,f5,f3
addf f5,f5,f4

12 Cycles pour 4 itérations : 3cycles par itération

Vous aimerez peut-être aussi