¿32 bits a 64 bits saltando 48 bits?

¿32 bits a 64 bits saltando 48 bits?

Arquitectura informática actualizada de 16 bits a 32 bits y 64 bits. ¿Cuál fue la lógica para omitir los 48 bits? ¿Qué razonamiento se utilizó para actualizar a 64 bits y no a otro exponente?

La siguiente tabla lo ilustra: 2^32 es 65536 veces mayor que 2^16. Entonces parece lógico usar 2^48, que también es 65536 veces mayor que 2^32. Usar 2^64 parece un salto enorme en comparación. (Diez años después de la introducción de AMD64, las computadoras de escritorio se venden con GB de RAM de dos dígitos, mientras que los servidores usan GB de RAM de tres dígitos).

    2^16                        65.536
    2^32                 4.294.967.296  2^16 X 65536
    2^48           281.474.976.710.656  2^32 X 65536
    2^64    18.446.744.073.709.600.000  2^32 X 4294967296

EDITAR A CONTINUACIÓN

utilicé unconversor de decimal a binario en líneay obtengo estos resultados. Aparentemente, 2^48 tiene un máximo de 48 unos binarios.

    1111111111111111                      65535  2^16 - 1 (16 ones)
    10000000000000000                     65536  2^16

    11111111111111111111111111111111                    4294967295  2^32 - 1 (32 ones)
    100000000000000000000000000000000                   4294967296  2^32

    111111111111111111111111111111111111111111111111            281474976710655 2^48 - 1 (48 ones)
    1000000000000000000000000000000000000000000000000           281474976710656 2^48

    1111111111111111111111111111111111111111111111111111111111111111    18446744073709551615    2^64 - 1 (64 ones)
    10000000000000000000000000000000000000000000000000000000000000000   18446744073709551616    2^64

Respuesta1

64 bits es el siguiente paso lógico.

La razón se debe principalmente a que el paso para duplicar (o la mitad) la cantidad de bits es fácil de manejar en software y hardware para sistemas que operan de forma nativa en un tamaño diferente. Los sistemas de 32 bits ya trabajaban habitualmente con valores de 64 bits internamente, antes de que las CPU de 64 bits estuvieran disponibles.

Por ejemplo: un sistema de 32 bits puede manejar fácilmente un número de 64 bits almacenándolo en 2 variables/registros de 32 bits.
Tratar con un número de 48 bits es incómodo: necesitaría usar una variable de 32 bits y una de 16 bits juntas o solo usar parte de una variable de 32 bits o usar 3 variables de 16 bits. Ninguna de estas soluciones para 48 bits es óptima.

En general: cualquier sistema que funcione en X bits puede manejar fácilmente tamaños de (N * X) y (X / N), donde N es una potencia de 2. Entonces la lógica es 1, 2, 4, 8, 16, 32. , 64, 128, 256, 512 y así sucesivamente.
Cualquier otro tamaño requiere un manejo más complicado en hardware y/o software y, por lo tanto, no es óptimo.

Entonces, cuando se opta por un tamaño de bits mayor en la arquitectura de hardware, tiene sentido usar la misma progresión, ya que solo se necesitarán actualizaciones menores de los sistemas operativos, el software y los compiladores para admitir el nuevo tamaño de bits.

(Todo esto se aplica al tamaño de bits nativo para los registros de la CPU. Cuando se toma el "número de líneas de dirección" que se dirigen a los chips de RAM, es posible que vea un número menor de lo que es natural para la arquitectura.
Internamente, estas CPU usan más bits, pero no todos los bits están conectados a líneas de dirección reales,
por ejemplo: 20 líneas en CPU 8088 y 8086, 20 líneas en 80286 y 36 líneas en Pentium II).

Respuesta2

Lo que pasó, básicamente, es el direccionamiento de bytes. Antes de eso, no había ninguna razón de peso para que los procesadores tuvieran una potencia de dos palabras (aunque generalmente había razones físicas para un múltiplo de 2 o 4, porque los circuitos venían en múltiplos).

Antes del direccionamiento por bytes, la palabra de memoria tenía el mismo ancho que la palabra del procesador, y la memoria se direccionaba (principalmente) en palabras. Pero con el direccionamiento de bytes había una ventaja en que la longitud de la "palabra" fuera una potencia de dos del tamaño del byte, de modo que los límites de las "palabras" cayeran en una buena progresión binaria (agradable tanto para los humanos como para el hardware de la computadora).

(En cuanto a por qué el direccionamiento de bytes se convirtió en "lo más importante", no puedo ofrecer ningún argumento convincente en este momento).

Probablemente, si el carácter estándar fuera de 10 bits en lugar de 8, tendríamos procesadores de 20, 40, 80 bits, en lugar de 16, 32, 64.

información relacionada