RISC x CISC: a história dos Intel Macs

RISC x CISC: a história dos Intel Macs

Antigamente, muito se discutia sobre as vantagens e desvantagens dos processadores PowerPC em relação aos chips x86. O principal reduto dos chips PowerPC eram os Macs (com todo o misticismo envolvido), enquanto os PCs eram o território dos chips x86. Com isso, as discussões em torno dos Macs e PCs orbitavam não apenas em torno do OS X e dos softwares para a plataforma, mas também nas diferenças entre as duas famílias de processadores, muitas vezes descambando para a velha briga CISC x RISC.

Em resumo, a filosofia CISC, empregada nos primeiros chips x86, se baseia na ideia de produzir chips capazes de executar um grande número de instruções, facilitando o trabalho dos desenvolvedores e dos compiladores. A filosofia RISC, por outro lado, se baseia no uso de instruções simples, que são executadas rapidamente pelo processador e podem ser combinadas para desempenhar as funções de instruções mais complexas.
A briga começou na década de 1970, quando os chips eram muito simples e os projetistas eram obrigados a seguir uma linha ou outra. Na época, processadores RISC eram em geral mais eficientes, enquanto os CISC eram mais simples de programar, já que executavam mais funções diretamente.

Entretanto, com o passar do tempo a melhoria nas técnicas de fabricação possibilitou o desenvolvimento de chips mais complexos, o que tornou a distinção muito menos clara. Todos os processadores Intel a partir do Pentium Pro e todos os AMD a partir do K6 executam internamente instruções simples (como os RISC), mas possuem decodificadores de instruções dedicados a manter a compatibilidade com as instruções x86. Muito trabalho foi aplicado no desenvolvimento de decodificadores mais eficientes, o que tornou o processo bastante rápido, eliminando quase todo o overhead.

Ao contrário do que muitos previam, em vez de gradualmente migrarem para um conjunto de instruções mais simples, os processadores foram ganhando novas instruções com o passar do tempo (SSE, 3DNow, SSE2, SSE3, etc), que tiram proveito da arquitetura superescalar dos chips atuais.

Essa tendência de aumento na complexidade atingiu também os chips RISC da família PowerPC, que passaram a incorporar cada vez mais componentes internos e um número cada vez maior de novas instruções, o que eliminou grande parte dos argumentos com relação à simplicidade.

Os chips x86 continuaram sendo maiores (devido à carga de compatibilidade e ao uso dos decodificadores de instruções) mas o desempenho por ciclo de clock e a eficiência passaram a não serem tão diferentes, invalidando grande parte dos argumentos práticos. A própria questão do desenvolvimento deixou de ser um problema, já que os compiladores passaram a se encarregar do trabalho pesado, deixando o desenvolvedor livre para se preocupar com as funções da linguagem escolhida, e não do processador.

A plataforma PowerPC começou em 1991, como um fruto de uma aliança entre a IBM, Apple e a Motorola (a AIM alliance) em torno de interesses comuns. Na época, a Apple ainda utilizava os processadores Motorola 68000 (a linha Performa) e precisava de uma plataforma mais escalável. A IBM tinha nas mãos uma plataforma bastante poderosa (a arquitetura Power) e precisava de um mercado para os processadores, enquanto a Motorola tinha experiência na produção de chips para o mercado doméstico e fábricas para produzi-los em volume. Com a aliança, as três vislumbraram a possibilidade de criar uma nova plataforma de computadores pessoais, capaz de fazer frente aos PCs e à dupla Intel/Microsoft.

No início, a plataforma PowerPC era vista como uma alternativa real aos PCs e chegou a ganhar versões do OS/2, Solaris e até mesmo do Windows NT. Entretanto, o maior preço das máquinas e a escassez de softwares fez com que elas não fossem muito utilizadas.

Por outro lado, a Apple conseguiu migrar rapidamente o MacOS e os softwares para a nova plataforma e passou a colher os frutos com o sucesso dos Power Macs e dos modelos posteriores. A migração permitiu que ela se tornasse o principal exemplo de que o uso de uma arquitetura alternativa de processadores era viável, já que os Macs frequentemente superavam os PCs da época em desempenho.

