Arquiteturas de Computadoressimone/arqcomp/contaulas/aula20.pdf · 2019-11-19 · Arquiteturas de...
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/1.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/2.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/3.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/4.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/5.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/6.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/7.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/8.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/9.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/10.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/11.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/12.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/13.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/14.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/15.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/16.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/17.jpg)
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](https://reader034.fdocumentos.com/reader034/viewer/2022042321/5f0b6c587e708231d4307215/html5/thumbnails/18.jpg)
Exemplo