Fatec - Sorocaba
MEMÓRIA CACHE E TÉCNICAS
DE MAPEAMENTO
Capítulo 5
Profª Maria Angélica Calixto de Andrade
Cardieri
1
A Memória Cache

A cache é uma memória de
acesso randômico (random
access memory – RAM) que o
microprocessador pode acessar
mais rapidamente que uma
memória RAM convencional.

Sua finalidade é aumentar o
desempenho do processador
realizando uma busca
antecipada na memória RAM.
Profª Maria Angélica Calixto de Andrade
Cardieri
2
Memória Cache

Para processar dados, o microprocessador verifica
primeiramente na memória cache se esses dados estão
armazenados lá, se os encontra (proveniente de uma
leituras anteriores desses mesmos dados) não necessita
obtê-los de outra memória mais lenta.

A RAM principal geralmente é um chip DRAM ( dynamic RAM).

A SRAM, utilizada como memória cache, não é atualizada
eletronicamente como a DRAM, e por isso é mais cara que a ela.

Uma SRAM (ou memória cache) comum no mercado tem
tamanho de 1048 kilobytes (1 megabyte). Uma DRAM típica
varia a capacidade de 4 megabytes a 32 megabytes. *****
Profª Maria Angélica Calixto de Andrade
Cardieri
3
MEMÓRIAS CACHE
PRIMÁRIA E SECUNDÁRIA



Estrutura conhecida
como memória cache em
dois níveis;
Memória Cache Primária –
L1 (interna)
- Integrada ao processador,
permitindo acesso em único
ciclo de clock;
Cache Secundária – L2
(externa)
- Localizada na placa-mãe
do sistema, consome em
média 2 ou 3 ciclos de
Profª Maria Angélica Calixto de Andrade
clock;
Cardieri
4
MEMÓRIAS CACHE
PRIMÁRIA E SECUNDÁRIA

NESSE SISTEMA:

L1: Memória Cache Primária:
captura a maioria dos acessos
realizados pelo processador;

L2: Memória Cache Secundária:
captura os acessos que resultam
em falhas;
Profª Maria Angélica Calixto de Andrade
Cardieri
5
A Memória
Cache
Profª Maria Angélica Calixto de Andrade
Cardieri
6
Arquitetura Atual




Cache Nível L1: sempre localizada
dentro do processador
Cache Nível L2: localizados dentro
do processador no interior da pastilha
ma separada deste.(acesso com o
clock interno);
Cache Nível L3: Qdo o processador
possue L1 e L2 interna a L3 é a
cache localizada na placa mãe.
Para aumentar a memória cache é
necessário trocar o processador;
Profª Maria Angélica Calixto de Andrade
Cardieri
7
Exemplos:

386 DX: cache externo ao processador e
opcional (64KB ou 128KB) - “write-through”;

486 DX: 8 KB interno (L1) e 128 KB ou 256
KB externo (L2) - “write-back”;

Pentium: 2 circuitos separados (16 KB + 16
KB) – uma cache para instruções e outra
para dados;

AMD K5, K6 e K6-2: mesma arquitetura de
cache, K6-III possuía L3;
Profª Maria Angélica Calixto de Andrade
Cardieri
8
Diferença de Velocidade
Processador/MP


A memória principal transfere bits para o processador em
velocidades sempre inferiores às que o processador pode receber e
operar os dados.
Isso faz com que o processador fique em estado de espera (wait
state).
Memória
Principal
Processador
Operação
Soma: 2 ns
Transferência 100 ns
Profª Maria Angélica Calixto de Andrade
Cardieri
9
Princípio de Localidade

É a tendência do processador ao longo de uma
execução referenciar instruções e dados da
memória principal localizados em endereços
próximos;

Constatação feita por pesquisadores há muito
tempo…..(agrupar pequenos itens de acesso
frequente próximo ao usuário)

Localidade Temporal e Espacial
Profª Maria Angélica Calixto de Andrade
Cardieri
10
Princípios de Localidade

Localidade Temporal:
Se o programa acessa uma palavra de memória há uma boa
probabilidade de que ele em breve acesse a mesma palavra
novamente.
Isto é, os programas tendem a usar frequentemente o mesmo
endereço em curtos espaços de tempo, por exemplo um loop.

Localidade Espacial:
Se o programa acessa uma palavra de memória, há
uma boa probabilidade de que o acesso seguinte
seja uma palavra subsequente ou de endereço
adjacente àquela palavra que acabou de acessar.
Profª Maria Angélica Calixto de Andrade
Cardieri
11
Operação

A Cache é feita de uma fila de elementos:
 Cópia exata do dado presente em outro local;
 Cada elemento tem um rótulo especificando a
identidade e o local de armazenamento original.

CACHE HIT – acerto
O dado é encontrado na cache
- hit rate ou hit ratio > 90% é o ideal.

CACHE MISS – falha
O dado não é encontrado na cache.
Profª Maria Angélica Calixto de Andrade
Cardieri
12
Organização e funcionamento
da memória cache
Profª Maria Angélica Calixto de Andrade
Cardieri
13
Políticas de Escrita na Cache

Problema: Como manter a Cache e a MP atualizadas
???

Políticas:
Write-Back
Write-through

WRITE-BACK (Somente no retorno):
- A atualização da MP é feita somente quando o bloco for substituido.
- A CPU escreve diretamente na cache, cabe ao sistema a posterior
escrita na MP;
- CPU fica livre rapidamente para executar outras operações;
- “Dirty bit” : bit adicional para indicar se o bloco armazenado na
cache sofreu alterações ou não
Profª Maria Angélica Calixto de Andrade
Cardieri
14
POLÍTICAS DE ESCRITA
WRITE-BACK

