1304 Banco - 07 Desempeño

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

Universidad de los Andes

Ingeniería de Sistemas y Computación


ISIS1304 – Fundamentos de Infraestructura Tecnológica
Banco – Desempeño

Capacidades evaluadas:
▪ Cálculo de CPI
▪ Cálculo de tiempos
▪ Comparación (Relación de tiempos aplicada a las circunstancias)
RECORDAR:
Tejec = N * CPI * Tc = N * CPI * 1/Fc
Donde:
N = recuento de instrucciones.
CPI = ciclos de reloj por instrucción.
Fc = frecuencia del reloj
Tc = tiempo de ciclo = 1 / Fc
Se tiene una máquina M1 con 4 tipos de instrucciones (A1, B1, C1, D1); su
porcentaje de ocurrencia y su CPI se presentan en la siguiente tabla:

CPI %
A1 2 40%
B1 3 30%
C1 5 20%
D1 1 10%
Se tiene otra máquina M2 con 3 tipos de instrucciones (A2, B2, C2); su
porcentaje de ocurrencia y su CPI se presentan en la siguiente tabla:

CPI %
A2 1 50%
B2 2 20%
C2 1 30%
Por otro lado, para todo programa, M2 tiene un 60% más de instrucciones que
M1.
¿Cuál debe ser la relación de frecuencias de reloj (f1 para M1 y f2 para M2)
para que M2 sea un 50% más rápida que M1?
CPI1 = 2*0,4 + 3*0,3 + 5*0,2 + 1*0,1 = 2,8
CPI2 = 1*0,5 + 2*0,2 + 1*0,3 = 1,2
N2 = 1,6*N1
Tejec = N * CPI * Tc = N * CPI / f
T1 = N1 * CPI1 / f1 = N1 * 2,8 / f1
T2 = N2 * CPI2 / f2 = 1,6*N1 * 1,2 / f2
T1/T2 = 1 + 50/100 = 1,5 = (N1 * 2,8 / f1) / (1,6*N1 * 1,2 / f2) = (2,8 * f2) / (1,6 *
1,2 * f1)
1,5 = 1,46 f2/f1
f2/f1 = 1,029
Se tienen dos máquinas A y B, y se ejecutan sobre ellas tres programas de
prueba P1, P2, P3, con los siguientes resultados en tiempo de ejecución (en
segundos):

A B
P1 30 10
P2 100 130
P3 50 60

1- ¿Cuál de las dos máquinas puede ser considerada más veloz? Use el criterio
de media geométrica de tiempos normalizados (tiempos relativos), tomando B
como máquina de referencia.
Matriz de tiempos normalizados:
A B
P1 TB1/ TA1 TB1/ TB1
P2 TB2/ TA2 TB2/ TB2
P3 TB3/ TA3 TB3/ TB3
Lo que para este caso es:
A B
P1 0.33 1
P2 1.3 1
P3 1.2 1
3
Media geométrica de A = 0.33 *1.3 *1.2 = 0.8
Media geométrica de B = 1
A es 0.8 veces más rápida que B, lo que quiere decir que, en realidad, es
más lenta (va a 0.8 de la velocidad de B; es decir, es un 20% más lenta).

2- ¿Por cuánto habría que multiplicar el reloj de la más lenta para que fueran igual de
rápidas?
Ayuda: Piense primero en: ¿cómo afecta el aumento de la frecuencia del reloj al
tiempo de ejecución? ¿y cómo afecta esto a la normalización de tiempos?
Tejec = #inst*CPI*Tciclo = #inst*CPI*(1/f)
Si multiplicamos el reloj por k, obtenemos:
Tejec2 = #inst*CPI*(1/kf) = Tejec/k
Dado que A es la más lenta, esto cambia la matriz de tiempos normalizados a:

A B
P1 k*TB1/ TA1 1
P2 k*TB2/ TA2 1
P3 k*TB3/ TA3 1

