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

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

1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Arquiteturas MIMD Memória Compartilhada Aulas 11 e 12 08/10/10 (Turma 1 e 2) Profa. Sarita.

Apresentações semelhantes


Apresentação em tema: "1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Arquiteturas MIMD Memória Compartilhada Aulas 11 e 12 08/10/10 (Turma 1 e 2) Profa. Sarita."— Transcrição da apresentação:

1 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Arquiteturas MIMD Memória Compartilhada Aulas 11 e 12 08/10/10 (Turma 1 e 2) Profa. Sarita

2 2 Arquiteturas MIMD As arquiteturas MIMD dividem-se em dois grandes grupos: Memória Compartilhada Cada processador pode endereçar toda a memória do sistema Memória Distribuída Cada processador endereça somente a própria memória local

3 3 Arquiteturas MIMD com memória compartilhada Vantagens A comunicação entre os processos é bastante eficiente, pois os dados não precisam se movimentar fisicamente A programação não difere muita da programação para um único processador, não necessitando particionar código nem dados

4 4 Arquiteturas MIMD com memória compartilhada Desvantagens Primitivas de sincronização são necessárias para acesso às regiões compartilhadas Em algumas linguagens isso fica a cargo do programador Linguagens mais novas escondem alguns detalhes do programador Esse tipo de arquitetura não é muito escalável, devido ao limite da memória

5 5 Arquiteturas MIMD com memória distribuída Vantanges Altamente escalável, permitindo a construção de MPPs (computadores massivamente paralelos) A forma de comunicação (através de troca de mensagens) resolve tanto os problemas de comunicação como sincronização

6 6 Arquiteturas MIMD com memória distribuída Desvantagens A programação exige que os problemas possuam uma natureza paralela É necessária a distribuição da carga entre os processadores, seja de maneira automática ou manual

7 7 Computador com as seguintes características: dois ou mais processadores com capacidade semelhante processadores compartilham a mesma memória e I/O processadores conectados por um barramento ou outra conexão interna tempo de acesso à memória é aproximadamente o mesmo para todos os processadores Também denominado por arquitetura UMA (Uniform Memory Access) processadores compartilham acesso a I/O podem usar o mesmo canal ou possuírem caminhos independentes para cada dispositivo processadores podem fazer as mesmas funções (são simétricos) sistema operacional integrado controla a arquitetura fornece interação entre processadores, jobs, tarefas, threads, arquivos e níveis de elementos de dados SMP – Symmetric MultiProcessors

8 8 SMP - Vantagens Desempenho, caso algum trabalho possa ser feito em paralelo Disponibilidade de recursos todos os processadores podem fazer as mesmas funções, falhas de um processador não param a máquina Aumento incremental usuário pode aumentar o desempenho adicionando novos processadores, mas sempre limitado pela memória Diferentes faixas de equipamentos (scaling) fornecedores oferecem diferentes produtos, baseados no número de processadores

9 9 Diagrama de um bloco multiprocessador com memória compartilhada

10 10 SMP - Organização Barramento de tempo compartilhado ou comum Memória multiportas (ou multiportos) Unidade de Controle Central

11 11 SMP – Barramento Compartilhado Forma mais simples Estrutura e interface similares às arquiteturas monoprocessadas endereçamento – distingue módulos no barramento arbitragem – qualquer módulo pode ser o mestre temporariamente time sharing – se um módulo tem o barramento, outros dispositivos esperam Diferença em relação aos monoprocessados: múltiplos processadores além de múltiplos dispositivos de I/O

12 12 SMP – Barramento Compartilhado

13 13 SMP – Barramento Compartilhado Vantagens simplicidade flexibilidade confiabilidade Desvantagens: desempenho limitado pelo clock do barramento cada processador deveria ter cache local reduz número de acessos ao barramento gera problemas com a coerência da cache

14 14 SMP – Memória Multiportas Acesso direto e independente dos módulos de memória pelos processadores Lógica necessária para solucionar conflitos Pouca ou nenhuma modificação nos processadores ou módulos de memória

15 15 SMP – Memória Multiportas Mais complexa precisa de um login extra no sistema de memória Desempenho melhor cada processador tem o seu próprio caminho aos módulos de memória Pode configurar porções da memória como privada para um ou mais processadores aumenta a segurança Política write through para atualização da cache

16 16 SMP – Considerações sobre o SO Encapsula detalhes, fornece visão de uma arquitetura monoprocessada Trabalha com: processos concorrentes escalonamento sincronização gerência de memória confiabilidade e tolerância a falhas

17 17 Exemplo – IBM S/390 mainframe

18 18 Memória Compartilhada Distribuída Implementação de uma memória que é logicamente compartilhada mas implementada com o uso de um conjunto de memórias locais Pode ser de três classes: NUMA (Non-uniform Memory Access) CC-NUMA (Cache Coherent Non-Uniform Memory Access) COMA (Cache-Only Memory Access)

