FAQ's

PRÁCTICA 1
¿Qué es MARS?MARS (MIPS ensamblador y simulador de tiempo de ejecución) es un Entorno Interactivo de Desarrollo ligero (IDE) para programación en lenguaje ensamblador MIPS, destinados a uso educativo.

¿Qué modelo de ordenamiento de los bytes dentro de una palabra usa Mars?Little Endian (bit menos significativo primero).

¿Dónde puedo descargarme el ensamblador MARS?En el campus lo encontraras en el tema 2, en la parte dedicada a las prácticas como una descarga directa.

¿Cómo muestro un valor entero por pantalla?Para ello tenemos que mover el contenido del registro donde está el valor que queremos imprimir al registro $a0, y después cargar un 1 en el registro $v0, que significa imprimir un entero.Después de esto, realizamos una llamada al sistema.Por ejemplo:move $a0,$t1li $v0,1syscall

¿Cómo verifico si un código funciona como debería?Dándole al botón Ejecución y analizando los datos que salen por la pantalla de ejecución y resultados, si en la pantalla de resultados sale el resultado correcto, funciona, en el caso de errores,MARS te indica con un comentario donde están estos.

¿Cómo se escriben comentarios en MARS?Se escriben comentarios DE UNA SOLA LíNEA, poniendo el símbolo almohadilla # antes del comentario. Es importante recalcar que si el comentario excede la longitud de la línea y se pone fuera de la línea donde hemos puesto #, el código dará error ya que ese comentario fuera de línea no sería algo identificable por el programa MARS.

¿Es recomendable comentar los programas?Sí, es recomendable comentar cada línea para hacer más fácil el seguimiento del programa y detección de errores, además de que con ello conseguimos programas más claros para que otro programado pueda trabajar con él.

PRÁCTICA 2
¿Errores en el bus principal?Los principales errores en el circuito vienen dados por tener dos datos en el mismo bus, hay que asegurarse de cerrar los triestados de salida antes de abrir otro.

¿Como guardo un valor en uno de los registros principales?Para guardar un dato en un registro no auxiliar, tan solo debemos introducir el dato a guardar, y seleccionar con el multiplexor el registro, y activamos la carga. (ojo, en ningún caso deberemos abrir la salida de un registro antes de que el dato este cargado en su interior, de lo contrario obtendremos error).

¿Como puedo realizar una operación?Para realizar una operación debemos seleccionar la salida de un registro, guardarlo en el registro previo a la ALU (registro CA), a continuación debemos seleccionar otro registro, y seleccionar con el multiplexor la operación que queremos realizar. (Si la operación es una operación de un solo dato, sacamos el dato del registro CA y seleccionamos la operación en el multiplexor de la ALU).


PRÁCTICA 3
¿Cómo saber qué tipo de instrucción (R, I, J) estoy manejando?
Tendremos que ver cómo está estructurada la instrucción, podemos consultar el archivo de referencia Apendice Hennessy Patterson. Las instrucciones se dividen en tres tipos: R, I y J. Todas las instrucciones empiezan con un código de operación de 6 bits. Además del código de operación, en las instrucciones tipo R se especifican tres registros, un campo de tamaño de desplazamiento ('shamt') y otro para el código de función; Las tipo I especifican dos registros y un valor inmediato de 16 bits; en las tipo J al código de operación le siguen 26 bits de dirección destino de salto.
¿Cuántos bits corresponden a cada parte de una instrucción y en qué orden debo ponerlas?
Para saber cómo está compuesta nuestra instrucción utilizaremos el archivo de referencia Apendice Hennessy Patterson y buscaremos la instrucción que deseamos. Veremos algo como lo siguiente:
En la parte de la izquierda esta nuestra instrucción y en la derecha tenemos una tabla en la que se indica el orden en que se escribirá y debajo los bits que ocupa cada parte de la misma.
¿Qué valor tengo que poner en los registros?
Lo natural seria pensar que si el registro $t0 tiene el valor cuatro, tendrías que poner un cuatro en binario para crear la instrucción. Pero, lo que necesita la instrucción no es el valor del registro, sino el número de este. Imagina que tienes el valor 104 en el registro, esto son 7 bits en binario, pero tú solo tienes 5 bits para representar el valor en la instrucción por lo que te sería imposible. Por ello se utiliza el número del registro, que será siempre un número de 0 a 31, el cual hará referencia al valor que tenga el registro.
¿Dónde encuentro los números correspondientes a los registros?
Puedes consultar la siguiente tabla para saber qué número corresponde a cada uno de los registros que utilizamos con MIPS:

¿Cómo convierto a hexadecimal una instrucción en binario?
Lo más sencillo es agrupar los bits de 4 en cuatro y utilizar el equivalente a hexadecimal de esos grupos, después solo hay que unirlos y tenemos el número equivalente. Por ejemplo si tenemos el numero 11001011000011100101001110010101, haríamos lo siguiente:
Binario11001011000011100101001110010101
HexadecimalCB0E5395

Por lo tanto el número en hexadecimal será: 0xCB0E5395
¿La fase de captación FETCH la tengo que poner siempre?
Sí, siempre que se va a ejecutar una instrucción antes tiene lugar la fase de captación y de decodificación para que la unidad de control sepa que señales son necesarias para cada instrucción.
¿Cómo tengo que utilizar Logisim para la última parte de la práctica 3?
En el campus virtual hay unos enlaces a vídeos en los que vienen explicador todos los pasos para realizar una instrucción de suma, en la que se cargar valores desde la memoria principal a los registros y luego se realiza la operación, guardando nuevamente el resultado en uno de los registros. Estos videos son enormemente útiles para poder realizar esta parte de la práctica.
PRÁCTICA 4

¿Qué es una memoria RAM?
La memoria RAM es una memoria de acceso aleatorio (Random-Access Memory).En ella se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cómputo. Es una memoria volátil. Su unidad de transferencia es la palabra. La RAM es un semiconductor. Su definición más básica podría ser: "Memoria basada en semiconductores que puede ser leída y escrita por el microprocesador u otros dispositivos de hardware".
¿Qué es una memoria ROM?
La memoria ROM es una memoria de sólo lectura (Read-Only Memory). Es la memoria que se utiliza para almacenar los programas que ponen en marcha el ordenador y realizan los diagnósticos. Es también una memoria de acceso aleatorio. Actualmente, se les sigue llamando memorias ROM aunque ya no sólo sean de lectura y escritura, las ROM más modernas, como EPROM y FlashEEPROM, se pueden borrar y volver a programar varias veces, aún siendo descritos como "memoria de solo lectura".
¿Cuándo hablamos de una RAM de 64Kx8 a qué nos referimos?
Para diferenciar la palabra dentro del módulo tenemos el 64K, mientras el 8 significa los bits de tamaño de palabra.
¿Cuántos bits son necesarios para identificar un byte dentro de una palabra en el mapa de memoria?
Divide el numero de bits del bus de datos entre el numero de bits del ancho de un chip y tendrás el numero de chips en un módulo, exprésalo como potencia de 2 y el exponente será el número de bits necesarios para identificar el byte dentro de la palabra.
¿En los mapas de memoria solo se incluyen memorias RAM?

No, en los mapas de memoria se incluyen todas las memorias del equipo en cuestión, ROM, tarjeta gráfica,etc.

No hay comentarios:

Publicar un comentario

 

Blogger news

Visitas al Blog

Blogroll

About