Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAirton Coradelli Faria Alterado mais de 8 anos atrás
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
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
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
12
Centralized vs. Distributed Memory
Scale Distributed Memory ... P0 M C IO Interconnection Network P1 Pn Centralized Memory P0 P1 M IO C Pn ...
13
Classificação de Multiprocessadores
Arquitetura Paralela = Arquitetura do Computador + Arquitetura da 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)
14
Exemplos de Multiprocessadores
15
Exemplos de Multiprocessadores
16
Multi-core Multiprocessador implementado em um único circuito integrado
17
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
18
Multi-Core Processor
19
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.
20
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%
21
Resposta usando Lei de Amdahl
22
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
23
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
24
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.
25
Multi-processadores de Memória Compartilhada
26
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
27
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
28
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
29
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
30
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.
31
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
32
Protocolos de Coerência de Cache
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 Directory based — O status do compartilhamento de um bloco da memória física é armazenado em um local, diretório
33
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
34
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
35
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?
36
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?
37
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
38
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.
39
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
40
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.
41
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
42
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.
43
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
44
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
45
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
46
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)
47
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
48
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
49
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
50
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
51
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
52
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
53
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
54
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
55
Limitações Múltiplos barramentos e redes de interconexão
Memória configurada em bancos de memória
56
Network-based Coherence
57
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.
58
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; ... } • ...
59
Operação Básica de Diretório
60
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
61
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
62
Protocolo baseado em Diretório
Interconnection Network Directory Local Memory Cache CPU 0 CPU 1 CPU 2 62
63
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 63
64
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 64
65
Interconnection Network
CPU 0 lê X Interconnection Network CPU 0 CPU 1 CPU 2 X S 1 0 0 Directories X 7 Memories Caches 65
66
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 66
67
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 67
68
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 68
69
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 69
70
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 70
71
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 71
72
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 72
73
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 73
74
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 74
75
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 75
76
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 76
77
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 77
78
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 78
79
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 79
80
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 80
81
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 81
82
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 82
83
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 83
84
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 84
85
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 85
86
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,
87
Exemplo T1
88
Exemplo T1
89
Comparação T1 e Superescalares
90
Comparação T1 e Superescalares
91
Comparação T1 e Superescalares
92
Comparação T1 e Superescalares
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.