Prescott

O Prescott representou a terceira geração do Pentium 4. Ele foi produzido a partir de 2004, utilizando uma técnica de fabricação de 0.09 micron. Diferente do Northwood, que trouxe apenas melhorias no cache, o Prescott trouxe uma nova revisão da arquitetura, com a adição de 11 novos estágios ao já longo pipeline do Northwood. Com isso, o Prescott atingiu a impressionante marca de 31 estágios de pipeline, um número sem precedentes entre os processadores x86. Para efeito de comparação, o Athlon 64 utiliza um pipeline de apenas 12 estágios.

Em um processador atual, o uso de um pipeline mais longo não é exatamente uma boa notícia, muito pelo contrário. Como vimos, aumentar o número de pipelines do processador permite que cada estágio execute um volume menor de processamento, permitindo que o processador seja capaz de operar a frequências mais altas. Em compensação, as instruções demoram um número maior de ciclos de clock para serem processadas (já que precisam percorrer todo o pipeline), o que aumenta brutalmente o tempo perdido nos erros de branch prediction.

Se as alterações parassem por aí, o Prescott seria capaz de operar a frequências mais altas, mas em troca seria brutalmente mais lento que um Northwood do mesmo clock. Para evitar essa sombria perspectiva, a Intel realizou um conjunto de melhorias na arquitetura, de forma a anular, ou pelo menos reduzir a perda.

A primeira melhoria foi feita no circuito de branch prediction, do qual o Prescott é especialmente dependente. Em um processador atual, o circuito de branch prediction é capaz de indicar o caminho correto em mais de 95% das operações. Tal precisão é possível, porque ele se baseia em um histórico de operações já realizadas. Sempre que é preciso “adivinhar” o caminho mais provável de uma operação, ele pesquisa pelo resultado de operações semelhantes anteriormente realizadas. A maioria dos programas realiza um grande número de operações repetitivas (sobretudo aplicativos pouco otimizados, ou escritos em linguagens de alto nível), o que permite que o circuito de branch prediction execute seu trabalho com grande precisão.

O grande problema é que sempre que ele erra, o processador precisa descartar todo o trabalho adiantado e começar de novo a partir do ponto inicial. Neste caso, são perdidos não apenas os 31 ciclos que a instrução inicial demora para percorrer o pipeline, mas também os ciclos necessários para remover os dados anteriores e carregar os registradores com as novas instruções a processar.

Quanto mais longo é o pipeline, maior é a penalidade a cada erro, o que coloca o Prescott em uma situação complicada, já que as operações de tomada de decisão representam até 14% das operações realizadas por um aplicativo típico.

Para reduzir a perda, o circuito de branch prediction do Prescott foi sensivelmente aprimorado, e passou a ser capaz de trabalhar com um índice de acerto maior que o do Northwood. O scheduler (o circuito que ordena as instruções, de forma que as unidades de execução possam processar o número máximo de instruções a cada ciclo) também foi melhorado, resultando em outro pequeno ganho.

Foram feitas ainda duas pequenas modificações nas unidades de execução, que resultaram em mais um pequeno ganho, muito embora o número de unidades não tenha sido alterado. O primeiro e mais significativo foi a adição de um circuito dedicado de multiplicação de números inteiros. Até o Northwood, todas as operações de multiplicação eram enviadas à FPU, processadas separadamente e então devolvidas. Com o Prescott, as unidades de processamento de números inteiros ganharam a habilidade de processá-las diretamente, o que representou uma grande economia de tempo.

Como vimos, o Pentium 4 possui três unidades de execução de números inteiros. Duas delas são “double-pumped”, ou seja, são capazes de processar duas instruções simples por ciclo de clock. Um conjunto específico de instruções, que incluem operações complexas, são enviados para a terceira unidade de execução, que trabalha na frequência normal.

No Prescott, uma das duas unidades “rápidas” ganhou um novo bloco, capaz de processar operações shift/rotate (usadas em várias situações), que antes precisavam ser processadas na unidade mais lenta. Com isso, a terceira unidade foi desafogada, resultando em mais um pequeno ganho.

O Prescott ganhou também um novo bloco de instruções, o conjunto SSE3, composto por 13 novas instruções. Embora não tenha sido uma expansão tão radical quanto o SSE2, o SSE3 trouxe alguns complementos importantes, capazes de melhorar o desempenho consideravelmente em algumas situações. Como de praxe, o SSE3 foi mais tarde incorporado também aos processadores AMD, a partir do Athlon 64 com core Venice.

Continuando, as mudanças nas unidades de execução foram acompanhadas também por mudanças no cache. O bloco de dados do cache L1 foi ampliado de 8 para 16 KB e o bloco de instruções (o trace-cache) recebeu pequenas melhorias, embora a capacidade tenha permanecido a mesma. O cache L2 dobrou de tamanho, saltando de 512 KB para 1 MB, mas o aumento teve como efeito colateral o aumento dos tempos de latência, que cresceram em aproximadamente 40%. Em outras palavras, o Prescott trouxe um cache L2 maior, porém mais lento, o que anulou grande parte do benefício.

