Determinación del ancho de la dirección de memoria a partir del tamaño de la memoria

Dada una computadora A con 1024 x 16 de memoria y una computadora B con 16K x 32 de memoria, ¿cuál es el tamaño de los registros de un acumulador, contador de programa, instrucción, registro temporal, registro de dirección, registro de datos?

En la computadora A tenemos 1K de palabras de 16 bits cada una. La computadora B tiene 16K de palabras con 32 bits cada una.

Tengo entendido que DR, AC, IR, TR son simplemente del tamaño de una palabra. Entonces, son 16 bits para la computadora A y 32 bits cada uno en la computadora B. Pero AR y PC dependen del ancho de una dirección de memoria. ¿Cómo determina una dirección de memoria a partir de la información de memoria de 16K x 32?

El tamaño más pequeño que AR y PC podrían tener es la cantidad de bits necesarios para direccionar cada palabra en la memoria; para A hay 1024 direcciones y para B hay 16K direcciones.
Tenga en cuenta que, por lo general, es más común dirigirse a los límites de bytes (8 bits). Si este es el caso de sus computadoras, calcule la cantidad de bytes en la memoria y esta es la cantidad de direcciones posibles que su AR/PC necesita poder representar.
Entonces, con la computadora A en 1024, ¿serían 10 bits para AR PC porque 2^10 = 1024? ¿Y para la Computadora B son 14 bits porque 2^14 = 16,384?
No leyó el segundo comentario de helloworld922 sobre el direccionamiento de bytes. Intentar otra vez.
Entonces, ¿tiene que alinearse en ambos 16?

Respuestas (2)

No se puede saber con seguridad con solo mirar el tamaño de la memoria. A menudo, el procesador tendrá un rango de direccionamiento que excede la cantidad de memoria que la computadora está diseñada para tomar. La mayoría de los procesadores tienen al menos un rango de direcciones de 64k, por lo que una computadora con solo 1k o 16k de memoria probablemente esté limitada por otros factores.

En el otro extremo de la escala, tener una gran cantidad de memoria no significa que el procesador deba tener registros de direcciones igualmente grandes. Por ejemplo, el Intel 8086 logró un rango de direcciones de 1 Megabyte al agregar dos registros de 16 bits juntos. Otra forma de aumentar el rango de direccionamiento es usar un puerto de E/S para configurar las líneas de dirección superiores, cambiando así diferentes bits de memoria en un banco a la vez (esto se usa comúnmente con CPU de 8 bits para acceder a más de 64k de memoria) .

El tamaño de los registros de datos e instrucciones puede coincidir con el ancho del bus de datos, pero hay muchas excepciones. Los procesadores de 16 y 32 bits a menudo tienen registros de 8 bits que se pueden usar de forma independiente o concatenados para formar 16 o 32 bits. Algunos pueden acceder a bytes individuales en un bus de datos de 16 o 32 bits. También es posible tener registros internos más anchos que los buses. Por ejemplo, el Motorola MC68008 ejecuta instrucciones de 16 bits y tiene registros de direcciones y datos de 32 bits, pero solo tiene un bus de datos de 8 bits y un bus de direcciones de 20 bits.

Esto suena como una pregunta de tarea basada en una gran simplificación de la realidad. Desafortunadamente, para responder correctamente se requiere saber qué simplificaciones de la realidad están haciendo sus instructores.

Para direccionar una memoria con n ubicaciones se requieren líneas de dirección ceil(log2(n)). Para 1024 ubicaciones eso significa 10 bits de dirección. Para ubicaciones de 16K, eso significa 14 bits de dirección.

La mayoría de los sistemas prácticos que usan memorias de 16 o 32 bits de ancho permiten direccionar bytes dentro de una palabra individualmente. Eso aumentaría el ancho de su dirección para el sistema de 1024x16 a 11 bits y su sistema de 16K*32 a 16 bits. Ya sea que los sistemas altamente simplificados de los que habla su instructor lo hagan es otra cuestión.

El registro de direcciones y el contador del programa deben ser al menos lo suficientemente grandes como para almacenar una dirección de memoria, pero en realidad es probable que sean más anchos. Una vez más, necesita saber qué suposiciones está haciendo su instructor.

De manera similar, es probable que los registros de datos tengan el mismo ancho que el bus de datos de la memoria, pero a veces son más anchos.