GDH Press: Blog » Entendendo os processadores de 64 bits
 
RSS

Entendendo os processadores de 64 bits

Publicado em 19/11/2008 – 20:28
por Carlos Morimoto

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.

A primeira tentativa de criar um sucessor de 64 bits para a plataforma x86 veio da Intel, que em 2001 lançou o Itanium, um processador de 64 bits destinado a servidores.

O Itanium quebra a compatibilidade com a família x86, passando a utilizar o IA-64, um novo conjunto de instruções. O plano inicial era popularizar a arquitetura primeiro nos servidores, onde os benefícios de um processador de 64 bits são mais evidentes, e em seguida lançar também versões destinadas a desktops. O problema com o Itanium (além do processador ser muito caro) era que não existiam softwares capazes de se beneficiar da nova plataforma. Ele incluía um sistema de emulação, que permitia rodar softwares de 32 bits, mas neste caso o desempenho era muito ruim.

Ao invés de repetir o mesmo erro da Intel, lançando uma plataforma completamente nova, incompatível com os softwares atuais, a AMD decidiu desenvolver um projeto mais simples, que adicionasse suporte a instruções de 64 bits no Athlon (incluindo novos registradores, suporte a endereços de memória de 64 bits, etc.) sem entretanto quebrar a compatibilidade com os softwares de 32 bits, nem prejudicar o desempenho do processador ao executá-los.

Com isso chegaram a um processador de 64 bits, que desfruta de um número maior de registradores e maior capacidade de endereçamento de memória, mas que é capaz também de rodar aplicativos de 32 bits nativamente, sem perda de desempenho.

Este slide de apresentação da AMD mostra os novos registradores adicionados. Os 8 registradores x86 foram expandidos de 32 para 64 bits e foram adicionados 8 novos registradores de 64 bits, o que resultou em um espaço de armazenamento 4 vezes maior. Foram adicionados ainda 8 novos registradores para instruções SSE ou SSE2, mas neste caso não houve expansão, já que o SSE utiliza registradores de 128 bits:


Novos registradores x86-64

No modo "legacy", o processador funciona como um processador x86 comum, executando instruções de 32 bits e utilizando apenas os registradores padrão. Ao mudar para o modo "long", o processador tem acesso a 16 registradores de 64 bits cada um e passa a suportar as instruções e endereços de memória de 64 bits. O chaveamento entre os dois modos é feito de maneira muito rápida, de forma que o processador pode inclusive rodar aplicativos de 32 bits dentro de um sistema operacional de 64 bits, assim como era possível rodar aplicativos DOS ou Windows 3.x (de 16 bits) dentro do Windows 98 (que já era um sistema de 32 bits).

O conjunto de instruções da AMD foi batizado de x86-64 (e posteriormente renomeado para AMD64) e acabou sendo adotado também pela Intel, na forma do EM64T, um conjunto compatível, incluído sem muito alarde a partir do Pentium 4 com core Prescott. Pela primeira vez na história, a AMD ditou o novo padrão e a Intel se viu obrigada a segui-lo.

Ao utilizar um processador Athlon 64 ou um Intel equipado com o EM64T, existem 3 possibilidades.

A primeira é continuar usando as versões de 32 bits do Windows XP, Vista ou Linux, utilizando apenas aplicativos de 32 bits. Neste modo o processador se beneficia do controlador de memória integrado (no caso dos AMD) e outras melhorias na arquitetura, mas não utiliza os novos registradores, nem é capaz de endereçar mais do que 4 GB de memória nativamente.

A segunda possibilidade é utilizar um sistema operacional de 64 bits, como as versões de 64 bits do XP, Vista e de diversas distribuições Linux. Neste caso você tem um pequeno ganho de desempenho devido ao uso dos novos registradores e o processador passa a suportar mais de 4 GB de memória RAM. A maior parte dos aplicativos não exibe grandes ganhos de desempenho ao serem recompilados para rodarem em modo 64 bits, mas alguns (sobretudo bancos de dados) podem obter 15 ou mesmo 20% de ganho de desempenho em alguns casos.

A grande dificuldade em utilizar um sistema de 64 bits é encontrar versões nativas de todos os aplicativos. Chegamos então à terceira possibilidade, que é rodar um sistema de 64 bits, mas utilizar o modo de compatibilidade para executar aplicativos de 32 bits quando necessário. Neste modo, o sistema operacional precisa de mais memória, pois acaba tendo que manter carregadas muitas bibliotecas e componentes duplicados, mas o desempenho do processador não é prejudicado.

Como vimos, os aplicativos de 32 bits podem utilizar apenas 4 GB de memória (menos na prática, devido à limitações por parte dos sistemas operacionais). Um efeito colateral interessante é que, em um PC com 8 GB de memória, por exemplo, os aplicativos de 32 bits enxergarão e utilizarão apenas os primeiros 4 GB. A memória adicional poderá ser usada pelo sistema operacional e aplicativos de 64 bits, mas não ajudará muito em casos em que os aplicativos de 32 bits sejam os aplicativos principais.

Com relação à memória, os processadores AMD64 são capazes de endereçar até 1 terabyte de memória física, o que corresponde a 40 bits de endereços. Os 64 bits completos não são usados por questões relacionadas ao desempenho, já que não existem módulos e placas que permitam utilizar tanta memória atualmente.

