Seja a memória cache formada por quatro linhas, em que cada linha possui apenas uma única palavra. Se for realizada uma sequência de leituras pelos endereços
,
respectivamente, qual será o resultado final da memória cache e a taxa de acerto quando for utilizado:
a) mapeamento direto
a) mapeamento direto
Passo 1
Vamos entender o que a questão está pedindo. Temos uma memória cache com quatro linhas, e cada linha pode armazenar apenas uma palavra. Vamos realizar uma sequência de leituras nos endereços: 0, 2, 3, 2, 0, 0, 4, 0, 5, 6. A pergunta é para determinar o resultado final da memória cache e a taxa de acerto usando o mapeamento direto.
Para resolver isso, vamos precisar entender como funciona o mapeamento direto na memória cache e como calcular a taxa de acerto. Vamos passo a passo!
Passo 2
Mapeamento Direto é uma técnica onde cada bloco da memória principal mapeia para exatamente uma linha específica na cache. A fórmula para determinar qual linha da cache um endereço vai mapear é:
No nosso caso, temos 4 linhas na cache, então:
Isso significa que cada endereço vai para uma linha específica baseada no resto da divisão por 4.
Passo 3
Vamos criar uma tabela para acompanhar as leituras e ver se ocorre acerto (hit) ou falha (miss). Também vamos atualizar a cache conforme necessário.
Inicialmente, a cache está vazia:
Linha | Tag |
---|---|
0 | - |
1 | - |
2 | - |
3 | - |
Vamos acompanhar cada leitura:
-
Endereço 0:
- Linha = 0 mod 4 = 0
- Verificamos a Linha 0:
- Está vazia (miss).
- Carregamos o bloco 0 na Linha 0.
-
Endereço 2:
- Linha = 2 mod 4 = 2
- Verificamos a Linha 2:
- Está vazia (miss).
- Carregamos o bloco 2 na Linha 2.
-
Endereço 3:
- Linha = 3 mod 4 = 3
- Verificamos a Linha 3:
- Está vazia (miss).
- Carregamos o bloco 3 na Linha 3.
-
Endereço 2:
- Linha = 2 mod 4 = 2
- Verificamos a Linha 2:
- Contém o bloco 2 (hit).
-
Endereço 0:
- Linha = 0 mod 4 = 0
- Verificamos a Linha 0:
- Contém o bloco 0 (hit).
-
Endereço 0:
- Linha = 0 mod 4 = 0
- Verificamos a Linha 0:
- Contém o bloco 0 (hit).
-
Endereço 4:
- Linha = 4 mod 4 = 0
- Verificamos a Linha 0:
- Contém o bloco 0, diferente de 4 (miss).
- Substituímos o bloco 0 pelo bloco 4 na Linha 0.
-
Endereço 0:
- Linha = 0 mod 4 = 0
- Verificamos a Linha 0:
- Contém o bloco 4, diferente de 0 (miss).
- Substituímos o bloco 4 pelo bloco 0 na Linha 0.
-
Endereço 5:
- Linha = 5 mod 4 = 1
- Verificamos a Linha 1:
- Está vazia (miss).
- Carregamos o bloco 5 na Linha 1.
-
Endereço 6:
- Linha = 6 mod 4 = 2
- Verificamos a Linha 2:
- Contém o bloco 2, diferente de 6 (miss).
- Substituímos o bloco 2 pelo bloco 6 na Linha 2.
Passo 4
Vamos resumir as substituições e verificar quais foram os acertos e falhas:
- Total de leituras: 10
- Acertos: 4 (ao ler os endereços 2, 0, 0, 0)
- Falhas: 6
A taxa de acerto é calculada pela fórmula:
Substituindo os valores:
Resposta
No final das leituras, a memória cache está configurada da seguinte forma:
Linha | Tag |
---|---|
0 | 0 |
1 | 5 |
2 | 6 |
3 | 3 |
A taxa de acerto obtida foi de 40%.
Exercícios relacionados
Qual é o problema que uma hierarquia de memória tenta resolver?
Considere uma máquina com uma memória principal endereçável por byte (ou seja, 1 célula
palavra=1 byte) com
bytes e um tamanho de bloco de 8 bytes. Suponha que essa máquina utilize uma cache de 32 linhas mapeadas diretamente. Responda as questões abaixo.
b) Em que linha da cache seria armazenado o byte com o seguinte endereço de memória: ?
b) Em que linha da cache seria armazenado o byte com o seguinte endereço de memória:
Seja a memória cache formada por quatro linhas, em que cada linha possui apenas uma única palavra. Se for realizada uma sequência de leituras pelos endereços
,
respectivamente, qual será o resultado final da memória cache e a taxa de acerto quando for utilizado:
b) mapeamento associativo com política de substituição LRU
b) mapeamento associativo com política de substituição LRU
Uma cache de conjunto associativo contém ao todo 64 linhas divididas em conjuntos de 4 linhas. A memória principal contém 4 K blocos de 128 palavras cada. Mostre o formato dos endereços da memória principal e da cache. Determine o tamanho de s, de w.