O documento discute o problema da coerência de memória cache em sistemas multiprocessados e formas de resolvê-lo. É apresentado o problema da coerência de cache e como ele pode ser resolvido através de esquemas baseados em software ou hardware. Protocolos comuns como snoopy e directory são explicados.
1. O Problema de Coerência de
Memória Cache em Sistemas
Multiprocessados
Junio Figueiredo eWagner Silva Costa
Elaborado em Novembro/2011
Arquitetura de Computadores
Prof. Dr. Alisson Brito
2. 1. Introdução
2. Apresentação do Problema
3. Como Resolver o Problema de Coerência de Cache
4. Esquemas e Protocolos de Coerência de Cache
ObjetivosObjetivos
Pág. 2
5. Conclusão
6. Referências Bibliográficas
Alunos: Junio eWagnerArquitetura de Computadores
3. Coerência:
Qualidade, estado ou atitude de coerente [Aurélio]
Coerência de Cache:
É garantir qualquer processador sempre receba o dado
IntroduçãoIntrodução
Pág. 3
É garantir qualquer processador sempre receba o dado
mais atual contido em qualquer cache para um mesmo
endereço.
Alunos: Junio eWagnerArquitetura de Computadores
4. Problemas de coerência de cache aparecem mais
comumente em sistemas que possuem mais de um
processador. [1]
Apresentação do ProblemaApresentação do Problema
Pág. 4 Alunos: Junio eWagnerArquitetura de Computadores
5. Apresentação do ProblemaApresentação do Problema
1. P1 realiza a leitura do dado X = 0. O dado é gravado na cache
privada;
2. P2 realiza a leitura do dado X = 0. O dado é gravado na cache
privada;
3. P1 realiza X = X + 1. O dado X = 0 é lido da cache privada, e X = 1 é
então gravado;
Pág. 5 Alunos: Junio eWagnerArquitetura de Computadores
então gravado;
4. P2 realiza X = X + 3. O dado X = 0 é lido da cache privada, e X = 3 é
então gravado.
No passo 4, como P2 leu o dado X da cache privada, a alteração
realizada por P1 no passo 3 não foi levada em conta; ocorre incoerência
entre as caches devido à violação da condição chave acima.
6. 1. Esquemas Simples:
• Baseiam na limitação do tipo de dado que pode ir para a
Como Resolver o Problema deComo Resolver o Problema de
Coerência de CacheCoerência de Cache
Pág. 6
• Baseiam na limitação do tipo de dado que pode ir para a
cache, permitindo que apenas dados para leitura ou
mesmo dados não-compartilhados (privados ao
processador) possam ser armazenados na cache.
Alunos: Junio eWagnerArquitetura de Computadores
7. 2. Esquemas Baseados em Software e Hardware
• Esquemas de Sofware:
Como Resolver o Problema deComo Resolver o Problema de
Coerência de CacheCoerência de Cache
Pág. 7
• Esquemas de Sofware:
Delega-se ao compilador ou ao sistema operacional a
responsabilidade de garantir a coerência. A vantagem dos
esquemas baseados em software é evitar que um outro
hardware seja necessário para realizar o tratamento do
problema de coerência.
Alunos: Junio eWagnerArquitetura de Computadores
8. 2. Esquema Baseado em Software e Hardware
• Esquemas de Hardware:
Detectam as condições de inconsistências, livrando
Como Resolver o Problema deComo Resolver o Problema de
Coerência de CacheCoerência de Cache
Pág. 8
Detectam as condições de inconsistências, livrando
completamente o SO, compilador e o programador do
problema de coerência de cache.
Alunos: Junio eWagnerArquitetura de Computadores
9. Esquemas de Coerência Baseados em Software:
São mais baratos, porém pode exigir um esforço extra do
Sistema Operacional , do Compilador e por parte do
programador.
Esquemas e Protocolos de CoerênciaEsquemas e Protocolos de Coerência
de Cachede Cache
Pág. 9
Esquemas Implementados como parte do:
Compilador (Rodam em tempo de compilação);
SO (Rodam em tempo de execução);
São divididas em duas Soluções;
Estáticas
Dinâmicas
Alunos: Junio eWagnerArquitetura de Computadores
10. Esquemas de Coerência Baseados em Software:
Estáticas:
Esquemas e Protocolos de CoerênciaEsquemas e Protocolos de Coerência
de Cachede Cache
Pág. 10
Resultam de ações realizadas durante a criação do
programa, normalmente pelo compilador
Dinâmicas:
São soluções feitas em tempo de execução, por isso
são baseadas em ações do sistema operacional
Alunos: Junio eWagnerArquitetura de Computadores
11. Exemplos:
Esquemas e Protocolos de CoerênciaEsquemas e Protocolos de Coerência
de Cachede Cache
-Controle de Versão
-Timestamp
-Ultracomputer
Esquemas
Estáticos
Pág. 11 Alunos: Junio eWagnerArquitetura de Computadores
-Coerência no Pedido
de interrupção
- One-time Identifier
Esquemas
Dinâmicos
Baseados
em
Software
Esquema de Coerência Baseados em Software
12. Controle Versão (Estáticas)
Cada nova escrita de um dado compartilhado gera uma
nova versão de conteúdo. Os processadores incrementam o
novo número a cada escrita que ocorra.[2]
Esquemas e Protocolos de CoerênciaEsquemas e Protocolos de Coerência
de Cachede Cache
Pág. 12
novo número a cada escrita que ocorra.[2]
Para todo acesso ao dado compartilhado, os números da
cache e o corrente processador são comparados.[3]
Caso a versão do processador seja maior que o da versão
na cache. O processador esta trabalhando com o Dado
corrento.[1]
Alunos: Junio e WagnerArquitetura de Computadores
13. Coerência no Pedido de Interrupção (Dinâmicas)
Solução que utiliza a mesma idéia de memória virtual.
Esquemas e Protocolos de CoerênciaEsquemas e Protocolos de Coerência
de Cachede Cache
Pág. 13
Ao se detectar um page fault, o hardware interrompe a
execução chamando o sistema operacional para fazer o
tratamento adequado.[3]
Alunos: Junio eWagnerArquitetura de Computadores
14. Protocolos de Coerência Baseados em Hardware:
Utilizados principalmente em sistemas multiprocessadores
.
Tais protocolos lidam com a coerência em tempo de
Esquemas e Protocolos de CoerênciaEsquemas e Protocolos de Coerência
de Cachede Cache
Pág. 14
Tais protocolos lidam com a coerência em tempo de
execução, sendo assim considerados dinâmicos. [2]
São mais complexos de implementar, pois são
caracterizados pelo uso de recursos de baixo nível de
arquitetura.[1]
São Classificados em Snoopy e Directory
Alunos: Junio eWagnerArquitetura de Computadores
15. Protocolos de Coerência Baseados em Hardware:
Protocolo Snoopy: (Protocolo de Monitoramento)[4]
Responsabilidade de manter a coerência entre todos os caches;
Esquemas e Protocolos de CoerênciaEsquemas e Protocolos de Coerência
de Cachede Cache
Pág. 15
Responsabilidade de manter a coerência entre todos os caches;
Protocolo Singles Bus
Utiliza duas Política:
Write-Invalidade;
Write-update;
Alunos: Junio eWagnerArquitetura de Computadores
16. Protocolos Snoopy (Singles bus “Write-Invalidade”)
Permite ter um escritor e vários leitores;
Uma escrita em um dado compartilhado gera uma
Esquemas e Protocolos de CoerênciaEsquemas e Protocolos de Coerência
de Cachede Cache
Pág. 16
Uma escrita em um dado compartilhado gera uma
invalidação de todas as cópias desse dado antes que a
escrita se inicie
Protocolos Snoopy (Singles bus “Write-update”)
Atualiza todas as cópias do dado compartilhado antes de
realizar a escrita
Alunos: Junio eWagnerArquitetura de Computadores
17. Protocolos de Coerência Baseados em Hardware:
Protocolo Directory: (Protocolo de Monitoramento)
Esquemas e Protocolos de CoerênciaEsquemas e Protocolos de Coerência
de Cachede Cache
Pág. 17
Protocolo Directory: (Protocolo de Monitoramento)
Utilizam um controlador central para manter a coerência de cache;
Guardam as informações das cópias de dados
Utiliza um diretório na memória principal, onde armazena o estado
global do conteúdo das varias caches
Alunos: Junio eWagnerArquitetura de Computadores
18. Devido ao crescimento de sistemas multiprocessados, o
compartilhamento de memória torna-se um ponto importante
para obter um bom desempenho de sua arquitetura, levando
ConclusãoConclusão
Pág. 18
a solucionar problemas de coerência de cache com a
premissa de baixo custo Vs. Alto desempenho. Dando a
origem a diversa soluções baseadas em software e
hardware.
Alunos: Junio eWagnerArquitetura de Computadores
19. 1.Covacevive, Aleksey V.,Baldochi,B.Y., De Castro,F.R
Coerência de Cache. Instituto de Computação – UNICAMP
2.Geiss, Lenise Cristina.Coerência de Cache em
Multiprossedores.Instituto de Informática UFRGS
3. Da Costa,Andre L.N., Barbosa,Davi.M.J., Silva, Felipe
S.S.Coerência de Cache: O Problema e Algumas Soluções.
Instituto de Computação – UNICAMP
ReferênciasReferências
Pág. 19
Instituto de Computação – UNICAMP
4. M. M. K. Martin. Formal verication and its impact on the
snooping versus directory protocol debate. Proceedings of
the 2005 International Conference on Computer Design,
pages 543-549, 2005.
5.Neves,Renato S., Coerência de Memórias Cache e
Modelos de Consistência de Memória. Instituto de
Computação – UNICAMP
Alunos: Junio eWagnerArquitetura de Computadores