Por ende, la nueva media geométrica de A es:


3
k * 0.33 * k *1.3 * k *1.2 = k * 3 0.33 *1.3 *1.2 = k*0.8
Para que sean igual de rápidas necesitamos que k*0.8 = 1, luego: k = 1/0.8 =
1.25
Un programador está escribiendo un compilador de Java, el cual se
implementará en dos máquinas de arquitectura diferente (que llamaremos
máquina 1 y máquina 2). Los diseñadores de hardware de los procesadores le
han dado al programador la siguiente información sobre el CPI de las
instrucciones de cada una de las máquinas:
Máquina 1 - Arquitectura 1 - 100 MHz Máquina 2 - Arquitectura 2 - 200 MHz
Instrucción de Bajo Ciclos de reloj por Instrucción de Bajo Ciclos de reloj por
Nivel instrucción Nivel instrucción
A 4 X 2
B 2 Y 6
C 1 Z 3
Adicionalmente, para una cierta instrucción de Java, el programador ha definido
dos posibles traducciones a lenguaje de bajo nivel para cada una de las
máquinas (programas 1, 2, para la máquina 1; programas 3, 4, para la máquina
2):
Implementaciones de la Instrucción de Implementaciones de la Instrucción de Java en
Java en la Máquina 1 la Máquina 2
Programa1 Programa2 Programa3 Programa4
A B X Z
B B Y Y
A C Y Y
C A Z Z
B A Y Y
A C Y Y
A C Y Y
C X
1. Con base en los datos presentados para cada implementación en lenguaje
ensamblador,calcule el tiempo de ejecución de usuario en nanosegundos.
Ordene los 4 programas de menor a mayor según los tiempo de ejecución.
Total ciclos programa 1 = 4+2+4+1+2+4+4 = 21
Total ciclos programa 2 = 2+2+1+4+4+1+1+1 = 16
Total ciclos programa 3 = 2+6+6+3+6+6+6+2 = 37
Total ciclos programa 4 = 3+6+6+3+6+6+6 = 36
tciclo1 = 1 / 100 MHz = 10-8 s = 10 ns
tciclo2 = 1 / 200 MHz = 0,5*10-8 s = 5 ns
Tiempo programa 1 = 21*10 ns = 210 ns
Tiempo programa 2 = 16*10 ns = 160 ns
Tiempo programa 3 = 37*5 ns = 185 ns
Tiempo programa 4 = 36*5 ns = 180 ns
(nota: también se puede calcular el CPI, y multiplicar por el número de
instrucciones, pero eso es lo mismo que sumar los ciclos).
Luego el orden es: programa2, programa4, programa3, programa1.
2. ¿Por cuánto habría que multiplicar la velocidad de reloj de la máquina 2 para
que el tiempo de ejecución del programa 3 sea igual al tiempo de ejecución del
programa 2 (en la máquina 1)?
Tiempo programa 3 = 37*1/(k*200MHz) = 160 ns
k = 37/(200MHz*160 ns) = 37/32 = 1,15625
La velocidad de reloj se debe multiplicar por 1,15625, es decir, debe ser 231,25
MHz.
Se tiene una cierta máquina A, y se ejecutan sobre ellas tres programas de
prueba P1, P2, P3, con los siguientes resultados en tiempo de ejecución (en
segundos):
P1 P2 P3
A 20 100 50
Se le efectúan unas modificaciones a esta máquina, y como resultado se
obtiene una nueva versión de la máquina (llamémosla AM). Estas
modificaciones afectan el número de instrucciones ejecutadas y el CPI de los
tres programas (P1, P2 y P3) sobre la máquina AM de la siguiente manera:
P1 P2 P3
Número CPI Número CPI Número CPI
instrucciones instrucciones instrucciones

AM Disminuye Aumenta Disminuye Aumenta Disminuye Aumenta


20% 20% 10% 20% 22% 18%

