Vous êtes sur la page 1sur 7

Prctica n4, Desempeo

Ejercicio n1

Considere un programa dividido en las siguientes dos partes:
Prlogo que se ejecuta slo una vez, constituye el 90% de las instrucciones del programa
(esttico, no instrucciones ejecutadas).
Lazo iterativo que se ejecuta 20 veces, constituye el 10% de las instrucciones del programa
(esttico, no instrucciones ejecutadas).
Las frecuencias dinmicas de ejecucin de instrucciones en cada una de las dos partes y los ciclos por
cada tipo de instruccin son los siguientes:

Tipo de Instruccin Ciclos por Instruccin Prlogo Lazo
ALU (add, sub, etc) 4 50% 20%
Punto Flotante 16 10% 40%
Load/store 10 30% 20%
Saltos condicionales 3 10% 20%

a) Determine el CPI del procesador ejecutando este programa (pista: para calcular el CPI podra asumir
un programa de 100 instrucciones de largo).

Para 100 instrucciones:
Tipo de Instruccin Prlogo Lazo
ALU 45 40
Punto Flotante 9 80
Load/store 27 40
Saltos condicionales 9 40
Total 90 200

#ciclos = 8S 4 +89 16 +67 1u +49 S = 2S81, CPI =
2581
290
= 8.9

b) Se proponen dos alternativas para modificar la arquitectura: la primera reduce el tiempo de ejecucin
de las instrucciones de punto flotante a 4 ciclos, mientras que la segunda reduce el tiempo de ejecucin
de los load/store a 5 ciclos. Cul de estas alternativas producira un mejor impacto en el desempeo
del procesador con este programa?.

F
PP
=
8916
2581
= u.SS, S
PP
= 4, S
PP
=
1
(1-0.55)+
0.SS
4
= 1.7
F
Lw Sw /
=
6710
2581
= u.26, S
Sw Lw /
= 2, S
Lw Sw /
=
1
(1-0.26)-
0.26
2
= 1.1S

c) Un compilador optimizante puede eliminar la mitad de los load/store del programa. Calcule los CPI
del programa optimizado en el procesador original, y la aceleracin sobre el programa no optimizado.

ciclos =
2581
1.15
, 1.15 calculado en b)
#inst = 29u - SS.S = 2S6.S, CPI =
2244
256.5
= 8.748S

d) Asuma ahora que un compilador paralelizante puede programa la ejecucin paralela del lazo
iterativo del programa original en un procesador multi-ncleo, donde cada iteracin se ejecuta en
paralelo en un ncleo distinto y el resto del programa no se acelera. Cada uno de los ncleos es idntico
al procesador original. Usando la ley de Amdahl, calcule la aceleracin en este programa al usar el
compilador en una arquitectura con 4 ncleos (cada ncleo ejecuta 5 iteraciones del lazo en paraleleo
con los dems).

Cicloslozo = 4u (4 1u + S) +8u 16 = 196u

F
mc]ou
=
1960
2581
= u.76, S =
1
(1-0.76)+
0.6
4
= 2.SS

para infinitos ncleos, S

= 4.17


Ejercicio n2

Considere un procesador MIPS-I cuya frecuencia es 900MHz.

Tipo Instruccin CPI i #Instrucciones Frecuencia Frec * CPI
ALU 1 30 30/72=0.416 0.416
Load/Store 2 15 15/72=0.208 0.416
Branch 2 10 10/72=0.138 0.276
jump 1 5 5/72=0.069 0.069
mult 3 12 12/72=0.166 0.498
Total 72

a) Calcule su CPI.

CPI
101AL
= _CPI

ninst = u.416 + u.416 +u.276 +u.u69 + u.489 = 1.67S



b) Calcule su MIPS.
HIPS =

CLK
CPI 1u
6
=
9uu 1u
6
1.67S 1u
6
= SS7.S

c) Calcule su I
CP0

I
CP0
= I
cIo]
CPI ninst =
1
9uu 1u
6
1.67S 72 = u.1S4|us]

d) Repita a), b) y c) para el nuevo procesador MIPS-II, cuya frecuencia es 1GHz. Calcule la aceleracin
sobre la mquina original

CPI = 1.67S, HIPS =
110
9
1.67510
6
= S97.u1, I
CP0
= 72 1.67S
1
110
9
= u.12u6|us]
S =
ninst
S M /
CPI
S M /
I
CP0S M /
ninst
C M /
CPI
C M /
I
CP0C M /
=
1 1u
9
9uu 1u
6
= 1.11

e) Obtenga para el nuevo procesador MIPS-III, cuya frecuencia es 2GHz, la aceleracin con respecto a
MIPS-I y MIPS-II.

Tipo Instruccin CPI i #Instrucciones Frecuencia Frec * CPI
ALU 1 30 30/72=0.416 0.416
Load/Store 6 15 15/72=0.208 1.248
Branch 4 10 10/72=0.138 0.552
jump 1 5 5/72=0.069 0.069
mult 3 12 12/72=0.166 0.498
Total 72

CPI = _CPI

= u.416 +1.248 + u.SS2 +u.u69 +u.498 = 2.78S



