SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
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
Sumário
• Problemas do mapeamento direto
• Caches associativas
• Caches associativas por conjunto
• Comparação
• Considerações finais
INE5607 - Prof. Laércio Lima Pilla 2
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 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 ...
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
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]
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
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
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
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]
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ço de bloco
–Mapeamento associativo: todas as posições
para um endereço de bloco!
INE5607 - Prof. Laércio Lima Pilla 12
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
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]
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
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
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
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
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
= ? = ? = ? = ?
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 para
um conjunto
–Dentro do conjunto, o endereço pode ser
mapeado para qualquer posição
INE5607 - Prof. Laércio Lima Pilla 21
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
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
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]
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
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)
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
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
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
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
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 efetivos
INE5607 - Prof. Laércio Lima Pilla 32
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

Weitere ähnliche Inhalte

Was ist angesagt?

Modelo resumo simplificado - III Encontro
Modelo resumo simplificado - III EncontroModelo resumo simplificado - III Encontro
Modelo resumo simplificado - III EncontroMonique Carvalho
 
Estrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas EstáticasEstrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas EstáticasLeinylson Fontinele
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Matemática Discreta - Introdução à Disciplina
Matemática Discreta - Introdução à DisciplinaMatemática Discreta - Introdução à Disciplina
Matemática Discreta - Introdução à DisciplinaRanilson Paiva
 
Regras de segurança no laboratório
Regras de segurança no laboratórioRegras de segurança no laboratório
Regras de segurança no laboratórioveronicasilva
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em JavaDenis L Presciliano
 
Como elaborar um artigo cientifico
Como elaborar um artigo cientificoComo elaborar um artigo cientifico
Como elaborar um artigo cientificovaldivina
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threadsIsraelCunha
 
Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1Pacc UAB
 
✔ "Análise Térmica" por AnalisesTermicas.com.br
✔ "Análise Térmica" por AnalisesTermicas.com.br✔ "Análise Térmica" por AnalisesTermicas.com.br
✔ "Análise Térmica" por AnalisesTermicas.com.brCarlos Braga
 
Potencial hidrogeniônico (p h)
Potencial hidrogeniônico (p h)Potencial hidrogeniônico (p h)
Potencial hidrogeniônico (p h)Lucas Molinari
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
NORMAS DE SEGURANÇA DE LABORATÓRIO
NORMAS DE SEGURANÇA DE LABORATÓRIONORMAS DE SEGURANÇA DE LABORATÓRIO
NORMAS DE SEGURANÇA DE LABORATÓRIOMaitê Carreira
 
Regras de segurança no laboratório
Regras de segurança no laboratórioRegras de segurança no laboratório
Regras de segurança no laboratóriobelavideira
 

Was ist angesagt? (20)

Modelo resumo simplificado - III Encontro
Modelo resumo simplificado - III EncontroModelo resumo simplificado - III Encontro
Modelo resumo simplificado - III Encontro
 
Estrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas EstáticasEstrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas Estáticas
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
143971273 apostila-materiais
143971273 apostila-materiais143971273 apostila-materiais
143971273 apostila-materiais
 
Matemática Discreta - Introdução à Disciplina
Matemática Discreta - Introdução à DisciplinaMatemática Discreta - Introdução à Disciplina
Matemática Discreta - Introdução à Disciplina
 
Regras de segurança no laboratório
Regras de segurança no laboratórioRegras de segurança no laboratório
Regras de segurança no laboratório
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
Lista de exercicios sais
Lista de exercicios    saisLista de exercicios    sais
Lista de exercicios sais
 
Como elaborar um artigo cientifico
Como elaborar um artigo cientificoComo elaborar um artigo cientifico
Como elaborar um artigo cientifico
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threads
 
Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1
 
✔ "Análise Térmica" por AnalisesTermicas.com.br
✔ "Análise Térmica" por AnalisesTermicas.com.br✔ "Análise Térmica" por AnalisesTermicas.com.br
✔ "Análise Térmica" por AnalisesTermicas.com.br
 
Árvores balanceadas - AVL
Árvores balanceadas - AVLÁrvores balanceadas - AVL
Árvores balanceadas - AVL
 
Potencial hidrogeniônico (p h)
Potencial hidrogeniônico (p h)Potencial hidrogeniônico (p h)
Potencial hidrogeniônico (p h)
 
Amostra...
Amostra... Amostra...
Amostra...
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
NORMAS DE SEGURANÇA DE LABORATÓRIO
NORMAS DE SEGURANÇA DE LABORATÓRIONORMAS DE SEGURANÇA DE LABORATÓRIO
NORMAS DE SEGURANÇA DE LABORATÓRIO
 
Technical Writing
Technical WritingTechnical Writing
Technical Writing
 
Regras de segurança no laboratório
Regras de segurança no laboratórioRegras de segurança no laboratório
Regras de segurança no laboratório
 
Banco de dados de Loja
Banco de dados de LojaBanco de dados de Loja
Banco de dados de Loja
 

Andere mochten auch

