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 é:
4096 blocos times 128 palavras/bloco = 524288 palavras

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:
log2 (número de palavras) ú
log2 (524288) = 19 bits
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 ( log2 (128) = 7 bits ) 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 ( 644 = 16 conjuntos ) 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 é:
log2 (16) = 4 bits
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.
Tag = Total de bits - s - w
Tag = 19 - 4 - 7 = 8 bits

Formato dos Endereços

Endereço da Memória Principal:
underbraceTag (8 bits)Tag underbraceConjunto (4 bits)Set underbracePalavra (7 bits)Word
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:
underbraceTag (8 bits)Tag underbraceConjunto (4 bits)Set

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.

Exercícios relacionados