Prof. Laércio Lima Pilla
laercio.pilla@ufsc.br
INE5607 – Organização e
Arquitetura de Computadores
Hierarquia e Gerência d...
Sumário
• Problemas do mapeamento direto
• Caches associativas
• Caches associativas por conjunto
• Comparação
• Considera...
PROBLEMAS DO
MAPEAMENTO DIRETO
INE5607 - Prof. Laércio Lima Pilla 3
Problemas do mapeamento direto
• Rápida revisão
–Mapeamento direto
• Mapeamento = E módulo N
• E: endereço do bloco (não d...
Problemas do mapeamento direto
• Exemplo
–Cache com quatro blocos
• Mapeamento direto
• Sequência de acesso a blocos: 0, 8...
Problemas do mapeamento direto
• Exemplo
–Cache com quatro blocos
• Mapeamento direto
• Sequência de acesso a blocos: 0, 8...
Problemas do mapeamento direto
• Mas isso nunca aconteceria....
–Cache com dois blocos
–Blocos de duas words
–Item do arra...
Problemas do mapeamento direto
• Mas esse caso é um exagero...
–Cache com quatro blocos de uma palavra cada
int matriz[N][...
Problemas do mapeamento direto
• Acesso à memória
–matriz[i][j] -> matriz[i*N+j]
–No caso
• matriz[3][4] -> matriz[304]
– ...
Problemas do mapeamento direto
• Como poderíamos resolver esse problema
de conflito?
–Que tal um mapeamento mais flexível?...
CACHES ASSOCIATIVAS
INE5607 - Prof. Laércio Lima Pilla 11
Caches associativas
• Extremo oposto a caches com
mapeamento direto
–Mapeamento direto: apenas uma posição
para um endereç...
Caches associativas
• Exemplo
–Cache com quatro blocos
• Cache associativa
• Sequência de acesso a blocos: 0, 8, 0, 6, 8
I...
Caches associativas
• Exemplo
–Cache com quatro blocos
• Cache associativa
• Sequência de acesso a blocos: 0, 8, 0, 6, 8
I...
Caches associativas
• Como calcular o mapeamento?
–É só escolher um slot disponível
• E se não houver slot disponível?
–Po...
Caches associativas
• Exemplo
–Memória de 4KB (2¹² bytes)
–Palavras de 32 bits
–Blocos de 2 palavras
–Cache de 16 blocos
–...
Caches associativas
• Cálculo do tamanho da cache e da tag
–Memória de 2m bytes (endereçáveis)
–Cache com 2c blocos
–Bloco...
Caches associativas
• Vantagens (vs mapeamento direto)
–Maior taxa de acertos
• Maior desempenho :D
• Desvantagens
–Circui...
Caches associativas
• Falácia: Caches associativas comparam
tags em sequência
–Circuitos trabalham em paralelo
–N comparad...
CACHES ASSOCIATIVAS
POR CONJUNTO
INE5607 - Prof. Laércio Lima Pilla 20
Caches associativas por conjuntos
• Caminho do meio
–Agrupa blocos de cache em conjuntos
–Um endereço só pode ser mapeado ...
Caches associativas por conjuntos
• Vantagens
–Maior grau de associatividade leva a maior
taxa de acertos
• Menos conflito...
Caches associativas por conjuntos
• Exemplo
–Cache com quatro blocos
• Cache 2-associativa
• Sequência de acesso a blocos:...
Caches associativas por conjuntos
• Exemplo
–Cache com quatro blocos
• Cache 2-associativa (conjuntos de dois blocos)
• Se...
Caches associativas por conjuntos
• Exemplo
–Memória de 4KB (2¹² bytes)
–Palavras de 32 bits, blocos de 2 palavras
–Cache ...
Caches associativas por conjuntos
• Comparação para cache com oito blocos
INE5607 - Prof. Laércio Lima Pilla 26
TAG D
(0)
...
Caches associativas por conjuntos
• Maior associatividade
–Mais blocos por conjunto
–Maior número de comparações
–Maiores ...
Caches associativas por conjuntos
• Cálculo do tamanho da cache e da tag
–Memória de 2m bytes (endereçáveis)
–Cache com 2n...
Caches associativas por conjuntos
• Exercício
–Memória de 4GB (232 bytes)
–Palavras de 32 bits
–Blocos de 8 palavras
–Cach...
Caches associativas por conjuntos
• Exercício
–Memória de 4GB (232 bytes)
–Palavras de 32 bits
–Blocos de 8 palavras
–Cach...
CONSIDERAÇÕES FINAIS
INE5607 - Prof. Laércio Lima Pilla 31
Considerações finais
• Cache de mapeamento direto
• Cache associativa
• Cache associativa em conjunto
• Tags e tamanhos ef...
Prof. Laércio Lima Pilla
laercio.pilla@ufsc.br
INE5607 – Organização e
Arquitetura de Computadores
Hierarquia e Gerência d...
Próximos SlideShares
Carregando em…5
×

Aula 22 caches associativas e associativas por conjunto

1.178 visualizações

Publicada em

Publicada em: Arte e fotografia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.178
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
23
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula 22 caches associativas e associativas por conjunto

  1. 1. Prof. Laércio Lima Pilla laercio.pilla@ufsc.br INE5607 – Organização e Arquitetura de Computadores Hierarquia e Gerência de Memória Aula 22: Caches associativas e associativas por conjunto
  2. 2. Sumário • Problemas do mapeamento direto • Caches associativas • Caches associativas por conjunto • Comparação • Considerações finais INE5607 - Prof. Laércio Lima Pilla 2
  3. 3. PROBLEMAS DO MAPEAMENTO DIRETO INE5607 - Prof. Laércio Lima Pilla 3
  4. 4. Problemas do mapeamento direto • Rápida revisão –Mapeamento direto • Mapeamento = E módulo N • E: endereço do bloco (não da palavra ou byte) • N: número de blocos na cache INE5607 - Prof. Laércio Lima Pilla 4 Bloco 01101? End. Dado 00 ... 01 ... 10 ... 11 ...
  5. 5. Problemas do mapeamento direto • Exemplo –Cache com quatro blocos • Mapeamento direto • Sequência de acesso a blocos: 0, 8, 0, 6, 8 INE5607 - Prof. Laércio Lima Pilla 5 End. do bloco Acerto ou falha Conteúdo dos blocos de cache após referência 0 1 2 3 Bloco 0 Bloco 8 Bloco 0 Bloco 6 Bloco 8
  6. 6. Problemas do mapeamento direto • Exemplo –Cache com quatro blocos • Mapeamento direto • Sequência de acesso a blocos: 0, 8, 0, 6, 8 INE5607 - Prof. Laércio Lima Pilla 6 End. do bloco Acerto ou falha Conteúdo dos blocos de cache após referência 0 1 2 3 Bloco 0 Falha Mem[0] Bloco 8 Falha Mem[8] Bloco 0 Falha Mem[0] Bloco 6 Falha Mem[0] Mem[6] Bloco 8 Falha Mem[8] Mem[6]
  7. 7. Problemas do mapeamento direto • Mas isso nunca aconteceria.... –Cache com dois blocos –Blocos de duas words –Item do array: int acc, int val, int x, int y; for ( i=1 ; i<=N ; i++ ) array.acc[i] = array.val[i] + array.acc[i-1]; INE5607 - Prof. Laércio Lima Pilla 7
  8. 8. Problemas do mapeamento direto • Mas esse caso é um exagero... –Cache com quatro blocos de uma palavra cada int matriz[N][N]; //N = 100 for ( j=0 ; j < N ; j++) for ( i=1 ; i < N ; i++) matriz[i-1][j] = matriz[i][j]; INE5607 - Prof. Laércio Lima Pilla 8
  9. 9. Problemas do mapeamento direto • Acesso à memória –matriz[i][j] -> matriz[i*N+j] –No caso • matriz[3][4] -> matriz[304] – Mapeamento: 304 módulo 4 = 0 • matriz[2][4] -> matriz[204] – Mapeamento: 204 módulo 4 = 0 –Ou seja, falhas e mais falhas.... INE5607 - Prof. Laércio Lima Pilla 9
  10. 10. Problemas do mapeamento direto • Como poderíamos resolver esse problema de conflito? –Que tal um mapeamento mais flexível? INE5607 - Prof. Laércio Lima Pilla 10 End. do bloco Acerto ou falha Conteúdo dos blocos de cache após referência 0 1 2 3 Bloco 0 Falha Mem[0] Bloco 8 Falha Mem[8] Bloco 0 Falha Mem[0] Bloco 6 Falha Mem[0] Mem[6] Bloco 8 Falha Mem[8] Mem[6]
  11. 11. CACHES ASSOCIATIVAS INE5607 - Prof. Laércio Lima Pilla 11
  12. 12. Caches associativas • Extremo oposto a caches com mapeamento direto –Mapeamento direto: apenas uma posição para um endereço de bloco –Mapeamento associativo: todas as posições para um endereço de bloco! INE5607 - Prof. Laércio Lima Pilla 12
  13. 13. Caches associativas • Exemplo –Cache com quatro blocos • Cache associativa • Sequência de acesso a blocos: 0, 8, 0, 6, 8 INE5607 - Prof. Laércio Lima Pilla 13 End. do bloco Acerto ou falha Conteúdo dos blocos de cache após referência 0 1 2 3 Bloco 0 Bloco 8 Bloco 0 Bloco 6 Bloco 8
  14. 14. Caches associativas • Exemplo –Cache com quatro blocos • Cache associativa • Sequência de acesso a blocos: 0, 8, 0, 6, 8 INE5607 - Prof. Laércio Lima Pilla 14 End. do bloco Acerto ou falha Conteúdo dos blocos de cache após referência 0 1 2 3 Bloco 0 Falha Mem[0] Bloco 8 Falha Mem[0] Mem[8] Bloco 0 Acerto Mem[0] Mem[8] Bloco 6 Falha Mem[6] Mem[0] Mem[8] Bloco 8 Acerto Mem[6] Mem[0] Mem[8]
  15. 15. Caches associativas • Como calcular o mapeamento? –É só escolher um slot disponível • E se não houver slot disponível? –Políticas de substituição • Circular • Aleatório • Least Recently Used (LRU) – Substitui bloco que foi acessado menos recentemente • Como identificar quem está mapeado? –Tag INE5607 - Prof. Laércio Lima Pilla 15
  16. 16. Caches associativas • Exemplo –Memória de 4KB (2¹² bytes) –Palavras de 32 bits –Blocos de 2 palavras –Cache de 16 blocos –Endereço de memória: 0110 0101 1010 INE5607 - Prof. Laércio Lima Pilla 16 Cache Tag End. bloco End. Interno word byte Map. Direto 01100 1011 0 10 Associativa 011001011 - 0 10
  17. 17. Caches associativas • Cálculo do tamanho da cache e da tag –Memória de 2m bytes (endereçáveis) –Cache com 2c blocos –Blocos de 2p palavras –Palavras de 2b bytes (2b+3 bits) –1 bit de validade por bloco –Tamanho do tag: m - (p+b) bits –Armazenamento da cache: 2(c+p+b) bytes –Tamanho efetivo: 2c*(2p+b+3+1+m-(p+b)) bits INE5607 - Prof. Laércio Lima Pilla 17
  18. 18. Caches associativas • Vantagens (vs mapeamento direto) –Maior taxa de acertos • Maior desempenho :D • Desvantagens –Circuito mais complexo • Múltiplas comparações de tag em paralelo • Muito caro para caches grandes :< • Reduções • Pode levar a tempo de acesso maior :~ INE5607 - Prof. Laércio Lima Pilla 18
  19. 19. Caches associativas • Falácia: Caches associativas comparam tags em sequência –Circuitos trabalham em paralelo –N comparadores para N blocos –Árvore de redução INE5607 - Prof. Laércio Lima Pilla 19 TAG.... TAGTAGTAG TAG or or or = ? = ? = ? = ?
  20. 20. CACHES ASSOCIATIVAS POR CONJUNTO INE5607 - Prof. Laércio Lima Pilla 20
  21. 21. Caches associativas por conjuntos • Caminho do meio –Agrupa blocos de cache em conjuntos –Um endereço só pode ser mapeado para um conjunto –Dentro do conjunto, o endereço pode ser mapeado para qualquer posição INE5607 - Prof. Laércio Lima Pilla 21
  22. 22. Caches associativas por conjuntos • Vantagens –Maior grau de associatividade leva a maior taxa de acertos • Menos conflitos –Menor grau de associatividade requer menos recursos • Comparações apenas dentro de um conjunto INE5607 - Prof. Laércio Lima Pilla 22
  23. 23. Caches associativas por conjuntos • Exemplo –Cache com quatro blocos • Cache 2-associativa • Sequência de acesso a blocos: 0, 8, 0, 6, 8 INE5607 - Prof. Laércio Lima Pilla 23 End. do bloco Acerto ou falha Conteúdo dos blocos de cache após referência Conjunto 0 Conjunto 1 Posição 0 Posição 1 Posição 0 Posição 1 Bloco 0 Bloco 8 Bloco 0 Bloco 6 Bloco 8
  24. 24. Caches associativas por conjuntos • Exemplo –Cache com quatro blocos • Cache 2-associativa (conjuntos de dois blocos) • Sequência de acesso a blocos: 0, 8, 0, 6, 8 INE5607 - Prof. Laércio Lima Pilla 24 End. do bloco Acerto ou falha Conteúdo dos blocos de cache após referência Conjunto 0 Conjunto 1 Posição 0 Posição 1 Posição 0 Posição 1 Bloco 0 Falha Mem[0] Bloco 8 Falha Mem[0] Mem[8] Bloco 0 Acerto Mem[0] Mem[8] Bloco 6 Falha Mem[0] Mem[6] Bloco 8 Falha Mem[0] Mem[8]
  25. 25. Caches associativas por conjuntos • Exemplo –Memória de 4KB (2¹² bytes) –Palavras de 32 bits, blocos de 2 palavras –Cache de 16 blocos –Endereço de memória: 0110 0101 1010 INE5607 - Prof. Laércio Lima Pilla 25 Cache Tag End. bloco ou conj. End. Interno word byte Map. Direto 01100 1011 0 10 Associativa 011001011 - 0 10 2-Associativa 011001 011 0 10 8-Associativa 01100101 1 0 10
  26. 26. Caches associativas por conjuntos • Comparação para cache com oito blocos INE5607 - Prof. Laércio Lima Pilla 26 TAG D (0) (1) (2) (3) (4) (5) (6) (7) TAG D TAG D (0) (4) (1) (5) (2) (6) (3) (7) TAG D TAG D TAG D TAG D (0) (2) (4) (6) (1) (3) (5) (7) TAG D TAG D TAG D TAG D TAG D TAG D TAG D TAG D (0) (1) (2) (3) (4) (5) (6) (7) Cache 1-associativa (mapeamento direto) Cache 2-associativa Cache 4-associativa Cache 8-associativa (totalmente associativa)
  27. 27. Caches associativas por conjuntos • Maior associatividade –Mais blocos por conjunto –Maior número de comparações –Maiores tags –Menor índice para escolher conjunto –Maior taxa de acertos INE5607 - Prof. Laércio Lima Pilla 27
  28. 28. Caches associativas por conjuntos • Cálculo do tamanho da cache e da tag –Memória de 2m bytes (endereçáveis) –Cache com 2n conjuntos –Conjuntos com 2c blocos –Blocos de 2p palavras –Palavras de 2b bytes (2b+3 bits) –1 bit de validade por bloco –Tamanho do tag: m - (n+p+b) bits –Armazenamento da cache: 2(n+c+p+b) bytes –Tamanho: 2n+c*(2p+b+3+1+m-(n+p+b)) bits INE5607 - Prof. Laércio Lima Pilla 28 Total de blocos = 2n+c
  29. 29. Caches associativas por conjuntos • Exercício –Memória de 4GB (232 bytes) –Palavras de 32 bits –Blocos de 8 palavras –Cache de 128 blocos –Endereço de memória: 0xBEBAC0CA –Qual o mapeamento do bloco e a tag para • Cache com mapeamento direto? • Cache totalmente associativa? • Cache 4-associativa? INE5607 - Prof. Laércio Lima Pilla 29
  30. 30. Caches associativas por conjuntos • Exercício –Memória de 4GB (232 bytes) –Palavras de 32 bits –Blocos de 8 palavras –Cache de 128 blocos –Qual o tamanho efetivo da cache • com mapeamento direto? • totalmente associativa? • 4-associativa? INE5607 - Prof. Laércio Lima Pilla 30
  31. 31. CONSIDERAÇÕES FINAIS INE5607 - Prof. Laércio Lima Pilla 31
  32. 32. Considerações finais • Cache de mapeamento direto • Cache associativa • Cache associativa em conjunto • Tags e tamanhos efetivos INE5607 - Prof. Laércio Lima Pilla 32
  33. 33. Prof. Laércio Lima Pilla laercio.pilla@ufsc.br INE5607 – Organização e Arquitetura de Computadores Hierarquia e Gerência de Memória Aula 22: Caches associativas e associativas por conjunto

×