“Nunca ninguém irá precisar de um PC com mais de 640 kbytes de memória”. Essa frase foi proferida em meados da década de 80 por ninguém menos que Willian Gates III, vulgo Bill Gates. Teria sido em um momento pouco inspirado? Falta de visão? Parece que nada disso. Nem ele, o mago dos negócios da informática, conseguiu prever que os softwares teriam uma forte escalada em seus requisitos de memória como de fato veio a acontecer. Na época que esta “pérola” foi dita, vivíamos o momento dos PCs rodando DOS 3.0 sob um processador tipo “Frankstein”, o 8088 da Intel, que tinha registradores de 16 bits mas barramento de comunicação de 8 bits. Podia no máximo endereçar 1024 kbytes de memória (1 Mbyte) .
[singlepic id=8142 w=320 h=240 float=]
[singlepic id=8140 w=320 h=240 float=]
Nesta época quando surgiram aplicações mais pesadas, para as quais 1Mbyte de memória não eram suficientes, foram inventadas engenhosas soluções para superar esta limitação. Usuários de planilhas muito grandes instalavam em seus PCs as famosas placas de memória EMS (memória expandida). Usando uma técnica chamada paginação de memória, pela qual blocos de 64 kbytes eram transferidos um de cada vez da memória principal para a EMS e vice-versa, os programas conseguiam usar uma área de dados maior. Havia um razoável pênalti de performance, mas ainda muito melhor que usar memória virtual em disco (que nem existia nessa época pois DOS não tinha memória virtual).
Mas o que tem isso tudo a ver com o recém chegado mundo de 64 bits nos PCs? Tudo! A história está sempre se repetindo. Quando se percebeu que Bill Gates estava errado o grande passo seguinte foi a migração para 32 bits em 1986 que trouxe o brilhante 386 para o cenário. O 386 foi um processador extremamente revolucionário, pois além de permitir endereçar quantidades de memórias impensáveis para a época, trazia possibilidades de multitarefa, isolamento de aplicações etc. Como os atuais Pentium 4 ainda são processadores de 32 bits podemos pensar neles como 386s bastante “anabolizados”, mais rápidos, mais instruções, mas ainda com as mesmas limitações de endereçamento de memória de 19 anos atrás (quando foi lançado o 386).
[singlepic id=8139 w=320 h=240 float=]
[singlepic id=8144 w=320 h=240 float=]
Acredite se quiser, hoje em dia, para aplicações mais críticas, foi reinventada a “memória EMS” de vinte anos atrás. Principalmente em servidores que precisam mais de 2 Gbytes de memória. Na verdade o Windows consegue enxergar até 4 Gbytes, mas com o limite máximo de 2 Gbytes para uma única aplicação. No Windows Server existe um parâmetro de boot bem maroto “/3gbytes” a ser colocado no arquivo BOOT.ini que desvia mais 1 Gbyte para uma única tarefa. Mas pronto. Acabou. Nada mais a fazer. Mas então como os super servidores (de 32 bits) têm 8, 16 ou até 32 Gbytes de RAM. Você já deve ter adivinhado. Usam um esquema de paginação de memória semelhante ao que se usava no DOS 3.0!! Mais eficiente, mais sofisticado, mas na essência a mesma coisa. Memória vem, memória vai. Acessar um endereço fora dos 2 Gbytes (ou 3 Gbytes) principais só se faz com troca de blocos de memória com sensível perda de velocidade em relação ao acesso a um endereçamento “flat” da memória.
[singlepic id=8141 w=320 h=240 float=]
[singlepic id=8143 w=320 h=240 float=]
Muito se tem falado recentemente das plataforma de 64 bits da AMD e Intel. A saber a Intel já tem 64 bits há muito tempo com seu processador ITANIUM. Mas este é um processador com um set de instruções completamente diferente do resto e visa um nicho muito específico (pequeno mas rentável para a Intel) que são máquinas para substituir outras mais caras de arquitetura RISC. A AMD foi quem inovou quando se antecipou à Intel o lançamento da versão “mortal” de seu processador 64 bits. Foi o “ovo de Colombo”. Um processador que podia rodar qualquer programa de 32 bits, usando o set de instruções X86, sem perda alguma de performance, incluindo principalmente os sistemas operacionais (Windows, Linux etc.) e se devidamente carregado com um sistema operacional de 64 bits usaria plenamente todo seu potencial. O resto da história vocês já conhecem. A Intel não estava atrás e também desenvolvia sua solução 64 bits para X86 que chegou alguns meses depois com características semelhantes, mas com estratégias um pouco diferentes pois inicialmente lançou o 64 bits na sua linha XEON que visa servidores de porte médio. Só recentemente a Intel lançou o Pentium 4 de 64 bits. Neste meio tempo a AMD lançou solução 64 bits para notebooks.
A propósito há dois artigos brilhantes aqui no ForumPCs que abordam de forma muito detalhada o mundo dos 64 bits os quais eu sugiro a leitura para quem ainda não leu: “IDF 2005-Assim caminha a tecnologia” e “Athon 64-A Bíblia” .
O grande MITO a ser derrubado e explicado sobre 64 bits diz respeito à performance.
Meus programas rodarão mais rápido em 64 bits? Talvez sim, mas provavelmente não!! Que resposta esquisita!!
Merece explicação. Se de um dia para outro você mudar toda a sua máquina para 64 bits (sistema operacionais e aplicativos) o mais provável é que você tenha um decréscimo pequeno, cerca de 5% na velocidade. Porque??? Simples, se seus programas não precisam de mais memória para rodar que precisavam com 32 bits o processador estará transportando o dobro de informações a cada ciclo (64 contra 32) em operações que talvez 8 bits bastassem. Por isso não há ganho nessa situação. Por outro lado se o tipo de programa usado, seja um editor de vídeo, um CAD sofisticado, um grande banco de dados, um mega servidor de correio, que estava penando com só 2 Gbytes ou que usava aquele maroto esquema de paginação de memória, pode haver ganhos dramáticos de performance nessa situação, que podem chegar a 80% em alguns casos.
Portanto o mito a ser derrubado é “64 bits será mais rápido”. Como explicado acima nem sempre. O mundo dos 64 bits deve ser encarado como uma
AMPLIAÇÃO DE CAPACIDADE e NÃO DE VELOCIDADE
. Claro que com mais capacidade se executa tarefas complexas melhor.
Uma comparação razoável seria como se o tanque de gasolina de seu carro tivesse seu tamanho dobrado. Você poderá realizar uma viagem mais longa, sem reabastecimento e nessa situação, por conseguinte mais rapidamente. Por outro lado ter um tanque de gasolina com o dobro do tamanho faz você ter um sobrepeso de aproximadamente 60 quilos em seu carro, que em trajetos curtos com certeza farão seu carro ser um pouco mais lento.
Não tenho dúvida alguma que em um ou dois anos quase todos estarão usando plataformas de 64 bits, pois a evolução natural da história mostra que acontecerá desta forma. E a história se repetirá talvez daqui a 15 anos e estaremos discutindo os prós e contras da evolução para 128 bits!!!