32 bits x 64 bits, conhecendo as diferenças

Introdução

Tanto a Intel como a AMD já colocaram no mercado processadores que trabalham a 64 bits. Em poucos anos, esse tipo de chip será o padrão. Muita gente sabe que os modelos de 64 bits são melhores que os de 32 bits e este artigo se propõe a mostrar exatamente como e onde ocorre essas melhorias.

32 bits x 64 bits

amd_64_bits

Se você vai a uma loja de informática para comprar um computador, o vendedor pode lhe oferecer dois tipos:  um com um processador de 64 bits e outro com um processador de 32 bits. “O de 64 bits é mais caro, porém é muito mais rápido e tem melhor desempenho”, lhe diz o vendedor. Isso significa que seus jogos rodarão mais rápidos, assim como programas pesados, como AutoCad, Premiere, entre outros, não? Talvez. Vejamos o porquê.

Quando nos referimos a processadores de 16 bits, 32 bits ou 64 bits estamos falando dos bits internos do chip – em poucas palavras, isso representa a quantidade de dados e instruções que o processador consegue trabalhar por vez.

Por exemplo, com 16 bits um processador pode manipular um número de valor até 65.535. Se certo número tem valor 100.000, ele terá que fazer a operação em duas partes. No entanto, se um chip trabalha a 32 bits, ele pode manipular números de valor até 4.294.967.296 em uma única operação.

Para calcular esse limite, basta fazer 2 elevado à quantidade de bits internos do processador. Então, qual o limite de um processador de 64 bits? Vamos à conta:

2^64 = 1.84467441 × 10^19

Um valor extremamente alto!

Agora, suponha que você esteja utilizando um editor de textos. É improvável que esse programa chegue a utilizar valores grandes em suas operações. Neste caso, qual a diferença entre utilizar um processador de 32 bits ou 64 bits, sendo que o primeiro será suficiente? Como o editor utiliza valores suportáveis tanto pelos chips de 32 bits quanto pelos de 64 bits, as instruções relacionadas serão processadas ao mesmo tempo (considerando que ambos os chips tenham o mesmo clock).

Por outro lado, aplicações em 3D ou programas como AutoCad requerem boa capacidade para cálculo e aí um processador de 64 bits pode fazer diferença. Suponha que determinadas operações utilizem valores superiores a 4.294.967.296. Um processador de 32 bits terá que realizar cada etapa em duas vezes ou mais, dependendo do valor usado no cálculo. Todavia, um processador de 64 bits fará esse trabalho uma única vez em cada operação.

No entanto, há outros fatores a serem considerados. Um deles é o sistema operacional (SO). O funcionamento do computador está diretamente ligado à relação entre o sistema operacional e o hardware como um todo. O SO é desenvolvido de forma a aproveitar o máximo de recursos da plataforma para o qual é destinado. Assim, o Windows XP ou uma distribuição Linux com um kernel desenvolvido antes do surgimento de processadores de 64 bits são preparados para trabalhar a 32 bits, mas não a 64 bits. Sistemas 32 bits suportam apenas 4 gb de memória enquanto os de 64 bits suportam dezenas de vezes mais este número.

Vale lembrar que de nada adianta ter um processador de 64 bits se o restante da configuração do PC não acompanha o potencial do chip. Ou seja, uma memória RAM razoável (no mínimo 512 MB), HD com muito espaço livre e placa gráfica de no mínimo 128 MB ajudam – e muito.

 

As nomenclaturas

Intel e Amd
Intel e Amd

Como são duas as fabricantes de processador líderes de mercado, vamos às 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).

 

Sistemas Operacionais

Ao se colocar um sistema operacional de 32 bits para rodar em um computador com processador de 64 bits, o primeiro não se adaptará automaticamente e continuará mantendo sua forma de trabalho. Com isso, é necessário o desenvolvimento de sistemas operacionais capazes de rodar a 64 bits.

O Desenvolvimento ou a adaptação de um sistema operacional para trabalhar a 64 bits não é tão trivial assim. Na verdade, é necessário que o SO seja compatível com um processador ou com uma linha de processadores, já que pode haver diferenças entre os tipos existentes. Em outras palavras, o sistema operacional precisa ser compatível com chips da AMD ou com chips da Intel. Se possível, com os dois.

No caso do Windows XP, a Microsoft disponibilizou a versão “Professional x64”, compatível com os processadores AMD Athlon 64, AMD Opteron, Intel Xeon (com instruções EM64T) e Intel Pentium 4 (com instruções EM64T). De acordo com a Microsoft, a principal diferença entre essa e as versões de 32 bits (além da compatibilidade com instruções de 64 bits) é o suporte de até 128 GB de memória RAM e 16 TB de memória virtual. Nada mais natural: se a aplicação para o qual o computador é utilizado manipula grande quantidade de dados e valores, de nada adianta ter processamento de 64 bits, mas pouca memória, já que, grossamente falando, os dados teriam que “formar fila” para serem inseridos na memória, comprometendo o desempenho.

O mesmo ocorre com o Linux. Se você visitar o site de alguma distribuição para baixar uma versão do sistema operacional, muito provavelmente encontrará links que apontam para diversas versões. O site do Ubuntu Linux, por exemplo, oferece links para processadores x86 (32 bits), Mac (chips PowerPC) e 64-bit (processadores AMD64 ou EM64T).

Você pode ter se perguntado se é possível utilizar um sistema operacional de 32 bits com um processador de 64 bits e migrar o primeiro para uma versão adequada futuramente. Depende. O processador Intel Itanium é apelidado por alguns de “puro sangue”, já que só executa aplicações de 64 bits. Assim, uma versão de 32 bits de um sistema operacional não roda nele. Por outro lado, processadores Athlon 64 são capazes de trabalhar tanto com aplicações de 32 bits quanto de 64 bits, o que o torna interessante para quem pretende usar um SO de 32 bits inicialmente e uma versão de 64 bits no futuro.

 

Modos de operação

intel_core_i7

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 IA-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.”

Conclusões

A palavra-chave para processadores 64 bits não é “velocidade”, mas “capacidade”. Compare a uma locomotiva cujo motor é preparado para suportar mais vagões. Ela carregará mais, o que diminui a quantidade de viagens, mas sua velocidade continuará a mesma.

Atualmente a maioria dos processadores 64 bits suportam SO 32 bits.

Um abraço e até a próxima.

Referências:
InfoWester
WNews
Sites na Internet

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.