GDH Press: Blog » Entendendo Intel Core i7: parte 2
 
RSS

Entendendo Intel Core i7: parte 2

Publicado em 16/06/2009 – 04:23
por Carlos Morimoto

Um dos fatores que permitem que o Core 2 Duo supere a maioria dos processadores AMD atuais clock por clock é o fato de os processadores serem capazes de processar 4 instruções por ciclo (4 issue), contra 3 dos processadores AMD. Naturalmente, existem muitos outros fatores a se considerar (a eficiência dos circuitos de branch prediction, o tamanho e velocidade dos caches e assim por diante), mas as 4 instruções por ciclo oferecem uma vantagem considerável.

O Nehalem mantém o processamento de 4 instruções, mas adiciona uma série de refinamentos arquiteturais, que permitem que as unidades de execução sejam alimentadas com um volume maior de dados, reduzindo o tempo em que elas ficam ociosas esperando por dados na memória cache ou pelo resultado de uma operação de branch prediction, por exemplo. Isso resulta em um ganho de eficiência considerável em relação ao Penryn.

Além das mudanças nos caches e a adição do controlador de memória, outra mudança é a substituição do antigo FSB por um barramento aprimorado, batizado de QuickPath Interconnect, ou QPI.

O FSB (front-side bus, ou barramento frontal), tem sido utilizado desde os primeiros processadores Intel. Ele consiste um um barramento compartilhado, que liga o processador ao chipset, como você pode ver nesse diagrama da Intel:

i7_html_3c59cc86

Como ele é usado não apenas para a comunicação entre os núcleos do processador e a memória, mas também para a comunicação entre os 2 ou 4 núcleos do processador, ele acaba estrangulando o acesso à memória, prejudicando o desempenho do sistema. O problema se agrava ao usar vários processadores em SMP, como no caso das placas para servidores, ou na plataforma Skultrail

Até o Penryn a Intel remediou o problema na base da força-bruta, simplesmente adicionando mais cache L2 aos processadores. Com o QuickPath, resolveram atacar a raiz do problema, substituindo o FSB por um barramento modernizado, composto por links independentes que operam a 4.8 ou 6.4 GT/s (a siga "GT/s" indica o volume de transações por segundo, diferente de "GHz", que indica o clock), com a transmissão de 16 bits de dados em cada direção por ciclo, resultando em um barramento de 9.6 ou 12.8 GB/s em cada direção (25.6 GB/s no total) por linha de dados.

Como a memória é agora acessada diretamente pelo controlador de memória, este link fica inteiramente disponível para o tráfego de I/O. Ao utilizar dois processadores, cada processador passa a se comunicar com o chipset através de uma linha independente e uma terceira linha de dados é implantada para coordenar a comunicação entre os dois:

i7_html_240f5f4a

Ao usar 4 processadores (possibilidade que deverá ser bem explorada no caso dos servidores de alto desempenho) são incluídos barramentos adicionais, que fazem com que cada processador tenha acesso direto a todos os demais:

i7_html_3ca92a4f

Se você acompanhou a evolução dos processadores da AMD nos últimos anos, vai notar uma grande semelhança entre o QuickPath e o HyperTransport, usado nos processadores AMD. Obviamente, não se trata de mera coincidência. A Intel estudou os pontos fortes da solução da AMD e acabou chegando a uma solução adaptada à sua arquitetura. Como dizem, a cópia é a forma mais sincera de elogio.

Com relação ao processamento das instruções, uma novidade importante é o Loop Stream Detector (LSD), um controlador adicional que vasculha as instruções decodificadas antes que elas cheguem ao processador, localizando instruções referentes a loops de processamento.

Em vez de reprocessar as instruções do loop repetidamente, o processar armazena as instruções em um pequeno cache interno e as executa a partir daí. Além de permitir ganhar tempo, isso reduz sutilmente o consumo elétrico, pois permite desativar o circuito de branch prediction, juntamente com as unidades fetch e decode durante o processamento do loop:

i7_html_4093f036

No Conroe (usado na geração inicial do Core 2 Duo), a Intel inaugurou o uso do "macro-ops fusion", que permite que algumas instruções específicas sejam fundidas durante a fase de decodificação e processadas como uma única instrução, resultando em um pequeno ganho de desempenho. No Conroe o macro-ops fusion funcionava apenas com instruções de 32 bits, mas o Nehalem ganhou suporte à fusão de instruções de 64 bits, o que é uma boa notícia para quem já fez ou pretende fazer a migração.

O Nehalem marca também a volta do Hyper Threading, chamado agora de SMT (Simultaneous Multi-Threading) o que faz com que o processador se apresente ao sistema operacional como tendo 8 núcleos em vez de 4. Naturalmente, o SMT não dobra o desempenho do processador, servindo apenas como um recurso extra que permite que ele aproveite melhor os recursos de processamento, processando dois threads simultaneamente sempre que possível.

