Organização de Computadores – Aula 12 – Memória Cache

Organização de Computadores – Aula 12 – Memória Cache

Organização de Memória Cache

Visão Geral da Seção: Nesta aula, o foco está na organização das memórias cache e nos princípios para projetar a hierarquia de memória, abordando o conceito básico de mapeamento direto.

Conceito de Mapeamento Direto

  • Em um cache com mapeamento direto, a posição na memória cache é determinada pelo endereço da memória principal.
  • O cálculo do endereço envolve dividir a quantidade de blocos da memória pela quantidade de blocos do cache, sendo essencial que todas as relações de endereço sejam potências de dois.
  • Todas as relações e cálculos de endereço devem ser potências de dois, com possíveis aproximações quando necessário.

Identificação e Mapeamento

  • Para identificar onde uma palavra da memória principal será escrita no cache, são observados os bits menos significativos do endereço.
  • Através dos bits mais baixos do endereço, é possível determinar a posição do cache onde a informação será armazenada.

Uso dos Bits de Controle

  • Os bits de tag e válidos são cruciais para distinguir entre as posições no cache e identificar se uma entrada é válida ou não.
  • Os bits de tag representam os outros bits do endereço na memória, auxiliando na associação correta das informações entre a memória principal e o cache.

Funcionamento Prático

  • No exemplo prático apresentado, ao acessar uma instrução não presente no cache vazio, ocorre uma falha que leva à busca na memória principal e posterior escrita no cache.

Acesso e Organização de Memória Cache

Visão Geral da Seção: Nesta seção, são abordados conceitos essenciais sobre o acesso e a organização da memória cache em sistemas computacionais.

Acesso à Memória Cache

  • Ao tentar acessar uma palavra na memória cache, pode ocorrer um acerto se a informação já estiver disponível. Caso contrário, é necessário buscar a informação correta na memória principal.

Falhas e Atualizações do Cache

  • Falhas no cache podem ocorrer devido ao cache estar vazio ou conter informações incorretas. Nestes casos, é necessário buscar a informação correta na memória principal e atualizar o cache.

Mapeamento Direto

  • No mapeamento direto, é preciso associar bits de tag aos dados armazenados no cache. O processo envolve selecionar a linha do cache com base nos bits de índice e comparar os bits de tag para verificar se há um hit.

Estrutura Básica do Cache

  • A estrutura básica do cache com mapeamento direto inclui tags, índices e validade para garantir o acesso eficiente aos dados armazenados.

Organização Avançada da Memória Cache

Visão Geral da Seção: Esta parte explora detalhes avançados sobre como os endereços são organizados na memória cache para otimizar o desempenho dos sistemas computacionais.

Organização dos Endereços

  • Os endereços são compostos por conjuntos de bits que identificam o índice (linha), tag (identificação única) e offset (posição dentro da palavra/bloco).

Exemplos Práticos

  • Em exemplos práticos, como no MIPS, onde a memória é indexada por byte, os offsets são cruciais para identificar bytes específicos na memória.

Cálculos Necessários

  • Para determinar quantos bits são necessários para índice e offset em um conjunto de blocos específico, é fundamental considerar fatores como o número de blocos e bytes por bloco.

Tipos de Associatividade em Memórias Cache

Visão Geral da Seção: Aqui são discutidos diferentes tipos de associatividade em caches e suas implicações no desempenho dos sistemas computacionais.

Mapeamento Direto vs. Associativo Completo

  • Enquanto o mapeamento direto oferece simplicidade com uma única posição fixa para cada bloco, o associativo completo permite flexibilidade total na alocação dos dados no cache.

Vantagens e Desvantagens

Associatividade em Memória Cache

Visão Geral da Seção: Nesta seção, são abordados os conceitos de associatividade em memória cache, incluindo associatividade por conjunto e completamente associativa.

Associatividade por Conjunto

  • A associatividade por conjunto busca equilibrar entre mapeamento direto e associatividade completa.
  • Em um conjunto, há liberdade para posicionar palavras, com um número específico de conjuntos determinado pela quantidade de posições disponíveis.
  • O número de blocos no cache e o tipo de associatividade influenciam as possibilidades de combinação dentro do cache.

Associatividade Completa

  • No caso da associatividade completa, a tag deve ser comparada com todas as tags disponíveis.
  • A verificação do bit de válido e dos comparadores é replicada para cada tag disponível.
  • O cache associativo reduz falhas por conflito, mas aumenta a complexidade na verificação do acerto.

Organização da Hierarquia de Memória

  • Os princípios discutidos aplicam-se a todos os níveis da hierarquia de memória, desde caches até memória principal e disco.
  • Quatro aspectos-chave no projeto do cache: localização do bloco, substituição em casos de falha e política descrita estão relacionados à organização da hierarquia.

Localização do Bloco

  • A determinação da localização do bloco varia conforme o tipo de associatividade adotado: mapeamento direto, por conjunto ou completamente associativo.
  • Maior associatividade resulta em menor taxa de falhas por conflito, mas também em maior complexidade na implementação.

Substituição do Bloco

  • Existe um equilíbrio entre diferentes tipos de associatividades para otimizar a organização dos caches em vários níveis da hierarquia.
  • A escolha da associação nos diversos níveis não precisa ser uniforme; pode variar conforme a necessidade e complexidade requerida.

Posições Vazias e Estratégias de Escrita em Memória

Visão Geral da Seção: Nesta parte, são abordadas questões relacionadas a posições vazias na memória e estratégias de escrita.

Posições Vazias na Memória

  • Utilizar posições vazias na memória quando necessário para armazenamento.
  • Priorizar o uso de dados que foram acessados recentemente de acordo com o princípio da localidade temporal.

Estratégia LRU (Least Recently Used)

  • Em sistemas com alta associatividade, a implementação da estratégia LRU pode ser custosa.
  • Estudos indicam que a substituição aleatória pode se assemelhar ao funcionamento do LRU em caches.

Políticas de Escrita em Memória

Visão Geral da Seção: Esta parte discute as políticas de escrita em diferentes níveis de memória.

Política WR Through

  • Escrever através de todos os níveis de memória, simplificando a substituição.
  • Cada instrução de escrita no cache requer garantia de atualização nos níveis subsequentes, tornando o processo potencialmente lento.

Política WR Back

  • Atualização apenas no nível imediatamente seguinte, resultando em maior velocidade.
  • Pode gerar inconsistências entre os diferentes níveis hierárquicos da memória.

Memória Virtual e Estratégias de Escrita

Visão Geral da Seção: Aborda as estratégias específicas para escrita em memórias virtuais.

Estratégia Writeback (WR Back) na Memória Virtual

  • Essencial pela lentidão dos discos rígidos mecânicos.
Video description

Curso de Engenharia de Computação Disciplina EIC-001 - Organização de Computadores Univesp - Universidade Virtual do Estado de São Paulo Professora responsável: Cíntia Borges Margi