DEV Community

Cover image for O que é memória cache?
Natália Oliveira
Natália Oliveira

Posted on • Edited on

O que é memória cache?

Memória cache é um tipo de memória volátil, ou seja, onde informações ficam guardadas temporariamente e é necessário sempre atualizá-las, de alta velocidade e com uma pequena capacidade de armazenamento.

Acessar dados na memória cache do computador é muito mais rápido do que se fôssemos buscá-las diretamente na memória principal do computador, na memória RAM.

Segundo Francis Berenger e Luiz Maia, o propósito da memória cache é:

(...) minimizar a disparidade existente entre a velocidade com que o processador executa instruções e a velocidade com que dados são lidos e gravados na memória principal.

Como a memória cache tem um alto custo sua capacidade é limitada.

Como a memória cache funciona?

Ela funciona armazenando um pequeno “pedaço” da memória principal, para quando o processador buscar algum dado, fazê-lo primeiro na memória cache, que é mais rápida, para só depois buscar na memória principal.

Quando o processador encontra o dado na memória cache chamamos isso de cache hit. Quando o processador não encontra temos cache miss. Em casos de cache miss a memória principal transfere esse pedaço de dado para o cache.

Pelo fato do cache ser volátil, como já falamos, as informações salvas depois do cache miss estão sempre mudando.

Uma olhada de exemplo no Dell G5 que estou sonhando em comprar:

Alt Text

Mesmo que leve um tempo para salvar o “pedaço” da memória principal no cache, a velocidade e facilidade compensa por causa do princípio da localidade:

(...) localidade é a tendência de o processador, ao longo da execução de um programa, referenciar instruções e dados na memória principal localizados em endereços próximos.

Isso é por causa aa grande ocorrência de estruturas de dados (aqui chamadas de sub-rotinas) como vetores e tabelas.

Você pode se perguntar então “mais memória cache é pior ou melhor?”.

Para responder isso primeiro precisamos pensar na arquitetura dos caches, que é feita em diferentes níveis. Segue-se o princípio de que:

(...) quanto menor é a capacidade de armazenamento da memória cache, mais rápido é o acesso ao dado; contudo, a probabilidade da ocorrência de cache hits é menor.

A existência de níveis, que podem ser L1, L2, L3 e por aí vai, se referem a proximidade do nível da unidade de execução do processador.

Essa ideia de hierarquia é uma forma de seguir o princípio citado acima e ainda assim otimizar a memória cache.

Por exemplo, se não houvessem níveis não adiantaria somente aumentar a memória cache. Ou seja, quanto mais memória cache muito provavelmente o fabricante implementou mais níveis, então não se preocupe em comprar um notebook de 12mb de cache ao invés de 8mb.

Fica o convite para ler o livro Arquitetura de Sistemas Operacionais para entrar em mais detalhes.


Fontes:
MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais: Incluindo Exercícios com o Simulador SOSIM e Questões do ENADE. Rio de Janeiro: LTC, 2013.

Techtudo


Esse texto não tem intenção de esgotar o tema. Acrescente nos comentários, e também aponte erros quando os identificar.

Top comments (0)