Determinar el ancho de la dirección de memoria del tamaño de la memoria

0

Dada una computadora A con 1024 x 16 de memoria y una computadora B con 16K x 32 de memoria, ¿qué tan grandes son los registros de un Acumulador, contador de programas, instrucciones, registro temporal, registro de direcciones, registro de datos?

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

Entiendo que DR, AC, IR, TR son simplemente del tamaño de una palabra. Así que 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 se determina una dirección de memoria a partir de la información de memoria de 16 K x 32?

    
pregunta user99999991

2 respuestas

1

No se puede decir con seguridad simplemente mirando 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 establecer las líneas de dirección superiores, por lo que se cambian 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 pueden usarse de forma independiente o concatenados para obtener 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 que sean más anchos que los autobuses. 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.

    
respondido por el Bruce Abbott
0

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

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

La mayoría de los sistemas prácticos que utilizan 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 1024x16 a 11 bits y su sistema 16K * 32 a 16 bits. Si los sistemas altamente simplificados de los que habla su instructor es otro tema.

El registro de direcciones y el contador del programa deben ser al menos lo suficientemente grandes 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 memoria, pero a veces son más anchos.

    
respondido por el Peter Green

Lea otras preguntas en las etiquetas