Sie sind auf Seite 1von 6

1/6

CAPITULO 4

Problema 1:
Estimar las velocidades pico de los procesadores que se describen en el capitulo utilizando los datos respecto
a las frecuencias de reloj, instrucciones que se retiran por ciclo y unidades funcionales que se indican en el
texto.

Solucin:

Procesador Frecuencia Finalizan / Ciclo Velocidad Pico
MIPS R100 275 5 1375
Ultra Sparc II 250 6 1500
HP PA 8500 400 6 2400
DEC Alpha 21264 600 8 4800
Power PC 620 200 4 800
AMD Athlon K7 1200 3 3600
Pentium 4 1400 3 4200

Problema 2:
Se dispone de una aplicacin de procesamiento de seal que debe repetir 3000 veces el clculo a(|) =
(a(|), a(| +1), a(| + 2), a(| +3)) para cada muestra de la seal a(|)(| = 1, , 2
2
3) que ocupa 4
bytes, y () es una funcin determinada. El cdigo por 12 instrucciones de 32 bit que se repiten para cada
muestra. De las instrucciones, 4 son de acceso a memoria para leer/escribir datos, 4 son instrucciones de
operaciones aritmticas, y 4 son de control del bucle, actualizacin de punteros, etc.

Estimar el tiempo mnimo que tardara en ejecutarse esa aplicacin (suponemos que no hay fallos de cach
para instrucciones o datos) en los siguientes microprocesadores:

- UltraSPARC III 600 MHz
- Alpha 21264 450 MHz
- MIPS R10000 180MHz
- Power PC G5 800MHz

Solucin:

UltraSPARC III:
Ciclos de acceso a memoria = 4 inst
1 ccIo
2 nst
= 2 ciclos

Ciclos de instrucciones aritmticas = 4 inst
1 ccIo
2 nst
= 2 ciclos

Ciclos de control y actualizacin = 4 inst
1 ccIo
1 nst
= 4 ciclos

t
mn
= n ciclos pcrioJo n rcpcticioncs

t
mn
= 8
1
6uuHEz
Suuu = 4u us



2/6

Alpha 21264:
Ciclos de acceso a memoria = 4 inst
1 ccIo
4 nst
= 1 ciclos

Ciclos de instrucciones aritmticas = 4 inst
1 ccIo
2 nst
= 2 ciclos

Ciclos de control y actualizacin = 4 inst
1 ccIo
1 nst
= 4 ciclos

t
mn
= n ciclos pcrioJo n rcpcticioncs

t
mn
= 7
1
4SuHEz
Suuu = 46.6 us


MIPS R10000:
Ciclos de acceso a memoria = 4 inst
1 ccIo
4 nst
= 1 ciclos

Ciclos de instrucciones aritmticas = 4 inst
1 ccIo
2 nst
= 2 ciclos

Ciclos de control y actualizacin = 4 inst
1 ccIo
1 nst
= 2 ciclos

t
mn
= n ciclos pcrioJo n rcpcticioncs

t
mn
= S
1
18uHEz
Suuu = 8S.S us

*Nota: Los ciclos de acceso a memoria, instrucciones aritmticas, control y actualizacin del MIPS R10000 y del PowerPC G5 tienen que ser confirmados
por el ingeniero.



3/6

Problema 3:
Utilizar las instrucciones cmovcc y setcc para reducir el nmero de instrucciones de salto en el siguiente
bucle:
if (A>B) then (X=1); else { if (C<D) then (X=2); else (X=3)}

Solucin:

Cdigo Original:

Cdigo Optimizado:


4/6

xor %al, %al
xor %bl, %bl
xor %cl, %cl

cmpl B, A // si (A>B), al=1
setgtb %al
cmpl S1, %al
cmoveq S1, X // si al=1, X=1
neg al

cmpl C, B // si (D>C), bl=1
setgtb %bl
and %al, %bl
cmpl S1, %bl
cmoveq S2, X // si bl=1, al=1, bl and al=1 X=2

cmpl C, D // si (D<=C), cl=1
setleb %cl
and %al, %cl
cmpl S1, %cl
cmoveq S3, X // si cl=1, al=1, cl and al=1 X=3


Banderas
Operacin
al bl cl
1 0 0 X=1
0 1 0 X=2
0 0 1 X=3

Problema 4:
Para el siguiente cdigo optimizar las instrucciones usando setccb.

if (A<B) ebx=C; else ebx=D

Solucin:

Cdigo Original:

cmpl B, A
jge LO
mov1 c, %ebx
jmp L1
L0: mov1 D, %ebx
L1:



5/6

Cdigo Optimizado:

xorl %ebx, %ebx
cmpl B, A
setgeb %bl
decl %ebx
andl (C-D), %ebx
addl D, %ebx

Si A>=B, setgeb hace bl=1, dec hace ebx=0, (ebx and C-D)=0 ebx=0, ebx+D=0+D=D ebx=D.
Si A<B, setgeb hace bl=0, dec hace ebx=0xFFFFFFFF, (ebx and C-D)=C-D ebx=C-D, ebx+D=C-D+D=C ebx=C.

Problema 5:
Utilizar las instrucciones con predicado setccb y cmovcc para reducir las instrucciones en:

if (A<=B) then cbx=2; else cbx=4

Solucin:

Cdigo Optimizado:

xorl %al, %al
cmpl A, B
setgeb %al // al=1 si A<=B, al=0 si A>B
cmpl S1, %al
cmoveq S2, %cbx // si al=1 (A<=B) cbx=2
cmpl S0, %al
cmoveq S4, %cbx // sia al=0 (A>B) cbx=4




6/6

Problema 6:
Utilizar las instrucciones con predicado del repertorio IA-32 para reducir las instrucciones de salto
condicional en la secuencia.

if ((X[0] mod 2)==0) then
for i=1 to 2 do
if ((X[i] mod 2)==0) then X[i]=2*X[i]
else if (X[0]<0) then X[i]=0;

Das könnte Ihnen auch gefallen