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.

t1                       t2          

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

t3

Estado Cache

Tendo calculado o bloco, slot , e TAG saberemos aonde o dado poderá estar armazenado na cache

t4

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

t5

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

t6

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.

t7

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ções

Instrução que irá causar o conflito

Estado Anterior da Cache

Posição do conflito


t8
t9


Estado Atualizado da Cache

Valores atualizados

t10


links úteis

Voltar