Problemas del 1er parcial

Anuncio
Ejercicios 1er parcial:
Problema 1:
Se está decidiendo entre dos posibles implementaciones de un procesador, que ejecutarán un programa que usando un simulador, se ha
llegado a las siguientes características:
Máquina A: tiene una frecuencia de reloj de 2.0 GHz
Tipo de instrucción
Ciclos de reloj
Suma flotante
4
Multiplicacion flotante
8
Division flotante
15
Instrucciones enteras
2
Cargas y Almacenamientos
4
Para la otra máquina el mismo programa arroja:
Frecuencia de ejecución
15%
10%
10%
40%
25%
Máquina B: con una frecuencia de 2.2 GHz
Tipo de instrucción
Ciclos de reloj
Frecuencia de ejecución
Suma flotante
4
10%
Multiplicacion flotante
10
15%
Division flotante
20
15%
Instrucciones enteras
2
40%
Cargas y Almacenamientos
6
20%
1) Calcular el CPI para cada máquina
2) Cuál es la frecuencia MIPS para cada máquina
3) Suponga que el programa a ejecutar tiene 10 x109 millones de instrucciones, calcule el tiempo de ejecución y compare.
4) Compare el rendimiento de cada máquina, es decir por cuánto es más rápida una que la otra.
5) Calcule la frecuencia en MFLOP's para cada máquina y compare
Problema 2:
Suponga que una mejora en el compilador de último momento, ha arrojado una optimización sobre la cantidad de instrucciones de la
siguiente manera:
Tipo de instrucción
Porcentaje de instrucciones
Porcentaje de instrucciones ejecutadas
ejecutadas frente al programa original
frente al programa original en B
en A
Suma flotante
90%
90%
Multiplicacion flotante
80%
80%
Division flotante
90%
80%
Instrucciones enteras
80%
90%
Cargas y Almacenamientos
120%
110%
ejemplo: si antes eran 100 instrucciones enteras, en el nuevo programa serán 80, etc.
1)
2)
3)
4)
5)
Calcular el CPI para cada máquina
Cuál es la frecuencia MIPS para cada máquina
Suponga que el programa a ejecutar tiene 10 x109 millones de instrucciones, calcule el tiempo de ejecución y compare.
Compare el rendimiento de cada máquina, es decir por cuánto es más rápida una que la otra.
Calcule la frecuencia en MFLOP's para cada máquina y compare
Problema 3:
Coloque las instrucciones que están a la derecha, según su tipo de direccionamiento, sobre las líneas.
Direccionamiento
Direccionamiento
Direccionamiento
Direccionamiento
Direccionamiento
Pseudodirecto: _____________________________________________
por registros: ______________________________________________
inmediato: ________________________________________________
relativo al PC: _____________________________________________
base o por desplazamiento: ___________________________________
BEQ, SW, LW, BNE, JAL, J, ADD, SUB, ADDI,
SLT, SLTI, LB, LH, SB, JR
Problema 4:
Se tiene el siguiente programa (izquierda), (a)en el lado derecho coloque el código máquina correspondiente, marque en un cuadro los
bits que se usan en cada parte de la instrucción, y escriba en decimal los valores correspondientes
Etiquetas
FUNCT:
Instrucción
Addi $sp, $sp, -8
31 .. 26
25 .. 21
20 .. 16
15 .. 11
10 .. 6
5 .. 0
8
sw $a0, 0($sp)
sw $ra, 4($sp)
lb $t0, 0($a0)
bne $t0, $zero, L1
add, $v0, $zero, $zero
j FIN_FUNCT
L1:
addi $a0, $a0, 1
jal FUNCT
addi $v0, $v0, 1
FIN_FUNCT:
lw $a0, 0 ($sp)
lw $ra, 4 ($sp)
addi $sp, $sp, 8
jr $ra
(b) ¿Qué hace el programa? __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
(c) ¿Es posible optimizar el código (reordenando) de tal forma que no siempre sea necesario modificar el Stack Pointer? en caso
afirmativo, escriba el código correspondiente (explicándolo)
Problema 5:
Se tienen almacenados n números en un vector (de palabras) y se pretende colocar la suma de todos los números contenidos en el
vector en el registro $v0, haga una función para solucionar dicho problema , antes escriba en C el código para dicho problema
N
valor 1
valor 2
...
Valor n
$a0
Problema 6:
Se tienen almacenados dos vectores (de palabras) de longitud N en $a1 y $a2 se necesita una función para calcular el producto punto
de ambos vectores, el resultado debe quedar en registro $v0, haga una función para solucionar dicho problema , antes escriba en C el
código para dicho problema
N
valor 1
valor 2
...
Valor n
Valor 1 Valor 2
...
Valor n
$a0
$a1
$a2
Problema 7:
Para un programa X, un compilador generó la siguiente distribución de Instrucciones:
El compilador se optimiza de manera que para el mismo programa descarta el 50% de las instrucciones de la ALU aunque no pueda
reducir cargas, almacenamientos, ni saltos. Ignorando las prestaciones del sistema y suponiendo una duración del ciclo de reloj de 2-ns
(frecuencia de reloj 500-MHz) ¿Cuál es la frecuencia en MIPS para el código optimizado frente al código sin optimizar? ¿Están los
resultados en MIPS de acuerdo con los del tiempo de ejecución?
Problema 8:
Se plantea comparar dos sistemas diferentes: S1 y S2. El sistema S1 cuesta 10, 000 dólares y el sistema S2 15, 000. Se han realizado las
siguientes medidas sobre estos sistemas:
Tabla 1
Se dice que una máquina es más efectiva en coste que otra si la razón de rendimiento dividida por el coste es mayor.
a. Un usuario sólo se interesa por el rendimiento del programa 1. ¿Qué máquina es más efectiva en coste para correr sólo el programa
1? ¿En cuánto?
b. Otro usuario está preocupado por la productividad de los sistemas, cuando se midieron con una carga de trabajo igual de los
programas 1 y 2. ¿Qué sistema tiene mejor rendimiento para esa carga de trabajo? ¿En cuánto? ¿Qué sistema es más efectivo en coste
para esa carga de trabajo? ¿En cuánto?
c. Sin embargo, otro usuario tiene los siguientes requerimientos para los sistemas: el programa 1 debe ejecutarse 200 veces cada hora.
El tiempo restante puede utilizarse para correr el programa 2. Si el sistema tiene suficientes prestaciones para correr el programa 1 el
número de veces requerido por hora, el rendimiento se mide por la productividad del programa 2. ¿Qué sistema es más rápido para esta
carga de trabajo? ¿Qué sistema es más efectivo en coste?
d. Considere que en los dos sistemas y programas se hicieron las siguientes medidas adicionales:
Calcule la velocidad de ejecución de las instrucciones (instrucciones por segundo) para cada máquina cuando corre el programa 1.
e. Si la frecuencia de reloj del sistema S1 es 20 MHz y la del reloj del sistema S2 es 30 MHz, encuentre los ciclos de reloj por instrucción
(CPI) para el programa 1 en ambos sistemas, utilizando los datos de las dos tablas.
f. Suponiendo que el CPI para el programa 2 en cada máquina es igual al CPI del programa 1 (calculado en el inciso e), encontrar el
recuento de instrucciones para correr el programa 2 en cada máquina (utilice los tiempos de la tabla 1).
Descargar