Processadores da plataforma Core

Started by Trojan, 15 de November , 2007, 01:49:02 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Trojan

QuoteFabricar processadores é muito mais complexo e arriscado do que fazer placas mãe ou telas de LCD, por exemplo, pois os projetos são muito mais complexos e o investimento inicial absurdamente maior. Leva-se pelo menos 5 anos para projetar um novo processador e, para produzí-lo, é necessário investir mais 2 a 4 bilhões de dólares, investimento necessário para montar uma fábrica de ponta.

Mesmo para uma grande empresa, como a Intel, um erro estratégico pode custar muito caro. Investir em uma plataforma ineficiente pode gerar um atraso de vários anos, até que o projeto de um novo processador, mais competitivo, seja concluído e seja possível produzí-lo em quantidade.

Com o lançamento do Pentium 4, em 2001, a Intel fez um movimento arriscado, investindo em um processador com um longo pipeline (a primeira versão do Pentium 4 trabalhava com 20 estágios, contra 10 do Pentium III e 11 das primeiras versões do Athlon). Em qualquer processador atual, as instruções são processadas em etapas, como numa linha de produção. Dobrar o número de estágios no processador é como dobrar o número de funcionários, fazendo com que cada um faça metade do trabalho e a esteira corra duas vezes mais rápido.

O plano era simples: Com mais estágios, o processador seria capaz de atingir freqüências mais altas. Para manter as unidades de execução abastecidas, o processador contaria com um cache L1 muito rápido, que armazenada instruções pré-decodificadas, um grande cache L2 e utilizaria um tipo mais rápido de memória RAM, as famosas memórias Rambus.

Entretanto, o tempo mostrou que este design possuía inconsistências óbvias. Adicionar mais estágios tornou o processador menos eficiente, pois as instruções precisavam do dobro do número de ciclos do processador para serem processadas, fazendo com que o processador perdesse muito tempo em operações de tomada de decisão, onde o processador depende do resultado de uma instrução para processar a próxima.

Possuir o dobro de estágios significa também possuir aproximadamente o dobro de transistores e consumir o dobro da eletricidade. Se isso vem acompanhado de um aumento no clock, chegamos a um processador ineficiente, que consome muito mais energia e gera muito mais calor.

Por armazenar instruções decodificadas, o cache L1 do Pentium 4 também se tornou menos eficiente, já que instruções decodificadas ocupam mais espaço. Enquanto o Athlon possuía 64 KB (metade) do cache L1 reservado para armazenar instruções, o cache do Pentium 4 Willamette armazenava o equivalente a apenas 8 KB. Isso tornava o processador mais dependente do cache L2 (que devia ser obrigatoriamente maior, para que o processador mantivesse um bom nível de desempenho) e do barramento com a memória RAM, que deveria ser capaz de alimentar os caches.

O Pentium 4 original (core Willamette) possuía apenas 256 KB de cache L2, por isso era consideravelmente mais lento que um Athlon, ou mesmo um Pentium III do mesmo clock. O core Northwood, lançado em seguida, trouxe 512 KB de cache e o Prescott (lançado em 2004) trouxe 1 MB completo.



QuoteO cache L2 é um ítem extremamente caro, pois cada bit de cache adiciona cerca de 6 transístores ao processador. Um cache L2 de 1 MB ocupa pelo menos 60 milhões de transístores, o que é quase o dobro do número de transistores do Athlon Palomino (que possuída 37.5 milhões). Mais transistores tornam o processador proporcionalmente mais caro de se produzir, o que aumenta o preço de venda.

Para completar, existiu o problema das memórias Rambus, um tipo proprietário de memória, que trabalhava a freqüências superiores, porém com tempos de latência mais altos, o que eliminava a maior parte do ganho. O Pentium 4 utilizaria apenas memórias Rambus, obrigando os fabricantes de memória a aderirem à nova tecnologia. A Rambus Inc. receberia royalties dos fabricantes e a Intel ficaria com parte do bolo, na forma de incentivos e descontos.

