Sítio do Piropo

B. Piropo

< Coluna em Fórum PCs >
Volte
13/03/2006

< IDF Spring 2006: Microarquitetura Intel Core >


A edição Spring 2006 do Intel Developer Forum foi realizada em San Francisco, CA, EUA, de 7 a 9 deste mês (março/2006). Como de hábito boa parte da equipe do ForumPCs estava lá e certamente vocês terão mais novidades dos demais colunistas. Aqui vocês encontrarão alguns comentários sobre o tema que mais chamou minha atenção: a nova microarquitetura que a Intel desenvolveu para seus futuros microprocessadores, dos quais três exemplares virão à luz ainda este ano. Tema que justifica uma pequena interrupção na série de colunas sobre “Computadores”.

Antes de prosseguirmos cabe uma observação. Como em toda edição do IDF, a Intel distribuiu uma apreciável quantidade de material técnico aos participantes, inclusive uma cópia de cada apresentação exibida nas palestras técnicas e sessões de abertura (“keynotes”). Este material vem fartamente ilustrado. Fica então esclarecido desde já que a maior parte do material gráfico que ilustra esta coluna foi assim obtida. As eventuais alterações correm apenas por conta da conveniência de traduzir legendas para o português. Isto posto, vamos ao que interessa.

O que levou a Intel a alterar a microarquitetura da nova geração de seus chips foi a necessidade cada vez mais premente de aliar o melhor desempenho à economia de energia. Na verdade esta é uma preocupação não apenas da Intel como também de toda indústria eletro-eletrônica americana, uma preocupação que já extravasa para as demais indústrias (inclusive e principalmente a automotiva) não apenas nos EUA como em todo o mundo. Parece que, afinal, a humanidade se deu conta que as fontes de energia tornam-se cada vez mais escassas, os combustíveis fósseis (recursos não renováveis) como o petróleo e carvão mineral estão à beira do esgotamento e a produção de combustíveis extraídos da biomassa (recursos renováveis como o álcool e biodiesel) compete com a de alimentos na utilização de terrenos férteis. Como a sobrevivência da espécie humana depende tanto da disponibilidade de alimentos quanto da de energia, algo terá que ser feito para acomodar as duas demandas e se não começarmos agora dentro de algumas décadas será demasiadamente tarde (fica o lembrete para os jovens leitores, que herdarão e habitarão este planeta daqui a algumas décadas; para mim, que então já não mais farei parte da tripulação desta frágil nave espacial chamada Terra, a questão, embora aflitiva, tem um interesse puramente filosófico).

Mas, voltando à nova microarquitetura...

O nome que a Intel escolheu para ela é “Intel Core” (aliás, grande parte da estratégia mercadológica da Intel se apóia na palavra, “core”, que significa “núcleo”, “centro”, “alma” e que deriva do latim “cor” que em português gerou “coração”, “coragem”, “concórdia” e “recordar”, entre outras; mas, que diabos, voltemos à microarquitetura senão esta coluna não acaba nunca...) Diz a empresa em seu material de divulgação que: “A microarquitetura Intel Core... é a nova base de apoio da Intel para fornecer um desempenho ainda mais eficiente do ponto de vista energético... uma microarquitetura de baixo consumo de energia, grande desempenho, altamente escalável que pode ser usada tanto em micros de mesa quanto portáteis e servidores”.

Ora, reduzir o consumo de energia de um microprocessador não é muito difícil. Basta, por exemplo, diminuir sua freqüência de operação. Mas isso provocaria uma imediata redução no desempenho. Portanto o problema não consiste apenas em reduzir o consumo, mas em fazê-lo sem reduzir (de preferência, aumentando) o desempenho. Ou seja: é preciso aumentar a eficiência energética. Que, segundo a Intel, consiste em fornecer o máximo de desempenho e potencialidade (“capability”) por unidade de potência consumida, um conceito que a Intel batizou de “desempenho por watt”. E que constitui uma questão crucial não apenas nas plataformas móveis (micros portáteis), onde influi diretamente na duração da carga da bateria, como também nos chamados “data centers”, onde dezenas, eventualmente centenas de servidores trabalham em paralelo somando seus consumos de energia e gerando uma dissipação de calor infernal.

No campo da microarquitetura, a eficiência energética depende de dois fatores. O primeiro mede a energia consumida por instrução executada. O segundo exprime a relação entre novas potencialidades e potência consumida. De acordo com a Intel, sua nova microarquitetura contempla ambos. Ela foi concebida a partir dos avanços obtidos com o projeto “Banyan” que resultou no Pentium M, o modelo de processador criado especificamente para plataformas móveis (micros portáteis), onde minimizar o consumo de energia é fator preponderante de sucesso devido à sua influência na duração da carga da bateria. E o microprocessador se mostrou tão bem sucedido que a Intel decidiu estender o conceito de otimização de consumo de energia para as demais plataformas. Esta é a filosofia que orienta a concepção da microarquitetura Intel Core.

