



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Uma taxonomia de arquiteturas paralelas introduzida inicialmente por michael j. Flynn, que categoriza sistemas com capacidade de processamento paralelo baseadas nas possíveis unicidade e multiplicidade de fluxos de instruções e de dados. O texto descreve as arquiteturas sisd (single instruction, single data), simd (single instruction, multiple data), misd (multiple instruction, single data) e mimd (multiple instruction multiple data), suas características e aplicativos. Além disso, o documento discute as organizações de memória compartilhada e memórias multiportas, e o papel de um sistema operacional smp (simetric multi-processing) na gestão de processadores e outros recursos.
Tipologia: Notas de estudo
1 / 6
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Igor Pereira Teixeira João Vitor de Araújo Braga Leonardo Miranda da Silva Paixão Roberto Vítor Lima Gomes Rodrigues
Tradicionalmente, o computador tem sido visto como uma máquina sequencial. Esta visão do computador nunca foi totalmente verdadeira. Em nível de micro-operações, vários sinais de controle são gerados ao mesmo tempo. O pipeline de instruções, pelo menos quando há sobreposição de operações de leitura e execução, está presente há muito tempo. Ambos são exemplos de desempenho de processamentos em paralelo.
Uma taxonomia introduzida inicialmente por Michael J. Flynn é ainda a maneira mais comum de categorizar sistemas com capacidade de processamento paralelo. A taxonomia de Flynn se baseia nas possíveis unicidade e multiplicidade dos fluxos de instruções e de dados para definir quatro tipos de arquiteturas.
É um dos tipos de arquitetura mais simples, já que opera apenas um dado a cada instrução. Um processador único executa uma única sequência de instruções para operar nos dados armazenados em uma única memória. Uniprocessadores enquadram-se nesta categoria
Em arquiteturas SIMD um único fluxo de instruções opera sobre múltiplos fluxos de dados. Existe uma única UC e múltiplos EP. Todos os EP executam simultânea e sincronizadamente a mesma instrução sobre conjuntos de dados distintos. Processadores vetoriais funcionam melhor apenas quando há grandes quantidades de dados a serem trabalhados. Por esta razão, estes tipos de CPUs foram encontrados principalmente em supercomputadores, como os supercomputadores próprios eram, em geral, encontrados em locais como centros de previsão do tempo e laboratórios de física, onde grandes quantidades de dados são processados.
É um tipo de arquitetura de computação paralela, onde uma sequência de dados é transmitida para um conjunto de processadores e cada um executa uma sequência de instruções diferente sobre o mesmo dado. Mas até o momento não há implementação comercial desse tipo de arquitetura.
Um conjunto de processadores que executam sequências de instruções diferentes simultaneamente em diferentes conjuntos de dados. Com a organização MIMD, os processadores são de uso geral; cada um é capaz de processar todas as instruções
ao barramento seja possível.simplicidade: esta é a abordagem mais simples para organização de multiprocessadores. A interface física e lógica de endereçamento, arbitração e tempo compartilhado de cada processador permanecem as mesmas, como em um sistema de um único processador.Flexibilidade: normalmente é fácil expandir o sistema anexando mais processadores ao barramento.confiabilidade: o barramento é basicamente um meio passivo, e uma falha de qualquer dispositivo conectado não deve causar uma falha do sistema todo.
A principal desvantagem do barramento compartilhado é seu desempenho, visto que a velocidade máxima de troca de dados deste irá limitar a velocidade como um todo do sistema. Para resolver este problema, alguns tratamentos são utilizados, sendo o principal o uso de memória cache nos processadores, diminuindo o acesso constante ao barramento. tal solução apresenta alguns detalhes de cuidado com coerência de cache, que serão abordados mais á frente.
Uma outra organização possível é a de memórias multiportas. Nela uma memória pode ser ligada diretamente aos processadores sem a utilização de uma rede de conexão.A utilização de memórias multiportas é limitada por questões de custo e escalabilidade (o número de portas, e portanto de processadores, é limitado). Uma boa saída é ligação de cada memória a apenas um conjunto de processadores.
Um sistema operacional SMP gerencia processadores e outros recursos computacionais para que o usuário perceba um único sistema operacional controlando os recursos do sistema. Vários processos podem estar ativos ao mesmo tempo e é responsabilidade do sistema operacional escalonar a sua execução e alocar recursos. Um sistema operacional para multiprocessadores deve fornecer toda a funcionalidade de um sistema multiprogramado mais os recursos adicionais para acomodar múltiplos processadores.
● Processos concorrentes simultâneos Rotinas do SO precisam ser reentrantes para permitir que vários processadores executem o mesmo código do SO simultaneamente. A execução das diferentes partes do SO, tabelas do SO e estruturas de gerenciamento devem ser gerenciadas de acordo para evitar deadlock ou operações inválidas.
● Escalonamento Qualquer processador pode efetuar escalonamento, portanto os conflitos devem ser evitados. O escalonador deve atribuir processos prontos para processadores disponíveis.
● Sincronização Com múltiplos processos ativos tendo acesso potencial a espaços da
memória compartilhada ou recursos de E/S compartilhados, cuidados devem ser tomados para fornecer sincronização eficiente. A sincronização é um recurso que reforça a exclusão mútua e ordenação de eventos.
● Confiabilidade e tolerância a falhas O sistema operacional deve prover uma degradação sutil perante uma falha do processador. O escalonador e outras partes do sistema operacional devem reconhecer a perda de um processador e reestruturar as tabelas de gerenciamento de acordo.
● Gerenciamento de memória O sistema operacional precisa explorar o paralelismo disponível no hardware, tais como memórias com múltiplas portas para alcançar o melhor desempenho. Os mecanismos de paginação em diferentes processadores devem ser coordenados para reforçar a consistência quando vários processadores compartilham uma página ou um segmento para decidir sobre substituição de página
A moderna disposição das unidades de processamento favorece os sistemas multiprocessados com a disposição de múltiplos núcleos ligados a uma memória em comum. Em contrapartida, isso propicia também a geração da chamada incoerência de cachê, já que cada processador tem sua própria unidade de memória local (ou cache). O que acontece é que todo núcleo, ao eventualmente acionar suas políticas de (re)estrita dos dados da cache (write-back ou write through), fá-lo independentemente dos outros, o que pode decididamente invalidar as cópias do dado em todas as outras memória locais. Em detrimento desse novo problema, precisou-se criar protocolos de gerenciamento das memórias caches para evitar a incoerência e garantir o fluido desempenho dos sistemas multiprocessados. Tais protocolos envolvem implementações em hardware ou software. Estes, no entanto, apesar de dispensar hardware e circuitos adicionais, gera alguns problemas de ineficiência no uso da cache, em parte por ter de tomar escolhas conservadoras demais, como identificar tipos de dados que poderiam vir a ser problemas e evitar de guardá-los na cache.
Firmou-se a protocolação de resolução à incoerência a nível de hardware, dentre os quais popularizaram-se os protocolos de monitoramento, dentro dos quais, por sua vez, destaca-se o protocolo MESI. O paradigma de monitoração fundamenta-se na atualização de "estados" para cada cópia de dados na cache, ao qual as outras caches deverão responder por meio do mecanismo de difusão nos barramentos. Duas técnicas são utilizadas em maioria pelos protocolos de monitoramento, são chamadas de write-invalidate e write-through, entre as quais a única diferença é a prioridade de escrita -- na write- invalidate, apenas uma das caches é apta a escrever por vez. O protocolo MESI utiliza-se da técnica write-invalidate, discriminando quatro estados para cada dado na cache: M - modified; E - exclusive; S - shared e I - invalid. Isso é feito com a análise dos bits de validez e limpeza da cache. O estado modificado representa um bloco de dados válido, entretanto mais atualizado do que as cópias noutras caches, o exclusivo representa um dado válido, porém presente apenas numa das caches, o compartilhado representa um dado válido,