Processadores, a era dos 64 bits

Processadores, a era dos 64 bits

Depois de estudarmos um pouco sobre a história da informática e passarmos pelos processadores de 2000 a 2005, chegamos finalmente à era moderna, que foi inaugurada pelo Athlon 64, o primeiro processador x86 de 64 bits.

Antes do Athlon 64, a Intel vinha tentando empurrar o IA64, um novo conjunto de instruções de 64 bits, que era usado no Itanium. A diferença fundamental entre o IA64 e o x86-64 (usado no Athlon 64) é que o IA64 era incompatível com o conjunto anterior (todos os softwares precisam ser reescritos), enquanto o x86-64 é uma atualização mais suave, que permite usar tanto sistemas operacionais e softwares de 32 bits, quanto sistemas e softwares de 64 bits.

Depois de uma rápida batalha, o padrão da AMD prevaleceu, e é graças a isso que podemos escolher entre usar as versões de 32 bits e 64 bits do Windows ou de diversas distribuições Linux nos processadores atuais, sem nos preocuparmos com a questão da compatibilidade.

Começando do início, 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 i7, 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, uma 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 (4 bytes!) 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 deles 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.

A primeira questão 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

X