:. AMD Athlon x PowerMac G4: um comparativo técnico

 Por Carlos E. Morimoto
 http://www.guiadohardware.net
 22/02/2001

Há alguns dias atrás, enviei duas dicas do dia falando um pouco sobre as diferenças de arquitetura entre os PCs e Macintoshs. Havia dito também, que apesar de utilizarem conjuntos de instruções diferentes, o que assegura as incompatibilidades a nível de software, tanto os G4, o processador utilizado nos Macs atualmente, quanto os processadores utilizados em micros PC são semelhantes em termos de arquitetura.

No artigo de hoje, vou explicar estas semelhanças com mais detalhes, fazendo um comparativo entre o G4 e o Athlon. A idéia principal, é comprar os aspectos técnicos dos dois processadores, analisando as semelhanças, que não são poucas e destacando também as diferenças.


Instruções


Existe uma idéia geral de que o G4 é um processador RISC, enquanto os processadores usados em micros PC, incluindo o Athlon são todos CISC. Ambas as afirmações estão erradas. Na verdade, tanto o G4, quanto o Athlon e o Pentium III são considerados processadores Post-RISC. Mas o que viria a ser isso?

Um processador CISC possui um conjunto relativamente muito grande de instruções, sabe fazer muitas operações diferentes. Isto é bom para os programadores, mas um limitante em termos de desempenho. Os processadores RISC por sua vez são capazes de executar apenas meia dúzia de instruções simples, ganha-se em desempenho, mas perde-se em flexibilidade e em termos de compatibilidade com outras arquiteturas, ou mesmo versões anteriores do mesmo processador.

Um processador Post-RISC por sua vez possui um conjunto de instruções gigantesco, maior do que o conjunto de instruções de um processador CISC típico. A diferença é que toda essa gigantesca gama de instruções diferentes, podem ser decodificadas em instruções RISC simples, estas sim que serão processadas. A "conversão" das instruções é feita por um componente especial do processador, chamado de "Hardware decoder", encontrado tanto no G4 quanto no Athlon.

O G4 possui um enorme conjunto de instruções, mas todas instruções que podem ser convertidas pelo Hardware decoder e em seguida processadas. O Hardware Decoder é extremamente rápido, não comprometendo o desempenho do processador. De fato, a perda de desempenho por usar este grande conjunto de instruções que precisam ser quebradas em instruções menores é de menos de 1%. é por isso que os processadores atuais abandonaram a idéia RISC original: a perda de desempenho é ínfima perto do ganho de flexibilidade.

Entretanto, o G4 paga um preço relativamente alto por este conjunto de instruções uniforme, que é o fato de não ser compatível com os processadores usados anteriormente nos Macs, com excessão naturalmente do G3, que usa o mesmo conjunto de instruções que ele.

O Athlon por sua vez, tem que ser compatível com o conjunto de instruções x86, caso contrário não poderia ser usado em micros PC. As instruções x86 consistem em basicamente dois tipos de instruções, as instruções simples, que podem ser diretamente processadas pelo Hardware decoder, sem perda de tempo, e as instruções complexas, que são quebradas em instruções simples por outro componente, chamado "Microcode decoder".

As instruções simples, que podem ser diretamente processadas, são as mais comunmente usadas nos programas. De fato, num programa atual típico, é composto de entre 95 e 97% destas instruções simples.

O restante são as instruções complexas, que apesar de raramente usadas são as que dão mais trabalho, pois precisam passar por um processo de decodificação muito mais lento, feito pelo Microcode decoder.

Para amenizar este problema, a AMD incluiu um buffer de pré extração no Athlon, que funciona como uma espécie de fila por onde as instruções já decodificadas passam antes de ser processadas. Graças a isto, o processador pode processar outras instruções enquanto aguarda o Microcode Decoder decodificar cada instrução complexa, sem perder muito tempo.

Com isto, mesmo mantendo compatibilidade com o conjunto de instruções x86, o Athlon perde muito pouco em desempenho em relação ao G4, isto naturalmente comparando dois processadores de mesma freqüência. O IPC, ou seja, o número de instruções processadas por ciclo de ambos é muito próximo, o que garante que um Athlon de 500 Mhz apresente um desempenho muito parecido com um G4 também de 500 MHz.

A desvantagem de possuir tantos componentes adicionais, é que o Athlon possui um número de transístores muito maior do que o G4, na verdade mais que o dobro, fazendo com que ele consuma mais eletricidade, o que não chega a ser um grande problema num micro de mesa. O mais grave é que com mais transístores o processador custa mais caro para se produzir, mas o preço de venda ao consumidor tem muito mais a ver com a política da compania do que com o custo de produção. O Pentium III também é um processador mais barato de se produzir que o Athlon, entretanto custa muito mais caro nas lojas.


Back end


Qualquer processador atual pode ser dividido em dois blocos básicos, o Front end e o Back end.

