terça-feira, 8 de junho de 2010

O segredo do I7

Antes de mergulhar nesse mar de bits, é importante entender um conceito fundamental. Quase todo processador pré-Nehalem possui um sistema de comunicação chamado FSB (Front Side Bus), ou barramento. Ele trabalha em uma frequência, medida em Mhz. Quando a CPU faz um pedido à memória (ei, cadê aquele cálculo que deixei aí?) via FSB, primeiro a requisição chega ao chamado North Bridge, um controlador próximo ao chip que faz a tradução do pedido para a memória. Depois o Bridge devolve a resposta, também decifrada, para o processador. Esse processo leva tempo (depende da freqüência de operação do FSB) e tornou-se um gargalo com a evolução das memórias, cada vez mais velozes.

Um dos maiores pulos do gato da nova arquitetura foi trazer o controlador da memória, o tal North Bridge, para dentro do chip. A concorrente AMD já havia feito isso em sua linha A64, mas cometeu alguns erros de design fatais. A Intel aprimorou o conceito e aposentou o FSB. Os Core i7 têm dois barramentos: um para ligar o processador à RAM e outro de entrada/saída, que faz a comunicação com os outros dispositivos do micro. Assim, o desempenho melhora por dois motivos. Primeiro, porque agora há caminhos independentes para o tráfego de dados. Depois, porque o acesso à memória ficou mais veloz, pois o chip não é mais obrigado a conversar antes com um controlador externo, o North Bridge.

O novo barramento se chama QuickPath Interconnect (QPI) e oferece dois caminhos (transmissão e recepção dos dados) para o chip se comunicar com outros dispositivos ou processadores – no caso de servidores com mais de um i7 instalado.

O controlador integrado suporta três canais de memória. Cada canal pode ser formado por um, dois ou três pentes de memória RAM no padrão DDR3, o único aceito. Em resumo, isso gera um ganho de desempenho de 50% em relação à arquitetura com dois canais (dois ou quatro pentes), como é hoje. A expectativa é que muitas placas-mãe para i7 tenham seis bancos (slots), ou seja, três canais. Com isso, um consumidor extremamente exigente poderá ter uma máquina com incríveis 12GB de memória (6 pentes de 2GB). O ideal é instalar três ou seis pentes no PC, para gerar o máximo de desempenho.

O desenho interno do processador também mudou. Os Core i7 são “single die” (blocos únicos). Dentro de cada bloco, ficam os quatro núcleos (cores), o controlador da RAM e a cache – uma memória de altíssimo desempenho junto aos núcleos. Há três níveis de cache. O L1 é separado para cada núcleo – 32KB para dados e 32KB para instruções, ou 256KB ao todo (64KB vezes 4). No nível seguinte (L2), há mais 256KB por núcleo, totalizando 1MB (1024KB). Por fim, o L3 de 8MB é compartilhado por todos.


Essa hierarquia de memórias cache serve para agilizar o trabalho dos núcleos. As instruções mais urgentes vão para a L1. A L3 serve como uma cópia de segurança da L2, replicando os dados desta. Assim, se um núcleo precisa da mesma informação que outro, ele busca nessa biblioteca pública em vez de perder tempo fuçando na prateleira particular de outro core.
Outro recurso interessante é o “Turbo Boost”. Ele permite que cada núcleo ativo aumente sua freqüência de operação, em incrementos de 133Mhz por vez, até atingir o limite térmico e elétrico determinado. Isso funciona tanto para colocar o processador a todo vapor, como para ele economizar energia quando não há muito trabalho. A idéia é que as versões do i7 para notebooks sejam capazes de zerar o consumo dos núcleos desocupados.

Cada núcleo de um i7 pode cuidar de duas tarefas (threads) ao mesmo tempo. Assim, o sistema operacional pensa que está trabalhando com oito núcleos. Isso é especialmente útil com aplicativos desenvolvidos para dividir as tarefas entre eles.

Por fim, mudanças no modo como os núcleos tratam as instruções (as ordens dos aplicativos) permitem que os Core i7 processem, na maior parte do tempo, cinco comandos por ciclo, em vez de quatro dos antecessores.

Nenhum comentário: