A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Multiprocessadores e Paralelismo nível de Thread

Apresentações semelhantes


Apresentação em tema: "Multiprocessadores e Paralelismo nível de Thread"— Transcrição da apresentação:

1

2 Multiprocessadores e Paralelismo nível de Thread

3 Roteiro da Aula Conceitos básicos Taxonomia dos processadores
Modelos de memória e de comunicação Problema da coerência de memória Protocolos de coerência baseado em snoop Protocolos de coerência baseado em diretórios

4 Desempenho Uniprocessor (SPECint)
3X From Hennessy and Patterson, Computer Architecture: A Quantitative Approach, 4th edition, 2006 VAX : 25%/year 1978 to 1986 RISC + x86: 52%/year 1986 to 2002 RISC + x86: ??%/year 2002 to present

5 Interesse em Multiprocessadores
Uma crescente utilização de servidores Um crescimento em aplicações data-intensive Um melhor entendimento de como usar multiprocessadores para explorar thread-level paralelismo Investimento em replicação é mais atrativo que investimento em um projeto exclusivo.

6 Flynn’s Taxonomy Single Instruction Single Data (SISD) (Uniprocessor)
M.J. Flynn, "Very High-Speed Computers", Proc. of the IEEE, V 54, , Dec Single Instruction Single Data (SISD) (Uniprocessor) Single Instruction Multiple Data SIMD (single PC: Vector, CM-2) Multiple Instruction Single Data (MISD) (????) Multiple Instruction Multiple Data MIMD (Clusters, SMP servers) Flynn classificou de acordo com streams de dado e controle em 1966 SIMD  Data Level Parallelism MIMD  Thread Level Parallelism MIMD mais popular pois: Flexibilidade: N programs e 1 programa multithreaded Cost-effective: mesma MPU em desktop & MIMD

7 Multiprocessamento Clusters commodity clusters custom clusters
Baseados em processadores comerciais e interconexões custom clusters O projetista customiza cada nó de processamento e a rede de interconexão

8 Multiprocessamento Clusters
Aplicações que focam em taxa de transferência e possuem pouca (ou nenhuma) comunicação entre threads, com Servidores WEB, e aplicações baseadas em transações podem ser implementadas em um cluster.

9 Classificação de Multiprocessadores
Arquitetura Paralela = Arquitetura do Computador + Arquitetura da Comunicação Classificação por memória: Processador de Memória Centralizada (Symmetric) Típico para sistemas pequenos  demanda de largura de banda de memória e rede de comunicação. Multiprocessador de Memória Fisicamente Distribuída Escala melhor  demanda de largura de banda para rede de comunicação Classificando por comunicação: Multiprocessador baseado em Message-Passing : processadores enviam menssagens Processador baseado em Memória Compartilhada: processadores se comunicam através de espaço de endereçamento comum. Memória Centralizada: , UMA (Uniform Memory Access time) Memória Distribuída:, NUMA (Non Uniform Memory Access time)

10 Classificação por Memória
Multiprocessadores de Memória Centralizada Poucos processadores ( poucas dezenas chips ou cores) em 2006 Memória única e centralizada P0 P1 M IO C Pn ... Centralized Memory Arquiteturas não Convencionais de Computadores

11 Classificação por Memória
Multiprocessadores de Memória Fisicamente Distribuída Maior número de processadores (centenas de chips ou cores) Memória distribuída entre processadores Distributed Memory ... P0 M C IO Interconnection Network P1 Pn Arquiteturas não Convencionais de Computadores

12 Centralized vs. Distributed Memory
Scale Distributed Memory ... P0 M C IO Interconnection Network P1 Pn Centralized Memory P0 P1 M IO C Pn ... Arquiteturas não Convencionais de Computadores

13 Exemplos de Multiprocessadores

14 Exemplos de Multiprocessadores

15 Multi-core Multiprocessador implementado em um único circuito integrado