Os chips PowerPC não faziam feio frente a chips x86 equivalentes, surpreendendo em muitas situações. Em muitos aspectos, eles evoluíram de maneira muito similar aos chips da Intel e da AMD, incorporando vários estágios de pipeline (o IBM G5 utiliza 21 estágios para as unidades de ponto flutuante, mais do que um Athlon 64), sofisticados circuitos de branch prediction, caches, novas instruções (o conjunto Altivec) e assim por diante. Coletivamente, as mudanças melhoraram o desempenho por clock e permitiram que os chips atingissem frequências de operação competitivas, mantendo a disputa acesa.

O grande problema com a plataforma PowerPC não estava no design dos chips, mas nas dificuldades da IBM e da Motorola em manterem os investimentos necessários para lançar novas versões dos chips e migrar para técnicas mais avançadas de produção.

Depois de muitos anos de crise, a Motorola acabou por separar a divisão de chips (dando origem à Freescale, que se especializou em produzir chips para sistemas embarcados) e a IBM optou por se dedicar à produção de chips especializados (para consoles, servidores e outros nichos), deixando a produção de chips para desktops em segundo plano. Como resultado, os chips PowerPC acabaram estacionando nos 90 nanômetros, o que acabou por tirar a competitividade dos chips, frente aos processadores de 65 nm da Intel e da AMD.

A pressão foi se tornando cada vez maior, até que em 2005 a Apple surpreendeu o mundo anunciando a migração da plataforma PowerPC para a plataforma x86, uma metamorfose complicada, que foi concluída em tempo recorde.

O último chip PowerPC usado nos Macs foi o IBM PowerPC 970FX (usado em várias versões do Power Mac G5 e no iMac G5) e o primeiro chip x86 foi o Core Duo (o antecessor direto do Core 2 Duo, lançado em 2005). O 970FX era um chip single-core com 58 milhões de transístores e apenas 512 KB de cache L2, que era produzido usando uma técnica de 90 nm e possuía uma área de 66 mm². O Core Duo, por outro lado, tinha dois núcleos, 2 MB de cache L2 e 151 milhões de transístores, mas devido à técnica de 65 nm não era tão maior, com 90 mm².

intelmac_html_m2df426c6

Embora o 970FX possuísse algumas vantagens em termos de arquitetura, os dois núcleos e o cache maior acabavam fazendo a diferença, permitindo que o Core Duo apresentasse um desempenho consideravelmente superior, uma diferença que só aumentou com o lançamento do Core 2 Duo e dos chips posteriores. Para completar, os chips da plataforma Core ofereciam um desempenho por watt consideravelmente superior ao do 970FX (parte devido à arquitetura, parte devido à técnica de produção) o que acabou selando o negócio.

Caso a IBM tivesse conseguido lançar versões de 65 e 45 nm do chip em tempo hábil, poderia ter mantido o chip competitivo adicionando mais cache, mais núcleos e outras melhorias, mas nos 90 nm a competição se tornou impossível. A plataforma PowerPC continuou sendo usada em consoles (incluindo o Wii e o PS3), mas nos computadores pessoais podemos dizer que a guerra CISC x RISC terminou com um knockout técnico.

intelmac_html_43654e00

Em 2007 a IBM lançou o Power6, uma versão dual-core do chip, produzida usando uma técnica de 65 nm, que que foi usada em algumas linhas de servidores IBM (como o 520 Express) rodando Linux ou o AIX, mas ele não chegou a ser usado em computadores pessoais.

Voltando ao processo de transição da Apple, o velho problema da compatibilidade com os aplicativos compilados para a plataforma antiga foi parcialmente solucionado através do Rosetta, um tradutor dinâmico de instruções que permite executar diretamente os aplicativos compilados para os processadores PowerPC. Em resumo, o Rosseta trabalha examinando o código binário, convertendo instruções PowerPC em instruções x86, gerando um novo código que é então executado. O princípio de funcionamento é o mesmo de um compilador, com a diferença de que ele converte código binário em código binário e trabalha em tempo real.

O Rosseta acabou se revelando uma solução bastante transparente para o problema da compatibilidade e as arestas com relação à estabilidade foram sendo aparadas com as atualizações do OS X. Como em todo processo de conversão, existe uma grande perda de desempenho (muitos aplicativos rodam com apenas 20 ou 25% do desempenho nativo), mas isso é mascarado pelo fato dos Intel Macs atuais serem consideravelmente mais rápidos que os modelos antigos baseados no G4 ou G5. Para quem tinha um iMac G4 e migrou para um MacBook com o Core 2 Duo, por exemplo, o desempenho dos aplicativos rodando através do Rosseta não era muito diferente do oferecido pelo hardware antigo.

