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).
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?
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.
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.