16 Arquiteturas não Convencionais de Computadores
Mudança de Paradigma “We are dedicating all of our future product development to multicore designs. … This is a sea change in computing” Paul Otellini, President, Intel (2005) Todas as companhias de processadores estão desenvolvendo multi-core (2X CPUs / 2 anos) Manufacturer/Year AMD/’05 Intel/’06 IBM/’04 Sun/’05 Processors/chip 2 8 Threads/Processor 1 4 Threads/chip 32 Arquiteturas não Convencionais de Computadores

17 Multi-Core Processor

18 Intel Core 2 Duo Cores homegêneos Interconexão baseada em barramento
Superscalares (escalonamento dinâmico, especulação, multiple issue) Interconexão baseada em barramento Cada “core” tem cache local (L1) Memória compartilhada (cache L2) no chip Source: Intel Corp.

19 Desafios do processamento Paralelo
Primeiro desafio: quantos % do programa é inerentemente sequencial Suponha speedup de 80X speedup para 100 processadores. Qual a fração do programa que deve ser sequencial? 10% 5% 1% <1% O,25% Arquiteturas não Convencionais de Computadores

20 Resposta usando Lei de Amdahl
Arquiteturas não Convencionais de Computadores

21 Desafios do processamento Paralelo
Segundo desafio: longas latências de memórias remotas Suponha 32 CPU MP, 2GHz, 200 ns memória remota, todos acessos locais são hits e CPI base de 0.5. (Acesso remoto = 200/0.5 = 400 ciclos.) Qual o impacto no desempenho se 0.2% das instruções envolvem acessos remotos? > 1.5X > 2.0X > 2.5X 2,6X Arquiteturas não Convencionais de Computadores

22 Equação do CPI CPI = CPI base + taxa de acesso remoto x custo do acesso remoto CPI = % x 400 = = 1.3 Sem acesso remoto é 2.6 mais rápida que com 0.2% das instruções envolvendo acessos remoto

23 Desafios do processamento Paralelo
Paralelismo da Aplicação através de novos algoritmos com melhor desempenho Impacto da longa latência no acesso remoto mudanças na arquitetura e na programação For exemplo, redução dos acessos remotos por: Caching shared data (HW) Restruturando estruturas de dados para garantir mais acessos locais (SW) Foco do capítulo: gerenciar latência através do uso de cache.

24 Multi-processadores de Memória Compartilhada

25 Multi-processadores de Memória Compartilhada
Evolução: Múltiplas placas ou chips usando barramento compartilhado Múltiplos processadores dentro de um chip. Caches Dados Privado usados por cada processador Dados Compartilhados usados por múltiplos processadores Caching dado compartilhado  reduz latência a dados compartilhado, largura de banda da memória para acesso a dado compartilhado e largura de banda de interconexão  problema de coerência de cache

26 Exemplo de problema de Coerência de Cache
1 2 P 3 4 u = ? 3 u = 7 5 u = ? $ $ $ 1 u :5 2 u :5 I/O devices u :5 Memory Processadores verão diferentes valores de u após evento 3 Caches write-through: valores inconsistentes Caches write back: valor escrito na memória depende do momento que que ocorre o flush de cache e os valores são atualizados na memória

27 Memória Coerente Preservação da Ordem do Programa (escritas):
Uma leitura por processador P a um endereço X que segue uma escrita por P em X, com nenhuma escrita de X por qualquer outro processador ocorrendo entre a escrita e a leitura por P, sempre retorna o valor escrito por P P P P 1 2 3 3 u = 7 2 u = 7 $ $ $ 1 u :5 I/O devices u :5 Memory

28 Memória Coerente Visão Coerente da Memória: Uma leitura por um processador a um endereço X que acontece após uma escrita por outro processador no endereço X retorna o valor escrito se a leitura e escrita forem suficientemente separadas no tempo e nenhuma outra escrita a X ocorre entre os dois acessos. P P 2 P 1 3 3 u = ? =7 2 u =7 $ $ $ 1 u :5 u=7 I/O devices u :5 Memory

29 Memória Coerente Serialização das Escritas : 2 escritas no mesmo endereço por quaisquer 2 processadores devem ser vistas na mesma ordem por todos os processadores Por exemplo, se os valores 1 e 2 são escritos em um endereço, processadores nunca podem ler o valor como 2 e então ler o valor 1 P P 1 2 P 3 4 u =9 3 u = ? =7 5 u = ? 2 u =7 $ $ $ u=9 1 u :5 u=7 I/O devices u :5 Memory

