UCPs: Um apanhado geral para uma escolha inteligente - Parte II
Autor: Marco Vidal | Publicado: 2008-02-03T15:03:00-08:00

1.2 FPUAlém do pipeline, a Unidade de Ponto Flutuante também é importantíssima para o desempenho da UCP. O nome em si não sugere muita coisa, por isso, para mostrar a importância da FPU do processador, nada melhor do que citar os casos onde a FPU é usada extensivamente. Aplicações de servidores, modeladores e renderizadores 3D e jogos são os exemplos mais notáveis.Os cálculos executados pela FPU envolvem matemática e geometria, daí suas aplicações. As FPUs são divididas em registradores e esses, por sua vez, possuem latência.Quem já acompanha há algum tempo esse mercado deve se perguntar por que o desempenho dos processadores da linha AMD-K6 era tão fracos quando se fazia menção à projeções 3D e jogos. Isso se dá por que a FPU do AMD-K6 é um projeto bastante elegante, com apenas uma unidade de baixa latência, contra duas do Pentium III e três do Athlon original (aliás, é um bom motivo para o desempenho dos processadores da arquitetura Quantispeed – vulgo K7 - terem um bom desempenho de FPU).Em relação aos processadores atuais, há uma equiparação de projetos de FPU. Tantos os processadores da arquitetura Stars, da arquitetura Hammer quanto os da arquitetura Core possuem um FPU de três unidades com latência mediana, sendo que os processadores da arquitetura Stars possuem uma vazão de dados de FPU mais alta que a das outras arquiteturas citadas, sendo superior, como se observa, em aplicações de servidores complexas à Core quando nas mesma condições.2. Processo de litografiaProcessadores são formados por milhões (quase bilhões, em alguns processadores x86) de transistores de silício (Si, um semicondutor) nanométricos interligados entre si trocando sinais elétricos. Enfatizando a quantidade de transistores, é de se imaginar que o tamanho dos transistores realmente seja irrisório – E o é.Esses transistores têm um tamanho. O processo de litografia determina o tamanho desses transistores. Ano após ano, a indústria de processadores (não só ela, mas também de qualquer espécie de chips) investe pesado em técnicas de redução do processo de litografia. Isso se dá por diversas vantagens: Redução do tamanho físico do processador, menor consumo elétrico e menor dissipação térmica são os principais motivos. É importante saber por que e como tudo isso é benéfico ao consumidor e aos fabricantes e é sobre isso que falaremos aqui.Primeiramente, a redução do espaço físico. Com transistores menores (na casa de milhões, 20nm é uma redução brutal), se gasta menos silício para a produção dos núcleos dos processadores, além de possibilitar a introdução de mais transistores sem aumentar o tamanho o núcleo. Isso é benéfico para o fabricante e para o consumidor, já que, enquanto o primeiro gasta menos silício, o segundo é beneficiado por processadores com mais e melhores recursos (a adição de mais Cache L2 é muito comum nesses casos).Depois, o menor consumo elétrico e dissipação de calor. Transistores menores consomem menos energia e possuem fuga de corrente menor – vulgo leakage, propiciando uma eficiência energética superior em relação a processos de litografia maiores. Isso é bastante benéfico ao consumidor, já que é possível ter processadores com freqüência de operação maior com dissipação de calor menor (em virtude da menor fuga de corrente) e consumindo menos.Por fim, há os diferentes processos de litografia adotados pela indústria, que evoluíram com o passar do tempo. Uma das mudanças mais notáveis foi a substituição de filamentos de alumínio por filamentos cobre na interligação dos transistores. Isso se dá em virtude do cobre ser um condutor elétrico superior ao alumínio e foi utilizado desde os processo de litografia de 180nm da AMD e 130nm (também conhecido como P860) da Intel.A técnica SOI (Silicon on Insulator) da IBM também foi um grande avanço nos processos de litografia dos processadores. A principal vantagem é a reduzidíssima dissipação térmica em relação ao processo tradicional, em troca de uma menor escalabilidade de freqüências de operação. Infelizmente, faltam maiores informações sobre esse processo.O aparecimento de portões de metal e háfnio – Vulgo High-K – em virtude dos cada vez menores portões dos transistores também desponta como uma implementação benéfica, pois diminui ainda mais a fuga de corrente tendo em vista o tamanho ínfimo do portão dos transistores.Os principais fabricantes de UCPs estão sempre na frente na corrida da diminuição dos transistores. A AMD oferece processadores em 90nm e 65nm com a transição para 45nm agendada para o quatro trimestre de 2008, enquanto que a Intel oferece processadores em 65nm e 45nm, tendo programado a transição para 32nm no último trimestre de 2009. Abaixo, a relação dos atuais processadores de ambas e seus respectivos processos de litografia.http://img220.imageshack.us/img220/5673/implekj6.jpg3. Quantidade de núcleosApós o abandono da “guerra dos MegaHertz”, os fabricantes logo procuraram algum fator que propiciasse a chamada “obsolência programa” para forçar os usuários a trocarem de UCP com certa periodicidade. Além da inclusão de novos e atrativos recursos (x86-64, virtualização e técnicas de segurança por hardware), o bode expiatório dessa nova estratégia envolvia a inclusão de mais núcleos de processamento por UCP.Diferente do que muitos podem pensar, uma UCP binuclear (ou Dual-Core, ou seja, de dois núcleos) não é duas vezes mais poderosa que uma UCP mononuclear (ou Single-Core, ou seja, com um núcleo), se aplicando o mesmo conceito às UCPs trinucleares (Triple-Core), quadrinucleares (Quad-Core) e octanucleares (Octo-Core). Entretanto, o uso de UCPs multinucelares traz algumas vantagens bastante convenientes.Primeiramente, UCPs multinucleares propiciam maior fluidez em ambiente em multithreading. Significa que, com uma UCP com mais de um núcleo, a execução múltiplas tarefas dedicadas é muito mais suave, sem que uma tarefa interfira negativamente no desempenho de outra (ou que interfira menos). Essa fluidez aumenta proporcionalmente com a quantidade de núcleos, mas o sistema operacional precisa saber lidar com vários núcleos, como é o caso do Windows XP e do Windows Vista (o suporte a mais de dois núcleos é melhor no Vista que no XP), tal como Linux, Mac OS X e FreeBSD com kernels compilados para operação em SMP.Em outra instância, com uma aplicação otimizada para lidar com múltiplos núcleos, ganhos performáticos na base de até 60% ~ 80% já são palpáveis com algumas aplicações atuais, em um casos de UCPs mononucleares contra binucleares, por exemplo. O aproveitamento de mais que dois núcleos ainda está longe de ser considerado excelente, mas em aplicações de modelagem 3D ou mesmo de edição de vídeo, ganhos na base de 40% com o uso de UCPs quadrinucleares em relação às UCPs binucleares já são possíveis.http://img50.imageshack.us/img50/2175/implemh8.jpgAinda há as diferenças de implementação dos múltiplos núcleos, que podem se dar de duas maneiras: integrando todos os núcleos em um único DIE (pastilha de silício que contém o núcleo o processador) ou remanejando núcleos em mais de um DIE. A primeira implementação também chamada de “união nativa de núcleos”, onde todos os núcleos se concentram em apenas um DIE, abolindo qualquer tipo de latência na comunicação dos núcleos entre si, além da diminuição de inconsistências com os dados dos níveis de Cache presentes em cada núcleo, por exemplo. A implementação de todos os núcleos em um DIE apenas se faz ainda mais vantajosa quando o uso de todos os núcleos é mais intensivo, pois, nesses casos, a ausência de latências na comunicação dos núcleos é crucial para que a performance não caia em função disto. A desvantagem óbvia desse tipo de implementação é o tamanho do DIE, que torna muito maior que no caso da implementação em mais de um DIE, dificultando a fabricação e rendendo menos chips por waffer.A segunda implementação citada é chamada de “união distribuída de núcleos” ou mesmo satirizada como “união via araldite ou durepox”. No caso de um processador quadrinuclear com esse tipo de implementação teria dois núcleos em cada DIE ou um núcleo em cada DIE, no caso de um binuclear, por exemplo. A vantagem mais gritante desse tipo de união se dá pela fabricação, pois é possível fabricar os chips como se eles fossem mononucleares (como ocorre com os Pentium D) ou binucleares (como ocorre com os Core 2 Quad), propiciando um aproveitamento muito maior de chips por waffer, dado o processo de litografia. A desvantagem óbvia é o acréscimo de latências de acesso para a intercomunicação dos núcleos de DIEs diferentes, tendo que recorrer ao barramento frontal para tal, tornando a performance menos escalável em relação à implementação nativa.Por fim, as ofertas dos principais fabricantes de UCPs nesse quesito. A AMD oferece processadores mononucleares das linhas Sempron e Athlon 64, binucleares das linhas Athlon 64 X2, Turion 64 X2 e Opteron séries 2200 e 8200, trinucleares da linha Phenom 8000 e quadrinucleares das linhas Phenom 9000 e Opteron série 2300 e 8300, enquanto que a Intel oferece processadores binucleares das linhas Celeron Dual-Core, Pentium Dual-Core, Core 2 Duo, Xeon séries 3000, 3100, 5100, 5200 e 7200, Itanium 2, além dos quadrinucleares das linhas Core 2 Quad, Xeon séries X3200, X3300, 5300, 5400 e 7300.4. Freqüência de operaçãoA freqüência de operação das UCPs foi, por muito tempo, critério de desempate na escolha de um ou outro modelo. Entretanto, com a diversificação profunda entre projeto de engenharia de UCPs que houveram nesses últimos tempos, seria um tanto irresponsável se guiar apenas por esse parâmetro.Como já foi bem dito pelo colega Marin em um de seus fabulosos artigos, “Hz” (Hertz, lê-se rértiz) é um ciclo de eletricidade que passa pelos transistores do processador. Os processadores atuais para computadores de mesa possuem freqüências de operação na faixa de 1.6GHz a 3.2GHz, que apesar de não serem valores espantosos (muito menos se lembrarmos dos roadmaps da Intel de 2000 prevendo processadores acima da marca de 10GHz), são valores balanceados e proporcionam boa performance... Ora, mas “balanceados”? A regra da vez não dizia que o desempenho não aumenta conforme freqüência aumenta?De fato que sim, mas há alguns malefícios impostos pela física no aumento das freqüências de operação. Primeiramente o consumo elétrico que cresce de forma exponencial em função na necessidade de maiores tensões elétricas para alimentar os transistores com eficácia. Depois, o aquecimento em virtude das fugas de corrente, que se acentuam às freqüências de operação muito elevadas. Por isso, os fabricantes tentam encontrar um equilíbrio para que o desempenho aumente, sem que o consumo elétrico e a dissipação de calor aumentem muito. É a chamada “performance por watt”, equilibrando o desempenho com o consumo elétrico, o que resulta em mais eficiência.Abaixo, dois gráficos do AnandTech ilustrando bem a relação de consumo elétrico e aquecimento x freqüência de operação com o processador Core 2 Extreme QX9650:http://img106.imageshack.us/img106/6571/overclockregionsfx9.th.jpgAumento das freqüências de operação de olho no consumo elétrico. Observe que à partir do rompimento da barreira dos 4GHz, o consumo cresce desproporcionalmente em relação ao aumenta da freqüência de operação.http://img172.imageshack.us/img172/9978/16151cj3.pngEfeito da fuga de corrente é crônico conforme a freqüência de operação aumenta.