FAQ

FAQ Práctica 1


- ¿Qué es el programa Mars?

Mars es un programa ensamblador y simulador de tiempo de ejecución, para programación en lenguaje ensamblador MIPS.

- ¿Qué significa MIPS?

Es el acrónimo de "Microprocessor without Interlocked Pipeline Stages". Una forma de medir la potencia de los procesadores.

- ¿Qué es un lenguaje ensamblador?

Es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables.

- ¿Qué es el lenguaje de programación de bajo nivel?

Es el que proporciona un set de instrucciones aritmeticológicas sin la capacidad de encapsular dichas 
instrucciones en funciones que no estén ya contempladas en la arquitectura del hardware.

- ¿Como opera MARS?

Mars opera mediante registros por lo que cuando necesitemos operar entre dos datos de memoria, lo mejor que podemos hacer es enviarlos a dos registros para así sernos más fácil movernos con ellos.
Véase:
Tenemos dos datos por lo que para operar con ellos lo que hacemos es almacenarlos en dos registros temporales como son $t1 y $t2 para poder llevar a cabo la operación. Una vez hecho, almacenamos el resultado en otro registro para poder almacenarlo en memoria o utilizarlo en las siguientes 
operaciones.

FAQ Practica 2


- Cuando se pone en logisim un cable de color naranja, es debido a que el ancho es incompatible.¿como se puede solucionar?

Este problema o comedura de coco es muy frecuente ya que puede ser que se nos haya olvidado cambiarles el ancho.
Para poder solucionarlo, nos vamos a las caracteristicas que se encuentran en la parte inferior del lado izquierdo para
así conseguir que el ancho de dos dispositivos sean iguales. Una vez hecho, el bus que conecta ambos dispositivos, cambiará
de color dandonos a conocer que este error se a podido resolver.

- ¿Para unir muchos dispositivos que es lo mas recomendable para usar?

Por ejemplo cuando tenemos varios componentes que realizan operaciones, nos puede surgir la duda de como unirlos todos.
Por lo general si no se sabe que dispositivo usar, puede llegar a ser engorroso tener tantos cables con muchos triestados.
En cambio si utilizamos un Multiplexor, nos será muy util para decidir que dispositivo es el que dará la salida para ser mostrado.

- ¿Por que hay que tener nada más que un triestado abierto?

La respuesta es simple, si tenemos más de un triestado abierto, en el logisim nos aparecerá el cable de color rojo, indicándonos de que hay un fallo, este fallo se produce por que hay más de un dato intentando de pasar por el mismo bus haciendo que haya problemas. Por lo que para poder manejarnos con sultura, lo mejor es activar en distintos momentos nada mas que un triestado que permita el paso al bus de datos.

- ¿Por que solemos poner registros temporales al principio de las operaciones y al final de ellas?

Ponemos registros para conseguir almacenar datos de forma temporal, en este caso nos sirve para almacenar los datos
con los que operaremos, se ponen registros temporales delante de las operaciones para conseguir manejarnos con más de un dato sin que esto produzca fallo, al igual que situamos uno detrás, para almacenar el resultado para ser enviado al banco de registro sin que se produzca fallo en el bus de datos.
Tenemos que decir, que delante de cada registro situaremos un triestado para que controle el paso del dato al bus de datos.

- En logisim, ¿cuál es el triestado que debemos de usar?

Cuando estemos utilizando el logisim, nos puede entrar la duda de cuál es el dispositivo que debemos de usar, debido a que nos podemos encontrar con:



Búffer o Búffer controlado, cuando se empieza a manejar el logisim podemos encontrarnos con esta duda, la respuesta es sencilla, ya que como sabemos el triestado es el que nos permite dar la señal de salida para que el dato pueda avanzar, por lo que necesitaremos que este dispositivo admita una señal para que sepa que debe dejar paso, por lo que,  cogeremos el Búffer Controlado para esta labor. Este sería nuestro triestado.


FAQ practica 3



- ¿A que nos referimos cuando usamos el término MAR a lo largo de la práctica?


MAR es un registro que permite a la CPU comunicarse con la memoria y los dispositivos externos.

- ¿Dónde podemos consultar el formato de las instrucciones del primer ejercicio?