30 Consistência de Escrita
Uma escrita não termina ( não se poder permitir outra escrita) até que todos os processadores estejam “cientes” dos efeitos daquela escrita. P P 2 P 1 3 u = 7 $ $ $ u :5 u :5 u :5 Mudança do valor de u I/O devices u :5 Memory

31 Consistência de Escrita
O processador não deve mudar a ordem de qualquer escrita com respeito a qualquer outro acesso à memória. Se um processador escreve no endereço A seguido pela escrita no endereço B, qualquer processador que veja o novo valor em B deve também ver o novo valor em A. P P 1 2 P 3 u = 7 $ $ v :8 $ u :5 v :8 u :5 v :8 u :5 Mudança do valor de u I/O devices u :5 Memory

32 Consistência de Escrita
O processador não deve mudar a ordem de qualquer escrita com respeito a qualquer outro acesso à memória. Se um processador escreve no endereço A seguido pela escrita no endereço B, qualquer processador que veja o novo valor em B deve também ver o novo valor em A. P P 2 P 1 3 v :10 $ $ v :8 v :10 $ u :5 v :8 u :5 v :8 u :5 Mudança do valor de v I/O devices u :5 Memory

33 Garantindo a Coerência
Como caches suportam o compartilhamento com coerência? Replicação – para dados compartilhados que estão na memória são feitas cópias nas caches que estão usando o dado Reduz latência de acesso e utilização simultânea do barramento na leitura de dado compartilhado. P P P 1 2 3 u =? $ $ $ u :5 I/O devices u :5 Memory

34 Garantindo a Coerência
Como caches suportam o compartilhamento com coerência? Migração – o valor mais atualizado da variável é movido entre a cache que tem o valor mais atual e a cache que precisa do dado Reduz a latência devido a leitura dos dados na memória P P 2 P 1 3 3 u = ? =7 2 u =7 $ $ $ 1 u :5 u=7 I/O devices u :5 Memory

35 Garantindo a Coerência
Como manter coerência de dados migrados ou replicados? Protocolos implementados pelo controlador da cache e/ou pelo controlador de memória que permitem o rastreamento do status de compartilhamento.

36 Coerência 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

37 Protocolos de Coerência de Cache
Directory based — O status do compartilhamento de um bloco da memória física é armazenado em um local, diretório Snooping — Cada cache que possui cópia de um dado também tem uma cópia do status de compartilhamento, Todas as caches são acessíveis através de meio barramento Todos os controladores de caches monitoram ou snoop o meio para determinar se eles possuem ou não uma cópia sendo requisitada pelo barramento

38 Protocolos de Coerência de Cache
Write Invalidate As cópías nas demais caches são Invalidadas na ocorrência de uma escrita em uma das caches Write Update As cópias das demais caches são atualizadas após a ocorrência de uma escrita em uma das caches Write update causam maior utilização do barramento Multiprocessadores atuais usam write invalidate

39 Protocolo Snooping de Coerência de Cache
State Tag Data Controladores de Cache “snoops” todas as transações no barramento Transações relevantes : envolvem bloco que a cache possui Realiza ação para garantir coerência invalida, atualiza, ou fornece valor Atualiza estado de compartilhamento do bloco de cache

40 Exemplo: Write-thru Invalidate
2 P 1 3 4 u = 7 3 u = 7 5 u = 7 $ $ $ 1 u :5 2 u :5 I/O devices u = 7 u :5 Memory P3 Deve invalidar todas as cópias antes da escrita Caches write through: simplicidade de implementação porém mais acessos à memória Caches write-back: menos acessos à memória, mas como encontrar o bloco que contem a cópia com valor atualizado?

41 Módulos da Arquitetura
State Tag Data Estados: Não válido, Válido, dirty Protocolo de barramento: Requisição Comando Dado Acesso simultâneo: Só um processador ganha o acesso Decisão: árbitro Invalidação das demais cópias Onde encontrar a cópia mais atualizada do bloco de cache?

