Taller Primer Parcial Arquitectura de Computadores

3

Click here to load reader

Transcript of Taller Primer Parcial Arquitectura de Computadores

Page 1: Taller Primer Parcial Arquitectura de Computadores

TALLER PARA PRIMER PARCIALARQUITECTURA DE COMPUTADORES

1. Explique de forma detallada el concepto de programa almacenado.

2. Cual fue la principal diferencia entre el ENIAC y el EDVAC?

3. Explique cómo se aplican los cuatro criterios principales de diseño de un conjunto de instrucciones.

4. Defina las siguientes siglas y explique que son:

a. DIMMb. DDRc. TCCAd. GPPe. GPU

f. FPGAg. SIMMh. LCDi. PCIj. PCIe

k. USBl. RAIDm. HLLn. LLLo. HDL

5. Defina el formato en Lenguaje de Máquina de los tres tipos de instrucciones en la arquitectura MIPS32, explique el uso de cada uno de los campos en las diferentes instrucciones en donde puedan ser usados con el número de bits que contienen.

6. Explique claramente cómo se puede realizar un salto incondicionado a una dirección lejana (que tiene los 4 bitas más significativos diferentes entre la dirección origen y destino).

7. Basado en el punto anterior explique cuál es el beneficio de tener una dirección de 26 bits en la instrucción J.

8. Explique que es una pseudoinstrucción y de dos ejemplos.

9. Implemente una función orgvector en lenguaje de alto nivel, lenguaje de bajo nivel MIPS y lenguaje de máquina MIPS que desarrolle un algoritmo de ordenamiento de las n primeras posiciones de un vector de enteros.

10. Implemente una función mul en lenguaje de alto nivel, lenguaje de bajo nivel MIPS y lenguaje de máquina MIPS que realice la multiplicación de dos enteros sin signo usando solo sumas.

11. Implemente la función pot en lenguaje de alto nivel, lenguaje de bajo nivel MIPS y lenguaje de máquina MIPS que realice la potencia de dos números enteros sin signo realizando llamados a la función desarrollada en el punto 11.

12. Explique cómo se podría implementar una sentencia case/switch y explique cómo funciona la Jump Address Table.

13. Implemente una función pol en lenguaje de alto nivel, lenguaje de bajo nivel MIPS y lenguaje de máquina MIPS que calcule un polinomio de grado n, en donde los coeficientes del polinomio se encuentran almacenados en un vector k de n+1 posiciones, de la siguientes forma:

Page 2: Taller Primer Parcial Arquitectura de Computadores

pol(x , k , n)=∑i=0

n

k i xi

En donde el k i se encuentra en la posición k[i] del vector k.

14. Implemente una función fact en lenguaje de alto nivel, lenguaje de bajo nivel MIPS y lenguaje de máquina MIPS que calcule el factorial de un número entero sin signo

a. Realice esta implementación con recursividad y sin recursividad, y muestre los pros y los contras de cada una de las implementaciones.

b. Calcule los tiempos de ejecución de cada una de las implementaciones suponiendo que se ejecuta una instrucción por ciclo y que el reloj es de 100MHz, para un valor de 10 en la entrada.

c. Calcule la entrada para la cual la salida presenta un overflow.

15. Implemente una función divint en lenguaje de alto nivel, lenguaje de bajo nivel MIPS y lenguaje de máquina MIPS que calcule la división entera entre dos números enteros.

16. Implemente una función modint en lenguaje de alto nivel, lenguaje de bajo nivel MIPS y lenguaje de máquina MIPS que calcule el modulo entre dos números enteros.

17. Implemente una función void primos( int n, int p[]) en lenguaje de alto nivel, lenguaje de bajo nivel MIPS y lenguaje de máquina MIPS que calcule los primeros n números primos y que los retorne en un vector p.

18. Realice el proceso de ingeniería inversa al siguiente código que se encuentra en lenguaje de máquina MIPS:

Address ML MIPS0x00004100 0x20100000 0x00004104 0x201100000x00004108 0x0232402A0x0000410C 0x110000030x00004110 0x021180200x00004114 0x223100010x00004118 0x08001042

19. Como implementaría la instrucción J usando solamente saltos condicionales (BEQ o BNE)?