1- ¿Cuál es el tiempo de ejecución de cada uno de los programas (P1, P2 y P3) en la


nueva versión de la máquina (AM)?
Para el programa 1 en la máquina A, tenemos:
tA1 = IA1*CPIA1*tciclo = 20s
Luego, para el programa 1 en la máquina AM, tenemos:
tAM1 = IAM1*CPIAM1*tciclo = (IA1*0.8)*(CPIA1*1.2)*tciclo = (0.8*1.2)*(IA1*CPIA1*tciclo) =
0.96* tA1 = 0.96*20 = 19.2
Similarmente para el programa 2 en la máquina AM, tenemos:
tAM2 = (0.9*1.2)*tA2 = 1.08*tA2 = 1.08*100 = 108
Y para el programa 3 en la máquina AM, tenemos:
tAM2 = (0.78*1.18)*tA2 = 0.9204*tA2 = 0.9204*50 = 46.02
2- ¿Cuál de las dos versiones de la máquina (A y AM) puede ser considerada más
veloz? Use el criterio de media geométrica de tiempos normalizados (tiempos
relativos), tomando a la máquina A como máquina de referencia.
P1 P2 P3
tA/tAM 20/19.2 100/108 50/46.02
=
P1 P2 P3
tA/tAM 1.0417 0.9259 1.0865
MG = 3 1.0417 * 0.9259*1.0865 = 1.0157
Luego AM es más veloz según este criterio
Se tienen dos máquinas Ay B, y se ejecutan sobre ellas tres programas de
prueba P1, P2, P3, con los siguientes resultados en tiempo de ejecución (en
segundos):
P1 P2 P3
A 20 100 50
B 10 150 60
1- ¿Cuál de las dos máquinas puede ser considerada más veloz? Use el criterio de
media geométrica de tiempos normalizados (tiempos relativos), tomando B como
máquina de referencia.
Matriz de tiempos normalizados:
P1 P2 P3
A TB1/ TA1 TB2/ TA2 TB3/ TA3
B TB1/ TB1 TB2/ TB2 TB3/ TB3
Lo que para este caso es:
P1 P2 P3
A 0.5 1.5 1.2
B 1 1 1
3
Media geométrica de A = 0.5 *1.5 *1.2 = 0.97
Media geométrica de B = 1
A es 0.97 veces más rápida que B, lo que quiere decir que, en realidad, es más
lenta (va a 0.97 de la velocidad de B).
2- ¿Por cuánto habría que multiplicar el reloj de la más lenta para que fueran igual de
rápidas?
Tejec = #inst*CPI*Tciclo = #inst*CPI*(1/f)
Si multiplicamos el reloj por k, obtenemos:
Tejec2 = #inst*CPI*(1/kf) = Tejec/k
Dado que A es la más lenta, esto cambia la matriz de tiempos normalizados a:
P1 P2 P3
A k*TB1/ TA1 k*TB2/ TA2 k*TB3/ TA3
B 1 1 1
Por ende, la nueva media geométrica de A es:
3
k * 0.5 * k *1.5 * k *1.2 = k * 3 0.5 *1.5 *1.2 = k*0.97
Para que sean igual de rápidas necesitamos que k*0.97 = 1, luego: k = 1/0.97 =
1.03
Una compañía de computadores quiere sacar un modelo con un nuevo
procesador. Todos los programas en el nuevo procesador tienen un 10% más
de instrucciones, y el CPI es 5 veces menor que el anterior (CPI nuevo = CPI
viejo / 5).
Adicionalmente, el nuevo procesador tiene otra arquitectura, y, para garantizar
la compatibilidad, la compañía ha pensado en sacar el nuevo computador con
un emulador que permita ejecutar los programas del anterior modelo. Este
emulador ejecuta 10 instrucciones del emulador por cada instrucción de la
máquina virtual.
¿Cuántas veces más rápido debe ser el reloj en la máquina nueva para que los
programas, interpretados por el emulador, ejecuten más rápido que en la
máquina vieja?
Para el viejo: tev = Iv*CPIv*tcv
Equivalentemente, para el nuevo: ten = In*CPIn*tcn
Ahora, para el nuevo: CPIn = CPIv/5
El caso de las instrucciones es más delicado. Note que los programas en
ejecución son diferentes: en la máquina vieja se corre un cierto programa P que
ejecuta Iv instrucciones; pero en la máquina nueva está corriendo el programa
emulador, el cual, a su vez, está interpretando al programa P. La pregunta es
entonces: ¿cuántas instrucciones ejecuta el programa emulador?
Puesto que el emulador está interpretando al programa P, y dado que este
programa ejecuta Iv instrucciones, y que el emulador ejecuta 10 instrucciones
nativas por cada instrucción emulada, eso implica que el número de
instrucciones ejecutadas por el emulador es: 10*Iv.
Reemplazando en la ecuación anterior: ten = 10*Iv*(CPIv/5)*tcn= 2*Iv*CPIv*tcn
Dado que queremos que el programa ejecute más rápido que en la máquina
vieja, esto implica que: tev > ten
Reemplazando los valores de tev y ten tenemos: Iv*CPIv*tcv > 2*Iv*CPIv*tcn
es decir: tcv > 2*tcn
Como la frecuencia es la inversa del tiempo de ciclo, tenemos que: 1/tcv <
1/(2*tcn)
Luego: fv < fn/2
En conclusión: 2 < fn/fv
Luego el reloj de la nueva máquina debe ser por lo menos el doble de rápido.
Se tiene un procesador cuya frecuencia de reloj es de 100 MHz, además el
procesador tiene pipeline y también cache de memoria.
La tasa de éxito del cache es de 90%; si el cache falla, la recarga es de 5 ciclos
(es decir, se introducen 5 burbujas en el pipeline).
Se desea mejorar el procesador y para esto se estudian dos opciones:
▪ Duplicar el tamaño del cache: la tasa de éxito subiría al 95%.
▪ Aumentar la frecuencia del reloj en un 10%.
¿Cuál de las dos opciones es mejor?
Fórmula base: t = N*CPI*Tc
Puesto que hay pipeline, en principio, el CPI es 1. Sin embargo, cuando el
cache falla, se introducen 5 burbujas, lo que implica que el CPI percibido para
esa instrucción será 6 (1 ciclo normal de pipeline más las 5 burbujas). En
consecuencia, el CPI promedio para el cache con tasa de éxito 90% y 95%
será:
CPI90 = 0.9*1 + 0.1*6 = 1.5
CPI95 = 0.95*1 + 0.05*6 = 1.25
El tiempo de ejecución para la primera opción (duplicar el cache) es:
t1 = N*1.25*tc = N*1.25/ 100 MHz = N*0.0125 s/ M
El tiempo de ejecución para la segunda opción (aumentar en 10% la
frecuencia) es:
t2 = N*1.5*tc = N*1.5/ 110 MHz = N*0.0136 s/ M
Como t1 < t2, es mejor la primera opción: duplicar el cache.
Se tiene dos computadores M1 y M2. La frecuencia de reloj de M1 es de 100
MHz y la de M2 es de 150 MHz. En promedio, los programas de M2 tienen un
20% más de instrucciones. Los dos tienen 4 tipos de instrucciones; los
porcentajes de ocurrencia de las instrucciones en los programas y su
respectivo CPI son los siguientes:
M1 M2
% CPI % CPI
Instrucción 1 10 1 15 2
Instrucción 2 20 2 25 3
Instrucción 3 30 3 30 4
Instrucción 4 40 4 30 5
¿Cuál de las máquinas es más veloz?
CPI1 = 1*0.1+2*0.2+3*0.3+4*0.4 = 3
CPI2 = 2*0.15+3*0.25+4*0.3+5*0.3 = 3.75
N2 = 1.2*N1
Luego:
Tejec1 = N1*3/100 MHz = 0.03N1/MHz
Tejec2 = 1.2*N1*3.75/150 MHz = 0.03N1/MHz
Las dos máquinas son igualmente rápidas.
Se tiene un cierto procesador y se propone cambiar su arquitectura agregando
unas instrucciones complejas. Al agregar estas instrucciones se logra que el
20% de las instrucciones de un programa se reduzcan a la mitad. Pero, para
estas instrucciones, el CPI aumenta en 1.
¿En qué condiciones la nueva máquina será más rápida que la original?
En la máquina original:
to = No * CPIo * Tc
En la máquina nueva:
Tc es igual (es el mismo reloj).
Como un 20% de instrucciones se reduce a la mitad, la máquina nueva tendrá
un 90% de las instrucciones de la original:
Nn = 0,9 * No
En cuanto al CPI, el 80% de las instrucciones conserva el CPI de la original; el
10% restante tiene el mismo CPI + 1, luego:
CPIn = ( 0,8 * CPIo + 0,1 * (CPIo + 1) ) / 0,9
Tenga en cuenta que las instrucciones se redujeron al 90%, por esto las
fracciones no suman 1 sino 0,9.
En total:
tn = 0,9 * No * ( 0,8 * CPIo + 0,1 * (CPIo + 1) ) / 0,9 * Tc
= No * ( 0,9 * CPIo + 0,1 ) * Tc
La nueva máquina es más veloz que la original si tn < to, luego:
No * ( 0,9 * CPIo + 0,1 ) * Tc < No * CPIo * Tc, de lo cual se desprende:
( 0,9 * CPIo + 0,1 ) < CPIo, es decir:
1 < CPIo
Se tienen dos máquinas M1 y M2 con la misma arquitectura. M1 funciona a
50MHz y tiene un CPI de 2. M2 funciona a 100MHz y tiene un CPI de 1. ¿Qué
se puede hacer para que la más lenta iguale en velocidad a la otra? (¡Atención
al sentido común!).
Tejec1 = N1 * CPI1 * Tc1 = N1 * 2 * 1/50MHz
Tejec2 = N2 * CPI2 * Tc2 = N2 * 1 * 1/100MHz
Para que sean igualmente veloces los tiempos de ejecución deben ser iguales:
N1 * 2 * 1/50MHz = N2 * 1 * 1/100MHz 
N1 * 2 * 100MHz/50MHz = N2 
N1 * 4 = N2
Esto implicaría que la velocidad sería igual si el número de instrucciones de los
programas estuvieran en relación de 1 a 4, pero eso no lo podemos garantizar.
De hecho, las dos máquinas tienen la misma arquitectura, luego los programas
deben tener el mismo número de instrucciones (N1 = N2).
En conclusión: no podemos hacer nada; es imposible que sean igualmente
veloces.
Se compila y ejecuta el mismo programa sobre dos máquinas. Las máquinas
tienen la misma velocidad de reloj pero no se sabe si son iguales. El tiempo de
ejecución fue el mismo, pero el CPI fue de 1 y 2, respectivamente. Dadas estas
consideraciones, ¿podrían tener la misma arquitectura las dos máquinas?
Tejec1 = Tejec2 
N1 * CPI1 * Tc1 = N2 * CPI2 * Tc2
Pero Tc1 = Tc2, CPI1 = 1 y CPI2 = 2, luego:
N1 = N2 * 2
Los programas de la máquina 1 tienen el doble de instrucciones que los
programas de la máquina 2, luego no pueden tener la misma arquitectura.
Se tiene una máquina M tal que todas sus instrucciones toman el mismo tiempo
en ejecutarse. Se crea una versión “compleja” de esta máquina (MC); MC es
igual a M excepto porque se le adicionaron algunas instrucciones complejas. Al
adicionar las instrucciones complejas, el tiempo de ejecución de todas las
instrucciones de MC aumentó, con respecto al de las de M, en un 10%. Las
instrucciones complejas de MC se simulan en M ejecutando k instrucciones
simples. Los programa de MC tiene un 1% de instrucciones complejas.
¿Cuándo es más rápida M que MC?
El tiempo de ejecución de una instrucción (Ti) es Ti = CPI * Tc.
Sea Ti el tiempo de ejecución de una instrucción en la máquina M, y N el
número de instrucciones ejecutadas en la máquina MC.
Puesto que en MC todas las instrucciones toman un 10% de tiempo más que
en M, esto implica que el tiempo de ejecución de una instrucción en MC es
Ti*1,1. En consecuencia el tiempo de ejecución de un programa de N
instrucciones en MC es:
Tmc = N * Ti * 1,1
Ahora para un programa de N instrucciones en MC, el 99% de ellas existen en
M, pero el 1% no (las instrucciones complejas) y deben ser simuladas usando k
instrucciones de M. En consecuencia, un programa de N instrucciones en MC,
se convierte en un programa con N*0,99 + k*N*0,01 instrucciones en M. Luego
el tiempo de ejecución en M es:
Tm = (N*0,99 + k*N*0,01) * Ti
M es más rápida que MC si Tm < Tmc, luego:
(N*0,99 + k*N*0,01) * Ti < N * Ti * 1,1 