42 Localizando cópia mais atualizada
Caches Write-through: usa cópia da memória Write through é mais simples porém causa muitos acessos à memória e maior utilização do barramento. Caches Write-back: deve localizar cópia mais recente nas caches. É mais complicado de implementar Reduz acessos à memória A maioria dos multiprocessadores usam caches write-back

43 Localizando cópias em Caches Write Back
Solução: Usar o mesmo mecanismo de snooping para achar a cópia mais atual Blocos de cache Snoop todo endereço colocado no barramento Se processador possui cópia atual do bloco requisitado ele responde a requisição de leitura e aborta acesso à memória.

44 Localizando cópia mais atualizada
Caches Write-through: usa cópia da memória Write through é mais simples porém causa muitos acessos à memória e maior utilização do barramento. Caches Write-back: deve localizar cópia mais recente nas caches. É mais complicado de implementar Reduz acessos à memória A maioria dos multiprocessadores usam caches write-back

45 Localizando cópias em Caches Write Back
Solução: Usar o mesmo mecanismo de snooping para achar a cópia mais atual Blocos de cache Snoop todo endereço colocado no barramento Se processador possui cópia atual do bloco requisitado ele responde a requisição de leitura e aborta acesso à memória.

46 Recursos da Cache para WB Snooping
Tags da cache podem ser usados para snooping Bit de Validade do bloco facilita a invalidação Faltas de Leitura usam snooping Writes  Necessita saber se existem outras cópias do em outras caches Não existem cópias  Não necessita colocar invalidate no barramento Se existem cópias  Necessita colocar invalidate no barramento

47 Recursos da Cache para WB Snooping
Para sinalizar que bloco é compartilhado usa-se bit extra para cada bloco (exclusivo ou compartilhado): Escrita em Bloco Compartilhado  Colocar invalidate no barramento e marcar bloco como exclusivo O processador que escreve será o owner do bloco de cache. Bloco de cache no owner muda do estado shared para exclusive

48 Exemplo de Protocolo Protocolo de Coerência de Snooping é usualmente implementado por um controlador especial para cada cache O controlador permite operações em blocos distintos Uma operação pode ser iniciada antes que outra tenha sido concluída, mesmo porque é permitido apenas um acesso à cache ou barramento por vez.

49 Protocolo Snooping Write Back
Cada bloco de cache vai estar em UM dos estados: Shared : bloco pode ser lido OU Modified/Exclusive : cache tem somente uma cópia que pode ser escrita e dirty OU Invalid : bloco não contem dado válido

50 Protocolo Snooping Write Back
Cada bloco de cache vai estar em UM dos estados: Shared : bloco pode ser lido OU Modified/Exclusive : cache tem somente uma cópia que pode ser escrita e dirty OU Invalid : bloco não contem dado válido CPU solicita leitura: Se cache não tem cópia: Controlador coloca Read Miss no barramento Outras caches: Read misses: todas as caches vão dar “snoop” no barramento Controlador bisbilhota todo endereço colocado no barramento Se a cache possui uma cópia Exclusive do bloco requisitado, fornece o bloco em resposta a requisição de leitura e aborta o acesso à memória.

51 Protocolo Snooping Write Back
Cada bloco de cache vai estar em UM dos estados: Shared : bloco pode ser lido OU Modified/Exclusive : cache tem somente uma cópia que pode ser escrita e dirty OU Invalid : bloco não contem dado válido CPU solicita escrita: Se cache não tem cópia: Controlador coloca Write Miss no barramento Outras caches: Write misses: todas as caches vão dar “snoop” no barramento Controlador bisbilhota todo endereço colocado no barramento Se a cache possui uma cópia Exclusive do bloco requisitado, atualiza a memória e Invalida a cópia. Se a cache possui uma cópia Shared do bloco requisitado invalida a cópia

52 Snooping: Write-Back - CPU
CPU Read hit Mudança de estado considerando requisições da CPU para cada bloco de cache Blocos que não estão na cache não são validos Shared (read/only) CPU Read Invalid Place read miss on bus CPU Write Place Write Miss on bus Invalid: read => shared write => dirty shared looks the same CPU Write Place Write Miss on Bus Cache Block State Exclusive (read/write) CPU read hit CPU write hit CPU Write Miss (?) Write back cache block Place write miss on bus

