Exercícios sobre cache diretamente mapeada
Por: AlonsoMC • 5/6/2015 • Trabalho acadêmico • 325 Palavras (2 Páginas) • 384 Visualizações
1. Calcule o tamanho total em bytes necessário para implementar uma cache diretamente mapeada com capacidade para armazenamento de 6KB de dados do usuário. Considere em seus cálculos que o tamanho do endereço de memória (RAM) é 32 bits e que cada bloco de memória armazena uma palavra de 4 bytes.
Capacidade de armazenamento = 6 KB
Capacidade de armazenamento = nº de conjuntos x tamanho de cada conjunto
6 x 1024 = nº de conjuntos x 4
Nº de conjuntos = 6144 / 4 = 1536
Tamanho de índice = log 2 1536 -> 210,5849 = 1536; Tamanho de índice = 10,5849
Offset = log 2 4 = 2
Tamanho da TAG = Tamanho do endereço – tamanho do índice – offset de byte
Tamanho da TAG = 32 – 10,5849 – 2 = 19,4151
Tamanho total da cache = nº de conjuntos x (tamanho bloco + Tamanho da TAG + Bit de validade)
Tamanho total da cache = 1536 x (32 + 19,4151 + 1) = 1536 x 52,4151
Tamanho total da cache = 80509,5936 bits / 8 = 10063,6992 bytes / 1024 = 9,8 KB
2. Qual o tamanho do endereço de memória (RAM) de um sistema cujos dados são:
• Tamanho total da cache: 42.496 Bytes (ou 41,5 KB)
• Número de conjuntos da cache: 4K (4.096)
• Todos os blocos tem tamanho de 4 bytes
Qual o tamanho desta memória RAM?
Tamanho total da cache = 42496 bytes x 8 = 339968 bits
Nº de conjuntos = 4096 bits
Tamanho bloco = 32 bits
Tamanho total da cache = nº de conjuntos x (tamanho bloco + Tamanho da TAG + Bit de validade)
339968 = 4096 x (32 + Tamanho da TAG + 1)
Tamanho da TAG = 50
Tamanho de índice = log 2 4096 -> 212 = 4096; Tamanho de índice = 12
Tamanho da TAG = Tamanho do endereço – tamanho do índice – offset de byte
50 = Tamanho do endereço – 12 – 2
Tamanho do endereço = 50 + 12 + 2 = 64 bits
...