RISC x CISC: a história dos Intel Macs
Publicado em 30/08/2009 – 20:15por Carlos Morimoto
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².

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.

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.

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.

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.



19 respostas para “RISC x CISC: a história dos Intel Macs”
Estou baixado o snow leopard para instalar no meu hackintosh. Vai ser uma BELEZA!
Positivo v45 com tudo funcionando, menos webcam (que não uso mesmo…)
Não resisti e fui em "Take the Red Pill" KKK.Cara passei um tempo (re)lendo da pré-história à era moderna ;)
Olá a todos,
Parabéns Morimoto pelo fantástico artigo. Aproveitando a deixa, seria pedir muito um artigo sobre os processadores Cell?
Desde já, grato
Olha que legal! Com essa possibilidade de se colocar Windows ou Linux em dual boot com o Mac OS X fica bem mais viável de se comprar um produto Apple (contanto que se tenha grana para isso, é claro) do que antes! Dá para aproveitar tudo de bom que o sistema da Apple oferece e também tudo de bom que há nos sistemas para x86! Muito interessante!
Ah! Eu tinha curiosidade de conhecer os modelos de processadores Power da IBM, com suas características (cache, clock, tecnologia, etc). Se um dia for possível escrever um artigo sobre isso, eu ficaria muito grato. Não achei nenhum site em português falando sobre isso com clareza.
Muito interessante. Sempre quis saber como rodar esse sistema operacional em micros pc x86 ja que o kit completo da apple sempre foi mais caro. Agora tenho a impressao que o cenario pode mudar ainda mais (pra melhor) com relacao a escolha do sistema operacional.
Apesar do EFI e TPM e possivel virtualizar esse SO?
Mas para virtualiza-lo nao bastaria coloca-lo num ambiente semelhante ao VirtualBox (usando um processador que suporte as intrucoes da Intel usadas pelo MAC como o SSE3 por exemplo..) e copiar o tal EFI usando um leitor EPROOM como se faz com o BIOS?
penso que se um dia conseguirem copiar o EFI esta feito sim mas até hoje eu nunca vi nada parecido até porque duvido que tenha um cara louco o suficiente pra ariscar perder o MAC pra copiar a EFI mas teoricamente penso ser possivel
Muito bom o artigo, para escrever artigos aqui?
Talvez algum dia eu possa chegar em uma loja e comprar o Mac OS e instalar no meu PC – XingLig.
Parece ironia mas um netbooks tem mais chance de exito na instalação do Mac OS, e que sabe um boa performance.
Abrir um shell no sistema da Maça e como abrir uma janela para novas oportunidades como esta sendo no Linux!
Coisa de entusiasta…
Parabéns pelo texto Morimoto. Que gabinete lindo, heim?! Gostaria se saber se há para revenda e onde encontro um resfriador semelhante ao deste gabinete; ví um parecido num Dell tb.
@ Bruno
Esse gabinete foi projetado sob encomenda da Apple, e se não me engano o dissipador é enorme para que não haja nenhum ruído de ventoinhas (o PowerMAc G5 é "fanless" se não me engano).
Esse aqui lembra vagamente o gabinete acima:
http://www.gamedude.com.au/prod_show.php?art_no=casAM350_venticase
A verdade é que manter uma linha de processadores competitiva exclusiva só para a Apple não rola… a Motorola/Freescale conseguia há muito tempo, mas problemas internos e a situação ruim da Apple na época acabaram com qualquer chance dela de competir com a Intel, não que ela realmente quisesse fazer isso.
Se você for analisar, o PPC604e foi o último processador DE DESKTOP da Freescale, o PPC620 deu errado e a partir daí o foco foi em núcleos mais flexíveis, de menor consumo, plataforma mais simples, porém mais lentos, como o G3 e o G4.
Quanto a IBM, o fato é que ela simplesmente não se importa muito. O PPC deu muito certo, na visão dela. Ela sempre se preocupou mais com produtos especiais como Cell e BlueGene, embutidos como PPC4×0 (e mesmo esse foi quase abandonado) ou processadores para servidor. O único núcleo realmente "IBM" usado pela Apple foi o PPC970, que é um POWER4 (velho, criado para servidores, otimizado para uma plataforma $%$%#%#ástica) capado com um chipset porco (feito pela Apple, que não tem a mínima idéia de como se faz um bom chipset e reza a lenda precisou de apoio da IBM para fazer o troço funcionar).
@Bremm
Vagamente mesmo; meu objetivo é justamente esse: reduzir à beira do silêncio o ruído da ventoinha. Verei o que consigo aqui.
Versão live? Opa, vou procurar :D
É mesmo Morimoto um artigo sobre os processadores Cell seria muito interessante!
Parabéns e obrigado ;)
Só uma pequena correção: O nome correto do sistema operacional citado na reportagem é o AIX e não IAX. A arquitetura POWER continua muito forte em servidores da IBM, sendo utilizado principalmente em médias e grandes corporações.
Além do AIX e do Linux, também é possivel rodar o sistema operacional i5OS (antigo OS/400).
É uma boa história. Parabéns pela pesquisa e estudos. Aprendi bastante algo q procurava faz tempo. Só uma pena a figura q mostra a instalação do XP num macbook. Tem gente q compra um mac pra instalar windows…perda de tempo e dinheiro. Uso macs desde os G3 coloridos e não troquei mais. Compatibilidade ? Sem problemas. Agora comprar o osx e instalar num xing ling é o cúmulo, hein ? hehehe