128

¿Por qué nos hemos "estancado" en los 64 bits?

¿Por qué nos hemos "estancado" en los 64 bits?

La razón es que aún no hemos llegado a utilizar los 64 bits al 100%.

El salto a 64 fue forzado. Un programa de 32 bits puede direccionar 4 GB. Eso es todo. Los programas chocan contra esa pared.

64 bits podría alcanzar 18 quintillones de bytes. Nadie está cerca de esa pared. x86 ni siquiera usa todos los 64 bits de una dirección. La mayoría de las máquinas usan 48 (256 TiB, la mitad de eso por programa). Los chips más nuevos pueden llegar a 57 (128 PiB).

Los punteros de 128 bits harían que cada puntero sea el doble de grande. Misma dirección, el doble de bytes. Eso cuesta memoria y caché, por lo que el código pesado en punteros puede ejecutarse más lento. Por nada.

Y 128 bits ya está en tu CPU. Solo que no para direcciones. Los registros vectoriales tienen un ancho de 128 a 512 bits (SSE a AVX-512).

Los punteros de 128 bits incluso existen. IBM i (lo que solía ser el AS/400) usa punteros de 16 bytes, pero el espacio de direcciones detrás de ellos es más pequeño. RISC-V tiene una variante de 128 bits (RV128I) en papel. No finalizada.

Lo construiremos cuando nos quedemos sin 64.

Chrome está trabajando en ello. @vukvukovich

Dicho de una forma simplificada: los bits son como los dígitos de una matrícula. A más dígitos, más matrículas diferentes puedes tener, y más coches puedes registrar. Con 64 bits tenemos como para registrar 18 trillones de coches.

Arquitectura Combinaciones posibles Memoria direccionable (teórica) Equivalente aproximado
16 bits 2¹⁶ ≈ 65 000 64 KB Matrícula de pueblo pequeño
32 bits 2³² ≈ 4 300 millones 4 GB Matrícula nacional normal
64 bits 2⁶⁴ ≈ 18 trillones 16 exabytes Matrícula intergaláctica