MEMÓRIA INTERNA

Propaganda
MEMÓRIA INTERNA
Prof. Fernando F. Costa
HIERARQUIA DE MEMÓRIA
Parâmetros de análise das memórias:
 Tempo de acesso
 Ciclo de memória
 Capacidade
 Volatilidade
 Tecnologia de Fabricação





Eletrônicas
Magnéticas
Óticas
Temporariamente
Custo
HIERARQUIA DE MEMÓRIA




Processador
registradores
Cache L1 (32KB)
Cache L2 (1 MB)
Cache L3 (8 MB)
Memória RAM
(2 GB)
Disco
250 GB
maior capacidade, menor custo

Os computadores possuem uma
hierarquia de memória com vários
níveis.
Os registradores são pequenas unidades
de memória presentes na CPU
responsáveis por armazenar dados de
instruções durante a execução da
mesma.
As caches têm cópias das células de
memória mais usadas e são de
funcionamento automático.
A memória central (ou principal) pode
servir de cache do disco (memória
virtual).
O disco pode servir de cache para a
informação em servidores.
Os “mirrors” são servidores que atuam
como caches de outros.
menor tempo de acesso

MEMÓRIA CACHE

As caches são pequenas memórias internas (mais rápidas
que a memória externa) que contêm os dados e instruções
mais usados (dão ao núcleo do processador a ilusão de
memórias separadas).
instruções
endereços
de instruções
Núcleo do
processador
dados
dados
endereços
de dados
Cache de
instruções
endereços
Interface
de
memória
Cache de
dados
Processador
dados/instruções
WR
RD
Memória
principal
(dados e
instruções)
MEMÓRIA CACHE - EXEMPLOS
Fonte: www.clubedohardware.com.br
MEMÓRIA CACHE - EXEMPLOS
Fonte: www.clubedohardware.com.br
PRINCÍPIOS DE FUNCIONAMENTO DAS
CACHES

Felizmente, os programas acessam a memória com:

Localidade temporal. Se um endereço for acessado agora, há
uma grande probabilidade de ser acessado no futuro próximo
(loops, rotinas de invocação freqüente, dados importantes);

Localidade espacial. Se um endereço for acessado, a
probabilidade de os próximos acessos serem em endereços
próximos é grande (execução seqüencial, loops, arrays cujos
dados são acessados seqüencialmente).
PRINCÍPIOS DE FUNCIONAMENTO DAS
CACHES


Assim, a cache só tem as células de memória mais
freqüentemente acessadas.
Pode ser menor do que a memória completa, logo muito
mais rápida sem o custo ser muito elevado.
ACESSO ÀS CACHES



Quando se acessa um determinado endereço:

Se a célula com esse endereço estiver na cache, o acesso é
muito rápido (cache hit);

Se não estiver, ocorre um cache miss. Tem de se ir à memória
principal, carregar essa célula na cache e repetir o acesso.
O desempenho das caches normalmente é medido
pelo hit rate (percentagem média dos acessos com
cache hit, tipicamente superiores a 95%).
Também se pode falar na miss rate (percentagem
média dos acessos com cache miss = 1 – hit rate),
tipicamente inferior a 5%.
ACESSO ÀS CACHES
DESEMPENHO DAS CACHES
Quanto maior for a cache em relação à memória
principal, maior será a hit rate.
 Tem um impacto grande no desempenho, mas
também no custo.



Ex: Os Celerons mais baratos eram na verdade, Pentiuns
com metade da cache.
Supondo:



Tempo de acesso da cache: 5 ns
Tempo de acesso da memória principal: 50 ns
Hit rate média: 95%
Então, o tempo de acesso médio será:
0.95 * 5 ns + 0.05 * 55 ns = 7. 5 ns
 Ou seja, 50 ns/7.5 ns = 6.7 vezes mais rápido do que se
só tivéssemos a memória principal.

ELEMENTOS DO PROJETO DA MEMÓRIA
CACHE
Endereços de cache
 Tamanho
 Função de mapeamento
 Algoritmos de substituição
 Política de escrita
 Tamanho da linha
 Número de memórias caches

