Análise Completa do Pentium 4

Por:
Análise Completa do Pentium 4

Depois de vários atrasos, finalmente o Pentium 4, conhecido anteriormente como Willamette chega ao mercado. As duas versões iniciais operam a respectivamente 1.4 e 1.5 GHz, estando anunciadas versões de até 2 GHz até o final de 2001. O preço também não fica atrás, a versão de 1.5 GHz custa nos EUA por volta de 1080 dólares, enquanto a versão de 1.4 GHz, também nos EUA custa 920 dólares. Aqui no Brasil os preços serão de 15 a 50% mais altos, dependendo do revendedor.

gdh1
Outro ponto interessante sobre o Pentium 4 é que pelo menos por enquanto o único chipset disponível, o i850 da própria Intel suporta apenas memórias Rambus, o que obriga qualquer um interessado em adquirir um Pentium 4 a adquirir também módulos de memória Rambus. A boa notícia é que finalmente as memórias Rambus estão começando a chegar ao mercado com preços digamos aceitáveis. Nos EUA um módulo RIMM de 64 MB custa em média 99 dólares, contra 45 dólares em média por um módulo de 64 MB de memória PC-133. Ainda custa pelo menos o dobro, mas já é bem menos do que custava a alguns meses atrás. Lembrando que como veremos adiante, os módulos RIMM devem ser usados em pares no Pentium 4.

OEM x Boxed

Existem duas versões do Pentium 4, a Boxed e a OEM. Ao contrário de outros processadores, no caso no Pentium 4 a diferença entra as duas versões não é apenas o cooler. A versão Boxed do Pentium 4 já vem com 2 módulos de 64 MB de memória Rambus e cooler, enquanto na versão OEM temos apenas o processador. Considerando que a versão Boxed custa cerca de 100 dólares a mais, ela acaba sendo uma melhor opção em termos de custo, já que adiquiridos separadamente, os módulos de memória e o cooler custam muito mais que isto.


A Arquitetura

O primeiro alerta a se fazer sobre o Pentium 4 é que o aumento da freqüência de operação não significa um ganho automático de potência. Um Pentium 4 de 1.5 GHz não é 50% mais rápido que um Pentium 3 de 1 GHz. Um dado é o número de ciclos por segundo que o processador pode executar, outro é o que ele consegue processar em cada ciclo. Um 486 de 100 MHz por exemplo é muito mais lento que um Pentium de 75 MHz, apesar de operar a uma freqüência mais alta.

Para entender os pontos fortes e fracos do Pentium 4, onde ele é mais rápido e onde ele é mais lento, por que não começar analisando a arquitetura interna do processador?

A Intel batizou a nova arquitetura do Pentium 4 de “NetBurst”. O Nome não tem nada a ver com o desempenho em redes ou na Internet, mas tenta ilustrar os novos recursos do processador, assim como dar um ar de superioridade. A arquitetura NetBurst é composta por 4 componentes: Hyper Pipelined Technology, Rapid Execution Engine, Execution Trace Cache e Bus de 400MHz. Vamos aos detalhes de cada uma das 4 tecnologias:

Hyper Pipelined Technology

Esta é a característica mais marcante do Pentium 4. O Pipeline é um recurso que divide o processador em vários estágios, que trabalham simultaneamente, dividido o trabalho de processar as instruções. É como uma linha de produção com vários operários, onde cada um monta uma peça, até termos no final o produto completo. Apartir do 486, todos os processadores utilizam este recurso.

O Pentium III possui 10 estágios, o Athlon possui 11 estágios, enquanto o Pentium 4 possui nada menos que 20 estágios, daí o nome “Hyper Pipelined”.

O uso de Pipeline permite que o processador possa processar várias instruções ao mesmo tempo, sendo que cada estágio cuida de uma fração do processamento. Quanto mais estágios, menor será o processamento executado em cada um. No caso do Pentium 4 cada estágio do Pipeline processa apenas metade do processado por um estágio do Pentium III, fazendo com que teoricamente o resultado final seja o mesmo, já que em compensação existem o dobro de estágios.

O uso de mais estágios permite que o processador opere a freqüências bem mais altas mais altas, já que cada estágio executa menos processamento. O grade problema neste caso é que os processadores atuais executam várias instruções simultaneamente, enquanto os programas são uma seqüência de instruções. O Pentium 4 processa três instruções por ciclo, o Pentium antigo (Pentium 1) processa duas, e assim por diante.

Caso as instruções seguintes não dependam do resultado da primeira, como uma seqüência de somas de vários números, por exemplo, então o processador não terá nenhum problema para resolvê-las rapidamente.

