sexta-feira, 19 de fevereiro de 2010

PCs x Macs

Continuando na discussão de processadores RISC e CISC, vamos estudar um pouco sobre a arquitectura de dois processadores actuais, o G4, utilizado nos computadores Macintosh e o AMD Athlon, usado em computadores PC.

Existe uma idéia geral de que o G4, usado nos Macs é um processador RISC, enquanto os processadores usados em computadores PC, incluindo o Pentium III e 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, processadores que possuem 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, assim como os processadores x86, mas todas instruções que podem ser convertidas pelo Hardware decoder e em seguida processadas. O Hardware Decoder é extremamente rápido, por isso não compromete 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.
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 frequentemente 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 frequê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.

Sem comentários: