As memórias cache são usadas para diminuir o tempo de acesso à memória
principal, mantendo cópias de seus dados. Uma função de mapeamento é usada para
determinar em que parte da memória cache um dado da memória principal
será mapeado. Em certos casos, é necessário usar um algoritmo de substituição
para determinar qual parte da cache será substituída.
Suponha uma arquitetura hipotética com as seguintes características:
• A memória principal possui 4 Gbytes, em que cada byte é diretamente
endereçável com um endereço 32 bits.
• A memória cache possui 512 Kbytes, organizados em 128 K linhas de 4
bytes.
• Os dados são transferidos entre as duas memórias em blocos de 4
bytes.
Considerando os mapeamentos direto, totalmente associativo e associativo por
conjuntos (em 4 vias), redija um texto que contemple as organizações dessas
memórias, demonstrando como são calculados os endereços das palavras, linhas
(blocos), rótulos (tags) e conjunto na memória cache em cada um
dos três casos. Cite as vantagens e desvantagens de cada função de mapeamento,
bem como a necessidade de algoritmos de substituição em cada uma delas.