Caso porém tenhamos uma tomada de decisão, onde o processador precisa primeiro resolver uma instrução para saber qual caminho deve tomar, como por exemplo “Se A > 3 então B = C+5 senão B = C-5”, entra em cena o recurso de execução especulativa, onde enquanto é resolvida a primeira instrução, o processador escolhe um dos caminhos possíveis para ir “adiantando o serviço” enquanto não sabe qual deverá seguir. Se ao saber o resultado da primeira instrução ver que tomou o caminho certo, simplesmente continuará apartir dali. Caso por outro lado o processador tenha adivinhado errado, então terá que jogar fora todo o trabalho já feito e tomar o outro caminho, perdendo muito tempo.

O Pentium 4 perde gritantemente nesse quesito, pois ele demora o dobro do tempo para processar a primeira instrução, já que ela é processada em 20 estágios, contra 10 do Pentium III. Isto significa que a cada tomada de decisão errada, serão perdidos pelo menos 20 ciclos de processamento, um eternidade, considerando que em média, 14% das instruções processadas são de tomada de decisão. Se por acaso o processador errasse 50% das previsões, então os 7% de erros de previsão resultariam numa diminuição de 30% do desempenho do processador em comparação com o antigo Pentium III.

Isto significa que a princípio o Pentium 4 é mais lento que um Pentium III do mesmo clock, podendo em compensação operar a freqüências mais altas. Todas as demais alterações feitas pela Intel, explicadas a seguir servem como paliativos para tentar diminuir a perda de desempenho trazida pelo maior número de estágios de Pipeline. Foi justamente devido a isto que a Intel optou por lançar diretamente os modelos de 1.4 e 1.5 GHz, pulando as versões de 1.1 e 1.2, que seriam o caminho mais óbvio já que o Pentium III ficou estacionado na versão de 1 GHz. Caso fosse lançado, um Pentium 4 de 1.1 GHz perderia para um Pentium III de 1 GHz em praticamente todas as aplicações.

Além da perda de desempenho, outro efeito colateral de se usar mais estágios de Pipeline é o fato de tornar o processador maior e mais complexo, fatalmente bem mais caro de se produzir. O Pentium 4 mede 217 milímetros quadrados, quase o dobro do Athlon, que mede 120 mm². Isto significa que o Pentium 4 é proporcionalmente mais caro de se produzir.


Execution trace Cache

O uso do cache L1 no Pentium 4 é no mínimo inovador. O Pentium 3 por exemplo tem 32 KB de cache L1, dividido em 2 blocos de 16 KB cada, para instruções e dados. O Athlon tem 128 KB de cache L1, também dividido em dois blocos. O Pentium 4 por sua vez tem apenas 8 KB de cache para dados e só. Só? Sim, só isso. Porém, ele traz duas inovações que compensam esta aparente deficiência. A primeira é que graças ao tamanho reduzido, o pequeno cache de dados tem um tempo de latência menor, ou seja é mais rápido que o cache L1 encontrado no Pentium III e no Athlon. Do ponto de vista dos projetistas da Intel, esta foi a melhor relação em termos de desempenho.

O cache de instruções por sua vez foi substituído pelo Execution trace Cache, que ao invés de armazenar instruções, armazena diretamente uOPs, que são as instruções já decodificadas, prontas para serem processadas. Isto garante que o cache tenha apenas um ciclo de latência, ou seja o processador não perde tempo algum ao utilizar um dados armazenado no trace cache, ao contrário do que acontecia no Pentium III, onde perdia-se pelo menos dois ciclos em cada leitura.

Apesar da Intel não divulgar o tamanho do trace cache, sabe-se que ele armazena 12.000 uOPs, o que provavelmente equivale a 96 KB de dados. Considerando-se a eficiência do cache este tamanho é surpreendente. Para mais detalhes sobre o funcionamento do cache, consulte meu tutorial sobre cache

Se você está em dúvida sobre o que é um “uOP”, e como eles são produzidos e processados, aqui vai uma explicação resumida: Apesar dos processadores para micros PC continuarem usando o conjunto x86 de instruções, que é composto por 184 instruções, internamente eles são capazes de processar apenas instruções simples de soma e atribuição. Existe então um circuito decodificador, que converte as instruções complexas usadas pelos programas nas instruções simples entendidas pelo processador. Uma instrução complexa pode ser quebrada em várias instruções simples. No Pentium 4, cada instrução simples é chamada de “uOP”. No Athlon cada conjunto de duas instruções ganha o nome de “macro-ops”. Você pode encontrar mais detalhes na minha analise do AMD Athlon

Bus de 400 MHz