Se você acompanhou a era do Pentium 4, talvez não tenha boas lembranças do Hyper Threading, já que ele reduzia o desempenho do processador em algumas operações e aumentava consideravelmente o consumo elétrico. No caso do Nehalem, entretanto, a função passou por uma série de melhorias, tornando-se mais eficiente. Além das otimizações, alguns outros fatores importantes são:

a) O Nahalem possui um controlador de memória integrado e caches muito maiores, o que garante um fluxo de dados muito maior. Isso é um pré-requisito para uma boa eficiência ao usar o SMT, já que ao processar dois threads simultaneamente, cada núcleo precisa ser alimentado com dados referentes a ambos.

b) Hoje em dia temos um volume muito maior de softwares otimizados para o processamento simultâneo de vários threads, diferente do que tínhamos na época do Pentium 4.

O ganho ao utilizar o SMT no Nehalem fica abaixo dos 10% na maioria das tarefas (em algumas situações, pode haver até mesmo uma pequena perda), mas existem alguns casos específicos onde ele representa ganhos expressivos, como no caso do 3DMark, onde o ganho chega aos 35%, o que não é nada ruim, considerando que ele consiste em aproveitar ciclos de processamento que de outra forma seriam desperdiçados.

Além da questão do desempenho, existe também um pequeno ganho do ponto de vista do consumo elétrico, já que ao executar as tarefas mais rápido, o processador passa mais tempo em modo de baixo consumo. É de se observar que a Intel tem utilizado o SMT também no Atom, pelo mesmo motivo.

Ao contrário do deselegante Kentsfield (usado na primeira geração do Core 2 Quad), onde todos os núcleos operam sempre à mesma freqüência e usando a mesma tensão, o Nehalem oferece um sistema de gerenciamento um pouco mais elegante, onde os núcleos continuam operando à mesma frequência, mas podem ser configurados com tensões diferentes, de acordo com o nível de utilização. Os núcleos ociosos são colocados em um estágio de baixo consumo, onde são quase inteiramente desligados, o que permite que o processador fique com apenas um dos núcleos ativos ao executar tarefas leves, ativando e desativando os outros núcleos conforme necessário.

O gerenciamento é feito com a ajuda do PCU (Power Control Unit), um controlador dedicado, que possui seu próprio firmware e seus próprios circuitos de processamento e é dedicado unicamente à tarefa de monitorar as requisições do sistema e os níveis de utilização dos núcleos, tomando as decisões com relação aos clocks e tensões usadas por cada um.

O PCU ocupa uma área moderadamente grande do processador, com nada menos do que um milhão de transístores. É como se o Nehalem tivesse um 486 integrado, dedicado unicamente ao gerenciamento de energia.

Outra mudança importante é o Turbo Boost, no qual o processador pode aumentar a frequência de operação quando apenas um ou dois dos núcleos estiverem ativos, em uma espécie de overclock automático.

Tradicionalmente, processadores single-core ou dual-core operam a frequências ligeiramente superiores aos processadores quad-core, o que permite que eles dêem combate ou até mesmo superem os sucessores em aplicativos com um baixo nível de paralelismo, como no caso da maioria dos jogos. Sem dúvidas, a Intel não gosta muito de ver um simples Pentium E overclocado superar um caro Core 2 Quad em alguns testes.

Com o Turbo Boost, o Nehalem pode ser "convertido" em um processador single-core, dual-core ou triple-core em situações em que o pequeno aumento no clock compense a desativação dos núcleos adicionais, tapando esta última lacuna. Outro ponto de vista seria ter o Turbo Boost como um sistema de overclock "suportado", que permite que mesmo quem não pensa em fazer overclock possa se beneficiar de uma parte do potencial oculto do processador.

O aumento da frequência é controlado pelo PCU, que monitora o nível de utilização, decidindo em que situações ele pode ser aplicado. A regra básica é que o aumento é feito apenas em situações em que resulta em um ganho tangível de desempenho (já que aumenta o consumo elétrico) e apenas quando o processador está operando confortavelmente abaixo do TDP e da temperatura máxima.

Nas versões iniciais, o Turbo Boost é capaz de aumentar o clock em duas unidades (266 MHz) caso apenas um dos núcleos esteja ativo e em apenas 133 MHz caso dois ou mais estejam em atividade, mudança que é feita através do aumento do multiplicador (sem afetar a frequência dos demais componentes).

Estes pequenos aumentos equivalem apenas a um overclock leve, mas versões posteriores devem trazer aumentos mais significativos. É possível também desativar o Turbo Boost através do Setup, o que é importante ao fazer overclock, já que com o processador operando mais perto do limite, qualquer aumento adicional pode ser suficiente para desestabilizar o sistema.