Com relação à fabricação, o Prescott foi o primeiro processador Intel a ser produzido utilizando a técnica Strained Silicon, que passou a ser usada nos processadores Intel lançados daí em diante. Ela consiste em “esticar” a superfície do wafer de silício, colocando-o sobre um substrato especialmente desenvolvido. Aumentando a distância entre os átomos do wafer, é reduzida a resistência à passagem dos impulsos elétricos. Essa técnica não tem nenhum efeito direto sobre o desempenho, mas ajuda a reduzir o consumo e a dissipação térmica do processador, além de (pelo menos em teoria) permitir que ele seja capaz de operar a frequências mais altas:

Slide demonstrando a técnica Strained Silicon

De uma forma geral, o Pentium 4 baseado no core Prescott era um pouco mais lento que um Northwood do mesmo clock, muito embora ele ganhasse por uma pequena margem em alguns aplicativos otimizados (graças ao aumento no tamanho do cache e às novas instruções SSE).

Isso não foi surpresa, já que os aperfeiçoamentos feitos no Prescott tiveram como principal objetivo anular a perda de performance causada pelo aumento no número de estágios do pipeline e não realmente melhorar o desempenho por ciclo de clock. Na época, o plano era melhorar o desempenho do processador com sucessivos aumentos na frequência de clock e não com base no aumento da eficiência.

O projeto de um novo processador demora de 3 a 5 anos para ser desenvolvido, até o ponto em que está testado e pronto para entrar em produção. Mesmo em casos onde um projeto já existente é modificado, como no caso do Prescott, o desenvolvimento não toma menos do que 2 anos. Ou seja, é preciso planejar quais modificações realizar com uma antecedência muito grande e qualquer erro estratégico (como o uso das memórias Rambus) acaba demorando muitos anos para ser consertado.

Como o Prescott foi lançado no início de 2004, podemos imaginar que a Intel começou a desenvolvê-lo pouco depois do lançamento do Pentium 4 Willamette, colocando em prática as ideias que vigoravam na época.

Já que o desempenho por ciclo de clock era similar ou inferior, as vantagens de possuir um Prescott em vez de um Northwood recaiam apenas sobre a maior margem de overclock. Para quem não pretendia fazer overclock, não era vantagem utilizar um Prescott em relação a um Northwood do mesmo clock.

Devido ao aumento no número de estágios do pipeline e das melhorias feitas nas unidades de execução, o Prescott dissipa mais calor que um Northwood do mesmo clock, mesmo sendo produzido em uma técnica de 0.09 micron. Se isso lhe soa estranho, basta ter em mente que apesar da técnica mais avançada de produção, ele possui 125 milhões de transistores, contra apenas 55 milhões do Northwood. O TDP do Northwood de 3.4 GHz é de 89 watts, enquanto o do Prescott da mesma frequência é de 103 watts, ou seja, 14 watts a mais.

Um consumo tão alto fazia com que o Prescott não funcionasse em conjunto com muitas fontes genéricas, o que ajudou a trazer à tona a questão da qualidade das fontes e da capacidade real de fornecimento. Na época, a Intel recomendava o uso de fontes de pelo menos 400 watts reais, capazes de fornecer um mínimo de 16 Amperes na saída de 12V. Outro aspecto importante era a refrigeração: além de um cooler bem dimensionado, era recomendável usar um exaustor adicional, instalado na abertura lateral (soprando ar frio sobre o processador).

Sem uma ventilação adequada, os Pentium 4 baseados no Prescott ultrapassavam facilmente o limite de temperatura, fazendo com que o Thermal Throttling entrasse em ação, reduzindo a frequência do processador.

Para evitar confusão, os modelos baseados no core Prescott que operam à mesma frequência dos Northwood receberam a letra “E”, como em:

Pentium 4 3.40E
Pentium 4 3.20E
Pentium 4 3.00E
Pentium 4 2.80E

Todos estes modelos utilizam bus de 800 MHz, o que quebrou a compatibilidade com placas antigas, que suportavam apenas os 400 e 533 MHz. No caso das placas com chipset Intel, o suporte foi introduzido a partir da série i865; no caso dos chipsets da SiS a partir da série FX (SiS648FX, SiS655FX e SiS661FX); e, no caso dos da VIA, a partir do PT800. A primeira safra de placas (produzidas na primeira metade de 2004) precisavam de upgrades de BIOS para reconhecer corretamente o processador.

A Intel planejava lançar versões do Prescott com clocks acima de 4 GHz (durante a fase de desenvolvimento chegaram a falar em 5 GHz), mas o massivo consumo elétrico e a dissipação térmica do processador tornou inviável o lançamento de versões com clock acima de 3.8 GHz (ou seja, apenas 400 MHz a mais que os Pentium 4 baseados no Northwood de 0.13 micron).

No final, o aumento no número de estágios do pipeline e as outras mudanças arquiteturais feitas no processador acabaram sendo em vão, tornando o Prescott um dos maiores fracassos da história da Intel.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X