viernes, 1 de junio de 2012

FAQ Tema 5


· ¿Qué significan los elementos que veo en el módulo de memoria?

Dentro del módulo de memoria (ya sea RAM o ROM) veremos un rectángulo con el borde más fino y a la izquierda del mismo encontramos una serie de dígitos de color gris. Estos dígitos serán las posiciones a las que estamos accediendo en hexadecimal, habiendo 2n posiciones, y siendo n el número de bits del bus de direcciones (se puede cambiar en los atributos del módulo, así como el número de bits del bus de datos). 
Dentro del rectángulo se mostrarán con dígitos negros en hexadecimal los valores almacenados en las distintas posiciones. Dependiendo del tamaño del bus de datos y del bus de direcciones se mostrará en una misma fila el contenido de varias posiciones, siendo por lo tanto los dígitos en gris que se sitúen en esa fila la dirección de la primera posición de la fila. Por lo tanto, la dirección de las siguientes posiciones de la misma fila será la dirección de la primera más lo que nos desplacemos con respecto a la primera posición (si hay 4 posiciones por fila, y la dirección de la primera posición es 4, la dirección de la segunda será 5, la de la tercera 6 y la de la cuarta 7).
· A la hora de editar los datos de la memoria, solo veo las primeras posiciones, ¿Cómo puedo editar el resto de posiciones? 

Existen tres alternativas para editar el resto de posiciones tanto en RAM como en ROM:
  •         Al seleccionar una posición cualquiera, aparecerá un rectángulo rojo en esa posición, indicando que podemos editar su contenido. Si queremos mover el rectángulo rojo para introducir datos en el resto de posiciones pulsaremos la barra espaciadora para avanzar a la siguiente posición, tecla de borrar (retroceso) para volver a la anterior posición, o tecla intro (debajo de la de borrar) para avanzar a la siguiente fila.
  •         Si pinchamos en una dirección (dígitos en gris) el rectángulo rojo se situará sobre ella y podremos teclear la dirección a la que deseamos acceder. De esta forma, nos llevará a la fila en la que se encuentre la posición a la que deseamos acceder.
  •         Si hacemos clic con el botón derecho sobre el módulo y seleccionamos editar contenidos, se nos abrirá el editor hexadecimal, con el que nos será más fácil acceder a cualquier posición para editar su contenido.
· ¿Qué diferencia existe entre RAM y ROM en logisim, si puedo modificar los datos en ambos tipos de memoria?

Ciertamente, en ambos casos es posible modificar el contenido mediante cualquiera de las tres alternativas mencionadas en la anterior pregunta. No obstante, en el caso de la ROM solo podremos hacer la operación de lectura (no en vano ROM significa Read Only Memory), es decir, no se pueden escribir los datos que vengan por el bus de datos y solo podremos modificar el contenido de la memoria como se hizo en la pregunta anterior. Sin embargo, en la memoria RAM es posible realizar tanto la operación de lectura como la de escritura, por lo tanto, podremos modificar el contenido de la memoria escribiendo los datos que vengan por el bus de datos o bien, como se hizo en la pregunta anterior.

· ¿Para qué sirven los pines de entrada y salida de la RAM y la ROM?
  •         Sel: Nos permite activar o desactivar un chip RAM o ROM. Si tenemos uno o más chips en paralelo (módulo) no es necesario, pero será muy útil si tenemos varios módulos, ya que podremos activar únicamente el módulo al que accedamos en cada momento.
  •         Triángulo (Escritura de datos, E): Puede ser conectado a un pin de entrada de 1 bit o a un reloj. En cualquier caso, en nivel alto, y con clr y out en nivel bajo, escribirá en la posición suministrada por la entrada A el dato que llega por la entrada D. (Solo RAM)
  •         Out (Lectura de datos, L): Cuando está en nivel alto permitirá salir por D el contenido de la dirección indicada por A. Al estar en nivel alto no permite que se carguen datos, por lo que debe ser desactivado si queremos escribir en la memoria. (Solo RAM)
  •         Clr (clear): Cuando está en nivel alto, se resetea la memoria. (Solo RAM)
  •         A: Suministra la posición a la que deseamos acceder.
  •         D: Entrada o salida de datos a la memoria.
· Estoy haciendo una simulación y por cualquier motivo debo dejarla a la mitad, ¿Podría salvar los datos que he introducido en memoria para no tener que volver a introducirlos cuando reanude la simulación?

Por supuesto. Para salvar los valores solo se debe hacer clic derecho sobre el módulo de memoria y seleccionar salvar imagen. El archivo con los datos de ese módulo de memoria se salvarán en un archivo que deberá tener el siguiente nombre: nombre_archivo.raw. Para cargar en el módulo de memoria los datos salvados en el archivo, solo se debe hacer clic derecho sobre el módulo y seleccionar cargar imagen, seleccionando en la ventana que se abre el archivo en el que habíamos guardado los datos.
· ¿Por qué a partir del ejercicio 3 uno o más de los bits más significativos de la dirección se quedan aparte de los primeros dieciséis?

Eso es debido a que los bits menos significativos (en este caso son dieciséis, pero depende de las posiciones que tenga el módulo) del bus de direcciones tienen como finalidad identificar a qué posición del módulo accedemos, mientras que los más significativos (en cada caso necesitaremos un número distinto según el número de módulos que tengamos) se utilizan para seleccionar qué módulo está activo en cada momento. Como se dijo antes, se activará la entrada sel del módulo al que queramos acceder utilizando un decodificador con los hilos de selección de módulo; de esta forma, solo un en un módulo se podrán escribir o leer datos, mientras que los demás permanecerán inactivos (evitando que un mismo dato se escribiera en varias posiciones a la vez o que de cada módulo saliera un dato distinto, provocando colisiones). 

· ¿Cómo puedo determinar el tamaño de mi chip de memoria RAM o ROM?
Para ello solo debemos modificar los atributos de nuestro chip de memoria, ya sea RAM o ROM.
Seleccionamos nuestro chip y observamos que podemos cambiar tres atributos. Para modificar el tamaño de nuestro chip nos interesan los dos primeros. El primero de ellos: Número de bits de dirección, nos permitirá definir el ancho del bus de direcciones que se debe conectar a dicho módulo; por lo tanto definiremos así el número de posiciones de nuestro chip, siendo éstas tantas como 2 elevado al número de bits de dirección que seleccionemos (en nuestro ejercicio utilizamos chips de 64 K posiciones, o lo que es lo mismo 2^16 posiciones, por lo tanto debemos seleccionar 16 en el número de bits de dirección). Así hemos definido el “alto” de nuestro chip. Para definir el “ancho”, es decir, el número de bits que de los datos almacenados en el chip, usaremos el atributo: Número de bits de datos (en nuestro ejemplo, el chip es de 64K x 8, luego el número de bits de datos será 8).

No hay comentarios:

Publicar un comentario