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.
Passo 1
Beleza, vamos lá! O enunciado fala sobre uma cache associativa de conjuntos. Isso significa que a cache é dividida em grupos (conjuntos) onde cada conjunto tem algumas linhas. Aqui, temos 64 linhas divididas em conjuntos de 4 linhas cada. Além disso, a memória principal tem 4K blocos, e cada bloco tem 128 palavras. Nosso objetivo é mostrar como os endereços são formatados na memória principal e na cache, além de descobrir o tamanho de e de .
Para resolver isso, vamos precisar entender alguns conceitos básicos de memória cache, como divisão de endereços em partes (tag, conjunto, palavra) e como calcular o número de bits para cada parte.
Passo 2
Primeiro, vamos entender o que significa ter 4K blocos na memória principal. “4K” significa 4096 blocos (já que K = 1024). Cada bloco tem 128 palavras.
Então, o número total de palavras na memória principal é:
Passo 3
Agora, vamos determinar quantos bits são necessários para endereçar essas palavras na memória principal. Para isso, usamos a fórmula dos bits necessários:
Então, os endereços na memória principal têm 19 bits.
Passo 4
Agora, vamos dividir o endereço em partes: tag, conjunto e palavra.
Primeiro, a parte da palavra () representa qual palavra dentro de um bloco está sendo acessada. Sabemos que cada bloco tem 128 palavras, então precisamos de:
Portanto, bits.
Passo 5
Em seguida, a parte do conjunto () indica em qual conjunto da cache o bloco será armazenado. Sabemos que a cache tem 64 linhas divididas em conjuntos de 4 linhas cada. Então, o número de conjuntos é:
Para endereçar 16 conjuntos, precisamos de:
Logo, bits.
Passo 6
Finalmente, a parte da tag é o que sobra dos 19 bits totais após subtrair os bits de conjunto e palavra.
Formato dos Endereços
Endereço da Memória Principal:
Endereço da Cache:
Na cache, normalmente não precisamos armazenar a parte da palavra, pois ela já está no bloco. Então, o endereço na cache pode ser visto como:
Resposta
O endereço na memória principal é composto por 8 bits de tag, 4 bits para o conjunto e 7 bits para a palavra. Na cache, o endereço utiliza 8 bits de tag e 4 bits de conjunto. Portanto, bits e bits.