blank blank

A era dos 64 bits

Todos os processadores Intel e AMD, do 386 ao Athlon, são chamados genericamente de “processadores x86”, deixando claro que apesar de todas as diferenças de arquitetura, eles são compatíveis com o mesmo conjunto básico de
instruções. É graças a isso que temos um número tão grande de softwares, acumulados ao longo de mais de duas décadas, que continuam funcionando nos PCs atuais. Com exceção da questão dos drivers, você poderia perfeitamente rodar o MS-DOS e o Windows 3.11
em um Core 2 Duo, por exemplo.

Duas grandes limitações da plataforma x86 são o pequeno número de registradores e o suporte nativo a apenas 4 GB de memória RAM, limitação compartilhada por todos os processadores de 32 bits. Os registradores são pequenos
espaços de memória utilizados pelo processador para armazenar informações que serão usadas para processar a instrução seguinte. Você pode pensar nos registradores como uma espécie de “cache L0”. Eles estão muito próximos das unidades de execução do
processador e por isso as informações podem ser acessadas imediatamente, mas em troca eles são incrivelmente limitados em tamanho. A arquitetura x86 prevê o uso de apenas 8 registradores, com 32 bits cada um. Ou seja, todos os registradores somados
armazenam apenas 32 bytes de dados.

Não é possível adicionar mais registradores facilmente, pois softwares escritos para utilizarem os registradores adicionais não seriam mais compatíveis com os processadores antigos. A solução encontrada foi utilizar o
recurso chamado “register renaming” onde o processador possui um número maior de registradores, mas apenas 8 são visíveis para os softwares. Os demais são gerenciados de forma dinâmica pelo processador, que vai chaveando entre eles conforme novas
informações são necessárias. Essa técnica ameniza os problemas de desempenho causados pelo pequeno número de registradores, mas não soluciona a questão completamente.

Com relação à memória, o limite de 4 GB se tornou uma limitação séria em algumas áreas a partir da época do Pentium 1. A solução veio na forma do PAE (Physical Address Extension), um hack (originalmente desenvolvido pela
Intel) que está disponível na maior parte dos processadores a partir do Pentium Pro. O PAE consiste numa segunda tabela de endereços, com 4 bits adicionais, que permitem endereçar 16 páginas de memória, cada uma com 4 GB.

Com o PAE, passa a ser possível endereçar até 64 GB de memória. A desvantagem é que o processador continua sendo capaz de acessar apenas 4 GB por vez e o chaveamento entre diferentes páginas de memória toma um certo tempo, o
que acaba prejudicando bastante o desempenho. Ou seja, assim como no caso do register renaming, o PAE ameniza o problema, mas não o soluciona completamente.

A única forma de solucionar de vez as duas questões, assim como um conjunto de outros problemas comuns a todos os processadores de 32 bits, era desenvolver uma nova nova arquitetura, composta agora por processadores de 64
bits.

As primeiras questões que precisamos deixar claro é a definição do que são processadores de 64 bits e quais são as vantagens sobre os de 32. Processadores de 64 bits não são duas vezes mais rápidos nem processam
(necessariamente) o dobro de dados por ciclo de clock. A grande vantagem dos processadores de 64 bits é que eles são capazes de trabalhar com endereços de memória de 64 bits, o que permite endereçar muito mais do que 4 GB de memória RAM. Temos também um
aumento no tamanho dos registradores, que passam a armazenar 64 bits de informações, em vez de 32, o que representa um pequeno ganho de desempenho.

Outro benefício (embora menos significativo) é que eles são capazes de processar números inteiros de até 64 bits, ao invés de 32. Isto oferece ganhos de desempenho em algumas áreas específicas (como, por exemplo, softwares
de encriptação e alguns aplicativos científicos) mas não ajuda muito nos aplicativos do dia-a-dia. Processadores de 32 bits podem processar números inteiros de 64 bits, mas eles precisam ser divididos em duas instruções separadas, o que naturalmente toma
mais tempo.

Com relação ao processamento de números de ponto flutuante, não existe ganho, pois os co-processadores aritméticos utilizados nos processadores atuais já são capazes de processar números de ponto flutuante de 64 bits e
vetores de 128 bits. Nestas duas áreas não existe um ganho direto, já que a transição foi feita há muito tempo.

Sobre o Autor

Redes Sociais:

Deixe seu comentário