19 19 NUMA (Non-Uninform Memory Access) NUMA - quando o acesso à memória NÃO é uniforme todos os processadores têm acesso a toda memória normalmente usando load & store tempo de acesso à memória difere em função da região diferentes processadores têm acesso às regiões da memória em diferentes velocidades, o que faz necessário um certo cuidado na hora de programar

20 20 NUMA (Non-Uninform Memory Access)

21 21 COMA (Cache Coherent Non-Uniform Memory Access) Assemelham-se a uma arquitetura NUMA, onde cada nó de processamento possui uma parte da memória global. O particionamento dos dados entre as memórias de cada nó não é estático -> as memórias funcionam como caches de nível 3. O problema de partição de dados e balanceamento dinâmico de carga é realizado automaticamente. Conforme o algoritmo de coerência utilizado, os dados migram automaticamente para as caches locais dos processadores onde é mais necessária.

22 22 COMA (Cache Coherent Non-Uniform Memory Access)

23 23 CC-NUMA (Cache Coherent Non-Uniform Memory Access) Solução de compromisso entre as arquiteturas NUMA e COMA. Cada nó processador possui uma cache local para reduzir o tráfego na rede de interconexão. O balanceamento de carga é realizado dinamicamente pelos protocolos de coerência das caches.

24 24 CC-NUMA (Cache Coherent Non-Uniform Memory Access)

25 25 CC-NUMA – Uma possível organização

26 26 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Protocolos de Coerência de Cache Aulas 11 e 12 08/10/10 (Turmas 1 e 2) Profa. Sarita

27 27 Memórias Cache Políticas de Atualização As memórias caches possuem dois modos básicos para trabalhar em relação à atualização dos dados na memória principal durante uma escrita: Write-through: Os dados são atualizados tanto na memória cache como na memória principal. Write-back: Os dados são atualizados apenas na memória cache, e copiados para a memória principal, apenas quando da substituição do bloco/linha modificado na cache.

28 28 Problema de Coerência de Cache Os sistemas multiprocessados com memória compartilhada apresentam os seguintes problemas: Conteção de memória: o módulo de memória pode manipular somente uma requisição de memória por vez Contenção de comunicação: contenção dos links de comunicação, mesmo que deseje-se acessar módulos diferentes da memória Tempo de latência: tempo de comunicação utilizando as redes de interconexão tende a aumentar quando o número de processadores aumenta e a interconexão se torna mais complexa

29 29 Tempo de acesso à memória Fonte: Organização e Projeto de Computadores (Patterson & Hennesy), 2003

30 30 Problema de Coerência de Cache Para solucionar os problemas citados, utiliza- se memórias cache, objetivando reduzir o número de acessos à memória principal Problema: várias cópias de um mesmo bloco compartilhado por diversos processos ao mesmo tempo As várias cópias devem estar consistentes Problema denominado Problema de coerência de cache ou Problema de consistência de cache

31 31 Exemplo de algoritmos com compartilhamento de variáveis Problema do Produtor/Consumidor Variáveis compartilhadas: buffer, in, out e count

32 32 Políticas de coerência de cache Write-invalidate: política que mantém a consistência da seguinte maneira: Requisições de leitura são tratadas localmente caso já exista uma cópia local do bloco Todas as outas cópias são invalidadas caso o bloco seja atualizado Uma próxima atualização pelo mesmo processador pode ser feita localmente, já que as outras cópias estão invalidadas Múltiplos leitores, um escritor

33 33 Políticas de coerência de cache Write-invalidate

34 34 Políticas de coerência de cache Write-update: política que mantém a consistência da seguinte maneira: Ao invés de invalidar as cópias, esta política atualiza todas as outras cópias Múltiplos leitores e escritores

35 35 Políticas de coerência de cache Write-update

36 36 Exemplo 1 Produtor/consumidor Considere um processo produtor P e um processo consumidor C Cada processo está executando em uma máquina diferente O processo P executa k entradas na região crítica (inserções) seguidas O processo C executa k entradas na região crítica (remoções) seguidas

37 37 Exemplo 1 Produtor/consumidor Comparação do custo de comunicação para acesso à variável count para k execuções consecutivas na região crítica

38 38 Exemplo 2 Considere a seguinte seqüencia de instruções Conte o número de transações do barramento utilizando os protocolos write-update e write-invalidate (com write-back) e que o tamanho do bloco é igual a uma palavra (4 bytes) EtapaProcessadorAtividade da memóriaEndereço de memória 1P1Leitura100 2P2Escrita104 3P1Leitura100 4P2Leitura104 5P1Leitura104 6P2Leitura100

39 39 Protocolos para manter a consistência Independente da política utilizada (write-invalidate ou write-update), as mensagens para manter a consistência dos dados devem ser enviadas para pelo menos as que possuem uma cópia do dado Para redes onde o custo de se fazer um broadcast não é muito alto, utiliza-se um protocolo denominado Snoopy Cache Protocol Para redes de interconexão mais complexas utiliza- se um protocolo denominado Directory Protocol

40 40 Snoopy Cache Protocol ou snooping O snooping distribui a responsabilidade da coerência entre os controles de cache, os quais reconhecem que a linha é compartilhada Esse monitoramento pode invalidar (política write-invalidate) ou atualizar (política write- update) a cópia do bloco na memória cache local que esteja sendo alterado por uma operação de escrita no barramento

