2 ^ 32 es aproximadamente 4 mil millones de bits (4 GB), que es de alrededor de 0,5 GB. Entonces, ¿cómo puede una máquina de 32 bits tener más de 0.5 GB de RAM?

Una dirección de 32 bits puede abordar de forma exclusiva [matemáticas] 2 ^ {32} = 4294967296 [/ matemáticas] “cosas”.

La mayoría de las computadoras en estos días tienen una unidad mínima de almacenamiento direccionable igual a 1 byte. En esas máquinas, cada byte obtiene una dirección única, lo que significa que una dirección de 32 bits puede direccionar 4,294,967,296 bytes distintos.

Existen máquinas con diferentes unidades mínimas de almacenamiento direccionables.

Por ejemplo, el TMS34010 tiene una unidad mínima de almacenamiento direccionable de 1 bit. Por lo tanto, su dirección de 32 bits lo limitó a un alcance de dirección de 512 megabytes, porque solo podía abordar 4 giga bits . (Eso fue suficiente en 1985).

Las máquinas con dirección de palabra son más comunes que las máquinas con dirección de bit, aunque los tamaños de palabra varían ampliamente. Muchas computadoras centrales y supercomputadoras más antiguas ofrecían tamaños de palabra que iban desde 16 bits a 64 bits. La cantidad de memoria que cada uno de ellos podía abordar era una función del tamaño de la palabra además del tamaño de la dirección. Por ejemplo, el CP1600 de 16 bits podría acceder a [matemáticas] 2 ^ {16} = 65536 [/ matemáticas] palabras de 16 bits, que son 128 KB.

2 ^ 32 también es aproximadamente de 4 mil millones de bytes. Verá, en RAM, la cantidad máxima de bytes de RAM que es visible para el sistema (sin usar PAE) es de 4 GB. Esto se debe a que cada byte visible para el sistema tiene una dirección que, en el caso de los sistemas de 32 bits, tiene una longitud de 32 bits. Entonces cada byte tiene una dirección de 32 bits de largo. Esto da un potencial de 2 ^ 32 direcciones únicas. Después de eso, no hay más direcciones únicas para que el sistema haga referencia. Es por eso que el sistema solo puede admitir hasta 4 GB. Creo que te confundiste cuando confundiste los bytes con los bits, que son 1/8 del tamaño de los bytes y no de qué son las direcciones, sino de qué están compuestas las direcciones. Entonces, lo que calculó mal como 0.5 * 8 = 4 GB.

Si bien hay excepciones, particularmente en arquitecturas de procesador más antiguas, en la computadora x86 típica, la memoria se direcciona en bytes completos, no en bits individuales. Por lo tanto, recuperar una sola dirección obtiene los ocho bits asociados con ella. (En realidad, en las computadoras modernas, el hardware recupera muchos bytes simultáneamente, independientemente de la dirección específica que solicitó, pero desde el punto de vista del software, la unidad mínima direccionable sigue siendo el byte).

Andrew Silverman se dirigió a la primera parte. Además, si la máquina tiene un bus de direcciones de 32 bits y un bus de memoria de 32 bits, cada solicitud de dirección obtendrá 4 bytes y el espacio total direccionable sería de 16 GB.

Esto significa que una máquina totalmente de 64 bits podría direccionar 134EB o 134,217,728TB o 137,438,953,472GB.

También para referencia futura, el capital B se refiere a bytes y en minúsculas a bits. 2 ^ 32 bits son 4 Gb o 512 MB. 4GB es 32Gb.

Debido a que el espacio de direcciones es de 32 bits, cada una de las 4 mil millones de direcciones es una ubicación de almacenamiento y esa ubicación contiene 32 bits de datos.