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