Felizmente não foi o que aconteceu. As memórias Rambus foram um dos maiores fracassos da história. Na época do lançamento do Pentium 4, um módulo de 64 MB custava US$ 99, enquanto um módulo de memória PC-133 da mesma capacidade custava apenas US$ 45. Isto significava gastar US$ 216 (ao comprar 256 MB) a mais, só de memória, sem contar a diferença de preço do processador Pentium 4 e da placa-mãe, que na época ainda eram consideravelmente mais caros.

Pouca gente comprou as versões iniciais do Pentium 4 e quem se arriscou, acabou com um abacaxi nas mãos. Isto obrigou a Intel a modificar a plataforma, passando a utilizar memórias DDR padrão. Esta demora gerou um vácuo, que permitiu que a AMD aumentasse consideravelmente sua participação no mercado, já que contava com o Athlon Thunderbird, um processador mais barato e mais eficiente.

Com o Pentium 4 Northwood, a Intel voltou a ser competitiva, chegando rapidamente aos 3.4 GHz. Foi introduzido também o Hyper Treading, que visa melhorar a eficiência do processador, dividindo-o em dois processadores lógicos. O plano da Intel, de compensar a baixa eficiência do Pentium 4 com freqüências de clock maiores parecia estar dando certo. Na época o roadmap da Intel mostrava processadores Pentium 4 com core Prescott atingindo 5.2 GHz no final de 2004 e planos para o core "Tejas", que alcançaria os 10 GHz no final de 2005.

Porém, nada disso aconteceu. Os 3.4 GHz se tornaram uma barreira difícil de transpor. A partir daí, a Intel conseguiu apenas pequenos incrementos de clock, atingindo a muito custo os 3.8 GHz com o Prescott, que além de ser produzido numa técnica de 0.09 micron, teve o pipeline esticado para um total de 31 estágios. Acima de 3.8 GHz, o gate leakage, ou seja, a eletricidade perdida pelos transistores do processador a cada ciclo, tornava o consumo e dissipação térmica altos demais.

Embora seja possível superar a barreira dos 4.0 GHz com o Prescott, via overclock, o resultado é um processador beberrão demais. É como se cada transistor do processador fosse um minúsculo cano, por onde passa água. Quanto menores os transistores, mais finos são os canos e quanto maior o clock, mais forte é a pressão da água.

Os transistores são compostos por filamentos muito finos, o que causa uma pequena perda de energia, chamada de "gate leakage" a cada chaveamento. É como se os canos do exemplo possuíssem pequenos furos por onde vaza uma pequena quantidade de água. Conforme o clock aumenta, a pressão se torna mais forte e cada vez mais água vaza pelos canos, gerando um desperdício cada vez maior. No caso do processador, toda a energia desperdiçada se transforma em calor, o que traz a necessidade de um cooler mais eficiente, gerando um ciclo vicioso. A partir dos 4 GHz (no caso do Pentium 4), é necessário um aumento cada vez maior no consumo e dissipação térmica, em troca de um aumento cada vez menor na frequência de operação.

O pequeno aumento no clock proporcionado pelo core Prescott serviu mais para encobrir a perda de desempenho causada pelo novo aumento no número de estágios do pipeline do que para realmente aumentar o desempenho, transformando o Prescott num dos maiores fiascos da história da Intel. Uma versão atualizada do Prescott, com 2 MB de cache foi lançada no início de 2005 (utilizada no Pentium 4 Extreme Edition), dando um último fôlego à plataforma, porém, novamente sem aumento no clock.

O Cedar Mill, lançado no início de 2006 mais uma vez mostrou a dificuldade em produzir processadores Pentium 4 com clock mais alto. Mesmo produzido numa técnica de 0.065 micron, o Cedar Mill não foi capaz de superar a barreira dos 3.8 GHz. Ao invés disso, a Intel optou por produzir processadores dual core (baseados no core Presler), chegando ao Pentium Extreme Edition 965, que opera a 3.73GHz. Em resumo: em dois anos, a Intel conseguiu apenas ganhos incrementais de desempenho na plataforma Pentium 4. Caminhou bastante, porém para o lado e não para a frente.

Naturalmente, a AMD não ficou parada. Depois do Athlon Palomino e Thoroughbred (quase idêntico ao Palomino, porém produzido numa técnica de 0.13 micron), a AMD lançou o Barton, que trouxe pequenas melhorias de projeto e 512 KB de cache L2. Além de ser usado nas versões mais rápidas do Athlon XP, o core Barton foi utilizado nos Semprons 2400+ a 3000+, os últimos processadores lançados para o saudoso soquete A.

