Coerência de Memórias Cache e Modelos de Consistência de Memória Renato Silva das Neves...
Transcript of Coerência de Memórias Cache e Modelos de Consistência de Memória Renato Silva das Neves...
Coerência de Coerência de Memórias Cache e Memórias Cache e
Modelos de Modelos de Consistência de Consistência de
MemóriaMemóriaRenato Silva das NevesRenato Silva das Neves
Arquitetura de ComputadoresArquitetura de Computadores
Junho 2006Junho 2006
SumárioSumário
MotivaçãoMotivação Coerência de Memórias CacheCoerência de Memórias Cache
Conceitos iniciaisConceitos iniciais Protocolos de monitoraçãoProtocolos de monitoração Protocolos baseados em diretórioProtocolos baseados em diretório
Modelos de Consistência de Modelos de Consistência de MemóriaMemória
ConclusãoConclusão
IntroduçãoIntrodução
Caches melhoram desempenhoCaches melhoram desempenho Velocidade dos microprocessadoresVelocidade dos microprocessadores Arquiteturas multiprocessadasArquiteturas multiprocessadas Cópias de blocos distribuídas entre Cópias de blocos distribuídas entre
as caches dos processadoresas caches dos processadores Coerência de cacheCoerência de cache Consistência de memóriaConsistência de memória
Coerência de Memórias Coerência de Memórias CacheCache
Conceitos IniciaisConceitos Iniciais SoftwareSoftware
Análise de código pelo compiladorAnálise de código pelo compilador Evitam o uso de hardware especialEvitam o uso de hardware especial Pode levar a uma utilização ineficiente da Pode levar a uma utilização ineficiente da
cachecache HardwareHardware
Mantém coerência em tempo de execuçãoMantém coerência em tempo de execução Protocolos de monitoraçãoProtocolos de monitoração Protocolos baseados em diretóriosProtocolos baseados em diretórios
Coerência de Memórias Coerência de Memórias CacheCache
Protocolos de MonitoraçãoProtocolos de Monitoração Barramento compartilhadoBarramento compartilhado BroadcastBroadcast Protocolos de atualização de gravaçãoProtocolos de atualização de gravação Protocolos de invalidação de gravaçãoProtocolos de invalidação de gravação
Write-onceWrite-once BerkeleyBerkeley IllinoisIllinois FireflyFirefly MESIMESI ......
Coerência de Memórias Coerência de Memórias CacheCache
Protocolos de MonitoraçãoProtocolos de MonitoraçãoInválido Válido
Dirty Reservado
Bus write-once
Write miss
Read miss
Write hit
Write hit
Buswritemiss
BusreadmissWrite hit
Inválido Válido
DirtyCompartilha
do-dirty
Bus invalidate
Write miss
Read miss
Write hit
Buswritemiss
Write hit
Busreadmiss
Bus read miss
InválidoVálido-
Exclusivo
DirtyCompartilha
do
Write miss
Read miss(da memória)
Bus readmiss
Write hit
Buswritemiss
Write hit
Bus write miss
Bus invalidate
Read miss(da cache)
Bus readmiss
Write Once Berkeley
Válido-Exclusivo
Dirty
Compartilhado
Write miss
Read miss
Write hit Writehit
Write hit
Read miss
Writehit
Write miss
Bus read
Bus read
Bus read/write
FireflyIllinois
Coerência de Memórias Coerência de Memórias CacheCache
Protocolos de DiretórioProtocolos de Diretório
Coerência de Memórias Coerência de Memórias CacheCache
Protocolos de DiretórioProtocolos de Diretório Informações de compartilhamento são Informações de compartilhamento são
armazenados em diretóriosarmazenados em diretórios Centralizado – memória centralizadaCentralizado – memória centralizada Distribuído – memória distribuídaDistribuído – memória distribuída
Entrada de DiretórioEntrada de Diretório Estado do bloco da memória / cacheEstado do bloco da memória / cache Lista de compartilhadoresLista de compartilhadores
Escalabilidade – muitos processadores!Escalabilidade – muitos processadores! Conexão ponto-a-ponto, sem broadcastConexão ponto-a-ponto, sem broadcast Classificações: completamente-mapeado, Classificações: completamente-mapeado,
limitado ou encadeadolimitado ou encadeado
Coerência de Memórias Coerência de Memórias CacheCache
Protocolos de DiretórioProtocolos de Diretório Estados: bloco compartilhado, não inserido Estados: bloco compartilhado, não inserido
na cache ou exclusivona cache ou exclusivo Falha de leitura na cacheFalha de leitura na cache
Bloco exclusivo de outro processadorBloco exclusivo de outro processador Realiza write-back na memóriaRealiza write-back na memória Estado do bloco passa a ser compartilhadoEstado do bloco passa a ser compartilhado
Gravação de um bloco na cacheGravação de um bloco na cache Mensagem é enviada para invalidar cópias em Mensagem é enviada para invalidar cópias em
cachescaches Confirmações são enviadas pelos processadores Confirmações são enviadas pelos processadores O processador requisitante agora tem acesso O processador requisitante agora tem acesso
exclusivo ao blocoexclusivo ao bloco
Modelos de Consistência Modelos de Consistência de Memóriade Memória
Especifica a ordem vista pelo programadorEspecifica a ordem vista pelo programador Leitura deve retornar o valor da “última” Leitura deve retornar o valor da “última”
escritaescrita Sistemas multiprocessados: execução fora Sistemas multiprocessados: execução fora
de ordemde ordem Modelos de consistênciaModelos de consistência
SeqüencialSeqüencial RelaxadoRelaxado
Escrita para leitura, escrita para escrita ou todas as Escrita para leitura, escrita para escrita ou todas as ordensordens
Modelos de Consistência Modelos de Consistência de Memóriade Memória
Exemplo: relaxamento escrita para leituraExemplo: relaxamento escrita para leitura
P1
Barramento Compartilhado
P2
LeituraFlag2
t1Escrita Flag1 t3 Escrita Flag2 t4
Flag1: 0Flag2: 0
Memória
LeituraFlag1
t2
P1
Flag1 = 1if (Flag2 == 0)seção crítica
P2
Flag2 = 1if (Flag1 == 0)seção crítica
ConclusãoConclusão
Coerência de memórias cacheCoerência de memórias cache Abordagem de monitoração – Abordagem de monitoração –
barramento compartilhado, poucos barramento compartilhado, poucos processadores (até 32)processadores (até 32)
Abordagem de diretórios – conexão Abordagem de diretórios – conexão ponto-a-ponto, muitos processadoresponto-a-ponto, muitos processadores
Consistência de memóriaConsistência de memória Execução fora de ordemExecução fora de ordem Necessidade de sincronizaçãoNecessidade de sincronização
Coerência de Coerência de Memórias Cache e Memórias Cache e
Modelos de Modelos de Consistência de Consistência de
MemóriaMemóriaRenato Silva das NevesRenato Silva das Neves
Arquitetura de ComputadoresArquitetura de Computadores
Junho 2006Junho 2006