14 de noviembre de 2010

Bus de direcciones y datos (control)

Ejercicios de repaso:

1. Una memoria dispone de 2 líneas de dirección y 8 líneas de datos.
¿Cuántos bits es capaz de almacenar? ¿Cuál es el valor hexadecimal de la última dirección?

Con 2 líneas de direcciones, podremos direccionar 2^2 = 4 direcciones.

00-  posición 0
01 - posición 1
10 - posición 2
11 - posición 3

En total son 4 posiciones, pero al empezar a contar desde cero, hay que restar una unidad.
La última dirección será: 2^2-1= 3 (0x3).
En cada posición podemos almacenar 8 bits, por lo tanto la capacidad total es de 4x8 = 32 bits.

2. Una memoria dispone de 16 líneas de dirección y 8 líneas de datos.
¿Cuántos bits es capaz de almacenar? ¿Cuál es el valor hexadecimal de la última dirección?

Con 16 líneas, tenemos 2^16 = 65536 direcciones.

0000000000000000 - posición 0
0000000000000001 - posición 1
...............................
...............................
111111111111110
111111111111111 - última dirección.

Igual que antes, son 65536 posiciones, pero al empezar a contar desde cero, hay que restar una unidad.
La última dirección será 2^16-1 = 65536-1 = 65535 = 0xFF.
En cada una almacenamos 8 bits, la capacidad total será de 65536x8 = 524.288 bits.

Resumiendo: Podemos conocer la cantidad de direcciones de memoria como las combinaciones de 2 elevando a 'n', donde 'n' es el número de líneas de direcciones. Cuantas más bits (líneas) de direcciones, más posiciones de memoria podremos direccionar y por lo tanto más información podremos almacenar.

Sugerencias a tener en cuenta:

"Puede direccionar 2^16 x 8" - Ésto es la capacidad de la memoria en bits (16 líneas de direcciones y 8 de datos), no el número de posiciones de memoria que se calcula como 2^16.

"El valor hexadecimal será FFFF" - No es un error importante, pero incluid siempre la notación correctamente, si el valor está expresado en hexadecimal, precededlo con "0x". Lo correcto sería 0xFFFF.

"La capacidad de la memoria será 2^16 x 2^8" - Error grave, en cada posición se puede almacenar sólo 8 bits, no la combinación de todos ellos, por lo tanto si tenemos 65536 posiciones donde en cada una se almacena 8 bits, entonces la capacidad será 2^16 x 8 = 524288 bits.

Ejercicios propuestos:

1. Una memoria dispone de 4 líneas de dirección y 16 líneas de datos.  ¿Cuántas posiciones de memoria pueden direccionarse? ¿Cuántos bits es capaz de almacenar?
¿Cuál es el valor hexadecimal de la última dirección?

2. Una memoria dispone de 32 líneas de dirección y 2 líneas de datos. ¿Cuántas posiciones de memoria pueden direccionarse? ¿Cuántos bits es capaz de almacenar?
¿Cuál es el valor hexadecimal de la última dirección?

3. Necesito disponer de 1543 direcciones de memoria ¿cuántas líneas de direcciones son necesarias? ¿Cuál es el valor hexadecimal de la última dirección?

4. Necesito disponer de 9 bits de datos en cada dirección de memoria, ¿cuántas líneas de datos necesito? Para el caso anterior, ¿cuál es la capacidad total en bits de la memoria?

Lee más sobre el bus de direcciones en Wikipedia:
http://es.wikipedia.org/wiki/Bus_de_direcciones
..

No hay comentarios: