endereçamento de byte e cache

0

link

Dado o DM: um cache de mapeamento direto.

S2: um cache associativo definido de 2 vias com uma política de substituição menos usada recentemente.

FA: um cache totalmente associativo com uma política de substituição menos usada recentemente.

As perguntas abaixo apresentam uma seqüência de endereços para leituras de memória. Você deve assumir que as sequências se repetem desde o início sempre que você vir "...". Tenha em mente que o endereçamento de bytes é usado; endereços de palavras consecutivas na memória diferem em 4. Cada pergunta pergunta qual cache (s) fornece a melhor taxa de acertos para a sequência. Responda considerando a taxa de acertos em estado estacionário, ou seja, a porcentagem de referências de memória que atingem o cache após a sequência ter sido repetida muitas vezes.

Quais cache (s) têm a melhor taxa de acertos para a sequência 0, 16, 4, 36, ...?

A resposta diz para DM, a localização 4 e 36 colidem. Por quê? Algo a ver com o endereçamento de bytes, suponho. Alguém poderia explicar, por favor?

    
por waterbuffalo 09.12.2013 / 14:02

1 resposta

0

No Problema 4A, o cache tem 8 palavras de comprimento com uma palavra (4 bytes) em cada linha de cache. Cache direto mapeado significa que o cache completo está sempre fazendo um bloco contínuo de memória, aqui ele tem 32 bytes, então você obtém o conteúdo do cache 0..31 ou 32..63 ou 64..95 ou ...

Ao acessar o primeiro 0, o cache está vazio, você recebe um erro e 0..31 está carregado no cache.
Ao acessar 16 e 4, você recebe um cache.
Ao acessar 36, você tem uma falha e 32, 63 é carregado no cache. Quando o loop começar de novo, você terá uma falha e novamente o 0..31 será carregado no cache.

    
por 09.12.2013 / 14:42

Tags