Em um primeiro momento, o Rosseta foi combinado com o uso dos Universal Binaries, que eram versões híbridas dos executáveis, contendo código compilado para as duas plataformas, que podiam ser executados tanto nos G4 e G5 quanto nos Intel Macs. Com o passar do tempo, entretanto, os aplicativos passaram a ser lançados exclusivamente em versão x86, acelerando a obsolência dos Macs PowerPC.

Ao adotar o uso de processadores e chipsets Intel, a Apple tornou os Macs muito parecidos com os PCs do ponto de vista do hardware, com exceção de dois pequenos detalhes. O primeiro é que em vez de utilizarem o bom e velho BIOS, como as placas para PC, as placas-mãe usadas pela Apple utilizam o EFI (Extensible Firmware Interface), um sistema desenvolvido pela Intel (originalmente para uso em servidores baseados no Itanium), que se oferece um sistema modular, mais elegante e extensível que um BIOS monolítico.

O EFI é combinado com o uso de um chip TPM ( Trusted Platform Module) que inclui funções de segurança que são verificadas pelo MacOS X, impedindo que o sistema possa ser usado fora do hardware da Apple. Isso permitiu que mantivessem a vantagem competitiva relacionada ao uso do sistema, apesar da migração para a plataforma Intel.

O EFI inclui uma camada de compatibilidade com o BIOS, que é usada pelo Boot Camp para permitir a instalação do Windows XP, Vista ou 7 em dual-boot, muito similar ao que temos ao usar Windows e Linux em um PC. O Boot Camp está disponível a partir do MacOS X 10.5 (Leopard) e inclui ferramentas para reparticionar o HD e os drivers necessários, que são gravados em um CD. Executadas as duas etapas, basta dar boot usando o DVD do Windows e instalar os drivers no final do processo, da mesma forma que faria em um PC.

bootcamp

A possibilidade de usar o Windows em dual-boot é uma vantagem competitiva para a Apple, já que é a única maneira legítima de ter os dois sistemas no mesmo computador. Além do Windows, é possível também rodar Linux nos Macs, também em dual-boot com o OS X.

Apesar do uso do EFI e do TPM, não demorou até que surgissem versões crackeadas do OS X, que podem ser instaladas em PCs comuns. Como o OS X é destinado a ser executado apenas em algumas configurações específicas, o suporte a hardware é limitado, mas mesmo assim este se tornou um hack bastante popular, com os PCs rodando o OS X sendo apelidados de Hackintoshes.

Você pode checar a lista de compatibilidade de hardware de cada versão do sistema e howtos de instalação no http://www.osx86project.org/. Ao montar um PC especificamente para a tarefa, a compatibilidade não é um grande problema, pois você precisa apenas escolher entre uma lista de placas-mãe com chipsets suportados e uma lista de placas 3D compatíveis com o OS X (os netbooks baseados na plataforma Diamondville, com o chipset 945GSM são também bastante compatíveis), mas ao tentar usar o sistema em PCs de configurações arbitrárias os resultados vão variar.

intelmac_html_m48222e8a

Além de toda a questão econômica e de diferenciação dos produtos, essa questão dos drivers é um dos motivos de a Apple ter optado por fornecer o OS X apenas em conjunto com seu próprio hardware, em vez de tentar concorrer diretamente com o Windows, vendendo-o separadamente. Essa postura permite que eles se concentrem no desenvolvimento de drivers para alguns componentes específicos, evitando o desgaste de tentar oferecer suporte a todo o hardware existente (como no caso do Linux).

De volta aos hackintoshes, as primeiras versões “abertas” do OS X foram desenvolvidas com base em um kit de desenvolvimento disponibilizado pela Apple na época da transição para os processadores Intel e prosseguiu com versões modificadas do Os X 10.4 e 10.5, resistindo às mudanças introduzidas pela Apple para dificultar o processo.

Naturalmente, tanto a distribuição das versões modificadas quanto o uso em hardware não-Apple é proibido pela EULA, mas isso não tem impedido a distribuição das imagens com os patches através de sites de torrents e fóruns. Basta fazer uma pesquisa rápida por “OSx86” ou “Mac OS X patched” para encontrar imagens do sistema já com os patches aplicados. Existem até mesmo versões live, para o uso em pendrives.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X