41 41 Snoopy Cache Protocol ou snooping Fonte: Organização e Projeto de Computadores (Patterson & Hennesy), 2003

42 42 Directory Protocol Utilizado quando os processadores não são conectados por barramento Existe um controlador central, o qual faz parte do controlador da memória principal, que coleta e mantém informações sobre as cópias dos dados nas caches Quando uma linha da cache é refenciada, a base de dados é verificada para saber onde é limpa (shared) ou suja (modified)

43 43 Directory Protocol Antes de um processador atualizar os dados compartilhados, este deve requisitar ao controlador acesso exclusivo à linha desejada Para obter o acesso exclusivo, o controlador envia uma mensagem a todos os processadores com uma cópia cacheada dessa linha, forçando cada processador a invalidar sua cópia

44 44 Directory Protocol O controlador tem que receber uma mensagem de cada processador antes de dar o acesso exclusivo Quando um processador tenta ler uma linha que está com acesso exclusivo a outro processador, é enviada uma notificação de falha de acesso para o controlador O controlador requisita que o processador que tem acesso exclusivo faça a atualização da linha na memória principal e passa o acesso exclusivo ao processador que requisitou a linha e compartilha para leitura para o processador que detinha o acesso exclusivo

45 45 Directory Protocol Problema: é centralizado, criando um gargalo central e sobrecarregando a comunicação entre os vários controladores de cache e o controlador central São eficientes em sistemas de larga escala, os quais envolvem múltiplos barramentos ou interconexões mais complexas

46 46 Protocolo MSI Este protocolo é utilizado com as políticas write- invalidate e write-back Os exemplos das transições a seguir consideram a utilização de snooping Baseia-se em uma máquina de estados finitos com 3 estados: Shared (Compartilhado - somente leitura): esse bloco na cache é limpo (não escrito) e pode ser compartilhado Modified (Modificado – leitura/escrita): esse bloco na cache é sujo (escrito) e pode não ser compartilhado Invalid (Inválido): esse bloco de cache não possui dados válidos

47 47 Protocolo MSI Transições ocorrem em três situações: Falha de leitura Se estiver nos estados M ou S, o dado local é utilizado Se estiver no estado I, deve-se verificar se o bloco não está em outras caches Se estiver em outras caches no estado M, esta deve escrever o bloco de volta na memória principal e mudar seu estado para I Falha de escrita Se houver outra cópia no estado S, adquire o barramento, envia sinal de invalidação, copia o bloco da MP, atualiza e modifica o estado para M Se estiver no estado M, idem para falha de leitura Acerto de escrita Se estiver no estado M, nada acontece Se estiver no estado S, adquire o barramento e envia uma mensagem de invalidação para bloquear outras cópias Acertos de leitura não alteram o estado da cache

48 48 Protocolo MSI Fonte: Organização e Projeto de Computadores (Patterson & Hennesy), 2003

49 49 Protocolo MSI Fonte: Organização e Projeto de Computadores (Patterson & Hennesy), 2003

50 50 Protocolo MESI Divide o estado Shared (compartilhado) em dois outros estados: Shared (compartilhado): existem múltiplas cópias do bloco Exclusive (exclusivo): existe apenas uma cópia Existe apenas uma cópia do bloco e um acerto de escrita não precisa invalidar Protocolo utilizado pelo Pentium 4

51 51 Protocolo MESI Resumo dos 4 estados M (Modified)E (Exclusive)S (Shared)I (Invalid) A linha é válida?Sim Não A cópia da MP é...DesatualizadaVálida - Existe cópia em outra cache? Não Talvez Uma escrita nessa linha... Não precisa do barramento Precisa do barramento e atualiza a cache Acessa direto o barramento Fonte: Computer Organization and Architecture (William Stallings), 2003

52 52 Protocolo MESI Fonte: Computer Organization and Architecture (William Stallings), 2003

53 53 Fonte: Structured Computer Organization (Andrew S. Tananbaum), 2006

54 54 Protocolo MOESI Acrescenta o estado Owner, no qual a cache que possui o bloco neste estado, fornece o dado em caso de falha de leitura no barramento, uma vez que a memória não possui o dado atualizado Pode existir cópias do dado em outras caches

55 55 Exercício Conte o número de transações no barramento para a seqüência de instruções, explicitando as transições na máquina de estado finito de um protocolo MESI Considere que os processadores utilizam as políticas write-invalidate, write-back, tamanho de bloco de uma word e que os blocos não estão na memória cache (estado inicial Invalid)

56 56 Exercício EtapaProcessadorAtividade da memóriaEndereço de memória 1P1Leitura100 2P1Escrita100 3P3Leitura104 4P2Escrita100 5P3Escrita104 6P3Escrita100 7P1Leitura100


Carregar ppt "1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Arquiteturas MIMD Memória Compartilhada Aulas 11 e 12 08/10/10 (Turma 1 e 2) Profa. Sarita."

Apresentações semelhantes


Anúncios Google