53 Snooping: Write-Back Substituição de Bloco
CPU Read hit Mudança de estado para requisições da CPU para cada bloco da cache CPU Read Shared (read/only) Invalid Place read miss on bus CPU Write CPU Read miss Place read miss on bus CPU read miss Write back block, Place read miss on bus Place Write Miss on bus Invalid: read => shared write => dirty shared looks the same Cache Block State CPU Write Place Write Miss on Bus Exclusive (read/write) CPU read hit CPU write hit CPU Write Miss Write back cache block Place write miss on bus

54 Snooping: Write-Back - Bus
Mudança de estado considerando operações do barramento para cada bloco de cache Write miss for this block Shared (read/only) Invalid Write miss for this block Read miss for this block Write Back Block; (abort memory access) Write Back Block; (abort memory access) Exclusive (read/write)

55 Snooping Write-back CPU Read hit Write miss for this block Mudança de estado para requisições da CPU para cada bloco da cache e para requisições do barramento para cada bloco de ache Shared (read/only) Invalid CPU Read Place read miss on bus CPU Write Place Write Miss on bus Write miss for this block CPU Read miss Place read miss on bus CPU read miss Write back block, Place read miss on bus Write Back Block; (abort memory access) CPU Write Place Write Miss on Bus Invalid: read => shared write => dirty shared looks the same Read miss for this block 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

56 Exemplo Processor 1 Processor 2 Bus Memory
Remote Write Write Back Remote Write Invalid Shared Exclusive CPU Read hit Read miss on bus Write miss on bus CPU Write Place Write Miss on Bus CPU read hit CPU write hit Remote Read Write Back Assuma que estado inicial da cache é “não válido” A1 e A2 mapeiam para o mesmo slot de cache mas A1 != A2 CPU Read Miss CPU Write Miss Write Back

57 Exemplo: Passo 1 Estado ativo:
Assuma que estado inicial da cache é “não válido” A1 e A2 mapeiam para o mesmo slot de cache mas A1 != A2 Estado ativo: Remote Write Write Back Remote Write Invalid Shared Exclusive CPU Read hit Read miss on bus Write miss on bus CPU Write Place Write Miss on Bus CPU read hit CPU write hit Remote Read Write Back CPU Read Miss CPU Write Miss Write Back

58 Exemplo: Passo 2 Assuma que estado inicial da cache é “não válido”
CPU Read hit Remote Write Assuma que estado inicial da cache é “não válido” A1 e A2 mapeiam para o mesmo slot de cache mas A1 != A2 Shared Invalid CPU Read Miss Read miss on bus Write miss on bus Remote Write Write Back CPU Write Place Write Miss on Bus Remote Read Write Back Exclusive CPU read hit CPU write hit CPU Write Miss Write Back

59 Exemplo: Passo 3 Assuma que estado inicial da cache é “não válido”
Remote Write Write Back Remote Write Invalid Shared Exclusive CPU Read hit Read miss on bus Write miss on bus CPU Write Place Write Miss on Bus CPU read hit CPU write hit Remote Read Write Back Assuma que estado inicial da cache é “não válido” A1 e A2 mapeiam para o mesmo slot de cache mas A1 != A2 CPU Read Miss CPU Write Miss Write Back

60 Exemplo: Passo 4 Assuma que estado inicial da cache é “não válido”
Remote Write Write Back Remote Write Invalid Shared Exclusive CPU Read hit Read miss on bus Write miss on bus CPU Write Place Write Miss on Bus CPU read hit CPU write hit Remote Read Write Back Assuma que estado inicial da cache é “não válido” A1 e A2 mapeiam para o mesmo slot de cache mas A1 != A2 CPU Read Miss CPU Write Miss Write Back