Visando concorrer com o bus EV6 do Athlon, que opera de 100 a 133 MHz, com duas transferências por ciclo, o que resulta na prática em freqüências de respectivamente 200 e 266 MHz, o Pentium 4 conta com um bus operando a 100 MHz, mas com 4 transferências por ciclo, o que equivale a um barramento de 400 Mhz.

O barramento controla a velocidade de comunicação entre o processador e o chipset. Um barramento mais rápido, não significa um ganho de performance, porém, um barramento insuficiente, causará perda de desempenho, fazendo com que o processador não consiga comunicar-se com os demais componentes à velocidade máxima.

Como tanto no Pentium 4, quanto no Athlon, o barramento é equivalente à velocidade do acesso à memória RAM, temos na prática um empate técnico.


Rapid Execution Engine

Todo processador atual é dividido em dois componentes básicos, as unidades de execução de inteiros e as unidades de ponto flutuante. A parte que processa as instruções envolvendo números inteiros é responsável pela maior parte das instruções, e pelo desempenho do processador nos aplicativos do dia a dia enquanto as unidades de ponto flutuante, que compõe o que chamamos de coprocessador aritmético é responsável pelo processamento das instruções envolvendo valores complexos, usadas por jogos e aplicativos gráficos.

A “Rapid Execution Engine” do Pentium 4 consiste num reforço nas unidades de inteiros do processador. O Pentium 4 possui um total de 5 unidades de processamento de inteiros, duas ALUs, que processam as instruções mais simples, duas GLUs, encarregadas de ler e gravar dados e uma terceira ALU, encarregada de decodificar e processar as instruções complexas, que embora em menor quantidade, sã as que tomam mais tempo do processador.

Este conjunto de 5 unidades de execução de inteiros é semelhando ao do Pentium III, porém, como diferencial, no Pentium 4 tanto as duas ALUs encarregadas das instruções simples, quanto as duas GLUs encarregadas das leituras e gravações são duas vezes mais potentes.

Segundo a Intel, as quatro unidades operam a uma freqüência duas vezes superior à do processador, o que sugere que num Pentium 4 de 1.5 GHz elas operem a 3 GHz. Porém, na verdade, cada unidade passa a ser composta por duas unidades trabalhando em paralelo. Com isto passa-se a processar duas instruções por ciclo, mas a freqüência de operação continua a mesma. Na prática, o slogan acaba sendo real, mas em termos técnicos é um dado distorcido.

Na teoria parece maravilhoso, mas existe um pequeno detalhe que elimina boa parte do ganho que seria de se esperar deste esquema. Apesar das duas ALUs de instruções simples terem ficado mais rápidas, visando justamente compensar a perda de desempenho trazida pelos 20 estágios de Pipeline do Pentium 4, a ALU de instruções complexas não teve a mesma evolução. Isto significa que ao passar a usar 20 estágios de Pipeline, esta terceira ALU tornou-se mais lenta que a mesma no Pentium III.

Temos então um cenário onde as instruções simples são rapidamente processadas, mas as instruções complexas ficam entaladas na vala comum da terceira ALU, causando uma grande perda de desempenho.

No coprocessador aritmético o cenário é ainda mais complicado, pois apesar das unidades de execução terem perdido desempenho devido ao Pipeline de 20 estágios, não houve nenhum avanço para equilibrar a balança, como tivemos nas unidades de inteiros. Pelo contrário, o coprocessador aritmético encolheu, tendo sido podadas duas das unidades de execução, uma das que processava instruções MMX e uma das que processava instruções SSE.

Ao invés de evoluir, como seria de se esperar, o coprocessador aritmético do Pentium 4 tornou-se ainda mais frágil do que o do Pentium 3, trazendo um cenário no mínimo curioso. Enquanto na época do Pentium II e do K6, a AMD competia com um processador que apesar de possuir um bom desempenho em aplicativos de escritório era literalmente massacrado nos jogos e aplicativos gráficos, temos agora com o Pentium 4 x Athlon um cenário semelhante, porém com os lados invertidos: A Intel ataca com um processador que é potente em inteiros, mas fraco em ponto flutuante.

Ironicamente, a solução da Intel para tentar diminuir a deficiência do processador em ponto flutuante é a mesma que a AMD usou na época do K6-2. Lembra-se do 3D-Now, as instruções incorporadas ao K6-2, que melhoravam seu desempenho nos jogos otimizados, fazendo com que em alguns títulos seu desempenho ficasse muito próximo ao de um Pentium II? A Intel optou por segui exatamente o mesmo caminho, incorporando 144 novas instruções ao Pentium 4, chamadas de SSE2, que visam melhorar seu desempenho os jogos e aplicativos gráficos.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X