32 bits e 64 bits

Tecnicamente um processador de 64bit garante maior poder de processamento, pois pode manipular o dobro de bits que um processador de 32bit pode manipular ao mesmo tempo. Alem disso, processadores de 64bit podem endereçar muito mais do que os 4Gb de memória que os processadores de 32bit endereçam. O problema é que para fazer uso dos 32bit adicionais, o software deve ser escrito para isso e, atualmente, sistemas operacionais e programas domésticos de 64bit ainda não são uma realidade.

Segundo os especialistas, sistemas operacionais, jogos e programas de 64bit só começarão realmente a
inundar o mercado a partir de 2008.
Até lá, quem fez a opção de adquirir esta nova tecnologia, terá de se contentar em ficar com o sistema subutilizado, assim como ocorreu com os antigos usuários do Intel 386 na década de 80.

Vamos as cálculos e aprenderemos a diferença física dos processadores 32 bit para os processadores 64 bit. Quando temos processadores de32 bits ou 64 bits estamos falando dos bits internos que o processador possui, ou seja, representa a quantidade de instruções e dados que o processador consegue trabalhar simultaneamente. O processador de 32 bit pode manipular números de valor até 4.294.967.296 em uma única operação.

Se este o valor do número for superior ao mostrado acima, o processador terá de executar 2 operações, ou seja, mais tempo gasto. E os processadores de 64bit ? Qual o número que ele poderá calcular em apenas 1 operação ?

Para calcular esse limite, basta fazer 2 elevado à quantidade de bits internos do processador. 2^64 = 18.446.744.073.709.551.616 Somente isto!


As nomenclaturas

Como são 2 os fabricantes de processador lideres de mercados, vamos as nomenclaturas que cada uma utiliza:

AMD64: originalmente chamado de x86-64, AMD64 (ou AMD64 ISA - Instruction Set Architecture) é o nome da tecnologia de 64 bits desenvolvida pela AMD. Um de seus destaques é o suporte às instruções de 32 bits (Legacy Mode);

EM64T: sigla para Extended Memory 64-bit Technology, o EM64T é tido como a interpretação do AMD64 feita pela Intel. Devido a isso, recebeu de alguns a denominação iADMD64 (o "i" faz referência à primeira letra do nome da Intel).


Incompatibilidade entre Hardware e Drivers

Devido as diferenças de Hardware, o IA64 e o x64 necessitam de versões binárias diferentes do sistema operacional. Drivers compilados para x64 são compatíveis com implementações AMD64 e Intel EM64T.


Trabalhando com aplicações 32-bits no Windows 64-bits

Como sabemos a maioria das aplicações foram compiladas para as plataformas de 32-bits (processadores e sistemas operacionais). Para permitir uma transição suave de 32 bit para o 64 bit, Microsoft, AMD e Intel desenvolveram produtos que trabalham com as 2 arquiteturas ao mesmo tempo, com desempenho igual ou superior aos sistemas executados sem emulação e total confiabilidade.

Para possibilitar o uso de aplicações 32-bits no Windows 64-bits é necessário o uso de uma camada de emulação x86, conhecida como WOW64 (Windows-On-Windows64). O sistema isola por completo as aplicações 32 bits e 64 bits, para que não ocorram conflitos entre arquivos ou no registro do Windows.


Modos de operação

Os processadores AMD64 e IA64T possuem 3 modos de operação diferentes

Modo 32 bits: Ambos processadores AMD64 e EM64T atuarão exatamente como outros processadores compatíveis com IA-32 (32 bit) . É possível instalar um sistema operacional de 32 bits nestes sistemas e rodar programas 32 bits, entretanto, eles não serão capazes de fazer uso das novas funcionalidades exclusivas de 64 bits como endereçamento real de memória acima de 4GB ou dos registradores GPRs. Programas 32 bits irão rodar com a mesma velocidade que rodariam A maioria dos programas para IA-32 poderão rodar até mesmo mais rápidos que nas próprias plataformas aproveitando outras características implementadas na plataforma x64 que aumentam o desempenho.


Modo de compatibilidade: É um modo intermediário do modo completo (full). Para rodar no modo de compatibilidade, é necessário instalar um sistema operacional de 64 bits com drivers de 64 bits. O modo de compatibilidade com um sistema operacional de 64 bits possibilita rodar programas de 32 bits sem modificações. Cada programa 32 bits deve estar limitado à no máximo 4 GB de memória física. Porém, este limite de 4 GB é imposto em um nível de pré-processo e não em um nível de sistema. Isso significa que cada processo de 32 bits neste sistema pode ter seu próprio bloco de memória de 4 GB de espaço de memória física (supondo que se tenha bastante memória física instalada). Isso é uma enorme vantagem comparada ao sistema IA-32, onde o kernel do sistema operacional e o programa têm que compartilhar os 4 GB de memória física. Este modo não suporta o antigo modo virtual 8086, apenas os programas que utilizam o modo-real e os de modo protegido de 16 bits podem rodar.

Modo completo (full) de 64 bits: O último modo é o modo completo para 64 bits. A AMD se refere a este modo como "long mode” e a Intel trata como modo -32e. Este modo é ativado quando são executados programas de 64 bits em sistemas operacionais de 64 bits. Neste modo, um programa pode ter um espaço de endereçamento virtual de até 40 bits (cerca de 1 TB de memória endereçável). A quantidade de memória física será limitada pela quantidade de slots físicos de memórias DIMM. Programas que rodam no modo completo terão acesso à toda memória física instalada e às GPRs expandidas do sistema. Mas é importante entender que este modo de operação só estará ativo em um sistema operacional de 64 bits com drivers de 64 bits rodando programas de 64 bits.


Na arquitetura de 64 bit as versões Windows de 64 bit endereçam a memória RAM de maneira diferente. O sistema operacional é executado em endereços de memória acima de 32 bit (havendo memória RAM suficiente), permitindo que grandes blocos de memória RAM sejam disponibilizados para as aplicações sem a necessidade de compartilhamento do uso de memória.

Com esta arquitetura as aplicações podem receber blocos de 4GB de memória para endereçamento direto, reduzindo a paginação e permitindo que o desempenho das aplicações de 32 bit seja até superior nos sistemas x64 com Windows 64-bit, uma vez que além do melhor uso da memória RAM, o núcleo dos processadores x64 também executam instruções x86 diretamente.