Arquitetura de computadores – memórias
Arquitetura de computadores – memóriasArquitetura de computadores – memórias
Arquitetura de computadores – memóriasElaine Cecília Gatto
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memóriaPAULO Moreira
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Faculdade Mater Christi
 
Memoria cache princípio da localidade
Memoria cache   princípio da localidadeMemoria cache   princípio da localidade
Memoria cache princípio da localidadeClaudia Costa
 
Revsão sobre sistemas operacionais
Revsão sobre sistemas operacionaisRevsão sobre sistemas operacionais
Revsão sobre sistemas operacionaisRodrigo Rodrigues
 
Expandindo as oportunidades com Software Livre
Expandindo as oportunidades com Software LivreExpandindo as oportunidades com Software Livre
Expandindo as oportunidades com Software LivreDiemesleno Souza Carvalho
 
Hardware apresentação 5 - cpu e sockets
Hardware   apresentação 5 - cpu e socketsHardware   apresentação 5 - cpu e sockets
Hardware apresentação 5 - cpu e socketsLuiz Pereira de Souza
 
Esquema motherboard
Esquema motherboardEsquema motherboard
Esquema motherboardcabaldreams
 
FLISOL Porque usar Software Livre Bruno Alexandre Barbosa Chucky
FLISOL Porque usar Software Livre Bruno Alexandre Barbosa ChuckyFLISOL Porque usar Software Livre Bruno Alexandre Barbosa Chucky
FLISOL Porque usar Software Livre Bruno Alexandre Barbosa ChuckyBruno Alexandre
 
Ficha de revisões
Ficha de revisõesFicha de revisões
Ficha de revisõesBaguiasri
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Faculdade Mater Christi
 
Aula 14 – Portas lógicas e suas funções
Aula 14 – Portas lógicas e suas funçõesAula 14 – Portas lógicas e suas funções
Aula 14 – Portas lógicas e suas funçõesVitor Hugo Melo Araújo
 
Coreção do teste 1
Coreção do teste 1 Coreção do teste 1
Coreção do teste 1 Baguiasri
 

Andere mochten auch (20)

Arquitetura de computadores – memórias
Arquitetura de computadores – memóriasArquitetura de computadores – memórias
Arquitetura de computadores – memórias
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Memoria cache princípio da localidade
Memoria cache   princípio da localidadeMemoria cache   princípio da localidade
Memoria cache princípio da localidade
 
O processador
O processadorO processador
O processador
 
Revsão sobre sistemas operacionais
Revsão sobre sistemas operacionaisRevsão sobre sistemas operacionais
Revsão sobre sistemas operacionais
 
Expandindo as oportunidades com Software Livre
Expandindo as oportunidades com Software LivreExpandindo as oportunidades com Software Livre
Expandindo as oportunidades com Software Livre
 
Motherboard: resumen gráfico
Motherboard: resumen gráficoMotherboard: resumen gráfico
Motherboard: resumen gráfico
 
Hardware apresentação 5 - cpu e sockets
Hardware   apresentação 5 - cpu e socketsHardware   apresentação 5 - cpu e sockets
Hardware apresentação 5 - cpu e sockets
 
Esquema motherboard
Esquema motherboardEsquema motherboard
Esquema motherboard
 
FLISOL Porque usar Software Livre Bruno Alexandre Barbosa Chucky
FLISOL Porque usar Software Livre Bruno Alexandre Barbosa ChuckyFLISOL Porque usar Software Livre Bruno Alexandre Barbosa Chucky
FLISOL Porque usar Software Livre Bruno Alexandre Barbosa Chucky
 
Ficha de revisões
Ficha de revisõesFicha de revisões
Ficha de revisões
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)
 
Processadores
ProcessadoresProcessadores
Processadores
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Processadores
ProcessadoresProcessadores
Processadores
 
Socket
SocketSocket
Socket
 
Aula 14 – Portas lógicas e suas funções
Aula 14 – Portas lógicas e suas funçõesAula 14 – Portas lógicas e suas funções
Aula 14 – Portas lógicas e suas funções
 
Coreção do teste 1
Coreção do teste 1 Coreção do teste 1
Coreção do teste 1
 

Ähnlich wie Aula 22 caches associativas e associativas por conjunto

Ähnlich wie Aula 22 caches associativas e associativas por conjunto (7)

Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQL
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 

Aula 22 caches associativas e associativas por conjunto

  • 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. 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. PROBLEMAS DO MAPEAMENTO DIRETO INE5607 - Prof. Laércio Lima Pilla 3
  • 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. 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. 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. 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. 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. 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. 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. CACHES ASSOCIATIVAS INE5607 - Prof. Laércio Lima Pilla 11
  • 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. 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. 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. 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. 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. 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. 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. 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. CACHES ASSOCIATIVAS POR CONJUNTO INE5607 - Prof. Laércio Lima Pilla 20
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. CONSIDERAÇÕES FINAIS INE5607 - Prof. Laércio Lima Pilla 31
  • 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. 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