A partir daí, temos os Athlon 64, Athlon 64 FX, Athlon 64 X2 e os Semprons para as placas soquete 754, 939 e AM2. Pela primeira vez na história, a AMD tomou a dianteira, produzindo processadores mais rápidos que a Intel e fazendo seu padrão de instruções de 64 bits (o AMD64) prevalecer, obrigando a Intel a desenvolver o EM64T, um conjunto compatível de instruções, incluído no Pentium 4 Prescott, sem muito alarde.

De fato, a participação da AMD no mercado só não cresceu mais neste período devido à sua incapacidade de produzir seus processadores em maior volume. Assim como é demorado desenvolver um novo projeto, é caro e demorado inaugurar novas fábricas.

Por sorte, a Intel não desistiu inteiramente de produzir um processador mais econômico e com um melhor desempenho por clock, apenas relegou o projeto a segundo plano, dando prioridade ao desenvolvimento do Pentium 4 e da plataforma NetBurst.

O desenvolvimento deste processador de baixo consumo ficou a cargo de um grupo de engenheiros sediados em Israel, que passaram a trabalhar em uma versão aprimorada do antigo Pentium III, um processador com menos estágios e menos transístores, incapaz de atingir freqüências de operação muito altas, mas que, em compensação, oferecia um desempenho por clock muito superior ao do Pentium 4.

A idéia era trabalhar para reforçar os pontos fortes do Pentium III e minimizar seus pontos fracos, produzindo um processador com um desempenho por ciclo ainda melhor, mas que, ao mesmo tempo, consumisse menos energia e fosse capaz de operar a frequências mais altas.

A primeira encarnação do novo processador foi o core Banias (lançado em 2003), que chegou ao mercado na forma da primeira versão do Pentium-M. Muitos defendem que que o Banias recebeu tantas melhorias em relação ao Pentium III, que pode ser considerado um novo projeto ao invés de uma evolução deste. Como, neste caso, os critérios são subjetivos, você pode aderir a qualquer uma das duas linhas, como preferir.

O Banias foi fabricado em uma técnica de produção de 0.13 micron, com 64 KB de cache L1 e 1 MB de cache L2 em versões de até 1.6 GHz. O barramento com o chipset (o principal ponto fraco do Pentium III) foi substituído pelo mesmo barramento de 400 MHz utilizado do Pentium 4, reduzindo o gargalo na conexão com a memória.

O Banias recebeu ainda o reforço das instruções SSE2 e uma versão aprimorada do SpeedStep, que gerencia dinamicamente o clock, tensão e componentes do processador, desativando os componentes que não estão em uso e reduzindo a freqüência nos momentos de pouca atividade, reduzindo bastante o consumo do processador. Um Banias de 1.6 GHz consome 24 watts ao operar na freqüência máxima, mas consome pouco mais de 4 watts quando ocioso, operando na freqüência mínima.

Junto com o Banias veio a marca "Centrino", uma jogada de marketing da Intel, para vender o pacote completo com o processador, chipset e placa wireless. Apenas os notebooks com os três componentes podem usar a marca "Centrino", criando uma certa pressão sobre os fabricantes.

Aqui temos o interior de um notebook Asus A6V, onde temos (da esquerda para a direita) o processador, chipset e placa wireless assinalados:


QuoteO Banias mostrou ser um processador promissor. Mesmo com o agressivo sistema de gerenciamento de energia (que causa uma pequena diminuição no desempenho, mesmo quando o processador está trabalhando em sua freqüência máxima), o Banias era cerca de 50% mais rápido que um Pentium 4 Northwood do mesmo clock (embora ficasse longe de superá-lo, já que operava a frequências de clock muito mais baixas).

Em 2004 foi lançado o Pentium-M com core Dothan, equipado com 2 MB de cache L2, melhorias no circuito de branch prediction (que minimiza a perda de tempo com operações de tomada de decisão), um reforço nas unidades de execução de inteiros e melhoria no acesso aos registradores. Combinadas, estas melhorias resultaram num ganho real de cerca de 8% em relação a um Banias do mesmo clock.

