5 votos

Bits de dirección / datos intercambiados en la SRAM

Considere el siguiente cableado de un microcontrolador a un chip sram:

uC        SRAM
A0    --> A3
A1    --> A0
A2    --> A1
A3    --> A2
A4    --> A4
..    --> ..
A15   --> A15

Como puedes ver, algunos de los bits de dirección están intercambiados.

Entonces, cuando se trata de leer / escribir la memoria, ¿no habrá errores? Por ejemplo:

Address Microcontroller    Address Chip        Contents
0000                       0000                H
0001                       1000                e
0010                       0001                l
0011                       1001                l
0100                       0010                o
0101                       1010                
0110                       0011                !
0111                       1011                \0

Así que... desde el lado del microcontrolador las direcciones son todas ascendentes, pero como puedes ver en realidad, el uC se dirige a varios lugares de la memoria en el sram.

¿Es esto un problema? Creo que con UN microcontrolador que utilice la memoria: no, ya que el microcontrolador puede, no obstante, obtener los datos en el orden adecuado (aunque no lo haga desde la observación exterior). Pero creo que con dos o más microcontroladores esto podría convertirse en un problema SI los bits de dirección no están conectados de la misma manera.

Conclusión:

Mientras cada dirección sea distinta de otra, no habrá problemas de lectura/escritura. (¡Teniendo en cuenta que hay un solo microcontrolador utilizando la memoria!)

Y: Mientras cada bit de datos sea distinto de los otros bits de datos, no habrá problemas de lectura/escritura. (¡Considerando UN microcontrolador usando la memoria!).

Así que mi pregunta final es: ¿es correcta mi comprensión de este problema o me estoy perdiendo algo? No he podido encontrar nada en Internet sobre este problema.

0 votos

Creo que algunos sistemas de cartuchos utilizaban un ordenamiento no estándar como una forma de protección de ingeniería de copia/reversión.

2 votos

@pjc50: No creo que la ordenación no estándar sea especialmente efectiva en ese sentido. Es posible que algunos sistemas lo usen con ese fin, pero creo que una razón más probable para usar un ordenamiento no estándar sería facilitar la disposición.

1 votos

La SRAM suele estar bien. Algunos esquemas de refresco de la DRAM dependen del acceso a las ubicaciones de dirección seleccionadas dentro de ciertos períodos. Si no se hace así, se pierden datos. || He visto sistemas con direcciones o bits de datos reordenados por diversas razones.

13voto

user4245 Puntos 324

Su comprensión es correcta.

Una dirección no es más que una etiqueta arbitraria para un lugar. Todas las ubicaciones son idénticas (desde el punto de vista de la MCU), y mientras cada MCU que acceda a las ubicaciones esté de acuerdo con lo que significan las etiquetas (están conectadas de la misma manera), entonces no importa lo más mínimo cómo se asignen esas "etiquetas".

Mientras utilices el mismo cableado para meter los datos que para sacarlos, son sólo números.

Imagina que no sabes contar. Imagina que crees que los números van 0, 3, 2, 5, 4, 1 en lugar de 0, 1, 2, 3, 4, 5.

Tu jefe te dice que pongas esta caja en el estante 3. Así que vas y la pones en lo que crees que es el estante 3, pero en realidad es el estante 1.

Más tarde, ese mismo día, el jefe te dice que vayas a recuperar esa caja de la estantería 3 para él. Así que vas a lo que crees que es el estante 3 (en realidad el estante 1) y coges la caja correcta.

Ahora bien, si el jefe fuera a buscar la caja en su lugar se encontraría con una caja completamente diferente, porque no ha ido a tu estantería 3 sino a su estantería 3 (tu estantería 5).

0 votos

¿Se utiliza esto alguna vez en circuitos reales? Me imagino que la flexibilidad para encaminar las líneas de dirección y datos como se quiera sería muy útil.

2 votos

Puede ser, sí. Mientras no compartas los datos no hay absolutamente nada que te impida asignar los pines de dirección como te parezca.

1 votos

¿Ha visto alguna vez esto en un producto real?

8voto

Alex Andronov Puntos 178

En muchos tipos de chips, especialmente en los de RAM estática asíncrona, la disposición de las direcciones y de los bits de datos es totalmente arbitraria. De hecho, aunque los fabricantes suelen numerar los cables de dirección y de datos para que coincidan con los pinouts de otros dispositivos, la secuencia de los cables dentro del chip puede no tener relación con su numeración. Sin embargo, algunos tipos de chip asignan un significado especial a determinadas direcciones o bits de dirección. Los chips Flash, por ejemplo, suelen requerir que el software que desee escribir datos deba realizar primero una determinada secuencia de operaciones de escritura antes de hacerlo; si los bits de dirección o de datos se reordenan, la secuencia de escritura requerida podría tener que modificarse en consecuencia. Además, si los pines de algo como una EPROM se reordenan en una placa, habrá que reordenar los pines en cualquier dispositivo que se utilice para programarla, o bien barajar los bits del archivo que se va a cargar.

7voto

gha.st Puntos 5271
  • En el caso del acceso secuencial, la inversión de los bits de dirección puede causar un gran aumento en el consumo de energía, si la inversión hace que la SRAM acceda a nuevas filas con más frecuencia.
  • Si un módulo SRAM no cubre todo el rango direccionable (por ejemplo, digamos que el módulo tiene 768x128 bits), entonces una dirección reordenada puede hacer que se dirija accidentalmente a posiciones de memoria inexistentes.

Por lo demás, los valores/lógicos no cambian mientras la lectura y la escritura utilicen la misma reordenación de direcciones.

0 votos

¿Por qué tendría SRAM filas en primer lugar?

0voto

krgrant Puntos 11

En este contexto, es interesante saber que TI etiquetó los pines de las líneas de datos y direcciones del TMS 9900 en orden inverso a como se hace habitualmente:
A0 y D0 fueron los más bits significativos de la dirección y la palabra de datos.

Ver Artículo de Wikipedia sobre el TMS990 .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X