Aceleracin respecto a MIPS-I
S =
ninst
S M /
CPI
S M /
I
cIo]S M /
ninst
C M /
CPI
C M /
I
cIo]C M /
=
1.67S 2 1u
9
2.78S 9uu 1u
6
= 1.SS

Aceleracin respecto a MIPS-II
S =
ninst
S M /
CPI
S M /
I
cIo]S M /
ninst
C M /
CPI
C M /
I
cIo]C M /
=
1.67S 2 1u
9
2.78S 1 1u
9
= 1.2uS

f) El procesador MIPS-III se ha mejorado gracias a una optimizacin de su cdigo, logrando que se
ejecuten un 25% menos de instrucciones ALU y Load/Store. Calcule la aceleracin obtenida con
respecto a MIPS-III sin mejora de cdigo.

Tipo Instruccin CPI i #Instrucciones Frecuencia Frec * CPI
ALU 1 30->23 0.37 0.37
Load/Store 6 15->12 0.19 1.14
Branch 4 10 0.16 0.64
jump 1 5 0.08 0.08
mult 3 12 0.19 0.57

S =
ninst
S M /
CPI
S M /
I
cIo]S M /
ninst
C M /
CPI
C M /
I
cIo]C M /
=
72 2.78S
62 2.8
= 1.1S

por Ley de Amdahl

F = u.2u8 + u.416 = u.624,
S =
1
0.75
= 1.S,
S =
1
(1-0.624)+
0.624
1.3
= 1.17
















Ejercicio n3

void copystr(int *ap,int *bp)
{
int i;
int *ap, *bp;
for(i=0; i<100; i++)
{ *bp=*ap;
*ap=0;
ap=ap+1;
bp=bp+1;
i++;
}
}
li $t0, 0 # $t0=0
li $t1,100 # $t1=100
F!" b#$ $t0, $t1, F%& # salta si $t0='100 (c()pl$ i<100)
l* $t+, 0($a0) # car#a *ap
s* $t+, 0($a1) # #raba *ap $n bp
s* $,$ro, 0($a0) # #raba 0 $n -ap
addi $a0, $a0, . # s()a . a ap (si#(i$nt$ $l$)$nto)
addi $a1, $a1, . # s()a . a bp (si#(i$nt$ $l$)$nto)
addi $t0, $t0, 1 # i++
b F! # r$inicia $l la,o
F%&" /r $ra # r$torna

Tipo Instruccin CPI #Instrucciones
ALU 2 2+3*100
Load/Store 4 3*100
Branch 3 2*100+1
jump 2 1
Total 804

1. Calcular CPI.

CPI =
#ciclos
#instruccioncs
=
Su2 2 +Suu 4 +2u1 S +1 2
8u4
=
24u9
8u4
= 2.99

2. Se aplica una mejora que disminuye los ciclos de ejecucion del 60 % de las instruccin
Load/Store a 1 ciclo. Calcule la aceleracin respecto a la maquina original.

CPIcm =
#ciclos
#instruccioncs
=
Su2 2 +u.6 Suu 1 +u.4 Suu 4 + 2u1 S + 1 2
8u4
=
1869
8u4
= 2.S2

S =
CPI
S M /
CPI
C M /
=
2.99
2.S2
= 1.28



Ejercicio n4

El programa de la siguiente tabla, ejecuta una vez el prologo y N veces el Lazo

Tipo Instruccin CPI #Inst Prlogo #Inst Lazo
ALU 5 10 5
Load/Store 10 1 10
Branch 5 0 2
jump 2 1 2
Total 12 19


1. Calcular el CPI para N = 5 y para N = 50

#ciclos = 1u S +1 1u +u S + 1 2 + SN S + 1uN 1u + 2N S + 2N 2 = 62 +1S9N
#instruccioncs = 12 + 19N

CPI =
#ciclos
#instruccioncs
=
62 + 1S9N
12 + 19N


CPI(S) = 7.u7, CPI(Su) = 7.28

2. Si se aplica una mejora en las instruccin ALU que disminuye sus ciclos de ejecucin a 3 y
adems se aplica una mejora que disminuye a 6 los ciclos de ejecucin de las instrucciones Load/Store,
calcule la aceleracin para N = 5 y N = 50.

Usando ley de Amdahl

F1(N) =
Su + 2SN
62 +1S9N
, F2(N) =
1u +1uuN
62 +1S9N


F1(S) = u.2S, F2(S) = u.67, F1(Su) = u.18, F2(Su) = u.71

S1 =
S
S
= 1.66, S2 =
1u
6
= 1.66

S =
1
1 -F1 -F2 +
F1
S1
+
F2
S2


S(S) = 1.SS, S(Su) = 1.S4

3. Sobre la maquina original se aplica otra mejora que disminuye los ciclos de Load/Store a 5.
Calcular la aceleracin para N = 5 y N = 50.

Usando ley de Amdahl
F =
1u + 1uuN
62 + 1S9N


F(S) = u.67, F(Su) = u.71

S =
1u
S
= 2

S =
1
1 - F +
F
S


S(S) = 1.Su, S(Su) = 1.SS

Vous aimerez peut-être aussi