Ir ao conteúdo
  • Cadastre-se

Como o Cache de Memória Funciona


     392.212 visualizações    Processadores    10 comentários
Como o Cache de Memória Funciona

Cache de Memória L2 nos Processadores Multi-Núcleos

Nos processadores com mais de um núcleo a arquitetura do cache L2 varia muito, dependendo do processador.

Nos processadores Pentium D e nos processadores AMD de dois núcleos baseados na arquitetura K8, cada núcleo do processador tem seu próprio cache de memória L2. Portanto cada núcleo trabalha como se fosse um processador independente.

Nos processadores de dois núcleos baseados nas microarquiteturas Core e Pentium M, existe apenas o cache de memória L2, que é compartilhado entre os dois núcleos.

A Intel afirma que a arquitetura compartilhada é melhor, pois na abordagem com cache separado em um dado momento um núcleo pode estar com o seu cache “cheio” enquanto que o outro núcleo pode ter partes não usadas do seu cache L2. Quando isso acontece, o primeiro núcleo precisa buscar dados na memória RAM, apesar de haver espaço vazio no cache de memória L2 do segundo núcleo que poderia ser usado para armazenar dados e evitar que o primeiro núcleo acesse a memória RAM. Portanto, em um processador Core 2 Duo com 4 MB de cache de memória L2, um núcleo pode estar usando 3,5 MB enquanto que o outro pode estar usando 512 KB (0,5 MB), ao contrário da divisão fixa de 50%-50% usada em outros processadores de dois núcleos.

Por outro lado, os atuais processadores de quatro núcleos da Intel, como o Core 2 Extreme QX e o Core 2 Quad, usam dois chips de dois núcleos, o que significa que este compartilhamento ocorre apenas entre os núcleos 1-2 e 3-4. No futuro a Intel planeja lançar processadores de quatro núcleos usando um único chip. Quanto isso acontecer o cache L2 será compartilhado entre os quatro núcleos.

Na Figura 3 você pode ver uma comparação entre essas três soluções de cache de memória L2.


Figura 3: Comparação entre as atuais soluções de cache de memória L2 presentes nos processadores de núcleos múltiplos.

Processadores da AMD baseados na arquitetura K10 terão um cache de memória L3 compartilhado dentro do processador. Isto é mostrado na Figura 4. O tamanho desse cache dependerá do modelo do processador, da mesma forma que acontece com o tamanho do cache L2.


Figura 4: Arquitetura K10.


Artigos similares


Comentários de usuários

Respostas recomendadas

Fiquei um pouco confuso: Eu aprendi que no cache mapeado diretamente a memória principal era dividida em conjuntos de blocos sendo que cada conjunto de blocos era mapeado em um único bloco da memória cache. Se eu estiver errado me corrijam.

Link para o comentário
Compartilhar em outros sites

Muito legal o artigo! Gostaria de dar uma sugestão para que ficasse ainda mais completo.

Achei que seria muito interessante acrescentar um review mostrando a diferença de desempenho de processadores similares (mesma arquitetura e mesmo clock), mas com diferentes quantidades de memória cache, em diferentes aplicativos.

Isso nos daria uma real dimensão do quanto a memória cache influencia no desempenho.

Fica a sugestão.

Link para o comentário
Compartilhar em outros sites

O artigo é excelente! Mas fiquei com uma dúvida: Há alguma diferença no circuito dos flip-flops da memória cache L1 para L2 e L3 ou todos os níveis utilizam o mesmo esquema eletrico, mudando apenas a quantidade de flip-flops(quantidade de memória) e a latência?

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Gabriel Torres, obrigado por responder! Já que estamos falando sobre memórias cache eu tenho mais uma dúvida: uma vez estava a utilizar o CPU-Z, e no canto da tela, onde é exibido os níveis de cache e a quantidade de memória estava escrito:

Cache

L1 Data    16 KBytes      8 Way

Trace        12 Kuops       8 Way

Level 2     2048 KBytes  8 Way

  O processador era um Intel Pentium 4 630. O que seria esta linha "Trace / 12 Kuops / 8 Way? Eu não vi em nem um outro processador este negócio...

Link para o comentário
Compartilhar em outros sites

Uau. Completíssimo, muito obrigado! Vim procurar uma informação básica, e acabei por receber uma aula completa. Tenho uma pergunta, mas, talvez, ela não faça sentido, porque comecei a pouco no universo da tecnologia. Aqui vai:
Sempre percebo que, quando o jogo exige muito da memória RAM, de início, o jogo trava um pouco (no quesito fluidez, não no quesito de qualidade gráfica), então, pensei: "será que tem a ver com a questão do burst da memória? Ao iniciar, a memória sofre aquela queda na taxa de transferência (de, por exemplo, 5 clocks para passar o dado, 5-1-1-1), então, trava, porém, na sequência de 1-1-1, o jogo normaliza devido à frequência de 1 dado por clock. Faz sentido?

Link para o comentário
Compartilhar em outros sites

  • Administrador

@João Beneditti Não tem nada a ver, por que na maior parte das vezes os dados estão vindo do cache de memória e não diretamente da RAM. Além disso, cada pulso de clock em uma memória de, digamos, 3.200 MHz, é de 1/3.200.000.000 ou seja 0,3125 ns. Cinco pulsos seriam 1,5625 ns. A diferença de tempo entre um e outro é imperceptível para um ser humano.

 

Abraços.

Link para o comentário
Compartilhar em outros sites



Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...