Estoy estudiando para un examen de fin de semestre y estoy confundido con la siguiente pregunta. Si una CPU tiene un bus de direcciones de 16 bits y palabras de 8 bits, ¿cuánta memoria en KB puede direccionar? Mi entendimiento me diría que puede abordar 64 KB, sin embargo, para hacer esto, solo usé 2 ^ 16 = 65,536. Ese cálculo nunca tuvo en cuenta palabras de 8 bits, por lo que no estoy seguro de si es correcto. Además, ¿qué significan las palabras de 8 bits?
Aclamaciones
Respuestas:
Una palabra, en la mayoría de las arquitecturas, es el mayor dato que se puede transferir hacia y desde la memoria de trabajo en una sola operación.
El tamaño de dirección más grande posible, utilizado para designar una ubicación en la memoria, generalmente se denomina palabra de hardware.
Por lo tanto, su CPU podrá direccionar 64 KB (2 ^ 16) pero solo podrá transferir en una sola operación 8 bits.
fuente
Una palabra de máquina, o comúnmente solo palabra, es la unidad de datos más grande que la CPU puede manipular en su conjunto utilizando instrucciones comunes. Esto no tiene nada que ver con el direccionamiento de memoria.
Lo que importa es la resolución de la unidad de dirección , que comúnmente es un byte de 8 bits incluso en arquitecturas de 16/32/64 bits. No tiene que ser igual al tamaño de palabra de la máquina, pero probablemente lo sea en su caso.
Una unidad direccionable de 8 bits combinada con un bus de direcciones de 16 bits asciende a 64 KB de RAM que la CPU puede abordar.
fuente
En contexto, el tamaño de la palabra va con el tamaño de la dirección para describir el bus de memoria. Hay 16 bits en la memoria para que pueda elegir ubicaciones de 64ki. Entonces, cada ubicación contiene 8 bits.
El tamaño de la palabra aquí puede coincidir o no con el tamaño de la unidad de cálculo de la CPU, y esto puede coincidir o no con la granularidad lógica en el direccionamiento.
Por ejemplo, una CPU puede anunciar un bus de 16 bits (para este propósito). Utiliza direcciones de 16 bits en sus instrucciones y, como su ejemplo, tiene 64ki. Pero tiene 15 bits de bus de direcciones y 16 bits de bus de datos. Solo necesita direcciones de 32ki y siempre obtiene 2 bytes con cada ubicación. (Si una instrucción quisiera 1 byte, enviaría la dirección con el menor bit faltante, buscaría ambos bytes en ese paso, luego buscaría el menor bit de la dirección deseada para decidir qué mitad usar).
Tenga en cuenta que el cambio de banco, PAE, etc. mencionado por otros no es relevante aquí. Una unidad de administración de memoria puede usar direcciones de 16 bits y tener una dirección de hardware de 20 bits, por lo que la CPU necesita cambiar y mapear cosas para hacer uso del rango real de direcciones de 20 bits de chips RAM que se pueden abordar.
Asegúrese de especificar unidades en sus respuestas. "64ki". ¿De que? Palabras de 8 bits, lo que hace (todavía) 64ki bytes de RAM direccionable. Ese paso elimina la confusión y hace que problemas como este sean triviales.
fuente
También debe usar el tamaño de palabra en los cálculos. La respuesta es 64 KB.
Puede abordar 2 ^ 16 palabras y cada palabra es de 8 bits (= 1 byte). Por lo tanto, es de 64 KB.
Si el tamaño de la palabra era de 16 bits. La respuesta sería 128 KB.
fuente
Hay dos lados de esto, lo que su instructor probablemente quiere que le diga y cuál es la realidad.
Primero, lo que tu instructor probablemente quiere que le digas.
"16 bits pueden direccionar 2 ^ 16 ubicaciones de memoria, cada ubicación es de 8 bits. Entonces podemos direccionar una memoria de 524288 bits (65536 octetos)".
Sin embargo, esto refleja una visión del mundo bastante simplificada. La realidad es más complicada y dar una respuesta definitiva requiere más información. Algunas de las formas en que los sistemas reales pueden ser más complicados que esto incluyen.
fuente