(N*0,99 + k*N*0,01) < N * 1,1 

(0,99 + k*0,01) < 1,1 

k < (1,1 - 0,99)/ 0,01 = 11 

k < 11
M es más rápida que MC si k < 11.
Se tiene una máquina M1 con 4 tipos de instrucciones (A, B, C, D); su
porcentaje de ocurrencia y su CPI se presentan en la siguiente tabla:
CPI %
A 2 40%
B 3 30%
C 5 20%
D 1 10%
Se tiene otra máquina M2 con instrucciones más sencillas, todas de CPI = 1.
Cada instrucción de M1 corresponde a entre 1 y 4 instrucciones de M2; a
cuántas exactamente, depende del tipo de instrucción y del contexto del
programa. Así, por ejemplo, el 50% de las instrucciones de tipo A se pueden
implementar usando una sola instrucción de M2, el 30% usando 2, el 10%
usando 3 y otro 10% usando 4. Esto se resume en la siguiente tabla:
1 2 3 4
A 50% 30% 10% 10%
B 40% 20% 20% 20%
C 30% 20% 20% 30%
D 70% 10% 10% 10%
¿Cuál debe ser la relación entre el reloj de M2 y el de M1 para que las dos
sean igualmente rápidas?
El CPI de la máquina 1 es:
CPI1 = 0,4*2 +0,3*3 + 0,2*5 + 0,1*1 = 2.8
Ahora, un programa de la máquina 1 con N1 instrucciones, según la tabla,
tendrá 40% de instrucciones de tipo A, 30% de tipo B, etc. Luego:
N1 = 0,4*N1 + 0,3*N1 + 0,2*N1 + 0,1*N1
Pero, según la segunda tabla, en la máquina 2, el 50% de las instrucciones de
tipo A se implementan usando 1 instrucción, el 30%, 2, etc. Luego, el número
total de instrucciones en la máquina 2 será
N2 =
0,4 * (0,5*N1*1 + 0,3*N1*2 + 0,1*N1*3 + 0,1*N1*4) +
0,3 * (0,4*N1*1 + 0,2*N1*2 + 0,2*N1*3 + 0,2*N1*4) +
0,2 * (0,3*N1*1 + 0,2*N1*2 + 0,2*N1*3 + 0,3*N1*4) +
0,1 * (0,7*N1*1 + 0,1*N1*2 + 0,1*N1*3 + 0,1*N1*4) = 2,04*N1
En consecuencia:
Tejec1 = N1 * CPI1 * Tc1 = N1 * 2,8 * Tc1
Tejec2 = N2 * CPI2 * Tc2 = 2,04*N1 * 1 * Tc2
Si son igualmente rápidas Tejec1 = Tejec2, luego:
N1 * 2,8 * Tc1 = 2,04*N1 * 1 * Tc2 

