Memória cache : Mapeamento direto
Mateus Assis
Você vai aprender
Como se comporta uma memória cache de mapeamento direto.
Pré-requisitos
Cursando a Disciplina Arquitetura de Computadores
Introdução
Cache é um dispositivo de acesso rápido, interno a um sistema, que serve de intermediário entre um operador
de um processo e o dispositivo de armazenamento.
Seu uso visa obter uma velocidade de acesso mais rápida, reduzindo o tempo gasto para o processamento da ação.
Representação cache e memória RAM
Válido é o bit que identifica se o slot está vazio ou não.
Slot é a posição em que o dado pode estar armazenado na cache.
Tag é utilizado para validar se a linha procurada é a mesma que esta na cache.
Dado é o valor armazenado na cache.
Cálculo de posições na cache
Bloco = endereço / tamanho do bloco
Slot = Bloco % nº slots (razão entre o numero de blocos e slots)
Tag = Bloco/ nº slots
Comportamento cache
Usando a instrução indicada, obtemos:
Bloco: 63/4 = 60
Slot: 60%4 = 3
TAG 60/4 = 3
Estado Cache
Tendo calculado o bloco, slot , e TAG saberemos aonde o dado poderá estar armazenado na cache
Acesso miss
Caso o dado não esteja na cache,
teremos um miss no acesso e um gasto de 100 NS para trazer o dado para a cache
Caso a instrução seja SW e o acesso seja miss, o tempo gasto sera de 200 NS ,
100 NS para buscar o dado na RAM e 100 NS para atualizar o dado na cache
Acesso hit
Se o dado já estiver na cache , o acesso sera indicado como HIT e o tempo de acesso será de
apenas 1 NS.
conflito de slots
Em casos de conflitos, os dados mais recentes sobrescreverão os dados anteriores,
como demonstrado com a seta vermelha nas imagens.
Bloco: 12/4 = 3
Slot: 3%4 = 3
Tag: 3/4 = 0
InstruçõesInstrução que irá causar o conflito | Estado Anterior da CachePosição do conflito | ||
Comentários