Podemos encontrarlos todos en el Tema 2: “Programación de Microprocesadores (MIPS)”, a partir de la página 18. Dicho tema podéis descargarlo en el campus virtual.

- ¿Por qué incrementamos siempre PC+4 en C2?

Lo incrementamos para que apunte a la siguiente dirección de memoria.

Se incremente siempre en 4 porque cada instrucción ocupa 32 bits, y como el direccionamiento se realiza en bytes, esto hace que el contador se incremente en 4 bytes. (32bits/8=4bytes)

- ¿Qué función tiene RESET en el esquema del circuito del ejercicio 3?

Se encarga de cargar los valores predefinidos en los registros.

- ¿Para qué cargamos MBR en RI?

Para que la instrucción llegue a la unidad de control y pueda ser procesada.



FAQ practica 4



- ¿Que es el editor hexadecimal de logisim?
Logisim tiene un editor hexadecimal integrado para ver y alterar contenidos de memoria. Para
acceder a él, abre un menú desplegable para el componente de memoria correspondiente y
selecciona Editar Contenidos... Para componentes ROM, que presentan un atributo para los
contenidos de memoria, puedes acceder también al editor hexadecimal haciendo clic sobre el
atributo correspondiente.

- En el ejercicio 4, ¿por que aparece un decodificador?

El decodificador nos permite seleccionar el conjunto de memoria RAM a la que queremos acceder.

- ¿Cada vez que queramos almacenar un valor nuevo en la RAM hay que pulsar enviar una señal a CLR?

En conclusión no haria falta debido a que cuando se introduce un nuevo valor en la posicion se borra por lo que
no nos haria falta enviar una señal de clear a la RAM.

- ¿Como podemos conseguir un modulo de RAM si tenemos dos de la mitad?

Lo podemos conseguir, uniendo las dos RAM para conseguir el modulo deseado, para ello los unimos al bus que lleva
la entrada de direcciones y las salidas a un separador para poder llevar el resultado a la salida de datos.

- ¿Que debemos de tener en cuenta para la construccion de los ejercicios?

Para la elaboración de los ejercicios deberemos de conocer las diversas partes de la RAM y la ROM, que son:

Componentes a conocer de la RAM:

A: Entrada/salida de los bits de direcciones
D: Entrada/salida de los bits de datos
Sel: Sirve para conectar o desconectar los módulos de la RAM (si son más de 1)
Triangulo sobre el borde sur: Entrada de reloj
Out: Controla si la RAM debe proporcionar a la salida el valor de la direccion seleccionada por A
Clr: si Clear vale 1 y Sel vale 1 se borra la memoria.

Componentes a conocer de la ROM:

A: Entrada de los bits que indica el numero de bits de direccionamiento
D: Entrada/salida de los bits que indica el numero de bits de datos
Sel: Cuando  son mas de un modulo si esta entrada vale 0, no proporciona ningún valor por la salida
     si vale 1 lo proporciona.



FAQ práctica 5

1.- Durante la realización de un circuito, me sale el siguiente error: "Ancho Incompatible", ¿a qué se debe y como lo soluciono?

Es un fallo frecuente, y se muestra error porque hay algún componente del circuito con diferente número de bits que el de los demás componentes. Eso se arregla entrando en las propiedades del componente y corrigiendo el número de bits, que tiene que ser igual al de los demás componentes.

2.- ¿Qué es el registro de desplazamiento que se nombra en el primer ejercicio?

Es un circuito digital que acepta datos binarios de una fuente de entrada y luego los desplaza un bit a la vez.

3.- ¿Qué es un contador?

Un contador es un circuito secuencial cuya salida representa el número de impulsos que se la aplica a la entrada de reloj

4.- En el ejercicio 4, ¿qué son los números que están escritos dentro de la memoria RAM?

Son los valores que muestra el componente. Las direcciones pueden verse en gris a la izquierda
del área de visualización. Dentro, los valores se muestran en hexadecimal. Y el valor que se muestra en texto inverso (blanco sobre negro) es la dirección seleccionada.

5.- ¿Cómo se pueden modificar los valores de la RAM?

Se puede modificar cada valor de la RAM utilizando la Herramienta De Cambio o modificarlos todos a través del Menú De Herramientas.