2,8 * Tc1 = 2,04* Tc2 

Tc1 / Tc2 = 2,04 / 2,08 = 0,73


Para la máquina M1 del punto anterior, usted puede elegir una entre 3 posibles
mejoras (¡solo una!):
- Reducir el tiempo de ciclo en un 10%.
- Disminuir en 1 el CPI de alguna de las instrucciones (diga cuál).
- Restarle 10% al recuento de alguna de las instrucciones (diga cuál). Atención:
no es restarle el 10%, sino restarle 10% (v.gr. pasar de 30% a 20%). Note
también que el total de instrucciones pasan de 100% a 90%.
¿Cuál elegiría y por qué?
El tiempo de ejecución original viene dado por:
Tejec = N * CPI * Tc = 2,8 * N * Tc
Primera opción. Reducir el tiempo de ciclo en 10%:
Tejec = N * 2,8 * 0,9*Tc = 2,52 * N * Tc
Segunda opción. Reducir en 1 el CPI de alguna instrucción:
Reducir el CPI de A:
CPI = 0,4*1 + 0,3*3 + 0,2*5 + 0,1*1
Tejec = 2,4 * N * Tc
Reducir el CPI de B:
CPI = 0,4*2 + 0,3*2 + 0,2*5 + 0,1*1
Tejec = 2,5 * N * Tc
Reducir el CPI de C:
CPI = 0,4*2 + 0,3*3 + 0,2*4 + 0,1*1
Tejec = 2,6 * N * Tc
Reducir el CPI de D:
CPI = 0,4*2 + 0,3*3 + 0,2*5 + 0,1*0
Tejec = 2,7 * N * Tc
Segunda opción. Reducir en 10% el recuento de alguna instrucción:
Reducir el recuento de A:
CPI = (0,3*2 + 0,3*3 + 0,2*5 + 0,1*1)/0,9
Tejec = 2,9 * N * Tc
Reducir el recuento de B:
CPI = (0,4*2 + 0,2*3 + 0,2*5 + 0,1*1)/0,9
Tejec = 2,8 * N * Tc
Reducir el recuento de C:
CPI = (0,4*2 + 0,3*3 + 0,1*5 + 0,1*1)/0,9
Tejec = 2,6 * N * Tc
Reducir el recuento de D:
CPI = (0,4*2 + 0,3*3 + 0,2*5 + 0,0*1)/0,9
Tejec = 3 * N * Tc
El menor valor es cuando se reduce en 1 el CPI de la instrucción A.
Se está ejecutando un programa que genera imágenes de video. Las imágenes
tienen 1024 x 1024 pixels, y se generan 20 imágenes por segundo. Si el
programa corre en un procesador que funciona a 500 MHz y cuyas
instrucciones gastan, todas, 4 ciclos de reloj en ejecutar, ¿cuál es el máximo
número de instrucciones de máquina que puede ejecutar el programa para
procesar cada pixel sin afectar el ritmo del video?
Número de pixels procesados/s = 1024*1024*20 pixels / s = 20.971.520 pixels /
s
La máquina tiene 500 MHz y cada instrucción gasta 4 ciclos, luego el número
de instrucciones/s que puede ejecutar es 500.000.000/4 (instrucciones/s) = 125
MIPS (Millones de Instrucciones Por Segundo).
En consecuencia el número de instrucciones/pixel = 125.000.000 / 20.971.520
= 5.96
Es decir, puede ejecutar 5 instrucciones por pixel (si el procesamiento de cada
pixel exige un número exacto de instrucciones) ó 5.96 (en promedio, si el
procesamiento de cada pixel necesita diferente número de instrucciones).
Pipeline.
Se tiene un computador FAST5 cuyo procesador funciona a 400 MHz, y cuyas
instrucciones de máquina toman, todas, 5 ciclos de reloj en ejecutar. En dicho
computador se ejecuta un intérprete de Java; este intérprete usa 10
instrucciones de máquina para interpretar cada instrucción de la Java Virtual
Machine. ¿Cuántos MIPS (Millones de Instrucciones Por Segundo) ejecuta la
JVM?
La máquina (FAST5) puede ejecutar 400/5 MIPS = 80 MIPS
Puesto que se usan 10 instrucciones de máquina para interpretar cada
instrucción de JVM, los MIPS de la JVM serán: 80/10 MIPS = 8 MIPS
Se tiene la misma situación que en el punto anterior, solo que con un
computador RAPID4 cuyas instrucciones toman, todas, 4 ciclos de reloj en
ejecutar. ¿En cuál computador, FAST5 o RAPID4, corre más rápido la máquina
Java y cuánto más rápido?
La máquina (RAPID4) puede ejecutar 400/4 MIPS = 100 MIPS
Puesto que se usan 10 instrucciones de máquina para interpretar cada
instrucción de JVM, los MIPS de la JVM serán: 100/10 MIPS = 10 MIPS
10/8 = 1,25. Luego en RAPID4 la JVM corre un 25% más rápido.
Si se produce una nueva máquina ULTRAFAST5, igual al FAST5 pero con
pipeline de instrucciones, ¿a cuántos MIPS irá la máquina Java?
Como tiene pipeline, CPI = 1, luego la máquina (ULTRAFAST5) puede ejecutar
400/1 MIPS = 400 MIPS
Puesto que se usan 10 instrucciones de máquina para interpretar cada
instrucción de JVM, los MIPS de la JVM serán: 400/10 MIPS = 40 MIPS
Si se produce una nueva máquina ULTRARAPID4, igual al RAPID4 pero con
pipeline de instrucciones, ¿en cuál computador, ULTRAFAST5 o
ULTRARAPID4, correrá más rápido la máquina Java y cuánto más rápido?
La situación es igual a la anterior, como tiene pipeline, CPI = 1, luego la
máquina (ULTRARAPID4) puede ejecutar 400/1 MIPS = 400 MIPS
Puesto que se usan 10 instrucciones de máquina para interpretar cada
instrucción de JVM, los MIPS de la JVM serán: 400/10 MIPS = 40 MIPS.
Conclusión: corre igualmente rápido en las dos máquinas.
Se tiene una cierta máquina A, y se ejecutan sobre ellas tres programas de
prueba P1, P2, P3, con los siguientes resultados en tiempo de ejecución (en
segundos):

A
P1 20
P2 100
P3 50
Esta máquina tiene 3 tipos de instrucciones (I1, I2, I3), cuyo CPI se distribuye
de la siguiente manera:

CPI-A % ocurrencia
instrucción
I1 1 50%
I2 2 20%
I3 1 30%
Se le efectúan unas modificaciones a esta máquina, y como resultado se
obtiene una nueva versión de la máquina (llamémosla B). Estas modificaciones
afectan el CPI de la máquina, y el número de instrucciones de los tres
programas (P1, P2 y P3) de la siguiente manera:

CPI-B % ocurrencia # instrucciones en B


instrucción
I1 1 75% P1 Disminuye en 20%
I2 3 5% P2 Aumenta en 10%
I3 2 20% P3 Disminuye en 30%
¿Cuál de las dos máquinas puede ser considerada más veloz, y cuánto más
veloz (en porcentaje)? Use el criterio de media geométrica de tiempos
normalizados (tiempos relativos), tomando B como máquina de referencia.

También podría gustarte