Vous êtes sur la page 1sur 9

Module : Architectures Avancées MREEA1

Travaux Dirigés N°3 (Corrigé)

Exercice 1 :

1/

Instructions RTL
lws rd, rs, rt R[rd]=M[R[rs]+R[rt]*4]
ld rt, rd, rs,offset R[rt] = M[R[rs]+offset] et R[rd]=
M[R[rs]+offset+4]
jmem (rt), offset(rs) M[rs+offset]=PC+4 et PC=M[rt]
2/ a- Instruction lws

Dr Dhafer Mezghani Page 1


Module : Architectures Avancées MREEA1

b- Instruction ld

c- Instruction jmem

Dr Dhafer Mezghani Page 2


Module : Architectures Avancées MREEA1

Exercice 2 :
1/ a/

b/

Dr Dhafer Mezghani Page 3


Module : Architectures Avancées MREEA1

2/ a/

b/

Dr Dhafer Mezghani Page 4


Module : Architectures Avancées MREEA1

Exercice 3 :
On veut implémenter les deux instructions suivantes sur le chemin de données et
la machine à états d’un processeur MIPS.

Instruction RTL
Addregmem rd, (rs),rt R[rd]=M[R[Rs]]+R[rt]
Addmemreg (rs), (rs), rt M[R[rs]]=M[R[rs]+R[rt]

a/ Compléter le chemin de données et la machine à états

2/

Dr Dhafer Mezghani Page 5


Module : Architectures Avancées MREEA1

Etat Codop cond Suiv PCwr IorD memr memw M IR Mem Reg Reg ext A B Alu Alu Opé RM M S PCs
To dst write srcA srcB ration R
reg
0000 xxxxxx x 00001 1 0 1 0 0 1 X X O X 0 0 1 X INC X X 0 0
0
0000 beq 0 00011 J X 0 0 0 0 X X 0 1 1 1 1 2 ADD X X 0 10
1
0000 beq 1 00010 J X 0 0 0 0 X X 0 1 1 1 1 2 ADD X X 0 10
1
0000 Rtype X 00100 J X 0 0 0 0 X X 0 1 1 1 1 2 ADD X X 0 10
1
0000 Ori X 00110 J X 0 0 0 0 X X 0 1 1 1 1 2 ADD X X 0 10
1
0000 Lw X 01000 J X 0 0 0 0 X X 0 1 1 1 1 2 ADD X X 0 10
1
0000 Sw X 01011 J X 0 0 0 0 X X 0 1 1 1 1 2 ADD X X 0 10
1
0000 Addr X 10000 J X 0 0 0 0 X X 0 1 1 1 1 2 ADD X X 0 10
1 m
0000 addmr X 01101 J X 0 0 0 0 X X 0 1 1 1 1 2 ADD X X 0 10
1
0001 xxxxxx X 00000 BRANC X 0 0 0 0 X X 0 X 0 0 3 0 SUB X X 0 01
0 H
0001 xxxxxx X 00000 BRANC X 0 0 0 0 X X 0 X 0 0 3 0 SUB X X 0 01
1 H
0010 xxxxxx X 00101 0 X 0 0 0 0 X X 0 X 0 0 3 0 FUN X X 1 X
0
0010 xxxxxx X 00000 1 0 1 0 0 1 0 1 1 X 0 0 X X INC X X 0 0
1
0011 xxxxxx X 00111 0 X 0 0 0 0 X 0 1 0 0 0 3 X FUN X X 1 X
0
0011 xxxxxx X 00000 1 0 1 0 0 1 0 X 1 X 0 0 X X INC X X 0 0
1

Dr Dhafer MEZGHANI Page 6


Module : Architectures Avancées MREEA1

0100 xxxxxx X 01001 0 X 0 0 0 0 X 0 1 0 0 0 3 X ADD X X 1 X


0
0100 xxxxxx X 01010 0 X 1 0 1 0 X X 0 X 0 0 X X XXX X 0 0 X
1
0101 xxxxxx X 00000 1 0 1 0 0 1 1 0 1 X 0 0 X X INC X X 0 0
0
0101 xxxxxx X 01011 0 X 0 0 0 0 X X 1 0 0 0 3 X ADD X X 1 X
1
0110 xxxxxx X 01011 1 0 1 1 0 1 X X 1 X 0 0 X X INC 0 X 0 0
0
0110 xxxxxx X 01110 0 1 1 0 1 0 X X 0 X 0 0 X X XXX X 1 0 X
1
0111 xxxxxx X 01111 0 X 0 0 0 0 X X 0 X 0 0 0 0 ADD X X 1 X
0
0111 xxxxxx X 00000 1 0 1 1 0 1 0 X 1 X 0 0 X X INC 1 X 0 0
1
1000 xxxxxx X 10001 0 1 1 0 1 0 X X 0 X 0 0 X X XXX X 1 0 X
0
1000 xxxxxx X 10010 0 X 0 0 0 0 X X 0 X 0 0 0 0 ADD X X 1 X
1
1001 xxxxxx X 00000 1 0 1 0 0 1 0 1 1 X 0 0 X X INC X X 0 0
0

Dr Dhafer MEZGHANI Page 7


Module : Architectures Avancées MREEA1

Exercice 4 :
1/

2/

inst Me write Me read regDst Me/ Re Regwrite AlusrcA Alusrc B op

lui 0 1 1 1 1 1 0 add
lwptr 0 1 0 1 1 1 2 add
3/

Dr Dhafer MEZGHANI Page 8


Module : Architectures Avancées MREEA1

Exercice 5
1/

Processeur X Processeur Z
MULT 80
LUI 3
LW 5 5
SW 4 4
Type R 4 4
Beq 3 3
CPI moyen du processeur X

CPIx = (0.05*3)+(0.2*5)+(0.1*4)+(0.45*4)+(0.2*3)=3.95
CPI moyen du processeur Z

CPIz = (0.05*80)+(0.25*5)+(0.1*4)+(0.4*4)+(0.2*3)=7.85

2/

Iz : nombre des instructions dans le programme tournant sous Z


Ix : nombre des instructions dans le programme tournant sous X
Si Iz=100,
Alors Ix= 95 + (5 * 20) = 195

3/

Temps exec (x) = 10 ns/c * 3.95 * 195 = 7702,5 ns


Temps exec (z) = 12 ns/c * 7.85 * 100 = 9420 ns
Malgé que Z implémente la multiplication en HW, il est plus lent

4/

Ix = 95 + (nbr MULT) * (nbr intsr équivalents)

Nous devons d'abord trouver le nombre d'instructions du processeur X nécessaire pour


des performances égales.

10ns * 3.95 * Ix = 12ns * 7.85 * 100  Ix = 238.5


Nbr des intrs équivalents = ( 238.5‐95 ) / 5= 143.5 / 5 = 28 instructions

Dr Dhafer MEZGHANI Page 9