VANTAGENS:
- A escrita ocorre à velocidade da cache;
- Escritas múltiplas de endereço requerem apenas uma escrita na
memória;
- Consome menos largura de banda.

DESVANTAGENS:
- Mais difícil implementação;
- Nem sempre há consistência entre dados da cache e memória principal
que pode ficar desatualizada para utilização por outros dispositivos ligados à
ela;
- Precisa do “dirty bit”.
Profª Maria Angélica Calixto de Andrade
Cardieri
15
POLÍTICAS DE ESCRITA

WRITE-THROUGH (escrita em ambas):
 Cada vez que um elemento é escrito na cache ele
também é escrito na memória principal;
 Pior desempenho que o Write-Back;
 Implementação mais simples;
 Consistência interna (cache sempre síncrona com
a memória).
Profª Maria Angélica Calixto de Andrade
Cardieri
16
POLÍTICAS DE ESCRITA
WRITE-THROUGH


VANTAGENS:
- Fácil de implementar;
- Um cache miss nunca resulta em escritas na memória pois
a memória principal tem sempre a informação mais recente e
portanto não precisa ser atualizada.
DESVANTAGENS:
- A escrita é lenta;
- Pode haver uma grande quantidade de escritas desnecessárias na
MP
Profª Maria Angélica Calixto de Andrade
Cardieri
17
ELEMENTOS DO PROJETO
DE UMA CACHE
TAMANHO

O tamanho da memória cache deve levar em
consideração o custo por bit e o tempo de
acesso.
Profª Maria Angélica Calixto de Andrade
Cardieri
18
ELEMENTOS DO PROJETO
DE UMA CACHE
FUNÇÃO DE MAPEAMENTO

Como o nº de linhas da memória cache é bem
menor que o nº de blocos da MP, são necessárias
formas de mapear os blocos da memória principal
para a cache:
-
Mapeamento Direto;
Mapeamento Associativo;
Mapeamento Associativo por Conjunto;
-
Profª Maria Angélica Calixto de Andrade
Cardieri
19
ELEMENTOS DO PROJETO
DE UMA CACHE
MAPEAMENTO DIRETO


Neste tipo de cache temos
acesso simultâneo ao tag
(nome dado a um dos campos
do diretório) e aos dados.
Não é necessária memória
associativa, e o algoritmo de
substituição é trivial. A taxa de
acerto é baixa.
Profª Maria Angélica Calixto de Andrade
Cardieri
20
ELEMENTOS DO PROJETO
DE UMA CACHE
MAPEAMENTO ASSOCIATIVO

Na cache com mapeamento
totalmente associativo, uma
determinada palavra pode ocupar
qualquer posição na cache. Os bits
de tag são usados para
comparação. Neste caso, para
saber se um bloco está na cache, é
necessário pesquisar todos os
blocos.
Profª Maria Angélica Calixto de Andrade
Cardieri
21
ELEMENTOS DO PROJETO
DE UMA CACHE
MAPEAMENTO ASSOCIATIVO
POR CONJUNTO

Caches com mapeamento
associativo por conjunto tem
compromisso entre mapeamento
direto e totalmente associativo. Ele
reduz o tamanho e o custo da
comparação associativa, e é usado
pela maioria das CPUs atuais.
Profª Maria Angélica Calixto de Andrade
Cardieri
22
ELEMENTOS DO PROJETO
DE UMA CACHE
ALGORITMOS DE SUBSTITUIÇÃO

Quando a memória cache está cheia e um novo bloco é
trazido para ela, algum bloco existente deve ser
substituído para dar lugar ao novo. Para que o processo
seja feito rapidamente ele deve ser implementado em
hardware:
-
LRU (Least Recently Used); menos recentemente
utilizado
FIFO (First In First Out); Primeiro a entrar é o primeiro
a sair (fila)
LFU (Least Frequently Used); menos frequentemente
utilizado
-
-
Profª Maria Angélica Calixto de Andrade
Cardieri
23
Tipos de Algoritmos

LRU – Least Recently Used (O que
não é usado há mais tempo)

O Sistema escolhe um bloco que o
processador não acessa há mais tempo
Bit adicional em cada linha

Profª Maria Angélica Calixto de Andrade
Cardieri
24
Tipos de Algoritmos

FIFO – First-In, First-Out (Fila)
→ Esquema de fila (Chegou primeiro, first in, é o que primeiro
que sai, first out)
→ O sistema escolhe o bloco que está há mais tempo na cache
independente da frequência de uso do bloco pelo processador
LFU – Least Frequently Used (o que tem menos acesso)
→ Bloco que teve menos acessos pelo processador é escolhido
(menos referências)
Escolha aleatória
→ Bloco é escolhido aleatoriamente, independente do seu uso
pelo processador
Profª Maria Angélica Calixto de Andrade
Cardieri
25
Referências

Trabalho dos alunos da Fatec-Sorocaba, Curso de PD disciplina de SC - 2º semestre de 2008.
Anderson Blezins de Araujo; Erick Braz Machado ; Lucas Gomes
Finoti; Rafael de França Neves ; Victor Valerio Moraes

Livro do Mário Monteiro – Introdução a organização de
Computadores 5ª edição - Editora LTC
Profª Maria Angélica Calixto de Andrade
Cardieri
26
Download

CapÃtulo5_MemóriaCache