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
0 Miss
2 Hit
4 Miss
1 2 8 Miss
0 Hit
1 2 8 Hit
6 4 Miss
4 Hit
0 Miss
3 2 Miss
6 4 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