Os caches

Diferente do Yorkfield, usado nos processadores Core 2 Quad da série Q9000 (obtido através da combinação de dois processadores dual-core, ligados através do FSB), o Nehalem é um processador quad-core nativo, onde os 4 núcleos compartilham a mesma pastilha de silício:

m502e5277

Os 4 núcleos são compostos por nada menos que 731 milhões de transistores, que, mesmo com a técnica de produção de 45 nanômetros, ocupam uma área de 263 mm². Para ter uma ideia, isso corresponde a mais de 10 vezes o tamanho de um Atom 230, que possui apenas 25.9 mm².

Para acomodar os 4 núcleos, a Intel fez várias mudanças na arquitetura dos caches. Em vez de um grande cache L2 compartilhado, optaram por utilizar uma arquitetura similar à utilizada pela AMD no Phenom, com um pequeno cache L2 (de 256 KB) para cada núcleo e generosos 8 MB de cache L3 compartilhados entre todos. Dentro da arquitetura, o cache L3 assume a posição que no Core 2 Duo era executada pelo cache L2, servindo como um reservatório comum de dados.

A grande diferença entre o cache do Nahalem e do Phenom reside na forma como os dados são armazenados nos caches. Nos processadores AMD é usado um cache “exclusivo”, onde o cache L2 armazena dados diferentes do cache L1 e o L3 armazena dados diferentes dos do L2, maximizando o espaço de armazenamento. A Intel, por outro lado, utiliza um sistema “inclusivo” onde os cache L1 e L2 armazenam cópias de dados também armazenados no cache L3.

Embora reduza o volume total de dados que pode ser armazenado nos caches, o sistema da Intel oferece um pequeno ganho de desempenho, já que cada núcleo não precisa checar o conteúdo dos caches dos demais em busca de dados; basta verificar seu próprio cache L1 e L2 e, em seguida, o cache L3 compartilhado.

Outro motivo para o uso do cache inclusivo são os novos estágios de baixo consumo (C3 e C6) suportados pelo processador, onde alguns (ou mesmo todos os núcleos) são completamente desligados, reduzindo o consumo a um patamar bastante baixo, mas em troca causando a perda dos dados armazenados nos cache L1 e L2. Como o cache L3 é independente dos 4 núcleos, ele permanece ativo, permitindo que os núcleos recarreguem os caches a partir do L3 ao acordarem, sem que o processador precise executar operações de checagem, nem que precise buscar os dados novamente na memória RAM.

É nesse ponto que os investimentos da Intel em novas técnicas de produção se pagam, já que com transistores menores, eles podem se dar ao luxo de fabricar processadores maiores e com mais cache, compensando a perda de espaço causada pelo uso do sistema exclusivo com um volume maior de cache.

O cache L1 continua sendo dividido em dois blocos (32 KB para dados e 32 KB para instruções), assim como em todos os processadores anteriores, mas houve um aumento na latência de acesso, que subiu de 3 para 4 ciclos em relação ao Penryn. A perda de desempenho foi compensada pela redução na latência do cache L2, que caiu consideravelmente, de 15 para 11 ciclos.

Essa redução no tempo de acesso é uma das justificativas da Intel para o uso de um cache L2 tão pequeno. Com apenas 11 ciclos de acesso, ele funciona mais como um cache nível “um e meio”, que serve como um intermediário entre o cache L1 e o grande bloco de cache L3 compartilhado.

O cache L3 trabalha com uma latência de 36 ciclos (nos Core i7 da série XE) a 41 ciclos (nos demais modelos), o que pode parecer bastante se comparado com a latência dos caches L1 e L2, mas é um pouco mais rápido do que o cache L3 usado no Phenom, que além de menor, trabalha com uma latência de 43 ciclos. Ao fazer overclock, é possível aumentar a frequência de operação do cache L3 (vinculado à frequência do “uncore”), o que permite obter tempos de latência ligeiramente mais baixos.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X