O Pentium M com core Dothan atingiu 2.0 GHz (Pentium M 755), com um consumo de apenas 21 watts, menos que o Banias de 1.5 GHz.

Como de praxe, foi lançado também uma versão do Celeron baseada no Dothan, o Celeron-M, que se tornou bastante comum nos notebooks de baixo custo. Ele é castrado de duas formas, a fim de não concorrer diretamente com o Pentium-M: vem com metade do cache e vem com o suporte ao gerenciamento de energia desativado, fazendo com que o processador trabalhe sempre na freqüência máxima, desperdiçando energia e reduzindo a autonomia das baterias.

Aproveitando o baixo consumo do Dothan, a Intel desenvolveu o Yonah, um processador dual-core para notebooks, produzido usando uma técnica de 0.065 micron. O Yonah original passou a ser vendido sobre a marca "Core Duo", enquanto uma versão de baixo custo, com um único core assumiu a marca "Core Solo".

Assim como o Dothan, o Yonah possui 2 MB de cache L2. Entretanto, ao invés de ser dividido entre os dois cores (1 MB para cada um), o cache é compartilhado, permitindo que ambos os cores acessem os mesmos dados, evitando assim duplicação de informações e desperdício de espaço. Nos momentos em que o processador está parcialmente ocioso, o segundo core pode ser completamente desligado (para economizar energia), deixando o primeiro core com um cache de 2 MB inteiramente para sí.

A desvantagem do cache compartilhado é que ele aumenta o tempo de latência: são necessários 14 ciclos para acessar alguma informação no L2 do Yonah, contra 10 ciclos do Dothan. Apesar disso, o Yonah possui dois núcleos, o que acaba compensando a diferença e proporcionando um bom ganho em relação ao Dothan. Outro pequeno ganho é proporcionado pela inclusão das instruções SSE3.

Um processador dual core melhora bastante a responsividade do sistema ao executar várias tarefas simultaneamente, já que os processos podem ser divididos entre os dois cores, porém faz pouca diferença ao rodar aplicativos leves. Porém, hoje em dia é comum deixarmos muitos programas abertos simultaneamente, sem falar nos processos em background, o que faz com que um processador dual-core realmente proporcione uma melhora significativa, embora a maioria dos benchmarks não mostrem isso, já que simulam o uso de um único aplicativo.

O Yonah inclui um sistema de gerenciamento de energia bastante agressivo, que desliga partes do processador ociosas, mantendo apenas um dos cores ativos em momentos de pouca atividade. Isso faz com que o consumo médio de um Core Duo, em tarefas leves, não seja muito diferente de um Core Solo do mesmo clock, o que acaba juntando o melhor dos dois mundos.

Ao executar tarefas pesadas, um Core Duo de 2.0 GHz consome 31 watts, contra 21 watts do Dothan do mesmo clock. Ou seja, mesmo com os dois cores ativos, o consumo aumenta menos de 50%, muito longe de dobrar, como seria de se esperar.

O departamento de marketing da Intel passou então a falar em "eficiência" ao invés de freqüências de clock mais altas. Os planos frustrados de lançar um processador de 10 GHz baseado no Pentium 4 foram varridos para debaixo do tapete e a meta passou a ser lançar processadores que executem mais processamento com menos energia, exacerbando os pontos fortes dos processadores Core Solo e Core Duo, baseados no core Yonah.

Este slide do IDF 2006 dá uma amostra do novo discurso. Ele mostra como a eficiência energética (o volume de eletricidade necessária para processar cada instrução) dos processadores vinha caindo desde o Pentium, atingindo seu nível mais baixo com o Pentium 4 Dual Core, até a introdução do Banias, Dothan e Yonah; uma posição pouco honrosa para o Pentium 4, que (segundo a própria Intel) precisa de 5 vezes mais eletricidade para fazer o mesmo trabalho:



QuoteApesar de possuir um desempenho por ciclo de clock muito superior os Pentium 4 e Pentium D, superando-os em muitas aplicações, o Yonah era um processador mobile e por isso era limitado a frequências de operação relativamente baixas.

