Direcciones de memoria en ordenadores de 32 y 64 bits

Hola, me surge una duda con las arquitecturas de 32 y 64 bits. Entiendo que los buses de datos son de 32 y 64 bits respectivamente y lo mismo con el tamaño de los registros. Ahora bien, la duda me viene con el direccionamiento de la memoria. Según veo por internet los procesadores de 32 bits pueden direccionar hasta 4 GB y los de 64 hasta hasta 16 EB. Si supongo que los buses de direcciones son también de 32 y 64 bits respectivamente me saldrían las cuentas (2^32 y 2^64), pero en ese caso las palabras tendrían que ser de 1 byte. Y aquí es donde no sé si tengo los conceptos equivocados: si tengo un bus de datos de 32 ó 64 bits ¿no sería lo suyo tener palabras de memoria de 32 y 64 bits? si fuera así tendrían que poderse direccionar hasta 16 GB y 128 EB.
En resumidas cuentas ¿cómo va esto?¿se usan palabras de 8 bits? entonces, al hacer una transferencia por ejemplo en un ordenador de 64 bits ¿qué hace?¿lee simultáneamente de 8 posiciones de memoria?

Gracias [bye]
No se exactamente a lo que te refieres, pero sí, seria algo así.

Las direcciones de memoria son de 32 y 64 bits, siendo asi que el maximo de memoria que soporta el 32 bits son 4GB y el de 64 bits son 128GB.

En teoria un un Windows 7 64 bits seria capaz de manejar hasta 128 GB de RAM, lo unico es que no hay placa que acepte mas de 48GB (creo).

No se si es eso a lo que te refieres pero bueh, un saludo.
Me refiero a que los números de posibles combinaciones de bits con los 32 y 64 bits del bus de direcciones serían 2^32 y 2^64. Pero estos números hacen referencia a posiciones de memoria que no tienen por qué contener un solo byte. De hecho, como el bus de datos es de 32 y 64 bits respectivamente, las tranferencias de información serán de 32 ó 64 bits simultáneamente por ciclo. En este caso, la idea que tenía yo es que en cada dirección de memoria deberíamos tener 32 ó 64 bits, según la arquitectura. Sin embargo si con 32 bits puede direccionar 4 GB y con 64 bits 16 EB, haciendo cuentas en cada dirección de memoria sólo puede haber 1 byte. Entonces no sé cómo se aprovecha todo el ancho de los buses de datos de 32 bits o de 64 bits si cuando la CPU vaya a leer una posición de memoria se va a encontrar con sólo 8 bits ¿lee de varias posiciones a la vez?
Raijinken escribió:¿lee de varias posiciones a la vez?


Correcto, eso es lo que hace. El procesador lee la cantidad de posiciones necesarias para completar el ancho de palabra que utilice (32 o 64bits). La memoria es la misma para ambas plataformas.
juanf escribió:
Raijinken escribió:¿lee de varias posiciones a la vez?


Correcto, eso es lo que hace. El procesador lee la cantidad de posiciones necesarias para completar el ancho de palabra que utilice (32 o 64bits). La memoria es la misma para ambas plataformas.


OK, muchas gracias, eso es lo que quería saber [oki] . Entonces, posiciones de memoria de 1 byte y varias lecturas simultáneas para completar la palabra.

Otra cosa, estoy viendo que en las arquitecturas de 32 bits para poder direccionar más de 4 GB se utiliza algo llamado Physical Address Extension, con lo que usa 4 líneas más de direcciones para poder llegar a 64GB, pero que algunas versiones de Windows no está soportada o algo así. Entonces ¿por ejemplo en Win XP con una arquitectura de 32 bits no se puede direccionar más de 4 GB? ¿Y en Windows 7, está soportado?
Eso depende. Primero de todo tiene que soportarlo el procesador, y si es así tiene que tenerlo implementado el sistema operativo. Y no tengo de eso ya ni idea si lo incorpora. Yo creo que no, porque para eso te venden la versión de 32 y de 64.
5 respuestas