Considere a arquitetura de um processador que emprega um espaço de endereçamento físico de 8 bits e uma organização de memória cache fisicamente endereçada. Considere que a memória é byte endereçável e o cache adota uma política de substituição de blocos LRU perfeita.
Dado que o processador fornece uma sequência de endereços de referência para a memória cache, conforme mostrada na tabela abaixo. A tabela apresenta o evento de hit cache ou miss cache, resultante de cada endereçamento. Considere que o cache estava inicialmente limpo (sem conteúdo).
Endereço Evento cache
Miss
Hit
Miss
Miss
Hit
Hit
Miss
Hit
Miss
Miss
Hit
Determine para essa organização de cache, o tamanho do bloco, a associatividade e o tamanho do cache. Importante: apresente uma descrição sobre a abordagem usada para detectar as respostas ao problema.

Passo 1

Beleza, vamos resolver esse exercício sobre a organização de cache em arquitetura de processadores. O desafio aqui é descobrir três coisas sobre o cache: o tamanho do bloco, a associatividade e o tamanho total do cache. Para isso, vamos analisar a sequência de acessos à memória e se eles resultaram em hit (acerto) ou miss (falha) no cache. Vamos usar conceitos como endereçamento físico, política de substituição LRU (Least Recently Used) e cache associativo.

Passo 2

Primeiro, precisamos entender que a memória é byte endereçável com um espaço de endereçamento físico de 8 bits, ou seja, temos endereços únicos. Cada endereço representa um byte.

Passo 3

Vamos analisar a sequência de acessos e as consequências no cache para identificar o padrão. Sabemos que o cache estava inicialmente vazio, então o primeiro acesso sempre será um miss.

Passo 4

Vamos tentar descobrir o tamanho do bloco. Em caches, um bloco (ou linha) armazena um conjunto de bytes. Se o bloco for maior, mais bytes são carregados em cada miss. Observando os acessos:
  • Primeiro, o endereço 0 resulta em miss.
  • O próximo acesso é 2, que dá hit. Isso sugere que o bloco contém, pelo menos, os endereços 0 e 2.
Isso indica que o tamanho do bloco é 4 bytes, já que com endereços 0,1,2,3 estariam no mesmo bloco.

Passo 5

Agora, vamos determinar a associatividade do cache. A associatividade define quantas linhas de cache podem armazenar blocos que mapeiam para a mesma posição.
Observando os acessos:
  • A sequência de endereços 1,2,8 resulta em miss e depois hit, sugerindo que o cache pode armazenar múltiplos blocos que mapeiam para diferentes conjuntos.
Isso indica que o cache é associativo por conjunto, mas com baixa associatividade. Analisando mais a fundo, percebemos que é associatividade 2.

Passo 6

Finalmente, vamos calcular o tamanho total do cache. Sabemos que:
  • Cada bloco tem 4 bytes.
  • A associatividade é 2.
  • Precisamos determinar o número de conjuntos.
Com 256 endereços e blocos de 4 bytes, temos blocos possíveis. Com associatividade 2, o número de conjuntos é .
Então, o tamanho do cache é .

Resposta

O cache possui um tamanho do bloco de 4 bytes, associatividade de 2 vias e um tamanho total de 256 bytes.

Exercícios relacionados

Um cache está sendo projetado para um computador com bytes de memória. O cache terá 2K slots e usará um bloco de 32 bytes. Calcule, tanto para um cache associativo quanto para um cache com mapeamento direto, quantos bytes o cache precisará ter capacidade de armazenar.
Uma medida dos benefícios de diferentes organizações de cache é a taxa de falta (miss rate). Onde taxa de falta é a fração de acessos a cache que resultam em faltas. Denomine e descreva quais são as três categorias associadas as causas de falta de cache (miss cache).
Por que um cache de segundo ou terceiro nível é útil? Que tipo de benefícios proporciona ao desempenho do sistema?
a) Explique como isso afeta o cálculo do tempo médio de acesso à memória (AMAT).
b) Quais outras técnicas de aprimoramento de cache podem fornecer uma solução para o mesmo problema?
Considere um computador com um espaço de endereçamento de 12-bits (isto é, cada endereço de memória tem 12 bits de largura) e a memória é byte endereçável. A organização hierárquica de memória tem um cache de dados ( -cache) com capacidade de 8 blocos, onde cada bloco do cache é de 8 bytes (excluindo qualquer overhead).
Durante a execução de um determinado programa, o processador emite uma sequência de referências de leitura de memória. A string de referência de memória é demonstrada na sequência de endereços a seguir: 0x200, 0x204, 0x208, 0x20C, 0x2F4, 0x2F0, 0x200, 0x204, .
Este padrão de acesso é repetido quatro (4) vezes (como um laço que itera 4 vezes).
a) Simule a execução do fragmento de código ilustrado acima, considerando a organização de memória descrita e apresente como resposta a configuração final do cache após a execução de cada iteração do laço. Considere que o cache está inicialmente vazio (limpo) e com função de mapeamento direto. Calcule a taxa de acerto (hit rate) da execução.
b) Repita o item (a), considerando um cache de mapeamento totalmente associativo e algoritmo de substituição LRU.
c) Repita o item (a), considerando um cache de mapeamento associativo por conjunto de 4vias e algoritmo de substituição LRU.