Por qué no hay procesadores de 256 bits o 512 bits o 1024 bits?

Depende de lo que entiendas por "bits". Hay muchas cosas que tienen un "número de bits" en un procesador. Algunas, como un bus de transferencia de memoria, pueden tener un número muy grande de bits para tener un alto rendimiento (que básicamente significa transferir muchos bits por segundo).

Como han dicho otros, en realidad se pueden utilizar muchos bits para el cálculo, e incluso los procesadores de 64 bits pueden aplicar una única operación a un vector de 512 bits (aunque esos bits no representen realmente un único número).

Cuando la gente se refiere a los procesadores de 32 o 64 bits, generalmente se refieren al número de bits utilizados para representar de forma nativa un número entero y el número de bits para representar una dirección. Podría decirse que este último es más importante.

Cuando se trata de datos, especialmente los almacenados en la memoria RAM, que son datos que están siendo procesados, un programa tiene que saber cómo identificar individualmente las partes de los datos. Esto se hace a través de las direcciones. Cada byte tiene una dirección, y los datos están formados por grupos de bytes.

En un procesador habitual de 32 bits, estas direcciones se representan como enteros de 32 bits sin signo, que pueden representar números de 0 a 4 mil millones. Eso significa que un programa que se ejecuta en dicho procesador puede direccionar hasta 4 GiB de datos. Eso' es un montón de datos. Pero hoy en día los datos son cada vez más grandes.

Por ejemplo, las películas en 4K pueden superar esa cantidad de datos, por lo que los programas que manipulan ese tipo de vídeo no pueden' cargarlos todos en la memoria para procesarlos si' se ejecutan en un procesador normal de 32 bits. Si pensamos en los ordenadores que ejecutan los servidores de las empresas de Internet, manejan muchos más datos porque normalmente manejan los datos de varios usuarios que lo utilizan al mismo tiempo.

Antes de que los ordenadores de 64 bits se convirtieran en la corriente principal, ya habían empezado a aparecer algunas soluciones. Por ejemplo, los procesadores x86 que son de 32 bits pueden realmente manejar direcciones de hasta 40 bits (si no recuerdo mal). El problema era que había que utilizar algunas operaciones no triviales para representar secciones de memoria extra en el formato de direcciones de 32 bits. Así que usar más de 4 GiB ya era posible, pero no era trivial.

El problema es que muchas operaciones de direccionamiento son relativas. Un ejemplo típico es un array. Un array es un grupo de datos que se almacena de forma continua, es decir, un elemento se almacena inmediatamente después de otro. Puedes obtener un elemento específico del array utilizando la dirección del primer elemento sumada a la dirección relativa (que es el tamaño del elemento multiplicado por la posición) del elemento deseado. Como puedes ver, necesitamos realizar operaciones aritméticas utilizando direcciones (representadas como enteros) para utilizar los datos de forma más flexible y eficiente.

Por eso los procesadores de 64 bits duplicaron el número de bits en la representación de direcciones y en las operaciones con enteros. Ahora se pueden direccionar más datos de forma efectiva.

La pregunta ahora podría ser, por qué 64 y no 60 o 40 (como ya se empezó a hacer hace unos años). Seguramente hay muchas razones para ese diseño, pero la más sencilla que se me ocurre es que como todavía son posibles las operaciones de 32 (y las de 16 y 8 bits), teóricamente se podría utilizar la mayor parte del mismo hardware para hacer dos operaciones de 32 bits. No sé si esto se utiliza realmente dentro de los procesadores, pero es una razón que me parece válida. Otro ejemplo podría ser que las operaciones de bits son más fáciles de implementar con números que son potencias de dos, y 64 es la siguiente potencia de dos después de 32.

Aunque los 64 bits permiten direccionar hasta 16 EiB de datos, los actuales procesadores de 64 bits limitan físicamente la RAM direccionable a un valor inferior (menos de 1 TiB), porque nadie hasta ahora ha añadido esa cantidad de RAM para que sea direccionada, por lo que algunos bits pueden incluso ser ignorados (es más complicado que eso, porque los mapeos se utilizan para asegurarse de que un programa no'no acceda a la memoria que no es direccionable, pero esto sucede detrás de las escenas y el programa ni siquiera sabe que está sucediendo, sólo sabe que algo raro está sucediendo cuando trata de usar más memoria de la que está disponible, pero eso es culpa del usuario por no comprar suficiente 😉 ).

Ahora, para responder finalmente a la pregunta de por qué no hay procesadores de 128 bits o más, la respuesta es que la mayoría de la gente no lo usaría, y producir tales procesadores sería más caro. Por lo tanto, la respuesta es simplemente que no vale la pena (todavía).

¿Cuándo valdrá la pena? Probablemente dentro de unas décadas. Los 64 bits pueden representar muchos datos. Sin embargo, la humanidad ha demostrado que tiene la capacidad mental de idear formas de utilizar más y más datos. Lo que significa que probablemente llegaremos a un punto similar en el futuro en el que la gente querrá ejecutar programas que operen con datos enormes (¿películas holográficas?). Cuando llegue ese día, es posible que los procesadores de 128 bits estén disponibles. Los 128 bits en realidad permiten direccionar más datos de los que hay actualmente en todo el planeta, así que no creo que lleguemos a ver ordenadores de 256 bits, pero el tiempo probablemente me demostrará que estoy equivocado.