Uma perspectiva sombria é que versões mais agressivas do Turbo Boost podem marcar o início do fim para os overclocks, já que com o processador passando a ajustar a frequência de operação dinamicamente entre, digamos, 2.66 e 4.0 GHz, não fará muito sentido arcar com o maior consumo e a necessidade de usar um cooler superdimensionado para manter o processador trabalhando a 4.0 GHz o tempo todo.

» Mais posts

  1. 13 respostas para “Entendendo Intel Core i7: parte 2”

  2. Francisco Wesley em 16 jun, 2009

    Muito bom este post sobre o Nehalem. Assim como outros processadores durante o seu lançamente ou início, o core i7 promete solucionar os principais "pontos negativos" dos atuais processadores e, no caso da Intel, superar o concorrente ;-)

  3. Van Igor em 16 jun, 2009

    otimo post, realmente isso mesmo ^^ ate agora foi um dos mais completo que li sobre esse tema … realmente adorei o post !

  4. Luiz Trindade em 16 jun, 2009

    As explicações foram muito bem escritas. Agora esses tutorias ficariam validados se fizesse realmente um teste com uma máquina montada com tudo que a Intel indica para o melhor proveito do processador.
    Vê os resultados e comparar com o que esta escrito. Assim se tornaria valido as explicações acima.

  5. stribus em 16 jun, 2009

    este segunda materia do i7 ta mais parecendo propaganda de revenda da intel:
    ta muito teorico, muito bonito, e tudo funciona(nenhuma falha).
    no final nem tudo é assim, ou consomem mais energia, ou sao mais lentos, ou mais instaveis que a tecnologia anterior.

    vamos esperar para ver!

  6. Luferat em 17 jun, 2009

    Pelo que podemos entender dos planos da Intel, o Core i7 e quase tudo na sua arquitetura é voltado para mercados corporativos em máquinas de performance considerável como servidores.

    Afinal uma plataforma de mais de 2000 dólares não é básica nem mesmo para mercados mais abastados como o europeu ou estadunidense, sem falar que os Core ainda tem muita "vida útil" a ser aproveitada!

    O que é mais relevante é o fato de que o i7 servirá de base para as próximas gerações da Intel, inclusive os processadores voltados para SOHO.

    Magnífico post!

  7. Francisco Wesley em 17 jun, 2009

    "este segunda materia do i7 ta mais parecendo propaganda de revenda da intel:
    ta muito teorico, muito bonito, e tudo funciona(nenhuma falha).
    no final nem tudo é assim, ou consomem mais energia, ou sao mais lentos, ou mais instaveis que a tecnologia anterior."

    Na verdade, o objetivo desta segunda parte, como se nota, é apresentar as características desse novo processador e, bem no sentido de explicar a arquitetura. Quando é explicado sobre um processador em particular, e o mesmo é testado e comparado com outros, aí sim é mostrado onde cada um perdeu. No entanto, oque se nota no texto acima é uma explicação da arquitetura "Nehalem" aplicada ao core i7 ;-)

  8. Salésio em 17 jun, 2009

    Excelente… Meu parabéns…

  9. Leandro Ramos em 17 jun, 2009

    Completissimo !!!!1

    Parabéns a Equipe que explica e não complica..

  10. ShakaVirgem em 22 jun, 2009

    Eu adorei esse Intel Core i7 e achei bom essas 4 instruções e eu gostaria que pudesse assim jogar o Doom e o Duke Nukem, assim esses os melhores jogos, e assim que eu acho e gostei desse modelo de processamento, e as imagens estão muito boas.

  11. Prof. Wagner Souza em 23 jun, 2009

    muito bom cara. Fez elucidar bastante sobre o assunto.

  12. Franklin Liesner em 1 jul, 2009

    Achei um video no site da Intel que fala muito sobre a arquitetura Nehalem.
    O link é esse: http://www.intel.com/business/resources/demos/xeon5500/demo.htm
    É muito imteressante,mas o unico problema é que ele é todo em inglês, mas mesmo assim vale apena olhar.
    :)

  13. Thiago em 4 jul, 2009

    Muito bom mesmo! O Core i7 realmente promete ser devastador. Mas o preço inicial realmente será pouco animador. Gostaria de ler uma matéria similar falando do Phenom II da AMD, que apesar de ser inferior ao Core i7, promete também ser algo muito bom, principalmente levando-se em conta o custoXbenefício.

  14. M4RC05 em 19 jul, 2009

    Infelizmente o soquete 775 morreu, a solução de upgrade é migrar para um quad core com 12M cache, aproveitando que o preço deve cair com a chegada dos core i7, i5. A quem for comprar um pc novo,a adesão ao novo padrao é obvia, mas vale a pena esperar um pouco pra ver se reação da AMD. Alias a AMD apesar de adquirido a ATI RADEON pouco vem mostrando na area de processadores e placas grafica. Eu era um AMDlover :(


Comente: