Mapeamento em
Memória Cache
Arquitetura de Computadores
Bruno Edson
Mapeamento Direto

Memória Principal 16Mbytes


Memória Cache 16K palavras



End. Principal: log216M = 24bits
End. Cache: log216K = 14bits
Bits de Palavra de 4 bytes: 2 bits
Rótulo =
End. Princ. – (End. Cache + Bits Pal.)
24 – (14 + 2) = 8bits
Mapeamento Direto

Como a palavra é de 4bytes,
retiramos o rótulo e dividimos por 4
e obtemos o endereço mapeado:






0000 / 4 = 0000
0004 / 4 = 0001
339C / 4 = 0CE7
FFFC / 4 = 3FFF
FFF8 / 4 = 3FFE
Obs.: Valores em hexadecimal
Mapeamento Associativo

Memória Principal 16Mbytes



End. Principal: log216M = 24bits
Bits de Palavra de 4 bytes: 2 bits
Rótulo =
End. Princ. – Bits Pal. = 24 – 2 = 22bits
Mapeamento Associativo

Como a palavra é de 4bytes,
dividimos o endereço por 4 e
obtemos o rótulo específico:






000000 / 4 = 000000
16339C / 4 = 058CE7
FFFFF4 / 4 = 3FFFFD
FFFFF8 / 4 = 3FFFFE
FFFFFC / 4 = 3FFFFF
Obs.: Valores em hexadecimal
Mapeamento Associativo por Conjunto

Memória Principal 16Mbytes


End. Principal: log216M = 24bits
Memória Cache 16K palavras e Número
de Conj. 2: 1 bit
End. Cache: log216K – nº bits conj.
14 – 1 = 13bits



Bits de Palavra de 4 bytes: 2 bits
Rótulo =
End. Princ. – (End. Cache + Bits Pal.)
24 – (13 + 2) = 9bits
Mapeamento Associativo por Conjunto

Como a palavra é de 4bytes,
retiramos o rótulo e dividimos por 4
e obtemos o endereço mapeado:






0000 / 4 = 0000
0004 / 4 = 0001
339C / 4 = 0CE7
7FFC / 4 = 1FFF
7FF8 / 4 = 1FFE
Obs.: Valores em hexadecimal
Mapeamento em
Memória Cache
www.cin.ufpe.br/~bemaf/arquivos/arq
Obrigado!!
Download

Cache