PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de...

24
1 PUCC Agenda • Memória CACHE

Transcript of PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de...

Page 1: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

1PUCC

Agenda

• Memória CACHE

Page 2: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

2PUCC

Memória Cache

• Motivo– Melhorar a relação entre o tempo de

acesso a dados e instruções e a velocidade dos processadores.

• Problema– Custo elevado

• Utilização– Praticamente todos os computadores

Page 3: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

3PUCC

Localidade

• Constatação: programas são escritos e executados pela CPU em pequenos grupos de instruções

• Então não é necessário ter uma memória rápida e cara muito grande

• Podemos estabelecer um compromisso entre custo e desempenho

Page 4: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

4PUCC

Localidade

• Temporal: quando a CPU acessa uma palavra de memória existe uma boa probabilidade que em breve acesse a mesma palavra.

• Espacial: quando a CPU acessa uma palavra de memória existe uma boa probabilidade que o programa acesse uma palavra subsequente.

Page 5: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

5PUCC

Programa

Loop 1

Loop 2

PARTE 1

Chamada de Função

Função

PARTE 2

PARTE 3

Page 6: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

6PUCC

Organização

CPU

MemóriaPrincipal

Transferência de

Palavras

Transferência de

Blocos

CACHE

Page 7: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

7PUCC

Funcionamento

• A CPU sempre acessa a memória Cache (dados ou instruções)

• Acerto: a CPU encontra a informação na memória Cache

• Falta: a informação não está na Cache, a execução é suspensa e a informação é transferida da MP para a memória Cache.

Page 8: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

8PUCC

Tempo de Acesso

% acerto (p)

T1

T2

T1+T2

1000

TA= p . T1 + (1-p) . (T2 +T1)

Page 9: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

9PUCC

Memória Cache

• Tamanho

• Mapeamento

• Substituição de dados na Cache

• Política de escrita pela Cache

Page 10: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

10PUCC

Tamanho

• Quanto maior melhor

• Problema custo elevado

• Relação acertos / faltas

• Relação Tempo Acesso Cache pelo Tempo de Acesso da MP

• Natureza dos Programas

Page 11: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

11PUCC

Mapeamento0123456789

N-1

Bloco 0

Bloco 1

Bloco B-1

B= N / K = 2E / K

012

Q-1

Tamanho do Bloco

(K palavras)

Tag

Q << B

Page 12: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

12PUCC

Mapeamento Direto

• MP= 4G palavras E= 32 bits

• Cache= 64 KB Q= 1K– 1 Quadro possui 64 Bytes ou palavras

• B= 4G / 64 Bytes =

• Então:– cada quadro do cache deverá acomodar

64K Blocos.

64 M Blocos

Page 13: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

13PUCC

Exemplo

TAG BLOCOSquadro 0 0 1 2 63quadro 1quadro 2

quadro 1023 16 bits 64 Bytes

Endereço da MP possui 32 bits

16 bits 6 bits10 bits

Endereço da palavra

Número do quadro

Número do bloco no Quadro - TAG

63 62 61 0

Page 14: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

14PUCC

Mapeamento Direto

• Para definir quais blocos da MP serão alocados a um quadro específico: q= N mod Q.

q= número do quadro da Cache

N= endereço da MP

Q= número de quadros da Cache

• q= 0: blocos 0, 1024,2048,...

• q=1023: blocos 1023,2047,.., 64M-1

Page 15: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

15PUCC

Mapeamento Associativo

• Os blocos não têm um quadro associado. Se o bloco desejado não está em nenhum quadro da Cache, ele deverá ser transferido para a Cache, substituindo um bloco armazenado nela.

Page 16: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

16PUCC

Mapeamento Associativo

6 bitsEndereçoda palavra

26 bitsEndereço do Bloco

• Cada vez que a CPU realizar um acesso, o controlador de cache deve examinar e comparar os 26 bits do endereço do bloco

Page 17: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

17PUCC

Associativo por Conjuntos

• Tenta resolver o problema do conflito de blocos em um mesmo quadro (mapeamento direto) e o problema da busca exaustiva e comparação das tags de toda a cache (mapeamento associativo)

Page 18: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

18PUCC

Associativo por Conjuntos

• Organiza os quadros da Cache em grupos - conjuntos. Dentro dos conjuntos, os quadros são associativos.

• A cache é dividida em C conjuntos de D quadros, assim, Q = C x D.

6 bitsEndereçoda palavra

17 bitsTAG

9 bitsNúmero do Conjunto

Page 19: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

19PUCC

Substituição de dados

• Mapeamento Direto: não há o que se fazer - é pré-definida.

• Mapeamento Associativo ou Associativo por Conjuntos– O que não é usado há mais tempo

– Fila ( first in first out)

– O que tem menos referência

– Escolha aleatória

Page 20: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

20PUCC

Escrita na Cache

• Em sistemas com memória Cache, toda vez que a CPU realiza uma operação de escrita, esta ocorre na cache. Portanto, é necessário que em alguns momentos, a MP seja atualizada.

• Antes que um bloco seja substituído na cache, é necessário saber se ele foi alterado ou não.

Page 21: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

21PUCC

Escrita na Cache

• Este problema é complicado– a MP pode ser acessada pela cache e

por dispositivos de E/S (DMA), neste caso a palavra da MP pode ter sido alterada e da cache não.

– Computadores que possuam várias CPU´s cada uma com sua cache.

Page 22: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

22PUCC

Escrita na Cache

• Write Through– cada escrita na cache acarreta escrita

igual na MP.

– Caso existam outras CPU´s com cache o procedimento se repete

• Pode causar uma grande quantidade de escritas desnecessárias na MP, reduzindo o desempenho do sistema

Page 23: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

23PUCC

Escrita na Cache

• Write Back– atualiza a MP quando o bloco foi

substituído e houver ocorrido alguma alteração. Existe um bit de flag para identificar se houve alteração de conteúdo.

• A MP fica potencialmente desatualizada para utilização de outros dispositivos.

Page 24: PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.

24PUCC

Escrita na Cache

• Write Once– apropriada para arquiteturas multi-CPUs.

Por ela, o controlador da cache atualiza a MP sempre que o bloco correspondente na cache foi atualizada pela primeira vez. Essa escrita serve de alerta para os demais componentes. Esse alerta impede o uso da palavra