Estructura de módulos de memoria más grandes utilizando bloques de diferentes tamaños

0

Quiero diseñar un módulo de memoria que incluya 2 tipos de celdas de memoria. Sé cómo diseñar la memoria usando 1 tipo de celdas de memoria como se muestra en la imagen.

¿Pero qué tal diseñar una memoria con celdas de diferente tamaño? No puedo encontrar ningún material en él. Digamos en la figura anterior que quiero tener también algunas celdas de 256kx8bits. ¿Cómo procederé? Probablemente tendré que hacer algunos arreglos sobre la longitud de la dirección de los chips más pequeños. Además, ¿qué decodificador usaré para la selección de filas si, por ejemplo, tengo 9 filas de chips? ¿O debería mantener el número de filas en forma de 2 ^ k?

    
pregunta baskon1

3 respuestas

0

Sí, es perfectamente posible mezclar dispositivos de diferentes tamaños en el mismo espacio de direcciones. De hecho, se realiza todo el tiempo en microcontroladores en los que el tamaño de la ROM, la RAM y varios dispositivos de E / S asignados en la memoria son a menudo muy diferentes. Simplemente tiene que decidir dónde se ubicará cada dispositivo dentro de su espacio de direcciones, asigne a cada dispositivo tantas líneas de direcciones como sea necesario para seleccionar entre las diferentes ubicaciones que posee e implemente la decodificación de direcciones adecuada con las líneas de direcciones restantes. / p>

Este es un ejemplo simple de cómo puede tener cuatro tipos de dispositivos que ocupan la totalidad de un espacio de direcciones de 64K. El primer decodificador activa el dispositivo 32K cuando A15 está bajo; cuando A15 es alta, activa el segundo decodificador. Esto a su vez activa el dispositivo 16K cuando A14 está bajo; cuando está alto, activa el decodificador final, que utiliza A13 para determinar cuál de los dispositivos de 8K debe activar.

Obviamente, puede extender esto a cualquier número de dispositivos de memoria y decodificadores. Puede terminar usando de 1 a 4 o de 1 a 8 decodificadores, dependiendo del tamaño del dispositivo, pero hay varias cosas que debe tener en cuenta. A medida que encadena más decodificadores de este tipo, los retrasos de propagación aumentarán, por lo que deberá asegurarse de que la decodificación se produzca con la rapidez suficiente para permitir que la memoria se ejecute a la velocidad que desee. Puede ser más práctico usar algún tipo de lógica programable para crear las señales de habilitación desde las líneas de dirección; Esto también puede darte más flexibilidad de diseño.

La otra cosa que debe tener en cuenta al agregar más dispositivos es la carga en la dirección y las líneas de datos. El almacenamiento en búfer de las líneas de dirección es bastante simple, pero el bus de datos necesitará un almacenamiento en búfer bidireccional y eso requerirá más lógica para controlar.

Finalmente, puede que no sea necesario descodificar completamente el espacio de direcciones. Si es lo suficientemente grande en comparación con el tamaño de sus dispositivos, y no los necesita para sentarse en un rango de direcciones contiguas, puede dividirlos en bloques del mismo tamaño que el dispositivo más grande (o incluso más grande) y usar una sola Decodificador con suficientes salidas. Esto suele ser más práctico cuando se combina una gran cantidad de dispositivos de E / S que tienen solo una pequeña cantidad de ubicaciones; las direcciones simplemente se repiten una o más veces dentro de cada división. O puede decodificar completamente algunas partes del espacio de direcciones, pero solo usar decisiones parciales para otras; todo depende de tu aplicación.

La otra forma de evitar tener que descodificar completamente el espacio de direcciones es usar una Unidad de administración de memoria de alguna forma que pueda asignar las direcciones físicas a un rango contiguo de direcciones lógicas.

    
respondido por el Finbarr
1

Esta es la forma convencional de apilar chips de memoria de tamaño de dirección pequeños para hacer un tamaño de dirección mayor: -

La tecnología que elija utilizar para adaptarse a su velocidad de acceso depende de usted.

    
respondido por el Andy aka
0
  

para diseñar la memoria utilizando 1 tipo de celdas de memoria

Hay varias ventajas al utilizar solo un tipo de bloques de memoria:

  1. usas los mismos chips - > compras más de los mismos chips - > obtienes un mejor precio por chip;
  2. hacer contiguo el espacio RAM con los mismos chips es más fácil y menos costoso en términos de lógica de cola.
  

Digamos en la figura anterior que quiero tener también algunas celdas de 256kx8bits.

Así que tienes chips de 256KB y 512KB, ¿verdad? Luego, para "hacer" un chip de 512 KB, utiliza 2 chips de 256K. Su "decodificador de 2 bits" se convertirá en decodificador de 3 bits, necesitará varias compuertas OR para hacer señales de selección de chip para chips de 512KB.

  

¿También qué decodificador usaré para la selección de fila si, por ejemplo, tengo 9 filas de chips? ¿O debería mantener el número de filas en forma de 2 ^ k?

¿Selección de fila? Debería hablar sobre la dirección y el ancho del bus de datos al nivel de los chips de RAM. Hay memorias que tienen 20 bits de dirección, pero en realidad tienen menos RAM (por ejemplo, una máquina IBM XT con 640 KB de RAM); La RAM puede estar en cualquier espacio direccionable del procesador, su tarea como diseñador es garantizar que el procesador pueda usar esa RAM de la forma más efectiva y eficiente posible.

    
respondido por el Anonymous

Lea otras preguntas en las etiquetas