ScholarGate
Assistente

Hierarquia de Memória e Caches

A hierarquia de memória organiza o armazenamento em níveis — registradores, caches, memória principal e armazenamento de apoio — de modo que os níveis pequenos e rápidos contenham os dados com maior probabilidade de serem usados, dando aos programas a ilusão de uma memória que é ao mesmo tempo grande e rápida.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

Uma hierarquia de memória é um arranjo em camadas de tecnologias de armazenamento de diferentes velocidades, custos e capacidades, gerenciado de modo que os dados acessados com frequência e recentemente residam nos níveis menores e mais rápidos — principalmente o cache — para minimizar o tempo médio de acesso.

Scope

Esta área abrange o porquê e como a memória é organizada como uma hierarquia, explorando a localidade de referência. Inclui a estrutura do cache (políticas de posicionamento, substituição e escrita), caches multinível, coerência de cache entre processadores, memória virtual e tradução de endereços, e as tecnologias subjacentes de DRAM e memórias emergentes. Exclui a execução do processador em si (microarquitetura do processador) e o armazenamento de arquivos e dispositivos em larga escala (sistemas de armazenamento e E/S), embora faça fronteira com ambos.

Sub-topics

Core questions

  • Por que a localidade de referência torna uma hierarquia de memória em camadas eficaz?
  • Como os caches são organizados em termos de posicionamento, associatividade, substituição e política de escrita?
  • Como a coerência é mantida quando múltiplos caches contêm cópias da mesma memória?
  • Como a memória virtual traduz endereços e fornece proteção e a ilusão de uma memória grande?
  • Como as características da DRAM e das memórias emergentes moldam o desempenho do sistema?

Key concepts

  • localidade temporal e espacial
  • acerto e falha de cache (cache hit and miss)
  • associatividade e política de substituição
  • write-through e write-back
  • caches multinível
  • coerência de cache
  • memória virtual e paginação
  • buffer de lookaside de tradução (translation lookaside buffer)
  • DRAM e largura de banda da memória
  • tempo médio de acesso à memória

Key theories

Localidade de referência
Os programas tendem a reutilizar dados acessados recentemente (localidade temporal) e acessar endereços próximos (localidade espacial); a hierarquia de memória explora ambos, armazenando em cache blocos usados recentemente e buscando vizinhos juntos.
Compromissos de design de cache
O desempenho do cache é governado pela taxa de falhas (miss rate), penalidade de falha (miss penalty) e tempo de acerto (hit time), e ajustado através do tamanho, tamanho do bloco, associatividade e políticas de substituição e escrita; análises clássicas identificam falhas compulsórias, de capacidade e de conflito como os alvos dessas escolhas.

Mechanisms

Quando o processador solicita dados, o cache é verificado primeiro; um acerto (hit) retorna os dados rapidamente, enquanto uma falha (miss) busca um bloco de um nível inferior e pode desalojar outro por uma política de substituição. As escritas são propagadas por esquemas write-through ou write-back, e os protocolos de coerência mantêm múltiplos caches consistentes. A memória virtual adiciona uma etapa de tradução — via tabelas de páginas e um buffer de lookaside de tradução (TLB) — mapeando endereços de programa para DRAM física enquanto impõe proteção.

Clinical relevance

A hierarquia de memória frequentemente domina o desempenho real: como os processadores são muito mais rápidos que a memória principal, o comportamento do cache e a localidade muitas vezes importam mais do que a velocidade bruta das instruções. Layouts de dados cientes do cache, bloqueio e pré-busca são centrais para computação de alto desempenho, bancos de dados e kernels de aprendizado de máquina, e o tempo do cache tornou-se uma fonte de canais laterais de segurança.

History

Maurice Wilkes propôs o cache (uma 'memória escrava') em 1965, e os caches entraram em máquinas comerciais como o IBM System/360 Modelo 85. A memória virtual originou-se com o computador Atlas no início dos anos 1960, formalizada pelo modelo de conjunto de trabalho de Denning. A pesquisa de Alan Jay Smith de 1982 consolidou o conhecimento de design de cache, e caches multinível e protocolos de coerência sofisticados tornaram-se padrão à medida que as lacunas de velocidade processador-memória se ampliavam.

Debates

Gerenciamento de localidade por hardware versus software
Existe uma tensão contínua entre o cache transparente por hardware e as memórias explicitamente gerenciadas (scratchpads, pré-busca controlada por software): o cache por hardware é geral e fácil de programar, enquanto o gerenciamento explícito pode ser mais previsível e eficiente para cargas de trabalho especializadas.

Key figures

  • Maurice Wilkes
  • Alan Jay Smith
  • Peter J. Denning
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • hennessy2019
  • smith1982cache
  • patterson2020

Frequently asked questions

Por que os caches são eficazes se são tão pequenos em comparação com a memória principal?
Porque os programas exibem localidade: a qualquer momento, eles tocam apenas um pequeno conjunto de dados de trabalho repetidamente, e os acessos se agrupam em endereços próximos. Um cache pequeno que contém esse conjunto de trabalho, portanto, satisfaz a grande maioria das solicitações.
Qual é a diferença entre um cache e a memória virtual?
Ambos movem dados entre um nível mais rápido e menor e um nível mais lento e maior. Um cache (gerenciado por hardware) contém blocos da memória principal; a memória virtual (gerenciada com o sistema operacional) mapeia endereços de programa para a memória física e pagina dados de e para o disco, também fornecendo proteção e um espaço de endereço maior do que a RAM física.

Methods for this concept

Related concepts