Figura 1: (Clique e amplie)
Distinção entre “arquitetura” e “ microarquitetura”

Neste ponto é conveniente traçar uma distinção clara entre o que vem a ser “arquitetura” e “microarquitetura” de um processador. São coisas bastante diferentes. Segundo a Intel, de cujo material de divulgação foi adaptada a Figura 1, a “arquitetura” de um microprocessador tem a ver com a definição e compatibilidade de seu conjunto de instruções. Veja, na Figura 1, três exemplos de diferentes arquiteturas, a EPIC, usada no Itanium, a IXA, usada na linha de processadores XScale da Intel (para micros de mão) e a IA-32, usada na linha de computadores e servidores (Pentium e Xeon). Um programa desenvolvido para um Pentium de 60 MHz lançado em 1993 rodará perfeitamente em um novo Xeon porque eles adotam a mesma arquitetura, a IA-32. O conjunto de instruções desses dois processadores é inteiramente compatível. Já este mesmo programa não rodará em um Itanium, que adota uma arquitetura diferente (EPIC, Explicit Parallel Instruction Computing) e que, portanto, usa um conjunto de instruções diferentes. Muitas das instruções do programa desenvolvido para o Pentium não serão reconhecidas pelo Itanium. Como também não serão reconhecidas por um micro de mão equipado com um pequeno microprocessador XScale, que adota a arquitetura IXA (Intel Internet eXchange Architecture), com seu próprio conjunto de instruções.

Mas uma mesma arquitetura, como por exemplo a IA-32 da Intel, pode ser implementada em diferentes chips, com diferentes projetos internos (criados em diferentes “wafers”, ou seja, cujo conjunto de transistores que compõem o processador estão dispostos e interligados de maneira diferente). Compare, por exemplo, um Pentium 4 com um Pentium M. Ambos adotam a mesma arquitetura, ou seja, aceitam o mesmo conjunto de instruções e qualquer programa que roda em um rodará igualmente no outro. Mas por que será que um Pentium 4, mesmo rodando na mesma freqüência de um Pentium M, “esquenta” mais?

Porque sua microarquitetura é diferente, o que o faz dissipar maior potência. Embora aceitando as mesmas instruções e rodando os mesmos programas, o núcleo de um Pentium 4 é diferente do de um Pentium M. Seus transistores são interligados de forma diferente, dispostos de maneira diferente, em suma, a “implementação” do hardware é diferente. É esta disposição, este projeto, esta forma de interligar transistores que constitui a “ microarquitetura”.

Em suma: a “arquitetura” de um microprocessador tem a ver com o conjunto de instruções, com o número, tamanho e nome de seus registradores internos, tamanho da “palavra” e das posições da memória principal, tudo aquilo que é “visível” para um programador. Quem acompanha a série de colunas “Computadores” que venho publicando aqui no ForumPCs tem uma boa idéia do que seja a arquitetura de um microprocessador, já que recentemente concebemos uma, desde o número e tamanho de registradores até o conjunto de instruções. Todos os processadores listados na base da Figura 1, desde o Pentium original de 1993 até o Pentium M, passando pelos Pentium Pro, II, III, 4, D e Xeon, adotam a mesma arquitetura (a IA-32), ou seja, têm o mesmo número de registradores, do mesmo tamanho, fazem acessos à memória principal de 64 bits cada e têm conjuntos de instruções (“instruction sets”) compatíveis.

Porém, apesar disso, são diferentes. E onde estão as diferenças? Na fabricação. Na chamada “implementação”, ou seja, na gravação dos componentes na fina camada de silício onde são criados. Enquanto a “arquitetura” de todos aqueles processadores se manteve a mesma, sua “microarquitetura” evoluiu ao longo dos anos, acrescentando novas capacidades (como virtualização, economia de energia e coisas que tais) que, no entanto, não prejudicaram sua compatibilidade com os modelos anteriores.

Em suma: “arquitetura” de um microprocessador é um conceito que tem a ver com a lógica (programação, software) enquanto “microarquitetura” é um conceito físico (implementação, fabricação em silício, hardware). O que a Intel pretende lançar até o final do ano são três novas famílias de processadores que, embora mantendo a mesma arquitetura dos chips da linha de micros de mesa, servidores e plataformas móveis, apresentarão um desempenho melhor e um menor consumo específico de energia (consumo por instrução).

Estas famílias são hoje conhecidas pelos nomes de código de Merom, Conroe e Woodcrest. Todos serão fabricados usando a nova tecnologia de camada de silício de 65 nm (nanômetros). O Merom é destinado a micros portáteis e deverá suceder a linha Core Duo, porém mantendo um desempenho semelhante (é bom lembrar que o Core Duo descende diretamente do Pentium M, codinome Banyan, o “pai” da nova microarquitetura, e portanto já está otimizado no que toca ao consumo de energia). O Woodcrest é destinado a equipar servidores e portanto será o sucessor do Xeon. Segundo a Intel, comparado a um Xeon de núcleo duplo de 2,8 GHz e dois caches de 2 MB cada, os novos Woodcrest oferecerão desempenho 80% superior e um consumo de energia 35% menor. Já os Conroe são destinados aos micros de mesa, sendo portanto o sucessor do Pentium D. Ainda segundo a Intel, comparado com um Pentium D 950 (de núcleo duplo, operando em 3,4 GHz com um cache de 4 GB, o processador “topo de linha” da Intel para micros de mesa) o Conroe oferecerá um desempenho 40% superior aliado a um consumo de energia 40% menor.

