CIÊNCIA E TECNOLOGIA

64 Bits - O Futuro

64bitfgO que é? Em informática, 64 bits é o termo usado para designar dispositivos (normalmente processadores) que trabalham com um conjunto de 64 bits por vez. Um bit é a menor 'quantidade' de dados da informática, podendo ser 0 ou 1 (normalmente representado em eletrônica digital pela ausência ou presença de corrente elétrica). Processadores modernos de 64 bits são capazes de processar 64 bits por vez, melhorando significativamente seu desempenho. Os processadores mais utilizados atualmente em computadores são de 32 bits. Processadores mais antigos operavam a 4 bits Intel (4004 e 4040), 8 bits Intel (8008, 8080 e 8085), Zilog Z-80, 16 bits (Intel 8086, 8088, 80186, 80188 e 80286), 32 bits Intel (80386 e 80486) os processadores Pentium têm 64 bits de barramento de dados, mas no entanto, os principais registros internos mantiveram-se em 32 bits. Numa analogia, uma fila de banco (dados a serem processados) anda bem mais rápido se o banco possuir 64 guichês de caixa, ao invés de 32 ou 16.

Por outro lado, é mais caro para o banco manter 64 caixas. Da mesma forma, um processador de 64 bits é significativamente mais caro que um processador de 32 bits devido à sua maior complexidade interna, para poder lidar com a quantidade maior de dados simultaneamente. Para manter a compatibilidade com programas de 32 bits, que são os mais usados atualmente, os processadores de 64 bits normalmente simulam o processamento de 32 bits a menos que estejam rodando programas especificamente construídos para funcionar em 64 bits. Quando se classifica um processador como sendo de 4, 8, 16, 32 ou 64 bits, referimo-nos à dimensão dos seus registradores internos.

 

Tradicionalmente, o número de bits dos registradores do processador é o mesmo que o número de linhas do barramento de dados.

Assim, o 8088 e o 80188 são ambos processadores de 16 bits, porque apesar de terem um barramento de dados de 8 bits, têm os registradores internos com 16 bits, tal como os seus equivalentes 8086 e 80186 respectivamente..
O número de linhas do barramento de endereçoes de um processador é que define a sua capacidade de endereçamento e não tem nada a ver com o número de bits que processa.

A AMD foi a primeira empresa a anunciar, em 2003, um processador de 64 bits compatível com Windows

Em Alta

Ultimamente, o "64-Bit" está em alta. Anda mais falado hoje em dia do que na época do Nintendo 64. Se você nunca ouviu falar nisso, preste atenção. Um dos avanços mais importantes em termos de poder computacional está acontecendo debaixo do seu nariz - mas muita gente não tem a mínima idéia - graças aos velados esforços da Apple e da Microsoft.

Apesar de sistemas operacionais totalmente 64-bit ainda não serem realidade, você pode provar um pouco da sua capacidade com as versões 64-bit do Windows e do OS X. Aqui estão alguns exemplos das maravilhas que mostram como o 64-bit faz um mundo melhor.

