pucc 1 agenda memória cache. pucc 2 memória cache motivo –melhorar a relação entre o tempo de...
TRANSCRIPT
![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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022050921/552fc14d497959413d8e2dc8/html5/thumbnails/24.jpg)
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