1 / 75

Multiprocessadores e Paralelismo nível de Thread

Multiprocessadores e Paralelismo nível de Thread. Roteiro da Aula. Revisando o problema coerência Protocolo de coerência para memória baseado em Snooping Protocolo de coerência baseado em diretórios Como funciona Implementando protocolo baseado em diretórios Tipos de mensagens na rede

Télécharger la présentation

Multiprocessadores e Paralelismo nível de Thread

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multiprocessadores e Paralelismo nível de Thread

  2. Roteiro da Aula • Revisando o problema coerência • Protocolo de coerência para memória baseado em Snooping • Protocolo de coerência baseado em diretórios • Como funciona • Implementando protocolo baseado em diretórios • Tipos de mensagens na rede • Mudanças do estado do bloco de cache e no diretório • Sincronização de processos • Problema em processadores DSM • Solução para processadores DSM • Comparação uniprocessadores vs. multiprocessadores

  3. Só uma pessoa pode falar no microfone por vez • Toda modificação em conta deve ser comunicada entre os funcionários através do alto falante • Após modificações cópias devem ser inutilizadas Coerência

  4. State Tag Data Protocolo Snooping de Coerência de Cache • Controladores de Cache “snoops” todas as transações no barramento • Transaçõesrelevantes : envolvemblocoque a cache possui • Realizaaçãoparagarantircoerência • invalida, atualiza, oufornece valor • Atualizaestado de compartilhamento do bloco de cache

  5. State Tag Data Protocolo Snooping de Coerência de Cache • Problemas: • Aumento no número de processadores • Maisacessos à memória • Congestionamentonautilização do barramento • Aumento no número de faltasdevido à invalidaçãoporcompartilhamento

  6. Pn P0 P1 C C C IO IO IO M M M ... Interconnection Network MemóriaDistribuída • Cadanó de processamentoinclui cache e memória local • Comunicação entre nós: Rede de Interconexão C - Cache M - Memory IO - Input/Output

  7. Pn P0 P1 C C C IO IO IO M M M ... Interconnection Network MemóriaDistribuída • Pro: Abordagemeficazpara um grandenúmero de processadores • Pro: reduz tempo de acesso à memória local • Con: Comunicaçãobemmaiscomplexa C - Cache M - Memory IO - Input/Output

  8. Modelos de Comunicação vs. Modelo de Memória • Comunicaçãoatravés de endereçoscompartilhados (via loads estores): multiprocessadores de memóriacompartilhada • MemóriaCentralizada (Symmetric shared memory - SMPs) • MemóriaDistribuída • Comunicaçãoexplícitaatravés de passagem de mensagens entre processadores • MemóriaDistribuída

  9. ComunicaçãoporVariávelCompartilhada • As memóriasfisicamenteseparadassãoendereçadascomoEspaçoCompartilhadoLogicamente • As memóriaslocaispodemseracessadasporqualquerprocessador • Estes multiprocessadoressãodenominadosProcessadores DSM (distributed shared memory)

  10. Como garantirCoerência? • Cada bloco de memória tem informação de compartilhamento armazenada em um componente chamado diretório • O que faz o diretório? • Tem informação de onde estão as cópias e do estado de cada cópia • Manda informação para as caches em caso de escritas • Faz a transferência de informações de memória requisitada entre nós de processamento

  11. Acessos às pastas somente através do diretório • Toda modificação em qualquer cópia deve ser comunicada ao diretório • Diretório comunica a necessidade de inutilização • Diretório envia cópia mais atualizada Coerência:Diretório

  12. ProtocolobaseadoemDiretório Interconnection Network Directory Directory Directory Local Memory Local Memory Local Memory Cache Cache Cache CPU 0 CPU 1 CPU 2

  13. Protocolo baseado em Diretório CPU 0 CPU 1 CPU 2 Interconnection Network Bit Vector X U 0 0 0 Directories X 7 Memories Caches

  14. CPU 0 lê X Read Miss CPU 0 CPU 1 CPU 2 Interconnection Network X U 0 0 0 Directories X 7 Memories Caches

  15. CPU 0 lê X CPU 0 CPU 1 CPU 2 Interconnection Network X S 1 0 0 Directories X 7 Memories Caches

  16. CPU 0 lê X X X 7 7 CPU 0 CPU 1 CPU 2 Interconnection Network X S 1 0 0 Directories Memories Caches

  17. CPU 2 lê X X X 7 7 Read Miss CPU 0 CPU 1 CPU 2 Interconnection Network X S 1 0 0 Directories Memories Caches

  18. CPU 2 lê X X X 7 7 CPU 0 CPU 1 CPU 2 Interconnection Network X S 1 0 1 Directories Memories Caches

  19. CPU 2 lê X X X X 7 7 7 CPU 0 CPU 1 CPU 2 Interconnection Network X S 1 0 1 Directories Memories Caches

  20. CPU 0 escreve 6 em X X X X 7 7 7 CPU 2 CPU 1 CPU 0 Interconnection Network Write Miss X S 1 0 1 Directories Memories Caches

  21. CPU 0 escreve6 emX X X X 7 7 7 CPU 2 CPU 1 CPU 0 Interconnection Network X S 1 0 1 Directories Invalidate Memories Caches

  22. CPU 0 escreve 6 em X X 7 CPU 0 CPU 1 CPU 2 Interconnection Network X E 1 0 0 Directories Memories Caches X 6

  23. CPU 1 lê X X X 7 6 CPU 0 CPU 1 CPU 2 Interconnection Network Read Miss X E 1 0 0 Directories Memories Caches

  24. CPU 1 lêX X X 7 6 CPU 0 CPU 1 CPU 2 Interconnection Network Switch to Shared X E 1 0 0 Directories Memories Caches

  25. CPU 1 lê X X X 6 6 CPU 0 CPU 1 CPU 2 Interconnection Network X E 1 0 0 Directories Memories Caches

  26. CPU 1 lê X X X X 6 6 6 CPU 0 CPU 1 CPU 2 Interconnection Network X S 1 1 0 Directories Memories Caches

  27. CPU 2 escreve5 emX X X X 6 6 6 CPU 2 CPU 1 CPU 0 Interconnection Network X S 1 1 0 Directories Memories Write Miss Caches

  28. CPU 2 escreve5 emX X X X 6 6 6 CPU 2 CPU 1 CPU 0 Interconnection Network Invalidate X S 1 1 0 Directories Memories Caches

  29. CPU 2 escreve 5 em X(Write back) X 6 CPU 0 CPU 1 CPU 2 Interconnection Network X E 0 0 1 Directories Memories X 5 Caches

  30. CPU 0 escreve4 emX WriteMiss X X 6 5 CPU 0 CPU 1 CPU 2 Interconnection Network X E 0 0 1 Directories Memories Caches

  31. CPU 0 escreve4 emX X X 6 5 CPU 0 CPU 1 CPU 2 Interconnection Network X E 1 0 0 Directories Memories Take Away Caches

  32. CPU 0 escreve 4 em X X X 5 5 CPU 0 CPU 1 CPU 2 Interconnection Network X E 1 0 0 Directories Memories Caches

  33. CPU 0 escreve 4 em X X 5 CPU 0 CPU 1 CPU 2 Interconnection Network X E 1 0 0 Directories Memories Caches

  34. CPU 0 escreve 4 em X X X 5 5 CPU 0 CPU 1 CPU 2 Interconnection Network X E 1 0 0 Directories Memories Caches

  35. CPU 0 escreve 4 em X X 5 CPU 0 CPU 1 CPU 2 Interconnection Network X E 1 0 0 Directories Memories Caches X 4

  36. Diretório • k processadores: k bits • Cadablocode memória: k presence-bits, 1 dirty-bit • Cadabloconacache: 1 valid bit, e 1 dirty (owner) bit

  37. Operação Básica de Diretório P1 Pn … Directory $ $ Memory Directory Memory Directory • • • • N processadores: N bits • Cadablocode memória: N presence-bits, 1 dirty-bit • Cadabloconacache: 1 valid bit, e 1 dirty (owner) bit CA CA dirty bit presence bits Scalable Interconnection network

  38. Operação Básica de Diretório • k processadores. • Cadabloco de cache namemória: k presence-bits, 1 dirty-bit • Cadablocona cache: 1 valid bit, e 1 dirty (owner) bit • FaltanaLeitura da memóriapeloprocessador i: • Se dirty-bit está OFF então • leiturada memória; • atualizap[i] para ON; • Se dirty-bit está ON então • acessalinha de cache do processadorowner (na cache: shared); • atualizamemória; • fazdirty-bit igual a OFF; • fazp[i] igual a ON; • fornecedado parai

  39. Operação Básica de Diretório • k processadores. • Cadabloco de cache namemória: k presence-bits, 1 dirty-bit • Cadablocona cache: 1 valid bit, e 1 dirty (owner) bit • Faltadevido a Escritanamemóriapeloprocessador i: • Se dirty-bit igual a OFF então • fornecedado parai; • envia invalidations paratodas as caches que tem cópia do bloco; • fazdirty-bit igual a ON; • fazp[i] igual a ON;

  40. Protocolo de Diretório • Estados dos blocos de memória : Trêsestados • Shared: ≥ 1 processador tem dado, memóriaatualizada • Uncached:nenhumnó (processador e cache) tem o endereço; não é válidoemnenhuma cache. • Exclusive: 1 processador (owner) tem o dado; memóriadesatualizada. • Princípiosbásicos: • Escritaem dado non-exclusive => write miss • Processadorficaesperandoatéquetodos invalidates tenhamsidoenviados e confirmados

  41. Protocolo de Diretório • Não tem barramentopara broadcast: • Todasas mensagensdevemter o recebimentoconfirmado • Cadamensagempodeenvolveraté 3 processadores • Local nodeonde a requisiçãoorigina • Home nodeonde reside o endereço de memória • Remote node tem umacópia do bloco de cache emestado exclusive ou shared • Composição da mensagem: • P = processor number, A = address

  42. Estados dos Blocos de Cache • Para cadabloco de cache em um sistemabaseadoemdiretório: • Estadosidênticosaosnoopy: • Invalid • Shared • Exclusive • Transiçõescausadaspor: • read misses • write misses • Invalidates • buscade dado (fetch)

  43. Estados dos Blocos de Cache • Controladorenviamensagensde read miss e write miss para o diretório do processadorque tem o dado namemória local

  44. CPU Read hit Estados da Cache (Write Back) CPU Shared (read/only) • Estados da cache pararequisições da CPUparacadabloco de cache • Blocosquenãoestãona cache nãosãoválidos CPU Read Invalid Send read miss msg CPU Write CPU read miss Write back block, send read miss msg Send Write Miss msg CPU Write hit Send invalidate msg CPU Write miss Send Write Miss msg Cache Block State Exclusive (read/write) CPU read hit CPU write hit CPU Write Miss Write back cache block Send write miss msg

  45. Estados da Cache (Write Back) Diretório Invalidate msg Shared (read/only) • Estados da cache pararequisições do Directoryparacadacache block Invalid Fetch invalidate for this block Fetch, data write back Read miss for this block Write Back Block; (abort memory access) Write Back Block; (abort memory access) Exclusive (read/write)

  46. Estados da Cache (Write Back) CPU CPU Read hit Write missfor this block Estados da cache pararequisições da CPUparacadacache block epararequisições do directioryparacadacache block Shared (read/only) CPU Read Invalid Send read miss CPU Write Send Write Miss CPU Read miss Send read miss Write missfor this block CPU read miss Write back block, Send read miss Write Back Block; (abort memory access) Fetch, data write back Read miss for this block CPU Write Send Write Miss Write Back Block; (abort memory access) Cache Block State Exclusive (read/write) CPU read hit CPU write hit CPU Write Miss Write back cache block Place write miss on bus

  47. Estados do Diretório Read miss: Sharers += {P}; send Data Value Reply Read miss: Sharers = {P} send Data Value Reply Estados do Directory requisiçãoparacadamemory block Estado Uncached se estivernãotivercópiasna cache Shared (read only) Uncached Write Miss: Sharers = {P}; send Data Value Reply msg Write Miss: send Invalidate to Sharers; then Sharers = {P}; send Data Value Reply msg Data Write Back: Sharers = {} (Write back block) Write Miss: Sharers = {P}; send Fetch/Invalidate to remote cache; send Data Value Reply msg Read miss: Sharers += {P}; send Fetch to remote cache;sendData Value Reply msg (Write back block) Exclusive (read/write)

  48. Exemplo 1 2 Bus • 2 processadores: 2 bits • Cadablocode memória: 2 presence-bits, 1 dirty-bit • Cadabloconacache: 1 valid bit, e 1 dirty (owner) bit

  49. Exemplo 1 2 Bus Estados Cache: Invalid, Shared, Exclusiv EstadosDiretório (memória): Uncached, Shared, Exclusiv

More Related