Memória - Apostilas

Propaganda
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.
X=X+Y
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 Cache possui 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 Cache 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
Mapeamento Associativo
A busca de uma palavra na cache envolve duas
fases:
Determinação do número do bloco a partir do
endereço
–
Obtido dividindo o endereço pelo tamanho b do bloco.
Busca da linha que contém este número de bloco
–
Comparar simultaneamente os campos de número de
bloco de todos os linhas com o número de bloco
procurado
Mapeamento Associativo
Na cache associativa, a ordem das entradas é
aleatória
O microprograma busca a palavra na cache e, se não
estiver lá, vai a memória principal armazenando-a
Caso a cache esteja cheia alguma palavra deverá ser
descartada, de acordo com uma política de
substituição adequada
Comparação
Direto vs Associativo
Acesso Associativo por Conjunto
Combinação de cache associativa e cache com
mapeamento direto
Une as vantagens de ambas e tenta minimizar as
suas desvantagens
Download