Você está na página 1de 7

Memória

Memória Cache
Revisão - Memória Principal

Memória que armazena os dados e programas em linguagem de máquina em execução


corrente Razoavelmente barata Tempo de acesso da ordem de nano-segundos a
dezenas de nano-segundos.
Freqüência de acesso alta
Se não existisse a memória Cache, seria acessada a cada ciclo de instrução.

Revisão - Hierarquia de memória

Modelo hierárquico
Revisão - Memória Principal

Cada posição da memória principal tem um endereço único


Geralmente é combinada com uma memória
Cache menor e mais veloz
– A Cache geralmente não é visível ao usuário
– È usada para melhorar o desempenho

Evolução

O aperfeiçoamento das memórias centrou-se no aumento da sua capacidade


de armazenar O aperfeiçoamento das CPU's centrou-se no seu desempenho
A memória principal tem grande capacidade de armazenamento porem seu
acesso é lento Ela pode se tornar um "gargalo" para a CPU, que deve
esperar muito para receber os dados dela

Soluções

É possível projetar uma memória com


velocidade compatível com a CPU?
Sim, mas é muito caro!
Seria possível embutir a memória no chip da
CPU e reduzir o uso do barramento?
Sim, mas existem restrições ao aumento do
Tamanho do chip!
A melhor Solução
Memória Cache!

Memória rápida, porem cara e de menor


capacidade
Contudo, associada à memória principal,
(barata e de grande capacidade), resulta num
sistema:
– razoavelmente barato
– razoavelmente rápida
– de grande capacidade
Memória Cache

Na Cache são mantidas as palavras mais


usadas pelo processador
Se a maior parte dos acessos for resolvida
pela Cache, o tempo médio de acesso será
próximo do tempo de acesso ao Cache, que é
pequeno.

Arquitetura com a Cache

Conexão Lógica entre CPU, Cache e Memória


Principal.
Notas importantes

O acesso à RAM não é totalmente aleatório

Referências à memória num certo intervalo de tempo pequeno tendem a acessar uma
pequena parte da memória total
Essa pequena parte é geralmente chamada de bloco
Nestes blocos os endereços estão ordenados numa seqüência lógica para a execução
da CPU

Principio da Localidade

Definição:

– Existe grande probabilidade que palavras próximas a uma palavra recentemente


referenciada também sejam referenciadas nos próximos acessos
Aplicação:
– Quando uma palavra é referenciada pelo processador, se ela não estiver no
Cache, ela é trazida para o mesmo junto com palavras de endereços vizinhos na
memória principal

Organização

Memória principal é divididas em blocos de endereços de tamanho fixo


A Cache é dividida em linhas Sempre que uma endereço procurada não
estiver no Cache o bloco correspondente é trazido da memória principal
É mais eficiente trazer k endereços de uma vez do que uma endereço k vezes
Mapeamento

Como associar um dado na memória principal


a uma posição na Cache?
Mapeamento:
– Direto
– Associativo
– Associativo por conjuntos

Mapeamento Direto

Cada bloco da memória principal é mapeado numa


linha na Cache, e cada linha da Cachepossui um
rótulo
Como a Cacheé muito menor do que a memória
principal, muitos endereços compartilham a mesma
linha
Um endereço é dividido em:
– Rótulo
– Linha
– Palavra

Mapeamento Direto

O campo linha do endereço é usado para endereçar a C ache e o campo Rótulo do


Endereço é comparado com o campo Rótulo da linha na Cache
É verificado se, dentre as palavras mapeadas naquele linha existe a palavra que esta
sendo buscada
Mapeamento Direto

Endereços diferentes são mapeados na mesmo linha

Isso pode comprometer o desempenho, pois


palavras irrelevantes podem estar armazenadas na
mesma linha, enquanto palavras importantes podem
estar armazenadas em linhas diferentes da Cache

Se elas estão em diferentes linhas levará mais tempo


para encontra-las

Mapeamento Associativo

Permite que cada bloco da memória seja carregado em qualquer linha da Cache
Nesse sistema a Cache é formada apenas por um Rótulo e uma Palavra
Um rótulo identifica um bloco da memória principal.