Computing">
Nothing Special   »   [go: up one dir, main page]

Tema 1 - Ejercicios (Medidas de Rendimiento)

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

Universidad Rey Juan Carlos

Grado en Ingeniería Informática Estructura de Computadores


Grado en Ingeniería de Computadores

HOJA DE PROBLEMAS DEL TEMA 1-B.


MEDIDAS DE RENDIMIENTO EN LOS COMPUTADORES

1. Si un computador A ejecuta un programa en 10 s y un computador B ejecuta el mismo programa


en 15 s, ¿cuánto más rápido es A respecto de B?

2. Si la versión de 1998 de un computador ejecuta un cierto programa en 200 s y la versión del


computador hecha en 2000 tarda 150 s en ejecutar el mismo programa, ¿cuál es el incremento
de velocidad alcanzado?

3. Para conseguir un incremento de velocidad de 3 en un programa que originalmente tarda 78 s


en ejecutarse, ¿cuál debe ser la duración del programa acelerado?

4. Tenemos un programa que se ejecuta en 10 s en el computador A, que tiene un reloj de 400


MHz. Queremos construir un computador B que ejecute dicho programa en 6 s, incorporando
una mejora que permita aumentar de forma sustancial la frecuencia de reloj, pero que provoca
que el computador B requiera 1,2 veces los ciclos de reloj que necesitaba A para ejecutar el
programa. ¿Qué frecuencia de reloj deberá tener el computador B para alcanzar la velocidad
requerida?

5. Al ejecutarse un programa dado el computador A alcanza 100 MIPS, mientras que el


computador B alcanza 75 MIPS. El computador A tarda 60 s en ejecutar el programa, mientras
que el computador B tarda 45 s. ¿Cuál de las dos máquinas es más rápida?

6. Supongamos que se tienen dos realizaciones de la misma arquitectura del repertorio de


instrucciones. La máquina A tiene un ciclo de reloj de 1 ns y un CPI de 2,0 para un programa
concreto, mientras que la máquina B tiene un tiempo de ciclo de 2 ns y un CPI de 1,2 para el
mismo programa. ¿Qué máquina es más rápida para dicho programa? ¿Cuánto más rápida?

7. Sea un programa formado por un bucle de 100 instrucciones que se ejecuta 42 veces. Si el
programa tarda 16000 ciclos en ejecutarse en un sistema dado, ¿cuál es el CPI del programa en
dicho sistema?

8. Al ejecutarse un programa en un sistema dado, éste tarda 1000000 de ciclos. Si el sistema


alcanza 40 CPI, ¿cuántas instrucciones ha ejecutado?

9. Un diseñador de compiladores está intentando decidir entre dos secuencias de código para un
cierto computador. Los diseñadores de circuitería le han proporcionado los siguientes datos:

Clase de instrucciones CPI para esta clase


A 1
B 2
C 3

1
Para una declaración particular de un lenguaje de alto nivel el diseñador del compilador está
considerando dos secuencias de código que requieren el siguiente número total de
instrucciones:

Total de instrucciones por clase


Secuencia de código
A B C
1 2 1 2
2 4 1 1

¿Qué secuencia de código ejecuta el mayor número de instrucciones? ¿Cuál será la más rápida?
¿Cuál es el CPI para cada secuencia?

10. Consideremos una máquina con tres tipos de instrucciones y con las medidas de CPI del
ejercicio anterior. Supongamos que medimos el código de un mismo programa para dos
compiladores diferentes y obtenemos los siguientes valores:

Número de instrucciones para


cada tipo (en miles de millones)
A B C
Compilador 1 5 1 1
Compilador 2 10 1 1

Asumiendo que la frecuencia de reloj de la máquina es de 500 MHz, ¿qué secuencia de código
se ejecutará más rápido de acuerdo con los MIPS? ¿Y en relación con el tiempo de ejecución?

11. Considérense dos posibles realizaciones M1 y M2 con el mismo repertorio de instrucciones.


Hay 4 clases de instrucciones dentro del repertorio. M1 tiene una frecuencia de reloj de 500
MHz, y M2 tiene una frecuencia de 750 MHz. El número medio de ciclos por instrucción para
cada tipo en M1 y M2 es el siguiente

Tipo de instrucción CPI en M1 CPI en M2


A 1 2
B 2 2
C 3 4
D 4 4

a) Suponiendo que el rendimiento de pico se define como la frecuencia más alta a la que una
máquina puede ejecutar una secuencia de instrucciones escogida para obtener un valor
máximo, ¿cuáles son los rendimientos de pico de M1 y M2 expresados en instrucciones por
segundo?
b) Si el número de instrucciones ejecutado en ciertos programas se divide equitativamente
entre los tipos de instrucciones anteriores, ¿cuánto más rápida es M2 respecto de M1?
c) ¿A qué frecuencia de reloj tendría M1 el mismo rendimiento que una versión de M2 a 750
MHz?

2
12. Supongamos que un computador emplea el 90% del tiempo en gestionar cierto tipo de cálculo
cuando se ejecuta un programa dado, y sus fabricantes hacen un cambio para mejorar los
resultados en este tipo de operación en un factor de 10.
a) Si el programa originalmente tardaba 100 s en ejecutarse, ¿cuánto tardará ahora?
b) ¿Cuál es el incremento de velocidad del sistema mejorado respecto del antiguo?
c) ¿Qué fracción de tiempo de ejecución emplea el nuevo sistema en la ejecución de esta
operación mejorada?