ELEMENTOS DO PROJETO DA MEMÓRIA
CACHE

Endereços de cache
Cache Lógica – Entre CPU e MMU
 Cache Física – Entre MMU e RAM


Tamanho
Muito grande - Mais lento e Mais caro.
 Muito pequena – Hit rate baixo


Função de mapeamento
Direto
 Associativo
 Associativo em Conjunto

MAPEAMENTO DIRETO
Cada bloco da memória principal é mapeado a
somente uma linha de cache
 Endereço é composto por 2 partes
 Os w bits LSB indentificam a palavra no bloco
 Os s bits MSB especificam um bloco de memória

MAPEAMENTO DIRETO
Os p bits LSB do bloco são o índice da cache, tal
que a cache possui 2p linhas.
 Na prática, isto se resume na tabela abaixo:

MAPEAMENTO ASSOCIATIVO

O mapeamento direto tem o problema de dois blocos
com o mesmo índice não poderem coexistir na cache,
mesmo que:
os dois blocos estejam sendo muito usados
 o resto da cache esteja vazia!!!


No mapeamento associativo qualquer bloco pode
ocupar qualquer posição na cache, mas :
O rótulo tem de ser o endereço todo (para distinguir
quaisquer blocos), exceto os bits de endereço da palavra
dentro do bloco
 A procura do bloco (para ver se é cache hit) já não é por
índice. Tem de se comparar o endereço com o rótulo em
todos os blocos ao mesmo tempo (para ser rápido)

MAPEAMENTO ASSOCIATIVO
MAPEAMENTO ASSOCIATIVO POR CONJUNTOS
DE K VIAS


Uma solução intermediária é usar K caches de mapeamento
direto e procurar em todas elas em paralelo (mapeamento
associativo de K vias).
Uma linha das várias caches de mapeamento direto é um
conjunto (uma cache associativa).
conjunto
conjunto
conjunto
Via 0
=?
rótulo
índice
palavra dentro
do bloco
hit
Via 1
=?
ALGORITMOS DE SUBSTITUIÇÃO

Onde colocar uma célula de memória que se foi buscar
na memória principal devido a um cache miss?
Caches de mapeamento direto: na célula indicada pelo
índice
 Caches de mapeamento completamente associativo:

Com lugares vagos: em um lugar vago qualquer
 Cheia: LRU, FIFO, Random
 Na prática, costuma usar-se um contador para ir escrevendo na
célula seguinte, independentemente de estar cheia ou vazia, de ter
sido muito usada ou não. É um método simples e não muito pior
que os anteriores


Caches associativas com K vias: obtém-se o conjunto
através do índice e escolhe-se uma via
POLÍTICA DE ESCRITA

Temos duas políticas de escrita:

Write-through: escreve-se na cache e na memória
principal

Write-back: escreve-se só na cache e só se atualiza a
memória principal quando o bloco tem de sair da cache
TAMANHO DA LINHA

O tamanho da linha da cache também é outro
fator a ser considerado pois a medida que os
blocos da memória principal se tornam maiores,
temos duas situações
Poucos blocos por vez na cache – Grande descarte de
dados logo após carregamento
 As palavras adicionais ficam distantes da solicitada, o
que torna menor a chance de serem utilizadas.

NÚMEROS DE MEMÓRIAS CACHE

Caches Multiníveis –


Inicialmente havia apenas uma única cache. Com o
passar do tempo surgiram caches multiníveis que em
um primeiro momento eram externas a CPU
(acessadas por barramento), mas que posteriormente
foram introduzidas no chip da CPU.
Caches Unificadas versus Separadas –


Unificada: Maior taxa de acerto, somente uma cache
precisa ser projetada e implementada.
Separada: Melhor desempenho, pois evita disputas
entre unidades de busca/decodificação de instruções e
unidades de execução.
EXERCÍCIOS DE CACHES
1.
2.
3.
4.
Defina cache hit e cache miss.
Como o princípio de localidade se relaciona com o uso
de caches multiníveis.
Quais são as diferenças entre mapeamento direto e
associativo. Cite as vantagens e desvantagens de
cada um.
Qual a diferença entre localidade espacial e
localidade temporal?
Download