Em uma palavra, memória. Não vamos falar nerdês aqui e entrar em superdetalhes (para isso, é só dar um pulo no Wikipedia, pelo atalho http://tinyurl.com/559ag6). Para manter tudo bem simples, essa parada de bit (16-bit, 32-bit, 64-bit) diz respeito a quantos dados o computador consegue ler, ou falar, ao mesmo tempo. É isso que determina o quanto de memória ele pode gerenciar.

O processador com 32-bit de endereçamento de memória pode basicamente segurar as pontas de 4GB de RAM. Por outro lado, o sistema de 64-bit tem capacidade para lidar com 16 exabytes de RAM. Isso é o absurdo de 16.8 terabytes. De RAM. É. Você não vai ter essa quantidade de memória no seu computador, pelo menos por um bom tempo; ou seja, nos próximos anos, isso significa que não há mais limite para expansão de memória.

Enquanto hardwares e softwares de 32-bits - o padrão na terra dos PCs - te limitam a 4GB de RAM (Extensão Física de Endereçamento - saiba mais pelo atalho http://tinyurl.com/5stue9 - pode até deixar você ter mais, mas os softwares vão apenas usar 4GB), com hardware e software de 64-bit você pode usar quantidades quase infinitas de RAM, o que vai permitir um mundo de novas possibilidades, já que espaço de memória para trabalhar não vai faltar.

O caminho para o mundo 64-bit se une à corrida dos processadores multi-core, usando placas de vídeo para processamento e o crescimento do processamento paralelo no mundo dos computadores para mortais como nós. Em pouco tempo, as aplicações conseguirão ter um crescimento exponencial em capacidade sobre o que elas podem usar hoje - uma cacetada de processadores trabalhando junto com um sem-número de memória à sua disposição. Com 64-bit, os computadores poderão processar uma pá de números muito mais rápido, o que é excelente para essas coisas científicas e tal. Prepare-se para coisas maneiras que virão por aí.

Você deve estar se perguntando: "Por que não AGORA? Eu já escutei sobre esse tal 64-bit faz tempo!!! OMG!" Bem, o hardware está por aí já há algum tempo - supercomputadores 64-bit são realidade há algumas décadas e a AMD trouxe para nós mortais há alguns anos o Athlon 64, por exemplo. Os Macs já eram 64-bit na época dos PowerPC G5. E se você comprar hoje um Core 2 Duo da Intel, também é 64-bit. Acontece que os sistemas operacionais dos usuários comuns (eu, você, o mala do seu vizinho) ultimamente estão lentos demais para adotar o 64-bit e não vão cair de cabeça nessa realidade nova, pelo menos por outra rodada de versões, como o guru do Windows Ed Bott nos contou (em inglês, no atalho http://tinyurl.com/2wal6a).

O Windows Vista foi lançado em duas versões separadas, uma de 32-bit e outra de 64-bit, sendo que a versão 64-bit do Vista foi o primeiro Windows para o consumidor final 64-bit. A Apple não está atrás e caminha para uma arquitetura 64-bit a cada nova versão. Bolt nos contou que enquanto o Windows 7 vai ter versões 32-bit e 64-bit, seu sucessor, o Windows 8 (ou qualquer nome que ele receba) provavelmente será o primeiro sistema operacional da Microsoft a ser exclusivamente 64-bit. Já foi anunciado pela Apple que no ano que vem a versão nova do Mac OS X (A Snow Leopard) será 64-bit até o coração, quer dizer, kernel.

A razão pela qual o 64-bit é o futuro, e não o presente, se deve ao fato de ser uma arquitetura totalmente diferente do 32-bit já estabelecido - kernel diferente significa drivers diferentes, problemas de compatibilidade com as aplicações e por aí vai. Uma migração total e rápida significa muita dor de cabeça, principalmente para o mundo corporativo.

Como Bott nos contou, ele é tão relevante para a Microsoft quanto o usuário final. Por isso, a Apple está migrando para o OS X 64-bit ao longo do tempo, e por isso a Microsoft vai continuar a lançar versão 32-bit do Windows 7. Provavelmente ainda, segundo Bott, um Windows 8 64-bit permitiria um setup virtual para rodar aplicações 32-bit. "Por sorte", ele nos conta, "um sistema x64 com um caminhão de memória vai rir de uma virtualização."

Outra carona no caminho para a glória do 64-bit que Bott levantou foi a questão de "Quando será que o pessoal fora do grupo de softwares para trabalhos específicos" como Adobe (Photoshop CS4 será uma aplicação 64-bit nativa para Windows, mas não para OS X) vai começar a programar aplicações 64-bit? Com a onda de processamento paralelo com vários-core para chegar a quantidade ridícula de memória para se aproveitar, programadores terão bastante espaço para brincar (e lidar).

Aplicações terão que ser re-escritas para aproveitar todo o potencial da multiplicidade de núcleos (core) e a enorme quantidade de memória à disposição, e essa transição levará um tempo. Outro pequeno detalhe que 64-bit fica devendo - e realmente é pequeno: o tempo de retorno de do estado de hibernação será maior, já que toda essa memória significa mais gravação no arquivo de hibernação, logo, mais tempo para ler quando for hora de acordar.

Enquanto toda essa maravilha soa boa demais para ser verdade ou até mesmo realidade em um futuro próximo, na verdade não é. O sistema da Apple Leopard já faz um pouco do vudu 64-bit, como por exemplo ter uma interface gráfica 64-bit e a versão 64-bit do Vista está superando sua versão 32-bit nos sistemas dos fabricantes de computadores, já que agora o problema dos drivers não é algo tão absurdo.

Enquanto 4 GB de RAM for uma belezura em uma máquina com Vista, 6 GB e 12 GB irão se tornar padrões para máquinas de alta performance com o lançamento do Intel Core i7, desde que se use o canal tripo de memória - três deliciosos pentes de memória RAM - então está mais do que na hora do 64-bit chegar.

 

64bit1

Computação em 64bits

Em termos de arquitetura de computadores, o termo “64 bits” é uma expressão usada para descrever inteiros, endereços de memória ou qualquer outro tipo de dado que tenha um tamanho de 64 bits, ou então para descrever arquiteturas de CPU e ALU baseadas em registradores, barramentos de dados e endereços com o tamanho de 64 bits. Embora uma CPU possa ser de 64 bits internamente, seu barramento de dados, ou endereços, podem ter tamanhos diferentes (maiores ou menores). Muitas CPUs atuais de 32 bits utilizam barramentos de 64 bits, que as vezes são tratadas como 64 bits confundindo os usuários. Este termo também pode se referir ao tamanho de uma instrução no conjunto de instruções de uma arquitetura. Sem uma qualificação definida, podemos dizer que uma arquitetura de computador descrita como sendo de 64 bits geralmente tem registradores inteiros de 64 bits que suporta dados (de 64 bits) tanto interna como externamente. (http://en.wikipedia.org/wiki/64-bit) A primeira CPU de 64 bits foi lançada comercialmente em 1990 pela MIPS Technologies. Em 1992, a DEC lança o chip Alpha para servidores atraindo a atenção de um mercado dominado pelas grandes mainframes.


Com a extinção da DEC (comprada pela Compaq e posteriormente absorvida pela HP) a computação em 64 bits em micros “ressurgiu” com o desenvolvimento do processador Itanium (IA-64) pela Intel (
http://www.intel.com) junto com a HP (http://www.hp.com) em 1994 sendo introduzido, depois de um longo período de gestação, no mercado por volta de 2001. Já na versão 2 (Itanium 2) seu uso ainda não está "popularizado" pois, devido ao seu alto custo, está limitado à servidores e grandes estações de trabalho.

O início da computação de 64 bits para desktop (PC de mesa) iniciou em 2003 com o lançamento do processador Opteron (para servidores) da AMD (http://www.amd.com). O AMD Opteron não utiliza o conjunto de instruções do IA-64, mas extensões de 64 bits no conjunto existente da IA-32. Isto permitiu uma grande compatibilidade com os programas existentes e tornou fácil a coexistência da computação de 32 e 64 bits na mesma plataforma. Mas, infelizmente, o Opteron ainda era caro demais para uso popular e também ficou restrito ao uso em servidores.
Linha do Tempo

“64 bits” x “extensões de 64 bits”

Até então, os processadores de 64 bits estavam restritos apenas ao uso em servidores e grandes estações de trabalho (para computações gráficas, científicas e outras). Porém, em setembro de 2003, a AMD lançou o Athlon 64, que foi o primeiro processador “popular” para PC de mesa com suporte a 64 bits. Este lançamento deu início à real computação de 64 bits para o usuário comum despertando a atenção de desenvolvedores de hardware/software para o novo "petisco" do mercado. A Microsoft, por sua vez, iniciou o desenvolvimento do Windows XP x64 para os novos processadores de 64 bits.

O conjunto de instruções da arquitetura IA-64 (Intel Architecture 64 bits) é completamente diferente do conjunto de instruções da arquitetura IA-32 (Intel Architecture 32 bits) utilizado nos processadores padrão AMD e Intel. O Itanium foi desenvolvido com uma arquitetura real de 64 bits, já os novos processadores da AMD (Opteron e Athlon 64) e da Intel (extensões EM64T), são “extensões” da arquitetura IA-32.

Embora ambos processadores Opteron e Athlon 64 suportem as extensões de 64 bits, a característica mais curiosa em torno deste lançamento é que a AMD liberou estas extensões antes da Intel. Na época, a grande dúvida era se a Intel ia ficar parada ou iria lançar outro conjunto de instruções para invalidar a estratégia da AMD. Mas para surpresa geral, em 2004, a Intel lançou o primeiro Pentium 4 com extensão 64 bits, que usava as mesmas extensões da AMD

A AMD chama suas extensões de tecnologia AMD64 enquanto que a Intel chama as suas de EM64T (Extended Memory 64 Technology). A Microsoft e outros desenvolvedores se referem às mesmas extensões como x64, principalmente para diferenciá-las da arquitetura IA-64, que é completamente diferente.


Diferenças entre os processadores AMD64 x EM64T

De um modo geral, podemos descrever um processador de 64 bits como um processador capaz de endereçar 64 bits de espaço “virtual” de memória podendo armazenar dados em um formato de 64 bits e realizar operações aritméticas com operandos de 64 bits. Além disso, um processador de 64 bits possui registros “genéricos” (general purpose register - GPR), e unidades (ALU) com tamanho de 64 bits.

O Itanium possui todas estas características o que, por definição, coloca-o na categoria de um processador de 64 bits. A discussão se as extensões AMD64 e EM64T são realmente processadores de 64 bits pode ser confusa para alguns, pois a Intel chama sua arquitetura de "Extended Memory 64 Technology”, que se sabe ser apenas uma extensão do conjunto de instruções da arquitetura IA-32. Enfim, estes processadores são realmente de 64 bits? Se a visão do processamento de 64 bits corresponder aos elementos citados anteriormente, então podemos aceitar sem problemas um sim como resposta. Quando estes processadores operam no modo 64 bits, o endereçamento é de 64 bits, os registros genéricos GPRs são de 64 bits e todas as unidades ALU são capazes de processar dados de 64 bits. É bom notar que, embora as arquiteturas IA-64, EM64T e AMD64 sejam todas de 64 bits, elas não são compatíveis!!

As extensões de 64 bits usadas pela AMD e Intel são virtualmente idênticas (com exceção de umas poucas instruções como 3Dnow! da AMD), e não devem apresentar muitos problemas de compatibilidade nos programas. Programas escritos e compilados para um, geralmente rodarão corretamente no outro. Como a arquitetura IA-64 utiliza um conjunto de instruções completamente diferente dos estendidos, os programas de 64 bits escritos para o Itanium não rodarão nos processadores estendidos, e vice-versa.

Apenas duas instruções foram identificadas em uma versão da arquitetura AMD64 que não aparecem na arquitetura EM64T, como informa Tom Halfhill, editor chefe da MicroProcessor Report (http://www.mdronline.com/mpr_public/about.asp). A AMD64 utiliza duas instruções para melhorar a execução multi-tarefas entre programas (e outras atribuições). Quando um usuário muda de um programa para outro, o sistema operacional armazena dados temporariamente em certas “áreas” do processador. Estes dados são recarregados quando o usuário volta para o programa anterior. Estas duas instruções extras permitem que os dados sejam armazenados (ou lidos) em grupos e não como elementos individuais. Segundo Halfhil, isto melhora muito pouco o desempenho geral do sistema.

A migração para o endereçamento de 64 bits aumenta o espaço de memória exponencialmente. O pico teórico de endereçamento em 64 bits é de 16 EB (exabytes(1)), que é considerado um número extremamente grande. Na prática, o processador AMD64 permite um endereçamento físico de até 40 bits, ou 1 TB (terabyte), e de até 48 bits, ou 256 TB de endereçamento virtual. Já dá para perceber que estes valores só terão algum sentido válido se o sistema tiver instalado estes números exorbitantes de memória física!

Um outro problema com a arquitetura IA-32 é o número de registradores genéricos GPRs (General-purpose-registers) disponíveis. Basicamente, os registradores são “áreas” locais dentro do processador onde os programas podem armazenar dados com acesso super rápido. Os dados armazenados nos registradores são rapidamente acessíveis para reutilização, sendo mais rápidos que caches em chips. A arquitetura IA-32 só fornece 8 registradores GPRs, e o que, geralmente, é considerado um número pequeno. Só para comparação, a arquitetura do processador PowerPC 604 (RISC) tem 32 registradores GPRs. Sem um número suficiente de registradores para tarefas, os compiladores para a IA-32 acabam gastando mais tempo montando códigos direcionados a espalhar os dados na memória para permitir que os dados certos estejam disponíveis para uma determinada operação. Este procedimento acaba criando um overhead que diminui o desempenho do processamento.
Para aliviar este gargalo, as extensões AMD64 e EM64T incluem mais 8 registradores GPRs totalizando 16, e não estão limitados ao tamanho de 32 bits - todos os 16 podem armazenar dados com 64 bits. Além destes novos registradores, as extensões 64 também incluem 8 novos registradores SSE/SSE2 (2) de 128 bits (totalizando 16).

O ganho de desempenho com os 16 registradores GPRs disponíveis irá variar dependendo da complexidade do código em execução. Programas que requerem um processamento mais intenso com loops profundos, como na maioria dos programas científicos, irão experimentar níveis mais altos de uso dos registradores do que os algoritmos mais simples utilizados pela maioria dos programas. Isto significa que programas de 64 bits podem não apresentar vantagem de desempenho sobre as mesmas versões de 32 bits.

A FPU (Floating Point Unit) x87 da arquitetura IA-32 sempre foi considerada como sendo um ponto fraco das arquiteturas x86 se comparada ao design da arquitetura RISC. O conjunto de instruções SSE2 (2) substituiu o modelo do x87 por um mais moderno, mas na prática, as extensões 64 rodando no modo 64 bits produzirão resultados de ponto flutuante como a maioria das CPUs RISC.

Com a migração para 64 bits (e a eliminação de funcionalidades como MMX, 3DNow! e da FPU x87), os programas na plataforma MS-Windows que tiverem trechos de código assembler em linha na codificação final não irão rodar no Windows x64. Isto significa que estes programas, incluindo jogos, com estes tipos de segmentos de código inline poderão ter que sacrificar estas otimizações quando portados para 64 bits.
É importante notar que as operações nativas destas extensões AMD64 e EM64T requerem não apenas um processador com suporte 64 bits, mas também um chipset, BIOS, sistema operacional e drivers compatíveis (64 bits).

Linha do tempo

 

linhatempo

 

Fonte: http://tecnologia.terra.com.br/
           http://pt.wikipedia.org/wiki/64_bits
          http://www.nce.ufrj.br/conceito/artigos/2005/07p1-2.htm