Essa é uma semana na qual a história está sendo feita. A Intel conforme anunciado no IDF de setembro passado, começou a entregar os processadores de quatro núcleos para o mercado. O objetivo desta coluna é organizar um pouco as idéias e discutir a origem do desenvolvimento do Quad Core na perspectiva da Intel. É […]
Essa é uma semana na qual a história está sendo feita. A Intel conforme anunciado no IDF de setembro passado, começou a entregar os processadores de quatro núcleos para o mercado. O objetivo desta coluna é organizar um pouco as idéias e discutir a origem do desenvolvimento do Quad Core na perspectiva da Intel. É interessante ver como ao colocar todos os fatos que vivenciamos assim juntos fica mais fácil entender o contexto e a evolução.
Este momento “quad core” que estamos iniciando pode ser considerado conseqüência direta da Lei de Moore, ou seja, por conta da escalada dos Ghz dos processadores. Ao dobrar a quantidade de transistores a cada dois anos, isso provocou o aumento da energia dissipada (calor) quase que na mesma proporção. Nessa progressão seria cada vez mais difícil conter o consumo de eletricidade e seguir aumentando a velocidade dos processadores, e principalmenteainda mantê-los na temperatura correta.
Na época do Pentium 4 a Intel identificou que haveria como extrair um pouco mais doprocessador. Poderiam duplicar algumas áreas do processador a um custo muito pequeno. Isso permitiu dobrar o controle de execução de instruções, provendo uma segunda fila de decodificação de comandos. Na prática uma parte da função do processador foi replicada, mas não tudo. Isso permitiu desenvolver um tipo incipiente de paralelismo. Softwares que pudessem lidar com processos em paralelo (threads) teriam grandes benefícios. Nascia o HT ou Hyper Threading. Assim o próprio sistema operacional “acha” que existe um segundo processador e divide parte de seus processos, resultando em mais agilidade.
Com o lançamento em 2003 da plataforma Centrino, um projeto novo, que visava o ambiente de mobilidade a Intel acertou a mão. Os processadores trabalhando na metade da freqüência dos Pentium 4 tinham o mesmo desempenho (ou até melhor). A perseguição desenfreada aos Ghz arrefeceu. A versão de 4 Ghz do P4 nunca chegou a existir comercialmente, só alguns vorazes overclockers chegaram e superaram esta marca. Embora nascido para notebooks, não demorou muito tempo para que entusiastas desenvolvessem adaptadores para usar o processador da plataforma Centrino, chamado Pentium-M, em computadores tipo desktop. Estes sinais e o próprio sucesso da plataforma Centrino mostraram que eles tinham um projeto vencedor nas mãos e de grande futuro.
Comparado com o Pentium 4, o Pentium-M tinha uma desvantagem. Não tinha Hyper-Threading, pois como era outro projeto, outra arquitetura, não era tecnicamente viável sua implementação. E mesmo assim com metade dos Ghz ele suplantava os Pentium 4. A evolução natural nessa hora seria dobrar o numero de processadores ou usando processamento simétrico (SMP) com mais de um processador em cada placa-mãe ou criar um chip dual com duas unidades de processamento conjugadas.
Foi iniciada a corrida para o multi-core. A Intel desenvolveu duas linhas de chips dual core. Os Pentium 4 que foram revisados deram origem ao Pentium-D e a linha do Pentium-M evoluiu para os Core Duo e mais recentemente Core 2 Duo. No meio do caminho a linha de processadores para servidores, os processadores Xeon, também tiveram uma revisão na sua arquitetura trazendo-os para mais perto da arquitetura do Pentium-M.
O uso de dois núcleos trouxe benefícios sensíveis na utilização dos processadores. Ganhos de até 85% em relação ao processador sozinho e principalmente uma melhoria na usabilidade do computador pois o mesmo tornou-se muito mais ágil ao responder às solicitações, mesmo em situações de estresse (algum processamento pesado rodando em paralelo).
Mas o apetite por performance era maior do que tudo isso. Motivado também pelo aumento constante da quantidade de dados e informações tratados nos computadores, sejam eles pessoais ou servidores corporativos, um novo degrau deveria ser galgado. Se tinha dado certo a receita do Dual Core porque não repeti-la? Este foi o caminho, não tão fácil, nem tão simples mas o desafio foi aceito e isso levou a Intel para a primeira geração dos processadores de núcleo quádruplo, os chamados Quad-core.
Construindo a solução com quatro núcleos
A história se repete na evolução do dual core para o quad core. Quando o primeiro Pentium de núcleo duplo foi criado a solução encontrada pela Intel foi uma arquitetura um pouco mais simples, mas que provou ser eficaz embora não a mais eficiente possível. Na época a concorrente AMD já apresentava sua solução de núcleo duplo e a Intel não podia deixar a concorrente se igualar ou superá-la.O Pentium-D é um dual core composto por dois núcleos lado a lado, cada um com sua própria memória cache, que não se comunicavam.
[singlepic id=8013 w=320 h=240 float=]
Quando foi lançada a geração Core 2 Duo, uma interessante evolução e extensão da família Core Duo (somente para notebooks), a Intel trouxe os chips fabricados com tecnologia de 65 nm (nanômetros) em larga escala para suas linhas de produção. Cada passo dado na miniaturização do processo de fabricação resulta em uma densidade muito maior de transistores (que são as unidades atômicas e lógicas dos processadores) em uma mesma área de silício. Essa escalada da miniaturização que vem ocorrendo de forma quase paralela à lei de Moore (diria ser uma decorrência da mesma) acabou por viabilizar o salto de tecnologia que resultou na família de processadores Core 2 Duo. Esta por sua vez foi a base sólida para a implementação do quad-core que herdaram estas características, porém dando mais um passo a frente. A principais características são e inovações da família Core 2 Duo (dual e quad core):
: Como são dois núcleos de processamento e cada núcleo pode executar até 4 instruções em um único ciclo, isso agiliza sobremaneira a velocidade final do conjunto. Este benefício é obtido por uma técnica chamada “macro fusion” que combina as instruções para execução conjunta. Em detalhes, quando as instruções são lidas da fila, estas precisam ser decodificadas em micro operações (que são de fato executadas pelo processador). Nessa hora algumas instruções quando decodificadas podem ser agrupadas. Claro que isso depende de algumas instruções devidamente encadeadas, mas a definição das instruções e micro operações foram elaboradas visando esta possível otimização. Mais instruções por cliclo de CPU são obtidas desta forma. Isso reduz em até 15% o esforço de carga de instruções e até 10% de redução nas micro operações (uops). Se isso parece pouco, saiba que de gota em gota os benefícios são acumulados e fazem muita diferença.
Smart Memory Access : algoritmos que tentam antecipar a leitura dos dados já estão presentes nos processadores há algum tempo. Porém esta nova tecnologia se encarrega de pré carregar dados da memória para o cache (que é muito mais rápido) e ao mesmo tempo se possível executar um conjunto de instruções fora de ordem (para depois sincronizar as informações) agilizando muito o paralelismo no processamento. Esta técnica provoca uma utilização muito mais intensa dos “pipelines” que se traduz na eficiência do processador. Esta técnica garante que os dados podem ser usados o mais cedo possível e obtido do local mais “próximo” possível. Mesmo que haja instruções a serem executadas antes pelo processador, este mecanismo detecta que a carga de dados pode ser antecipada (execução fora de ordem), escondendo do software uma latência que naturalmente aconteceria. Interessante é que existe um algoritmo que “prediz” qual bloco de dados será usado em função de “padrões” de acesso naquele momento. São três unidades de pré-carga de dados por núcleo mais duas unidades dinamicamente compartilhadas para o uso do cache L2. Como estas cargas ocorrem em paralelo à execução de instruções, o máximo que pode acontecer é aquele bloco lido não ser usado, mas se puder ser usado o benefício é muito grande.
[singlepic id=8014 w=320 h=240 float=]
[singlepic id=8015 w=320 h=240 float=]
Esta geração (dual e quad-core) primam pela eficiência no consumo de energia. Uma das formas muito interessantes de se obter isso é pelo alto grau de granularidade de uso das partes de cada núcleo. Parte independentes do núcleo podem ser desativadas em certos momentos visando esta economia. Por exemplo as unidades de “prefetch” de dados (que implementam o Smart Memory Access) podem ser desligadas reduzindo o consumo (tendo como contrapartida um benefício menor no desempenho).
Complementando as principais características da família Core 2 Duo, ainda são importantes a capacidade de incrementar ambientes de virtualização (Intel VT) e barramento operando até 1066 Mhz no front side bus.
Mas porque o Core 2 Duo é tão importante assim para a geração Quad-core? Muito simples. Esta primeira geração quad-core, chamada de Woodcrest,analogamente à primeira dual core consiste de dois processadores Core 2 Duo dual core lado a lado (formando os quatro núcleos). A Intel justifica esta forma de implementação de várias formas:
– Uso mais eficiente do waffer de silício na hora da fabricação
– Menor custo de fabricação. Na verdade isso advém do fato de que se um chip contiver um núcleo defeituoso, quatro núcleos seriam perdidos.
– Manufatura mais flexível pois a mesma fábrica pode lidar com os chips dual-core e quad-core sem imensos investimentos adicionais.
– Compatibilidade de soquete para o processador, que garante proteção do investimento dos usuários.
Estes motivos são justos e corretos. Porém existe um o outro lado desta história, contado nas entrelinhas. A Intel não podia correr o risco de sua rival AMD fazer chegar ao mercado processadores de quatro núcleos antes dela. Além disso, produzir chips de quatro núcleos que não sejam 2+2 como da geração atual demanda muito mais investimento tanto em novos processos produtivos como avanço da tecnologia para obter índices mínimos de perdas por chips defeituosos (que são rejeitados).
Fazendo um balanço de todos os argumentos apresentados pode-se concluir que a Intel fez o melhor quad-core que poderia fazer com a tecnologia atual e visando o menor prazo possível para colocação no mercado. O momento também é oportuno, pois os fornecedores de software já têm produtos mais maduros e prontos para tirar proveito de sistemas que podem executar múltiplos processos simultaneamente como Oracle 10g, SQL Server 2005, Sybase, SAP 9, BEA Weblogic, MS Exchange.
Este amadurecimento dos fornecedores de software ocorreu além do lado técnico. Geralmente todos estes exemplos citados tinham esquemas de licenciamento baseados em número de processadores. Com a chegada de vários processadores em um único chip este conceito ficou no mínimo confuso. Microsoft, Oracle, SAP etc. já definiram suas novas políticas de licenciamento que contemplam este novo cenário. A Microsoft por exemplo adotou como uma das formas a venda por processador (chip) independente da quantidade de núcleos (1, 2 ou 4). Cada fornecedor oferece um mix opções de licenciamento.
São dois os processadores Quad-core anunciados no IDF em setembro em San Francisco pela Intel e tornados disponíveis esta semana : Core 2 Duo Extreme e Xeon 5300. Cada um deles visa mercados distintos, compartilhando várias características (oriundas da geração core 2 duo) e trazendo suas especificidades.
– Core 2 Extreme QX 6700 (Kentsfield) contém 4 núcleos, fabricado em 65 nm, voltagem 1.238 V, socket 775 LGA, freqüência 2.66 Ghz, cache L1 de4x 64kb (32kb para dados e 32 kb para instruções), cache L2 de 8 Mbytes sendo 2 x 4 Mbytes (um cache de 4 Mbytes para cada dois núcleos), MMX, SSE, SSE2, SSE2, SSE4 (128 bits), EMT64 (64 bits) e VT (virtualização)
– Xeon 5300 (Clovertown) : contém essencialmente as mesmas características do Core 2 Extreme porém como é usado por servidores de aplicações nas empresas, seu ecossistema técnico é diferenciado privilegiando este tipo de uso. Por exemplo, o chipset usado nas soluções Xeon permitem que sistemas com até 64 Gbytes de RAM sejam construídos. Permitem também acesso à memória em alta escala e alta velocidade, sendo possível obter picos de até 21 Gb/s, bem como usando FSB de 1333 Mhz taxas de 21 Gb/stambém são possíveis no barramento. Isso representa um crescimento de quase três vezes em relação à plataforma Xeon que existia no começo de 2005. O consumo deste chips é cerca de 80 watts, muito menos que as gerações anteriores. Está previsto para 2007 uma versão ainda mais econômica que consumirá apenas 50 watts. Outra característica interessantes do Xeon 5300 quad-core é sua compatibilidade com as placas mãe existentes para a família 5000. Assim apenas com uma provável atualização de BIOS e troca do processador os proprietários atuais de Xeon 5000 podem usufruir do quad-core.
[singlepic id=8016 w=320 h=240 float=]
O aspecto mais discutido da geração quad core atual é o incremento de performance que ela traz, ou seja, o quanto se ganha ao substituir dual core por quad core. Isso é muito dependente do tipo de aplicação. Testes feitos por vários laboratórios independentes ao redor do mundo mostram dados muito “amplos”. A faixa de ganhos vai de 10% a 80% . O motivo para isso é que há muitos modelos de uso e tipos de aplicações no mercado e estas se beneficiam de formas muito distintas. A Intel oficialmente divulga um número mais realista de 50% a 60% para o Xeon5300 e 80% para o QX6700. Como qualquer investimento as empresas realizaram análises de viabilidade econômica e análises de custo-benefício. A verdade é que obter pelo menos 50% mais de desempenho é um número muito expressivo e se uma empresa vive uma situação de gargalo e necessidade de poder computacional, o quad-core é uma solução já disponível desde esta semana para os fabricantes. As críticas que se fundamentam na expectativa de ganhos maiores, algo como 85% a 95% são quase acadêmicas (dependerá do custo benefício), mas essencialmente corretas. Isso é um indicativo forte que a Intel tem um campo para trabalhar duro e progredir ainda mais seus processadores de múltiplos núcleos. O preço final destes processadores irá nortear seu posicionamento no mercado e seu grau de adoção imediata. Não pensem que isso irá parar nos quatro núcleos. Processador de oito núcleos não foi anunciado, mas deve estar alguns poucos anos a frente.E a história se repetirá, mais um grande passo, talvez já na tecnologia de 45 nm ou quem sabe menor ainda!