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.
Passo 1
Primeiro, vamos entender o que está sendo pedido. Temos um computador com uma memória principal de
bytes. Estamos projetando um cache que possui 2K slots, onde cada slot pode armazenar um bloco de 32 bytes. Precisamos calcular quanto espaço, em bytes, esse cache ocupará tanto em um cache associativo quanto em um cache com mapeamento direto.
Para resolver isso, vamos precisar entender dois conceitos principais:
- Cache Associativo: Onde um bloco da memória pode ser colocado em qualquer slot do cache.
- Cache com Mapeamento Direto: Onde cada bloco da memória é mapeado para exatamente um slot no cache.
Vamos resolver passo a passo para cada tipo de cache.
Passo 2
Calculando para o Cache Associativo
Em um cache associativo, qualquer bloco da memória pode ser armazenado em qualquer slot do cache. Para calcular a capacidade total do cache, precisamos considerar tanto os dados armazenados quanto as informações adicionais necessárias para gerenciar o cache, como as tags.
Primeiro, calculamos o número total de blocos na memória principal:
Como o cache é associativo, precisamos de uma tag para identificar de qual bloco da memória principal cada bloco no cache pertence. O número de bits da tag é igual ao número de bits necessários para endereçar todos os blocos da memória menos o número de bits usados para o deslocamento dentro do bloco.
Agora, cada slot do cache precisará armazenar:
- Dados: 32 bytes
- Tag: 27 bits (aproximadamente 4 bytes, já que 27 bits ≈ 4 bytes)
Portanto, o tamanho de cada slot é aproximadamente
bytes.
Multiplicando pelo número total de slots (2K, onde K = 1024):
Passo 3
Calculando para o Cache com Mapeamento Direto
No cache com mapeamento direto, cada bloco da memória principal mapeia para exatamente um slot no cache. Isso simplifica a estrutura, pois não precisamos de uma tag completa para cada bloco, apenas de uma parte dela para identificar o bloco específico dentro do conjunto mapeado.
Primeiro, calculamos o número de bits necessários para indexar os slots:
A tag neste caso será:
Cada slot do cache precisará armazenar:
- Dados: 32 bytes
- Tag: 16 bits (aproximadamente 2 bytes)
Portanto, o tamanho de cada slot é aproximadamente
bytes.
Multiplicando pelo número total de slots (2K):
Resposta
O cache precisará ter uma capacidade de 73.728 bytes no modo associativo e 69.632 bytes no modo com mapeamento direto.
Exercícios relacionados
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).
a)
para a base 7
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.
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?