Coerência de Memórias
Cache e Modelos de
Consistência de Memória
Renato Silva das Neves
Arquitetura de Computadores
Junho 2006
Sumário


Motivação
Coerência de Memórias Cache
Conceitos iniciais
 Protocolos de monitoração
 Protocolos baseados em diretório



Modelos de Consistência de Memória
Conclusão
Introdução






Caches melhoram desempenho
Velocidade dos microprocessadores
Arquiteturas multiprocessadas
Cópias de blocos distribuídas entre as caches
dos processadores
Coerência de cache
Consistência de memória
Coerência de Memórias Cache
Conceitos Iniciais

Software
Análise de código pelo compilador
 Evitam o uso de hardware especial
 Pode levar a uma utilização ineficiente da cache


Hardware
Mantém coerência em tempo de execução
 Protocolos de monitoração
 Protocolos baseados em diretórios

Coerência de Memórias Cache
Protocolos de Monitoração




Barramento compartilhado
Broadcast
Protocolos de atualização de gravação
Protocolos de invalidação de gravação






Write-once
Berkeley
Illinois
Firefly
MESI
...
Coerência de Memórias Cache
Write Once Protocolos de Monitoração
Berkeley
Read miss
Read miss
Bus write-once
Válido
Inválido
Válido
Inválido
Bus invalidate
Bus
write
miss
Write hit
Bus
read
miss
Write hit
Bus
write
miss
Bus
read
miss
Write hit
Write hit
Write hit
Bus read miss
Write miss
Write miss
Inválido
Compartilha
do-dirty
Dirty
Reservado
Dirty
Bus write miss
VálidoExclusivo
Write hit
VálidoExclusivo
Bus invalidate
Bus
write
miss
Bus read
miss
Write hit
Dirty
Write miss
Illinois
Compartilha
do
Bus read
miss
Dirty
Write
hit
Bus read
Bus read
Write hit
Write hit
Write miss
Read miss
Read miss
(da memória)
Read miss
(da cache)
Write
hit
Compartilha
do
Write miss
Bus read/
write
Read miss
Firefly
Coerência de Memórias Cache
Protocolos de Diretório
Coerência de Memórias Cache
Protocolos de Diretório

Informações de compartilhamento são armazenados em
diretórios



Entrada de Diretório





Centralizado – memória centralizada
Distribuído – memória distribuída
Estado do bloco da memória / cache
Lista de compartilhadores
Escalabilidade – muitos processadores!
Conexão ponto-a-ponto, sem broadcast
Classificações: completamente-mapeado, limitado ou
encadeado
Coerência de Memórias Cache
Protocolos de Diretório


Estados: bloco compartilhado, não inserido na cache ou
exclusivo
Falha de leitura na cache




Bloco exclusivo de outro processador
Realiza write-back na memória
Estado do bloco passa a ser compartilhado
Gravação de um bloco na cache



Mensagem é enviada para invalidar cópias em caches
Confirmações são enviadas pelos processadores
O processador requisitante agora tem acesso exclusivo ao bloco
Modelos de Consistência
de Memória




Especifica a ordem vista pelo programador
Leitura deve retornar o valor da “última” escrita
Sistemas multiprocessados: execução fora de
ordem
Modelos de consistência
Seqüencial
 Relaxado


Escrita para leitura, escrita para escrita ou todas as ordens
Modelos de Consistência
de Memória

Exemplo: relaxamento escrita para leitura
P1
Leitura
Flag2
t1
P2
Escrita Flag1 t3
Leitura
Flag1
t2
Escrita Flag2 t4
Barramento Compartilhado
Flag1: 0
Flag2: 0
Memória
P1
P2
Flag1 = 1
if (Flag2 == 0)
seção crítica
Flag2 = 1
if (Flag1 == 0)
seção crítica
Conclusão

Coerência de memórias cache
Abordagem de monitoração – barramento
compartilhado, poucos processadores (até 32)
 Abordagem de diretórios – conexão ponto-a-ponto,
muitos processadores


Consistência de memória
Execução fora de ordem
 Necessidade de sincronização

Coerência de Memórias
Cache e Modelos de
Consistência de Memória
Renato Silva das Neves
Arquitetura de Computadores
Junho 2006
Download

057639-A