La práctica nos pedía realizar varios circuitos. El primero consistía en introducir una memoria RAM de 64Kx8 en un circuito hacer que éste permita leer y escribir en ella.El resultado es este:
Al ser de 64K palabras o loque es lo mismo, 216 palabras, la entrada de direcciones (bus de direcciones) será de 16 bits y al ser x8, la entrada y salida de datos (bus de datos) será de 8 bits.
Para comprobar su funcionamiento nos sugerían probar a introducir en las direcciones 0023h el dato 3A y en la dirección C120h el dato 25. Para probarlo, descargue el circuito aquí (es necesario tener Logisim).
En el segundo nos pedía que uniésemos dos memorias del tipo del primer ejercicio para conformar una memoria de 64Kx16. Para probarlo, descargue el circuito aquí.
Al no variar la cantidad depalabras en cada memoria, el bus de direcciones no varía pero al serel doble de memorias, el ancho del módulo se dobla, por lo tanto el bus de datos tendrá que ser de 16 bits en vez de 8.
En el tercero se pide unir 3 memorias de 64Kx8 para conformar una de 128Kx16. Para probarlo, descargue el circuito aquí.
El ancho de los buses no varía porque seguimos usando las mismas memorias, pero al añandir otro banco, es necesario poder seleccionar cada uno de ellos, para ello, usamos una puerta not en una de los dos caminos que van al pin “sel” de las memorias. De esta manera, si activamos la señal, se activaría el primer módulo y si la desactivamos se activaría el segundo.
En el cuarto se pide ampliar la memoria hasta 256Kx16 usando memorias de 64Kx8, pero para seleccionar cada banco de dos memorias 64Kx8 se necesita otro componente, un decodificador. Quedaría de esta forma:
El ancho de los buses siguesin variar, pero al tener mas de dos módulos, no nos sirve el usaruna puerta not para seleccionar el módulo, por tanto, usamos un decodificador para seleccionarlos.
Para comprobar su funcionamiento se nos sugería introducir algunos datos de 16 bits en varias
direcciones. Para probarlo, descargue el circuito aquí.
Y por último se nos pide transformar la estructura anterior para que los primeros 64K sean de memoria ROM. Este sería el resultado:
Lo único que cambiamos aquí son las dos primeras RAM por memorias ROM y consecuentemente, las conexiones varían ya que la ROM no tiene los mismos pines que la RAM. Para probarlo, descargue el circuito aquí.
FAQ
¿Para qué sirve el separador que ponéis a partir del 2º ejercicio?
Una palabra enviada desde un solo banco no se envía desde el mismo elemento, sino que se envía una parte desde una de las memorias y la otra parte desde la otra memoria.
Una palabra enviada desde un solo banco no se envía desde el mismo elemento, sino que se envía una parte desde una de las memorias y la otra parte desde la otra memoria.
El separador permite unir las dos partes de la palabra y enviarla al bus de datos. En todos los circuitos, sepuede ver que cada pin del separador direcciona 8 bits, una del 0-7 yla otra del 8-15.
¿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.
¿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.
¿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.
¿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.
¿Cómo cambiar los valores contenidos en memoria en 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.. y aparecerá:
¿Qué es una memoria RAM?
La memoria RAM es una memoria deacceso 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".