Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de...

18
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

Transcript of Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de...

Page 1: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

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

Page 2: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

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

Page 3: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

Multiprocessadores com diretório distribuído

Page 4: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

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

Page 5: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

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

Page 6: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

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

Page 7: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

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

Page 8: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

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

Page 9: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

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

Page 10: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

Máquina de estado de um bloco relacionada às solicitações da CPU

Page 11: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

Máquina de estado de um bloco relacionada às solicitações ao diretório

Page 12: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

Mensagens do protocolo de diretório

Page 13: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

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

Page 14: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

Exemplo

Page 15: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

Exemplo

Page 16: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

Exemplo

Page 17: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

Exemplo

Page 18: Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de Computadores Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach

Exemplo