SRAM intercambió la dirección / bits de datos

4

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

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

Como puede ver, se intercambian algunos de los bits de dirección.

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                
uC        SRAM
A0    --> A3
A1    --> A0
A2    --> A1
A3    --> A2
A4    --> A4
..    --> ..
A15   --> A15

Entonces ... desde el lado del microcontrolador, todas las direcciones son ascendentes, pero como se puede ver en realidad, la unidad uC se dirige a varios lugares de memoria en el archivo.

¿Esto es un problema? Creo que con UN microcontrolador usando la memoria: no, ya que el microcontrolador puede obtener los datos en el orden correcto (incluso si no lo hace desde una observación externa). 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. (¡Considerando UN microcontrolador usando la memoria!)

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

Entonces, mi pregunta final es: ¿es correcto mi comprensión de este problema o me estoy perdiendo algo? ¡No pude encontrar algo en internet sobre este problema!

    
pregunta d3L

4 respuestas

12

Tu entendimiento es correcto.

Una dirección es solo una etiqueta arbitraria para una ubicación. Todas las ubicaciones son idénticas (del PoV de la MCU), y siempre que cada MCU que acceda a las ubicaciones coincida en el significado de las etiquetas (estén cableadas de la misma forma), no importa en absoluto cómo asigne esas "etiquetas".

Mientras se use el mismo cableado para introducir datos que para obtener datos, son solo números.

Imagina que no puedes contar. Imagina que piensas 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 ve y ponlo 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 y saques esa caja del estante 3 para él. Entonces, ve a lo que crees que es el estante 3 (realmente el estante 1) y obtienes la caja correcta.

Ahora, si el jefe fuera a buscar la caja, buscaría una caja completamente diferente, porque no fue a su estante 3 sino a su estante 3 (su estante 5).

    
respondido por el Majenko
7

Para muchos tipos de chips, especialmente los chips de RAM estáticos asíncronos, la disposición de la dirección y la disposición de los bits de datos son completamente arbitrarias. De hecho, mientras que los fabricantes generalmente numeran la dirección y los cables de datos para que coincidan con los pinouts de otros dispositivos, la secuencia de cables dentro del chip puede no tener relación con su numeración. Algunos tipos de chip, sin embargo, agregan un significado especial a ciertas direcciones o bits de direcciones. Los chips flash, por ejemplo, a menudo requerirán que el software que desee escribir datos debe realizar primero una cierta secuencia de operaciones de escritura antes de hacerlo; si la dirección o los bits de datos se reorganizaran, la secuencia requerida de escrituras podría necesitar ser modificada en consecuencia. Además, si los pines para algo como una EPROM se reorganizan en una placa, entonces uno tendrá que reorganizar los pines en cualquier dispositivo que se use para programarlo, o bien barajar los bits en el archivo que se va a cargar.

    
respondido por el supercat
6
  • Para los bits de dirección de cambio de acceso secuencial, puede causar un gran aumento en el consumo de energía, si los cambios provocarán que la SRAM acceda a nuevas filas con mayor frecuencia.
  • Si un módulo SRAM no cubre todo el rango direccionable (por ejemplo, digamos que el módulo tiene 768x128 bits), una dirección reordenada puede hacer que se dirija accidentalmente a ubicaciones de memoria no existentes.

De lo contrario, los valores / lógica no cambian siempre que la lectura y la escritura utilicen la misma dirección de ordenación.

    
respondido por el HKOB
0

En este contexto, es interesante saber que TI etiquetó los pines de las líneas de datos y direcciones del TMS 9900 en orden opuesto a como se hace normalmente:
A0 y D0 fueron los la mayoría de partes significativas de la dirección y la palabra de datos.

Consulte el artículo de Wikipedia sobre TMS990 .

    
respondido por el Curd

Lea otras preguntas en las etiquetas