Esta tabela, divulgada pela AMD, mostra os diferentes modos de operação suportados. Note que, além dos três modos que citei (64-Bit mode, que corresponde ao modo de 64 bits nativo; Compatibility Mode, onde são usados aplicativos de 32 bits, sob um sistema operacional de 64 bits e Protected Mode, onde são executados um sistema operacional e aplicativos de 32 bits) existe suporte também ao modo Virtual-8086 e ao Real Mode, que são os modos de legado, também suportados pelos processadores atuais. Neles o processador executa aplicativos de 16 bits, escritos para o DOS ou Windows 3.x:


Modos de operação dos processadores x86-64

Tenha em mente que a migração para os aplicativos de 64 bits é similar à migração dos sistemas operacionais de 16 bits (DOS e Windows 3.x) para os sistemas de 32 bits que ocorreu a partir de 1995. Ela acontecerá de maneira gradual, de forma que daqui a 10 anos ainda estaremos rodando alguns aplicativos de 32, ou mesmo de 16 bits, utilizando o modo de compatibilidade.

» Leia mais: Desenvolvendo um sucessor

» Mais posts

  1. 14 respostas para “Entendendo os processadores de 64 bits”

  2. Wlisses em 20 nov, 2008

    E o livro Linux, está garantido pra dezembro ? ou houve mudança de planos, talvez um livro de portáteis ::?

  3. Vladimir em 20 nov, 2008

    Tenho o Suse 10.3 e o XP, e um processador Dual Core.

    Como sei se o meu Suse está compilado para 64bits?

    Há versão do XP professional de 64 bits?

  4. Álvaro em 21 nov, 2008

    Com relação à tua segunda pergunta, já existe o XP Pro de 64 bits.

  5. Rogerio J. Gentil em 21 nov, 2008

    Muito interessante. Hoje, para desktops os softwares e processadores 64-bits ainda não fazem tanta diferença, uma vez que a maioria dos usuários não tem muito mais que 1GB ou 2GB de memória RAM. Por outro lado, para desenvolvimento e suporte (sistemas, bancos de dados, etc.) um software ou processador 64-bits pode ser o divisor de águas da eficiência.

  6. Claudeir Hygino em 21 nov, 2008

    Saudações!
    É bem interessate esse processo de trasição das tecnologias 32/64 bit… Na verdade nenhuma empresa quer mais apostar em uma explosão de tecnologia de forma a romper de vez com a anterior… Penso que aprenderam bem com a trasição LPs/CDs…
    Mas vou falar uma coisa, em poucas palavras: Linux 64 bit + máquinas 64 bit é igual a um casamento perfeito…

    Abraço ae…

    Claudeir Hygino…

  7. Legendario em 23 nov, 2008

    Eu estou usando o Ubuntu 64bits, desde o hardy e nunca tive nenhum problema. A única coisa que aconteceu foi não poder usar o gizmo5, por não estar disponível um pacote 64 bits…

  8. geraldo em 23 nov, 2008

    atualmente,todos criticam o rwindows mas nao abrem mao dele.em casa tenho um computador e um netebook e em ambos eu particionei os discos e coloquei rwindows para meus filhos e linux para mim,porem tenho dificuldades para conseguir umlinux que me atenda plenamentepois no netebooke nao consigo me conectar em linha discada por causa do modem motorola mas em ambos os casos p kurumin entra tranquilo na net bastando configurar a rede e nao me da problema nenhum,o gravador de cdk3b dá de mil a zero no nero pois é facil e gravei um cd excelente.baixei o linux do mec e parece ser bom e estou baixando o linux insigne que eu ate sonho com ele

  9. geraldo em 23 nov, 2008

    o melhor do linux é que ele vem completo de programas sem necessidade de ficar correndo atraz de cd de instalaçao e é quase de graça

  10. Charles em 24 nov, 2008

    Meu caro "Claudeir Hygino" a única empresa que tem coragem de romper e a Apple. Mac 68k Motorola, para IBM PowerPc e agora Intel.
    O Mac OX 64 bits roda muito, mas o Linux a 64 e muinto bom!
    Minha duvida é, compra um AMD64 ou Intel64, mas o que me incomoda vai ser um dia baixar o slackware a 64bits so em sonho !

  11. Alexandre Santos em 26 nov, 2008

    Caro charles,

    utilizava o slackware (minha paixão), mas descubri esses meses uma distro que segue a mesma filosofia e consegue juntar o útil com o agradável!

    Arch Linux,

    ahhhhhhh… que satisfação, tenho toda a personalidade do slack junto com um excelente gerenciador de pacotes que inclui todos os pacotes em 64,

    http://www.archlinux.org

    seja feliz!

  12. maykon em 2 dez, 2008

    parabéns pelo artigo..
    flw..

  13. prates em 19 dez, 2008

    É possível então que os jogos para pc que foram feitos -- de 2004 até 2008 -- para o windows xp ou mesmo para o vista não rodem em máquinas com processador Intel, SO Vista 64 bits e 8 Gb Ram. não rodem estes jogos?

  1. 4 Trackback(s)

  2. mar 15, 2009: GDH Press: Blog » Os 20 posts mais lidos
  3. mar 23, 2009: .:Informatizado:. » Blog Archive » 64 bits: entendo o funcionamento|Aqui a tecnologia não espera. Acontece!.

Comente: