martes, 20 de septiembre de 2016

Unknown

Diseño de otra memoria

   Hola a todos, a petición de una persona he decidido poner otro ejercicio sobre el diseño de una memoria. Espero les sea de utilidad tener otro ejemplo sobre esto ^^.


   Vamos a diseñar una memoria de 1MegaByte con un ancho de palabra de 32 bits. Los primeros 256KB de memoria son de memoria ROM, y el resto, es decir, 768KB de memoria RAM.

   Los módulos de memoria de los que disponemos son los siguientes:

  •    ROM de 128KB con un ancho de palabra de 16 bits (128KBx16). 
  •    RAM de 256KB con un ancho de palabra de 32 bits(256KBx32).
  •    RAM de 512KB con un ancho de palabra de 8 bits(512KBx8).

   Como la otra vez empezamos analizando el problema.

   Queremos conseguir un módulo de memoria de 1MByte con un ancho de palabra de 32bits, por tanto, necesitaremos 20 líneas de dirección para poder direccionar a dicha memoria, veamos que 2 elevado a 20 es justamente 1Mbyte, es de ahí de donde sale el número de líneas de dirección. Dichas líneas de dirección las nombraremos A19, A18, A17, ... A0. 

   Ahora empezamos a analizar cada parte de la memoria, por un lado la RAM y por otro la ROM.

Memoria ROM

    Necesitamos conseguir 256KBx32 de memoria ROM, pero solo disponemos de módulos de memoria ROM de 128KBx16. Debido a esto deberemos usar nuestros conocimientos de memorias, y recordar que si conectamos memorias en serie aumentamos el número de líneas, y si las conectamos en paralelo aumentamos el tamaño de la palabra.

   Dicho esto por tanto, necesitamos aumentar el ancho de palabra de 16 bits a 32 bits, por tanto necesitamos conectar dos módulos en paralelo; y también necesitamos aumentar el número de líneas de 128KB a 256KB, por tanto, necesitaremos conectar en serie dos asociaciones de estas memorias en paralelo.

   En consecuencia, necesitamos 4 módulos de memoria ROM de 128KBx16.


Memoria RAM


   Para la memoria RAM procedemos de la misma manera. Necesitamos conseguir 768KBx32 de memoria RAM. En este caso para aumentar el tamaño de línea vemos claramente que solo necesitamos asociar en serie un bloque de 512KB y uno de 256KB. El problema está con el ancho de palabra del módulo de 512KB, ya que este es de 8 bits y necesitamos 32. Por tanto, conectaremos 4 módulos de 512KBx8 en paralelo para aumentarlo.

   En definitiva, necesitamos un módulo de 256KBx32 y 4 módulos de 512KBx8.

Direccionamiento a los módulos

   Una vez que ya sabemos los módulos que necesitamos y como debemos conectarlos, debemos ver como haremos el direccionamiento a dichos módulos. 

   A priori vemos que tenemos 3 tipos de memorias por lo que necesitaremos 3 decodificadores para acceder a cada conjunto. Ahora lo que debemos saber es que líneas de direccionamiento serán las entradas de cada decodificador y así saber también el tipo de decodificador que usaremos en cada caso.

   Hemos dicho al principio que en global tenemos 20 líneas de dirección (A19, A18, A17,...A0). Los módulos de 128KB necesitan 17 líneas de dirección para direccionar a todo el módulo, esto serían las líneas (A16,A15,A14, .... ,A0), por tanto usaremos la A17 para seleccionar una asociación en paralelo de ROM, veamos que con un decodificador 1 a 2 nos da para seleccionar a cada asociación de memorias ROM.

   El módulo de 256KB de RAM necesitará de las líneas A17,A16,A15.... A0 para direccionar. Por tanto usaremos la línea A18 como entrada al decodificador que seleccionará dicho módulo. En este caso, una de las salidas de este decodificador ira conectados a la señal de activación del decodificador anterior(supongamos la salida 0).

   Por último, para direccionar a la asociación de las 4 ROMS en paralelo de 512KB necesitaremos de las líneas A18,A17,A16,...A0. Por tanto usaremos la línea A19 como entrada al decodificador, y al igual que antes será un decodificador 1 a 2 cuya una de las salidas irá conectada a la señal de habilitación del decodificador anterior.




Diagrama


   Si queremos ver gráficamente como quedaría la memoria, sería tal que así:


   El cable verde es el bus de dirección, y el cable azul es la señal de habilitación de los módulos de memoria. Por comodidad a la hora de hacer el dibujo no he puesto la línea de datos.

   Espero les haya parecido interesante este ejercicio de memorias ^^ si es así no duden en dejar sus comentarios y darle seguir.

Unknown

About Unknown -

Author Description here.. Nulla sagittis convallis. Curabitur consequat. Quisque metus enim, venenatis fermentum, mollis in, porta et, nibh. Duis vulputate elit in elit. Mauris dictum libero id justo.