Prévia do material em texto
Execução (Pipeline) O pipeline proporciona ganho de desempenho para os computadores; contudo, a utilização de arquiteturas superescalar e de superpipeline aumenta esse ganho. Superpipeline é o nome dado à execução para mais de um pipeline em um mesmo ciclo de relógio, enquanto que pipeline superescalar é o nome dado quando se destina mais recurso para um ciclo do pipeline que tem uma maior demanda. Exercícios 1. Os conflitos ocorrem principalmente quando um ciclo precisa de um recurso que está sendo utilizado por outro ciclo ou então quando um ciclo precisa do resultado da execução de outro ciclo pra executar a atividade a ele destinada. Assinale a alternativa que corresponde aos principais tipos de conflitos de pipeline. A. Conflito de recurso, dependência de dados e comandos de desvio condicional. Conflito de recurso, dependência de dados e comandos de desvio condicional são os principais conflitos de pipeline. Busca de instrução, execução e decodificação são processos executados pelo computador, e não um tipo de conflito. Escrita conjunta de resultados e conflito de reservas não são nomes válidos de conflito de pipeline. Memória é um componente do computador, e não um tipo de conflito. 2. Ao implementar um pipeline, algumas medidas precisam ser tomadas para garantir que a eficiência máxima do pipeline seja atingida. Algumas situações já são conhecidas como situações que interferem no desempenho do pipeline. Assinale a alternativa que apresenta um exemplo de situação que é uma preocupação constante na implementação de paralelismo por pipeline. A. Desvio condicional, dado que causa a criação de instruções que nunca serão executadas, sendo desnecessárias. Desvio condicional é uma preocupação constante na implementação de paralelismo por pipeline; desvio de decisão não é um tipo de desvio. Conflito de recurso é quando dois ciclos tentam acessar um mesmo recurso, e não quando um recurso espera dados de outro. Busca de instruções e execução não são preocupações. 3. Em um pipeline, por vezes, um ciclo pode ser executado de forma mais rápida que outro ciclo, isso é muito comum quando um dos ciclos é responsável pelo processamento e outro pela busca. Em geral, a busca ocorre com maior frequência e, por isso, o ciclo de busca acaba ficando parado aguardando a liberação do ciclo de execução. Para resolver esse problema é agregado um maior recurso de hardware para a tarefa que demanda maior processamento. Para essa técnica é dado o nome de: C. superpipeline. Agregar um maior recurso de hardware para a tarefa que demanda maior processamento é a técnica utilizada por superpipeline. O pipeline superescalar adota replicação de pipeline 4. Além do pipeline clássico, utilizado como estratégia de paralelismo, podem ser implementadas técnicas que melhoram a utilização do hardware e a eficiência do processamento. Essas tecnologias são superpipeline e pipeline superescalar. Assinale a alternativa que apresenta a diferenciação correta entre essas duas tecnologias. C. Superescalar adiciona um ou mais novos pipelines, de acordo com a disponibilidade de recurso de hardware, executando mais de uma instrução ao mesmo tempo. Superpipline pode adicionar pipelines em nível de profundidade, dentro de uma mesma instrução. Existe uma diferença importante em relação ao pipeline superescalar e o superpipeline. O pipeline superescalar identifica quando existem recursos de hardware não utilizados e cria novos pipelines para executar outras instruções no mesmo ciclo do relógio, enquanto o superpipeline, dentro de uma mesma instrução, pode, em algum dos ciclos, criar novos pipelines para aumentar o paralelismo nesse ciclo. 5. É comum deparar-se com problemas de conflito quando se utiliza pipeline, contudo, esses conflitos são conhecidos e têm soluções prontas para serem implementadas. Assinale a alternativa que apresenta uma solução válida para problema de conflito de dados C. Solução via compilador, por meio da reordenação de instruções. Um exemplo de solução para conflito de dados é a utilização de tratamento via compilador, por meio de reordenação. Desvio atrasado não é utilizado para tratamento de conflito de dados. Delay, desvio adiantado e finalizar o programa não são soluções plausíveis. Arquiteturas de computadores Desafio A melhor arquitetura depende muito de quanto se está disposto a gastar e do tipo de problema que se busca resolver. O problema acima tem boas possibilidades de permitir a divisão dos dados entre várias máquinas de um cluster, permitindo o armazenamento de volumes cada vez maiores de dados, com uma escalabilidade linear por meio da adição de novas máquinas. O processamento de dados também pode ser distribuído entre as máquinas. O ponto-chave desse problema talvez seja o custo, já que existem soluções de memória compartilhada com alto paralelismo (multi processadores), mas com um custo muito alto. Portanto, a escolha por uma arquitetura de memória distribuída tem um custo mais baixo com alta escalabilidade a longo prazo. 1. A arquitetura de Von Neumann é uma das arquiteturas de computadores mais conhecidas, sendo utilizada até os dias de hoje. Sobre a arquitetura de Von Neumann, é correto afirmar que: A. Surgiu com o projeto do EDVAC. A arquitetura de Von Neumann surgiu com o projeto do EDVAC, que foi criado por John Von Neumann juntamente com Eckert e Mauchly. Essa arquitetura é da primeira geração de computadores e nela dados e instruções são armazenados na mesma memória. Seu principal gargalo é o barramento que liga a memória com o processador. Além de barramento, memória e processador, outro componente dessa arquitetura são os dispositivos de entrada e saída. 2. A arquitetura de Harvard é similar à arquitetura de Von Neuman, tendo sido criada uma década antes. Sobre a Arquitetura de Harvard, é correto afirmar que: E. Armazena instruções e dados em memórias diferentes. A arquitetura de Harvard armazena as instruções e os dados em memórias diferentes, com o acesso sendo feito em barramentos diferentes. Por ter dois barramentos, sua complexidade é maior do que na arquitetura de Von Neumann. Já o desempenho geralmente é maior porque, na arquitetura de Harvard, o acesso às instruções e aos dados não utilizam o mesmo barramento. Atualmente essa arquitetura é utilizada em aplicações específicas como processadores de sinais digitais e microcontroladores. 3. A taxonomia de Flynn classifica as arquiteturas de computadores com relação à forma como os fluxos de execução de dados e instruções ocorrem. Sobre as classificações dessa taxonomia, assinale a alternativa correta. E. GPUs de propósito geral (GPGPU) podem ser classificadas como SIMD. GPUs de propósito geral são classificadas como SIMD, pois aplicam uma única instrução em diversos dados ao mesmo tempo. Processadores vetoriais também são classificados como SIMD. A categoria SISD é caracterizada por ter um único processador, sendo a arquitetura clássica de Von Neumann. Já a classificação MIMD é a mais comum de todas, aplicando-se à maioria dos programas paralelos e é representada por computadores multi-core e distribuídos. 4. SMP é uma arquitetura de computadores com múltiplos processadores. Sobre essa arquitetura, pode-se afirmar que: C. O maior limitador é o barramento compartilhado. Uma arquitetura SMP possui múltiplos processadores que compartilham o mesmo barramento, e este é seu maior limitador, pois os processadores precisam disputar seu uso. Na arquitetura SMP, todos os processadores são iguais e desempenham as mesmas funções, compartilhando a mesma memória principal e sendo conectados a ela por meio de um barramento. Quanto mais processadores forem adicionais pior será o desempenho devido à concorrência para acesso à memória. 5. Computação em cluster é considerada uma arquitetura do tipo MIMD de memória distribuída. Sobre a computação em cluster, assinale a alternatica correta. E. A computação em cluster tem escalabilidade ilimitada. A escalabilidade na computação em cluster é ilimitada, permitindo que mais nós sejamadicionados a um cluster para aumentar a capacidade de processamento e armazenamento. Um cluster interliga múltiplos computadores que não precisam ser necessariamente idênticos. Sua confiabilidade geralmente é superior a um mainframe, pois a falha de um nó não causa a falha de todo o cluster, enquanto que a falha do mainframe deixa todo o sistema fora do ar. Ainda, clusters têm um custo mais baixo que mainframes, por não possuirem hardwares proprietários e/ou de alta performance.