Bus de direcciones, bus de datos: cuánto almacenamiento es accesible directamente

1

Tengo una CPU con un bus de datos de 32 bits y un bus de direcciones de 21 bits. Me gustaría saber cuánto almacenamiento puedo conectar directamente a esta CPU.

¿Depende esto del ancho del bus de dirección, porque puedo abordar 21 bits de estos datos de 32 bits o cómo funciona esto?

    
pregunta FranzFerdinand

2 respuestas

0

Depende de lo que quieres decir con 21 bits de dirección:

  • Si significa que los registros de dirección tienen 21 bits (tamaño del bus de dirección interno de la CPU), generalmente significa que el espacio direccionable es de 2 ^ 21 bytes, porque en la gran mayoría de las CPU , la dirección tiene una granularidad de bytes. En este caso, también significa que, si tiene un bus de datos externo de 32 bits, es probable que solo haya 19 líneas en el bus de direcciones externo.
  • Si 21 bits es el tamaño del bus de dirección externo , la respuesta es mucho más probable 2 ^ 21 * 4. De lo contrario, significa que los ajustes para el acceso alineado tienen que ser realizados por alguna lógica externa, lo que significaría una gran cantidad de chips de lógica de cola requeridos, haciendo que el diseño sea demasiado complejo. Nunca he visto casos en los que esta lógica de cola no esté incorporada en la propia CPU.

Dado que la pregunta menciona el bus de datos de 32 bits, que generalmente se refiere al bus de datos externo, parece lógico esperar que los 21 bits de dirección también se refieran al tamaño del bus de direcciones externo. Así que optaría por la segunda opción sin dudarlo.

    
respondido por el dim
1

Como dice Jeroen3, 2,097,152, que es 2 21 .

Aunque el sistema es de 32 bits, normalmente las direcciones se establecen por byte, lo que significa que tiene muchos bytes disponibles para ser direccionados. Por lo tanto, puede acceder a cada byte único dentro de esta región, por lo tanto una alineación de 1 byte.

Respuesta preferida (ver el comentario de Dave Tweed a continuación):

Sin embargo, puedo imaginar que existen CPU que utilizan direccionamiento de 32 bits, lo que significa 2 21 × 4 (bytes) = 8,388608 bytes. De esta manera solo puede acceder a direcciones con una alineación de 4 bytes.

    
respondido por el Michel Keijzers

Lea otras preguntas en las etiquetas