13. Cierto computador no dispone de hardware para realizar multiplicaciones, de modo que éstas
deben realizarse mediante sumas sucesivas. Si de este modo el computador tarda 200 ciclos en
realizar una multiplicación, mientras que con un circuito dedicado tardaría 4 ciclos, ¿cuál sería
el incremento de velocidad obtenido en un determinado programa que usa multiplicaciones el
10% de su tiempo si incluyésemos el multiplicador hardware en el computador? ¿Y el de un
programa que se pasa multiplicando el 40% de su tiempo de ejecución?

14. Un computador dedica el 30% del tiempo de ejecución de un programa en acceder a memoria,
el 20% a hacer multiplicaciones y el 50% en ejecutar otras instrucciones. Si sólo hay espacio
en el chip para mejorar una de las tres cosas en un factor de 2, ¿cuál sería la mejora que tendría
más impacto en el tiempo de ejecución?

15. ¿Qué mejora da una mayor reducción del tiempo de ejecución: la que se usa un 20% del tiempo
y aumenta las prestaciones de la función mejorada en un factor de 2, o la que se usa un 70%
del tiempo y aumenta las prestaciones de la función mejorada en un factor de 1,3?

16. Un arquitecto de computadores está diseñando la memoria de un sistema para la nueva versión
de un procesador. Si la versión actual del procesador dedica un 40% de su tiempo a procesar
referencias a memoria, ¿cuánto debe aumentar la velocidad de la memoria para conseguir un
incremento de velocidad general de 1,2? ¿Y de 1,6?

17. Sea una arquitectura que tiene cuatro tipos de instrucciones: sumas, multiplicaciones,
operaciones con memoria y saltos. La siguiente tabla muestra el número de instrucciones que
pertenecen a cada tipo en un programa, el número de ciclos que tardan en ejecutarse cada tipo
de instrucción, y el incremento de velocidad de ejecución del tipo de instrucción debido a una
posible mejora en su ejecución (cada mejora afecta a un único tipo de instrucción). Ordenar las
mejoras para cada tipo de instrucción según su impacto en las prestaciones generales.

Incremento de
Tipo de instrucción Cantidad Tiempo de ejecución
velocidad
Suma 10 millones 2 ciclos 2,0
Multiplicación 30 millones 20 ciclos 1,3
Memoria 35 millones 10 ciclos 3,0
Salto 15 millones 4 ciclos 4,0

18. Sea un programa P con la siguiente mezcla de operaciones:

Tipo de instrucción Porcentaje


Multiplicación en coma flotante 10%
Suma en coma flotante 15%

3
División en coma flotante 5%
Instrucciones de enteros 70%

La máquina MCF tiene circuitería de coma flotante y puede, por tanto, realizar operaciones de
coma flotante directamente. Se requiere el siguiente número de ciclos de reloj para cada tipo
de instrucción:

Tipo de instrucción Ciclos


Multiplicación en coma flotante 6
Suma en coma flotante 4
División en coma flotante 20
Instrucciones de enteros 2

La máquina MSCF no tiene circuitería de coma flotante, y por tanto debe emular las
operaciones de coma flotante usando instrucciones de enteros. Las instrucciones de enteros
necesitan todas 2 ciclos de reloj. El número de instrucciones de enteros necesarias para emular
cada operación de coma flotante es el siguiente:

Tipo de instrucción Instrucciones


Multiplicación en coma flotante 30
Suma en coma flotante 20
División en coma flotante 50

Ambas máquinas tienen una frecuencia de reloj de 100 MHz.

a) Calcular la tasa de MIPS original para ambas máquinas.


b) Si MCF necesita 300 millones de instrucciones para ejecutar el programa P, ¿cuántas
instrucciones de enteros requerirá la máquina MSCF para el mismo programa?
c) ¿Cuál sería el tiempo de ejecución del programa P en cada una de las máquinas?

19. Supongamos que en un computador dado las instrucciones de multiplicación requieren 12


ciclos y constituyen un 10% de las instrucciones ejecutadas en un programa típico, mientras
que el otro 90% de instrucciones requieren una media de 4 ciclos cada una.
a) ¿Qué porcentaje del tiempo emplea la UCP en realizar las multiplicaciones?
b) Supongamos que es posible reducir a 6 el número de ciclos necesarios para las
multiplicaciones a costa de incrementar la duración del ciclo de reloj en un 20%. ¿Debería
incorporarse tal modificación en el computador?

20. Supongamos que se mejora una máquina para realizar todas las instrucciones de coma flotante
5 veces más rápido.
a) Si el tiempo de ejecución de un programa de prueba era de 10 s y se pasaba la mitad del
tiempo haciendo cálculos en coma flotante, ¿cuál será el incremento de velocidad obtenido
con la mejora?
b) Se busca un programa de prueba que destaque la nueva unidad de coma flotante, y se quiere
que muestre un incremento de velocidad total de 3. Se toma en consideración un programa
de prueba que tardaba 100 s con la antigua circuitería de coma flotante. ¿Qué parte del
tiempo de ejecución inicial deberían representar las instrucciones de coma flotante para
conseguir un incremento de velocidad total de 3 para este programa de prueba?

4
c) Dibujar el incremento de velocidad obtenido con la nueva unidad de coma flotante frente a
la fracción de tiempo que un programa original hipotético dedicaría a operaciones de coma
flotante en una gráfica cuyas ordenadas sean el incremento de velocidad total y cuyas
abscisas representen la fracción de tiempo ocupada por operaciones en coma flotante para
el programa original.

También podría gustarte