de 32 bits para 64 bits pulando 48 bits?

5

Arquitetura do computador atualizada de 16 bits para 32 bits para 64 bits. Qual foi a lógica para pular 48 bits? Que raciocínio foi usado para atualizar para 64 bits e não algum outro expoente?

As tabelas a seguir ilustram: 2 ^ 32 é 65536 vezes maior que 2 ^ 16. Por isso, parece lógico usar 2 ^ 48, que também é 65536 vezes maior que 2 ^ 32. Usando 2 ^ 64 parece um salto enorme em comparação. (10 anos após a introdução da AMD64, os computadores de mesa são vendidos com GB de dois dígitos, enquanto os servidores usam GB de três 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 ABAIXO

Eu usei um conversor decimal-para-binário online e obtive estes resultados. Aparentemente, 2 ^ 48 é maximizado com 48 1s binários.

    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
    
por Matias Casado 17.08.2014 / 13:41

2 respostas

9

64 bits é o próximo passo lógico.

A razão é principalmente porque o passo para dobrar (ou metade) o número de bits é fácil de manusear em software e hardware para sistemas que operam nativamente em um tamanho diferente. Sistemas de 32 bits em que já lidam rotineiramente com valores de 64 bits internamente, antes que as CPUs de 64 bits se tornassem disponíveis.

Exemplo: um sistema de 32 bits pode manipular facilmente um número de 64 bits, armazenando-o em 2 variáveis / registros de 32 bits. Lidar com um número de 48 bits é complicado: você precisaria usar uma variável de 32 bits e de 16 bits juntos ou usar apenas parte de uma variável de 32 bits ou usar 3 variáveis de 16 bits. Nenhuma dessas soluções para 48 bits é ideal.

Em geral: Qualquer sistema que funcione em X bits pode manipular facilmente tamanhos de (N * X) e (X / N), onde N é uma potência de 2. Então a lógica é 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 e assim por diante.
Todos os outros tamanhos requerem um manuseio mais complicado em hardware e / ou software e, portanto, são sub-ótimos.

Portanto, quando se procura por um tamanho de bit maior na arquitetura de hardware, faz sentido usar a mesma progressão, pois só serão necessárias pequenas atualizações nos Sistemas Operacionais, software e compiladores para suportar o novo tamanho de bit.

(Tudo isso se aplica ao tamanho de bit nativo para registradores de CPU. Quando você leva em consideração "número de linhas de endereço" que endereçam os chips de RAM você pode ver um número menor então o que é natural para a arquitetura. > Internamente, esses processadores usam mais bits, mas nem todos os bits estão conectados a linhas de endereço reais. Por exemplo: 20 linhas em 8088 e 8086 cpu, 20 linhas em 80286 e 36 linhas no Pentium II)

    
por 17.08.2014 / 15:15
1

O que aconteceu, basicamente, é o endereçamento de bytes. Antes disso, não havia razão convincente para que os processadores tivessem um poder de duas palavras (embora geralmente houvesse razões físicas para um múltiplo de 2 ou 4, porque os circuitos vinham em múltiplos).

Antes do endereçamento de byte, a palavra de memória era da mesma largura que a palavra do processador, e a memória era (principalmente) endereçada em palavras. Mas, com o endereçamento de bytes, havia uma vantagem em ter o comprimento de "palavra" como uma potência de dois bytes, de modo que os limites de "palavra" caíssem em uma boa progressão binária (boa para humanos e para hardware).

(Sobre o motivo pelo qual o endereçamento de bytes se tornou "a coisa", não posso oferecer nenhum argumento convincente agora.)

Provavelmente, se o caractere padrão fosse 10 bits em vez de 8, teríamos processadores de 20, 40, 80 bits, em vez de 16, 32, 64.

    
por 17.08.2014 / 15:59