Figura 2: Os novos chips da Intel

Todos eles serão lançados ainda este ano, provavelmente no início do segundo semestre. Mas a Intel tem planos de ampliar a adoção da nova arquitetura, desta vez para os processadores de núcleo quádruplo fabricados com tecnologia de 45 nm, que deverão ser lançados no próximo ano (codinomes “Kentsfield” para micros de mesa e “Clovertown” para servidores). Veja na Figura 2 o “wafer” de um destes processadores, o primeiro com a tecnologia de 45 nm, apresentado no IDF Spring 2006.

Figura 3: Wafer de processador de núcleo quádruplo, 45 nm.

Mas, afinal, em que consistem as novidades na microarquitetura Intel Core? Um resumo delas pode ser visto na Figura 4, um dos slides apresentados durante a palestra de Steve Pawlovski, Chefe do Grupo de Tecnologia, Arquitetura e Planejamento da Intel durante o IDF Spring 2006, onde são destacadas as características de baixo consumo de energia (“Low Power”), alto desempenho (“High Performance”) e escalabilidade (“Scalable”) juntamente com o esquema do núcleo dos três novos processadores a serem fabricados com tecnologia de 65 nm, codinomes Woodcrest otimizado para servidores, Conroe otimizado para micros de mesa e Merom otimizado para micros portáteis. Do lado esquerdo, as cinco principais inovações da arquitetura Intel Core. Vejamos quais são, resumidamente.

Figura 4: A nova microarquitetura Intel Core

A primeira, execução dinâmica larga (“Wide Dynamic Execution”), consiste em uma alteração na implementação das micro-operações nas quais são decompostas as instruções. Os núcleos das instruções foram “alargados” (sua capacidade de conter dados foi aumentada). O resultado disso é que, na estrutura em “pipeline” adotada pela arquitetura IA-32 (onde diversas instruções são executadas simultaneamente, cada uma em um estágio interno do microprocessador), o número de instruções executadas por ciclo de máquina aumentou de três para quatro em uma “pipeline” de 14 estágios (complicou? Pois tenha paciência que dentro de algumas semanas o conceito de “pipelining” será abordado na série de colunas “Computadores” e logo você destrinchará esse parágrafo). Com isto não apenas se consegue uma melhoria no desempenho (mais instruções no mesmo tempo) quanto no consumo específico de energia (mais instruções consumindo a mesma potência).

A segunda, dispêndio de potência inteligente (“Intelligent Power Capability”), reduz significativamente o consumo de potência através de uma alimentação “inteligente”, que fornece energia apenas àqueles subsistemas do processador que necessitam de alimentação em um dado momento.

A terceira, cache “esperto” avançado (“Advanced Smart Cache”), permite que os caches de memória usados pelos dois núcleos sejam compartilhados. Voltaremos a ela adiante.

A quarta, acesso “esperto” à memória (“Smart Memory Access”), reduz os efeitos da latência no acesso à memória principal, otimizando e acelerando o acesso ao subsistema de memória.

A quinta, finalmente, melhoria avançada dos meios digitais (“Advanced Digital Media Boost”; sim, eu sei que a tradução não faz muito sentido, mas foi o melhor que consegui), consiste em um aprimoramento do subconjunto de instruções SSE (Streaming SIMD Extension), que consiste de instruções destinadas a lidar simultaneamente com um grande número de dados. Este subconjunto, de grande importância nas aplicações multimídia, foi significativamente aprimorado, tendo seu tempo de execução reduzido. Agora, na microarquitetura Intel Core, todas as instruções deste subconjunto são executadas em um único ciclo.

Achou tudo isto muito complicado?

Bem, a culpa não é sua (nem minha...), o negócio é complicado mesmo. Afinal, trata-se da alteração na microarquitetura de chips que fazem parte do que há de mais moderno na tecnologia de microprocessadores, portanto não poderia ser uma coisa simples.

Por isso mesmo não vou poder explicar cada uma delas em detalhes. A primeira, por exemplo, depende de conceitos como “pipelining”, “predição de ramo”, “execução fora de ordem”, “multiescalaridade”, que a maioria de nós (ainda) desconhece (mas que conhecerá breve: todos eles fazem parte dos temas que serão abordados na série “Computadores”).

Mas como não me agrada discutir aquilo que não posso destrinchar, prometo voltar ao assunto e abordar em detalhes pelo menos uma das novidades, talvez a mais importante em termos de alteração de microarquitetura: o cache compartilhado.

É só ter um pouco de paciência que chegaremos lá.

B. Piropo