Ir ao conteúdo
  • Cadastre-se

Por Dentro da Microarquitetura Intel Core


     308.846 visualizações    Processadores    3 comentários
Por Dentro da Microarquitetura Intel Core

Cache de memória e unidade de busca

Só para relembrar, o cache de memória é uma memória de alta velocidade (RAM estática ou SRAM) que está dentro do processador, usada para armazenar dados que o processador pode precisar. Se o dado requerido pelo processador não estiver localizado no cache, ele deve buscá-lo na lenta memória RAM, o que reduz o desempenho do micro, já que o processador acessa a memória RAM através do barramento local. Por exemplo, em um processador de 3,2 GHz, o cache de memória é acessado a 3,2 GHz enquanto que a memória RAM é acessada a apenas 800 MHz.

A arquitetura Core foi criada com o conceito da tecnologia de múltiplos núcleos em mente, ou seja, mais de um núcleo de processamento dentro de um único processador físico. O processador Pentium D é uma versão de dois núcleos do Pentium 4 e cada núcleo tem o seu próprio cache L2. O problema desta implementação é que em um dado momento o cache de memória L2 de um dos núcleos pode “acabar”, enquanto que o cache L2 do outro núcleo ainda tem partes não usadas. Quando isto acontece o primeiro núcleo precisa ir à lenta memória RAM, mesmo que haja espaço no cache L2 do segundo núcleo que poderia ser usado para armazenar dados e evitar que o primeiro núcleo acessasse a memória RAM.

Na arquitetura Core este problema foi resolvido. O cache de memória L2 é compartilhado, o que significa que ambos os núcleos podem usar a mesma memória cache L2, configurando dinamicamente a quantidade que cada núcleo usará. Em um processador com 2 MiB de cache L2, por exemplo, um núcleo pode estar usando 1,5 MiB enquanto que o outro pode estar usando 512 kiB (0,5 MiB), ao contrário do valor fixo 50%-50% usado pelos processadores de dois núcleos da arquitetura anterior.

E não é só isso. As pré-buscas são compartilhadas entre os núcleos, ou seja, se o controlador de cache carregar um bloco de dados para ser usado pelo primeiro núcleo, o segundo núcleo também pode usar o dado já carregado no cache. Na arquitetura anterior, se o segundo núcleo precisasse de um dado armazenado no cache L2 do primeiro núcleo, ele tinha que acessar o tal dado através do barramento externo (que trabalha com um clock muito menor do que o clock interno do processador) ou até mesmo pegar o dado requerido diretamente da lenta memória RAM.

A Intel também aprimorou a unidade de pré-busca do processador, que procura por padrões utilizados pelo processador na buscar dados na memória, com o objetivo de tentar “adivinhar” que dado o processador carregará, copiando-o antecipadamente para o cache de memória antes que o processador realmente precise dele. Por exemplo, se o processador acaba de carregar dados do endereço 1, e depois do endereço 3 e em seguida do endereço 5, a unidade de pré-busca do processador “chutará” que o programa em execução carregará dados do endereço 7, copiando os dados contidos neste endereço para o cache antes que o processador solicite. Na verdade, esta ideia não é nova e todos os processadores desde o Pentium Pro utilizam algum tipo de previsão para preencher o cache L2 com dados que o processador poderá precisar. Na arquitetura Core, a Intel simplesmente aprimorou este recurso fazendo com que a unidade de pré-busca procure por padrões nos dados solicitados em vez de simplesmente indicadores estáticos de qual dado o processador solicitará.


Artigos similares


Comentários de usuários

Respostas recomendadas

  • Membro VIP

Ótimo artigo, no trecho:

Uma outra capacidade de economizar energia da arquitetura Core é ligar apenas os bits necessários nos barramentos internos do processador. Muitos dos barramentos internos do processador são dimensionados para o pior caso – ou seja, a maior instrução x86 que existe, que é de 15 bytes (480 bits)*. Em vez de ligar todas as linhas de dados de 480 bits deste barramento em particular, o processador pode ligar apenas 32 linhas, somente o que é necessário para transmitir uma instrução de 32 bits, por exemplo.

15 bytes é 120 bits não 480,

E uma sugestão, por que na parte que fala sobre as vantagens do L2 compartilhado não falar tambem da coerência?

Link para o comentário
Compartilhar em outros sites

Sempre gostei dos artigos do Gabriel, e já utilizei vários em minhas aulas de hardware! Mas bem que poderia disponibilizar esse e outros artigos em PDF, não é verdade! Dá muito trabalho ter que montá-los!!! (folgado....!)

Qualidade indiscutível e linguagem simples, muito bom o artigo, serviu para tirar minhas dúvidas entre as duas arquiteturas....!

Pense na minha sugestão!

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...