Surgiu então o Conroe, uma versão aperfeiçoada do Yonah, com foco no uso em desktops, que deu origem às primeiras versões do Core 2 Duo, lançadas em junho de 2006. Embora seja um chip radicalmente diferente, ele é produzido utilizando a mesma técnica de 0.065 micron utilizada na produção do Cedar Mill e do Presler e utiliza o mesmo encapsulamento que eles.

Outra similaridade com o Pentium D é o uso do mesmo barramento de dados, o que permitiu que o Conroe continuasse utilizando o soquete LGA775, introduzido em 2004.

Praticamente todas as placas soquete 775 produzidas a partir de 2006 oferecem suporte ao Conroe, embora muitas precisem de um upgrade de BIOS. O grande problema são as placas antigas, que incluem quase todas as placas produzidas em 2004 e 2005 e parte das placas produzidas nos primeiros meses de 2006.

O Core 2 Duo precisa uma placa com um regulador de tensão compatível com a especificação VRM 11, que foi finalizada apenas em 2006. Sem um regulador de tensão compatível, a placa não tem como gerar as tensões utilizadas pelo processador e acaba sendo incompatível, mesmo que utilize um chipset compatível e um BIOS capaz de reconhecer corretamente o processador.

Todos os Core 2 Duo utilizam o soquete 775, sem nenhum tipo de compatibilidade com as antigas placas soquete 478, que ficam limitadas aos Pentium 4 e Celeron D.



QuoteO Conroe não inclui nenhum tipo de controlador de memória integrado. Esta continua sendo uma exclusividade do Athlon 64 e sua principal arma, que permite reduzir de forma substancial o tempo de acesso à memória, ajudando assim a reduzir a pressão sobre os caches. O Athlon 64 também possui 128 KB de cache L1 (64k dados + 64k instruções), o dobro do Conroe, que possui apenas 64KB (dividido em dois blocos de 32 KB, para dados e instruções).



QuoteEm compensação, o cache L1 do Conroe trabalha com 8 linhas de associação, contra apenas duas do Athlon 64. Isso torna o cache mais eficiente, aumentando a probabilidade da informação necessária ser encontrada. A segunda vantagem é o massivo cache L2, que além de maior, é acessado através de um barramento de dados de 256 bits, muito mais largo que o usado no Athlon 64 (que usa um barramento de 128 bits). Uma observação é que o Conroe voltou a utilizar um cache L1 tradicional, sem vestígios do "trace cache" usado no Pentium 4, que armazenava instruções decodificadas.

Até o core Manchester, a AMD utilizava um cache L2 com 12 tempos de latência, o que representava uma pequena vantagem em relação ao Conroe, que utiliza um cache L2 com 14 tempos. Apesar disso, a partir do core Brisbane, a AMD passou a também utilizar um cache L2 com 14 tempos, o que equilibrou a balança. Para efeito de comparação, o Prescott utilizava um cache L2 com absurdos 28 tempos de latência, muito mais lento que ambos.

A maioria das versões do Core 2 Duo utilizam bus de 1066 MHz (4x 266), o que ajuda a reduzir a latência do acesso à memória, reduzindo a vantagem do Athlon 64 neste quesito. Aparentemente, a Intel chegou à conclusão de que o novo cache, combinado com o uso de memórias DDR2 ou DDR3 de baixa latência tornam desnecessário o uso de um controlador de memória integrado.

Muitas das melhoras estruturais do Conroe em relação ao Pentium 4 e processadores anteriores da Intel já estavam disponíveis no Dothan e Yonah, mas vou abordá-las em conjunto para simplificar a abordagem.

Uma das melhoras mais significativas é o recurso batizado de Macro-fusion, que permite que diversos pares de instruções comuns sejam combinados em uma única instrução, ao invés de serem processados separadamente. Isto causa um efeito cascata, economizando espaço nos buffers, economizando processamento no agendador de instruções (scheduler), e assim por diante, resultando num ganho bruto de até 11%.