61 Exemplo: Passo 5 Assuma que estado inicial da cache é “não válido”
Remote Write Write Back Remote Write Invalid Shared Exclusive CPU Read hit Read miss on bus Write miss on bus CPU Write Place Write Miss on Bus CPU read hit CPU write hit Remote Read Write Back Assuma que estado inicial da cache é “não válido” A1 e A2 mapeiam para o mesmo slot de cache mas A1 != A2 CPU Read Miss Why write miss first? Because in general, only write a piece of block, may need to read it first so that can have a full vblock; therefore, need to get Write back is low priority event. CPU Write Miss Write Back

62 Limitações Processadores mais rápidos e em maior número….
Aumento no número de processadores -> cresce demanda por memória - > tornando-se um bottleneck. Para bus-based multiprocessador, Bus: acessos devido a coerência e acessos à memória Memória UNICA: recebe TODAS as requisições dos processadores. Processadores mais rápidos e em maior número…. Como suportar este novo cenário? Múltiplos barramentos e redes de interconexão Memória configurada em bancos de memória

63 Limitações Múltiplos barramentos e redes de interconexão
Memória configurada em bancos de memória

64 Network-based Coherence

65 Abordagem Escalável: Diretórios
Cada bloco de memória tem uma informação armazenada em um diretório Gerencia cópias dos blocos em cache e seus estados Em caso de miss, encontra entrada no diretório, analiza o mesmo e comunica somente com os nós que possuem cópia se necessário Em redes escaláveis , comunicação com diretório e cópias é feita através da rede. Várias alternativas para organizar informação no diretório.

66 Operação Básica de Diretório
• k processadores. • Cada bloco de cache na memória: k presence-bits, 1 dirty-bit • Cada bloco de cache em cache: valid bit, e 1 dirty (owner) bit • Leitura da memória pelo processador i: • Se dirty-bit está OFF então { leitura da memória; atualiza p[i] para ON; } • Se dirty-bit está ON então { acessa linha de cache do processador dirty (estado de cache para shared); atualiza memória; faz dirty-bit igual a OFF; faz p[i] igual a ON; fornece dado para i;} • Escrita na memória pelo processador i: • Se dirty-bit igual a OFF então { fornece dado para i; envia nvalidations para todas as caches que tem o bloco; faz dirty-bit igual a ON; faz p[i] igual a ON; ... } • ...

67 Operação Básica de Diretório

68 Coerência: Diretório 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

69 Protocolo baseado em Diretório
Interconnection Network Directory Local Memory Cache CPU 0 CPU 1 CPU 2 69

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

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

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

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

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

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

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

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

78 Interconnection Network
CPU 0 escreve 6 em X Interconnection Network CPU 0 CPU 1 CPU 2 X S 1 0 1 Directories Invalidate 7 X Memories Caches 7 X 7 X 78

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

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

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

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

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

84 Interconnection Network
CPU 2 escreve 5 em X Interconnection Network CPU 0 CPU 1 CPU 2 X S 1 1 0 Directories 6 X Memories Write Miss Caches 6 X 6 X 84

85 Interconnection Network
CPU 2 escreve 5 em X Interconnection Network CPU 0 Invalidate CPU 1 CPU 2 X S 1 1 0 Directories 6 X Memories Caches 6 X 6 X 85

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

87 Interconnection Network
CPU 0 escreve 4 em X Interconnection Network Write Miss CPU 0 CPU 1 CPU 2 X E 0 0 1 Directories 6 X Memories 5 X Caches 87

88 Interconnection Network
CPU 0 escreve 4 em X Interconnection Network CPU 0 CPU 1 CPU 2 X E 1 0 0 Directories 6 X Memories Take Away 5 X Caches 88

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

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

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

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

93 Exemplo T1 Oito cores: cada um suporta até 4 threads.
Cada core consiste num pipeline de 6 estágios Tl usa fine-grained multithreading, Os cores acessam 4 caches de 2 níveis Existe coerência entre caches L1 e um diretório com cada cache L2 LI data cache é write through,

94 Exemplo T1

95 Exemplo T1

96 Comparação T1 e Superescalares

97 Comparação T1 e Superescalares

98 Comparação T1 e Superescalares

99 Comparação T1 e Superescalares


Carregar ppt "Multiprocessadores e Paralelismo nível de Thread"

Apresentações semelhantes


Anúncios Google