Arquiteturas de Computadores
Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach e nas notas de aula do Prof. Yonghong Yan do curso CSCE 513 Computer Architecture
Paralelismo no nível de threads
Protocolos para coerência de cache
Protocolos snooping Envia todas as solicitações de dados para todos os processadores e o
endereço Todos os processadores verificam o barramento para ver se eles têm uma
cópia e respondem caso eles tenham Requer broadcast, pois as informações da cache estão nos processadores Funciona bem com barramento compartilhado É muito utilizado em máquinas de memória compartilhada centralizada
Protocolos baseados em diretório Acompanha o que está sendo compartilhado em local centralizado Memória distribuída => diretório distribuído para escalabilidade (evita
gargalos) Envia solicitações ponto a ponto aos processadores via rede Escalabilidade melhor que Snooping Comumente usado para máquinas de memória compartilhada distribuída
Multiprocessadores com diretório distribuído
Diretório em sistemas de memória compartilhada distribuída
Sistemas típicos de memória compartilhada distribuída Acesso à memória local ou remota via controlador de
memória Existe uma entrada no diretório por bloco que
rastreia o estado de cada bloco em cada cache Quais caches têm uma cópia do bloco, sujo x limpo, ...
Como impedir que o diretório seja um gargalo? As entradas do diretório são localizadas junto com a
memória que elas referenciam, cada uma das entradas indica quais processadores têm cópias de seus blocos
Diretório em sistemas de memória compartilhada distribuída Semelhante ao Protocolo Snooping com três estados de cada bloco no
diretório: Compartilhado: mais de 1 processador possui dados do bloco na cache,
memória está atualizada Não está na cache: nenhum processador possui o bloco na cache; não é
válido em nenhuma cache Exclusivo: 1 processador (proprietário) possui dados do bloco na cache;
memória desatualizada Além do estado da cache, é necessário rastrear quais processadores
possuem dados do bloco na cache quando o bloco está no estado compartilhado (geralmente vetor de bits, onde bit igual a 1 se oprocessador tem cópia) A propriedade também é rastreada
Premissas: Se vai escrever em dados não exclusivos => considera falta de escrita Processador bloqueia até o acesso ser concluído As mensagens são recebidas e respondidas na ordem enviada
Protocolo de diretório
Não há barramento compartilhado e não se deseja realizar broadcast: a interconexão não é mais um único ponto de arbitragem todas as mensagens têm respostas explícitas
Tipicamente 3 processadores envolvidos Nó local onde uma solicitação se origina Nó original onde reside a memória associada ao endereço Nó remoto que possui uma cópia do bloco na cache, seja
exclusivo ou compartilhado Executa duas operações
Escreve no bloco compartilhado Trata falta de leitura / falta de escrita
Máquina de estado para um bloco individual da cache em um protocolo baseado em diretório
Estados idênticos ao caso do protocolo snooping; transações muito semelhantes
Transições causadas por faltas de leitura, faltas de escrita, invalidações, solicitações de busca de dados
Gera mensagens de falta de leitura / falta de escrita para diretório do nó que possui a memória
Faltas de escrita que eram transmitidas no barramento no protocolo snooping foram substituídas por envio de solicitações explícitas às memórias para invalidação e busca de dados
Exemplo de protocolo de diretório
Uma mensagem enviada para um diretório causa duas ações: Atualização do diretório Geração de mais mensagens para satisfazer a solicitação contida na mensagem
O bloco está no estado não está na cache: a cópia na memória é o valor atual; as possíveis solicitações para esse bloco são: Falta de leitura: o processador solicitante recebe os dados da memória e se torna o
único nó de compartilhamento deste bloco; estado do bloco transiciona para estado compartilhado
Falta de escrita: o processador solicitante recebe o valor e se torna um nó de compartilhamento. O bloco transiciona para o estado exclusivo para indicar que a único cópia válida está armazenada na cache. A identidade do proprietário éarmazenada no conjunto Compartilhadores.
O bloco está no estado compartilhado => o valor da memória está atualizado: Falta de leitura: os dados da memória são enviados ao processador solicitante e
processador solicitante é adicionado ao conjunto Compartilhadores Falta de escrita: os dados são enviados ao processador solicitante. Todos os
processadores do conjunto Compartilhadores recebem mensagens para invalidar o bloco na cache, e o conjunto Compartilhadores armazena a identidade do processador solicitante. O estado do bloco transiciona para o estado exclusivo
Exemplo de protocolo de diretório
O bloco está no estado exclusivo: o valor atual do bloco é mantido na cache do processador identificado no conjunto Compartilhadores como o proprietário; três possíveis solicitações ao diretório: Falta de leitura: o processador proprietário envia uma mensagem de busca de dados,
causando que o estado do bloco na cache do proprietário transicione para estado Compartilhado e faz com que o proprietário envie dados para o diretório, que são gravados na memória e enviados de volta ao processador solicitanteA identidade do processador solicitante é adicionada ao conjunto Compartilhadores, que ainda contém a identidade do processador que era o proprietário (pois este ainda possui uma cópia válida para leitura). Estado do bloco no diretório transiciona para compartilhado
Gravação de dados: o processador proprietário está substituindo o bloco e, portanto, deve escrever de volta, atualizando a cópia da memória, o bloco transiciona para o estado não está na cache, e o conjunto Compartilhadores se torna vazio
Falta de escrita: o bloco tem um novo proprietário. Uma mensagem é enviada ao antigo proprietário fazendo com que a cache envie o valor do bloco para o diretório a partir do qual é enviado o bloco para o processador solicitante, que se torna o novo proprietário. O conjunto Compartilhadores é atualizado para conter somente a identidade do novo proprietário e o estado de bloco transiciona para exclusivo
Máquina de estado de um bloco relacionada às solicitações da CPU
Máquina de estado de um bloco relacionada às solicitações ao diretório
Mensagens do protocolo de diretório
Exemplo: Protocolo baseado em diretório
Assuma estados iniciais das cachessão inválidos e A1 e A2 mapeiampara o mesmo bloco de cache,mas A1 != A2
Exemplo
Exemplo
Exemplo
Exemplo
Exemplo
Top Related