O Conroe possui 3 decodificadores de instruções simples e mais um decodificador de instruções complexas, 4 no total. Graças ao Macro-fusion, uma grande quantidade de instruções são combinadas (um par em cada 10 instruções, segundo os engenheiros da Intel), permitindo que em quase metade dos ciclos sejam decodificadas 5 instruções. O Athlon 64 possui apenas 3 decodificadores, capazes de lidar tanto com instruções simples (as mais comuns), quanto com instruções complexas. Isso significa que, na maior parte do tempo, os 4 decodificadores do Conroe levam uma grande vantagem, mas em alguns aplicativos que utilizem predominantemente instruções complexas, o Athlon 64 pode se sair melhor.

O Conroe leva uma grande vantagem também ao processar instruções SSE de 128 bits, pois é capaz de processá-las diretamente, num total de 3 instruções completas por ciclo. O Athlon 64 também possui três unidades SSE, mas nele cada instrução SSE precisa ser dividida em duas instruções de 64 bits, que são processadas separadamente. Ou seja, na prática, o Athlon 64 processa apenas três instruções SSE a cada dois ciclos, ou seja, o equivalente a apenas uma instruções SSE e meia por ciclo.

Atualmente, os conjuntos SSE, SSE2 e SSE3 são utilizados na grande maioria dos games, programas de processamento de vídeo e assim por diante, onde as instruções SSE são usadas como substitutas mais rápidas para instruções x87, executadas através do coprocessador aritmético. Isso acentua a vantagem do Conroe em aplicativos muito otimizados para as instruções SSE, sobretudo programas de compressão de vídeo e audio.

Só para efeito de comparação, o Pentium 4 possuía apenas duas unidades SSE, que, como as do Athlon 64, eram capazes de processar apenas meia instrução por ciclo. Ou seja, o Conroe possui três vezes mais processamento bruto em SSE que o Pentium 4.

Outro reforço são as unidades de ponto flutuante (que formam o coprocessador aritmético) capazes de processar 4 instruções de dupla precisão por ciclo, contra apenas 3 por ciclo do Athlon 64.

Em relação ao Presler, foi mantido também o suporte ao EM64T, que torna o Conroe compatível com os sistemas e aplicativos de 64 bits, desenvolvidos para o Athlon 64 (um pré-requisito para qualquer processador x86 atual) e também ao o Intel VT.

Você deve se lembrar do pipeline de 31 estágios do Pentium 4 com core Prescott. Sempre que o processador chega a uma operação de tomada de decisão, ele precisa esperar a conclusão do processamento da primeira instrução (o que, no Prescott, demora 31 ciclos) para saber quais instruções deve processar em seguida. Para não ficar parado, o processador utiliza o circuito de branch prediction, que escolhe o caminho mais provável, permitindo que o processador vá "adiantando o trabalho". O problema é que, sempre que é feita a escolha errada, todo o trabalho precisa ser descartado, causando uma grande perda de tempo.

O Conroe possui um pipeline de apenas 14 estágios, e um circuito de branch prediction muito aprimorado em relação ao Pentium 4. Isso faz com que ele tome bem menos decisões erradas e perca muito menos tempo (menos da metade do número de ciclos) em cada um, gerando uma grande aumento no número de instruções efetivamente processadas por ciclo de clock.

O mais interessante é que, apesar de possuir apenas 14 estágios e ser muito mais eficiente, o Conroe já atingiu 2.96 GHz logo no lançamento, se aproximando das freqüências atingidas pelo Pentium 4 e superando por uma boa margem o clock dos Athlon X2.

Os Core 2 Duo também oferecem suporte ao SpeedStep (como nos Pentium-M), que ajuda a reduzir o consumo para níveis ainda menores, sem prejudicar de forma perceptível o desempenho. Como o SpeedStep ativado, o processador reduz a freqüência de operação e a tensão (diminuindo consideravelmente o consumo), mas volta ao clock máximo assim que é executada alguma tarefa pesada. No Extreme X6800, por exemplo, o processador trabalha nativamente a 2.93 GHz e usa 1.34v. No modo de economia, a freqüência cai para 1.6 GHz e a tensão para apenas 0.9v, resultando num consumo de apenas 25 watts, similar ao de um Pentium III 900.

Temos aqui uma foto do Conroe antes do encapsulamento do processador, divulgada pela Intel. Na verdade, as versões baseadas no core Conroe com 2 e 4 MB de cache são idênticas, porém as de 2 MB tem metade do cache desativado antes do encapsulamento, como nos Celeron:


Trojan