O Front end corresponde aos circuitos que decodificam as instruções, no caso o Hardware decoder, Microcode decoder e buffer de pré extração que acabei de explicar, junto com mais alguns componentes, como os circuitos de Branch Prediction e o cache L1. Estes componentes são a "porta de entrada" do processador, tendo a função de preparar as instruções para serem processadas.

O Back end é a parte do processador que finalmente processa as instruções, sendo composto basicamente pelas unidades de execução.

Como vimos, o fato como ambos os processadores decodificam as instruções, contando com o Hardware decoder é bastante semelhante, mas o Athlon possui alguns componentes a mais para garantir compatibilidade com as instruções x86. Isto não atrapalha o desempenho do processador, mas o torna um projeto mais complexo.

Em termos de unidades de execução, ou seja, o Back end, é que os processadores mostram mais algumas diferenças na forma como processam as instruções já decodificadas.

O Athlon possui um total de 9 unidades de execução, enquanto o G4 possui apenas 6. A diferença parece grande, mas na prática o desempenho é quase o mesmo, veja por que:

O Athlon possui 3 unidades de execução para leitura/gravação de dados na memória, enquanto o G4 possui apenas uma. O ponto é que todas as instruções, tanto de inteiros, quanto de ponto flutuante no Athlon, vem com um espaço reservado para uma instrução de leitura/gravação, espaço que nem sempre é preenchido, fazendo com que as 3 unidades fiquem ociosas na maior parte do tempo, apesar de agilizarem algo de vez em quando.

No G4, só existe uma unidade de leitura/gravação, mas que em compensação fica ocupada na maior parte do tempo. Na prática, esta única unidade acaba fazendo o mesmo volume de trabalho das três do Athlon, que ficam boa parte do tempo ociosas. Sem dúvida, o G4 perde alguma coisa em termos de desempenho, mas muito pouco.

Em termos de unidades de execução de inteiros e de ponto flutuante, que são as mais importantes, temos especificações parecidas em ambos:

O Athlon possui três unidades de ponto flutuante (que formam o coprocessador aritmético), o mesmo número encontrado no G4. Apenas para efeito de comparação, o Pentium 3 possui apenas duas. Com o mesmo número de unidades, o desempenho dos dois processadores no quesito ponto flutuante é quase igual.

Já em termos de unidades de processamento de inteiros, o cenário muda um pouco de figura, pois o Athlon possui três unidades de execução contra apenas duas do G4.

Isto garante que o Athlon tenha um desempenho um pouco melhor que o G4 em aplicativos de escritórios, mas a diferença é pequena, pois o desempenho real também depende do cache, velocidade de acesso à memória, etc.

Em termos de instruções 3D, o Athlon conta com o 3D-Now, o famoso conjunto de instruções, embutido nos processadores AMD que permite melhorar o desempenho do processador em jogos e aplicativos 3D. O Athlon traz também o velho MMX, que garante algum ganho em aplicativos multimídia.

O G4 por sua vez traz um conjunto unificado, o Altivec, que inclui tanto instruções 3D (como no 3D-Now!), quanto instruções multimídia (como no MMX), isto garante que tanto o Athlon quanto o G4 possuam armas semelhantes neste quesito, o resto fica por conta dos programadores. Um certo filtro do Photoshop não rodará mais rápido num Mac por o G4 ser melhor ou mais bonito, mas sim pelo simples fato dos programadores da Adobe terem trabalhado mais tempo para otimiza-lo para os Macs do que para os PCs. Da mesma forma, um programa para compressão de MP3 não rodará mais rápido num Athlon de 500 Mhz do que num G4 de 500 MHz pelo Athlon ser mais bonito, mas pelo fato do programador ter trabalhado mais na versão para PC do que na verão para Mac.


:. Conclusão

Como disse, os recursos e desempenho de ambos os processadores são muito semelhantes, alias ambos foram construídos sobre as mesmas idéias básicas. O ponto é que um G4 só apresenta um desempenho semelhante ao de um Athlon caso ambos estejam trabalhando na mesma freqüência. Um G4 de 600 MHz rivaliza com um Athlon de 600 MHz, ganha em alguns aplicativos, perde em outros, mas no geral os dois ficam no mesmo patamar. Porém, o Athlon existe em versões de até 1.2 GHz, enquanto o G4 ainda está nos 600 MHz.

Novamente, isso não ocorre por que o Athlon é mais bonito, mas pelas técnicas de fabricação da AMD que são atualmente mais avançadas que as da Motorola. A AMD já produz chips com tecnologia de 0.18 mícron, enquanto a Motorola ainda está nos 0.25 mícron.

Naturalmente não dá para comparar o desempenho de um processador de 1.2 GHz com um de 600 MHz. é por isso que atualmente um PC topo de linha tem um desempenho superior ao de um Mac também topo de linha, simplesmente pelo fato de vir equipado com um processador que opera a uma freqüência mais alta, "Tem mais Megahertz".