Arquitetura de Computador Paralelo - Introdução
Nos últimos 50 anos, houve um grande desenvolvimento no desempenho e na capacidade de um sistema de computador. Isso foi possível com a ajuda da tecnologia Very Large Scale Integration (VLSI). A tecnologia VLSI permite que um grande número de componentes seja acomodado em um único chip e as taxas de clock aumentem. Portanto, mais operações podem ser realizadas ao mesmo tempo, em paralelo.
O processamento paralelo também está associado à localidade e comunicação de dados. Parallel Computer Architecture é o método de organizar todos os recursos para maximizar o desempenho e a programabilidade dentro dos limites dados pela tecnologia e o custo em qualquer momento.
Por que arquitetura paralela?
A arquitetura paralela do computador adiciona uma nova dimensão no desenvolvimento do sistema do computador, usando cada vez mais o número de processadores. Em princípio, o desempenho obtido pela utilização de um grande número de processadores é maior do que o desempenho de um único processador em um determinado momento.
Tendências de aplicação
Com o avanço da capacidade do hardware, a demanda por um aplicativo com bom desempenho também aumentou, o que, por sua vez, exigiu o desenvolvimento da arquitetura do computador.
Antes da era do microprocessador, o sistema de computador de alto desempenho era obtido por tecnologia de circuito exótica e organização da máquina, o que os tornava caros. Agora, o sistema de computador de alto desempenho é obtido usando vários processadores, e os aplicativos mais importantes e exigentes são escritos como programas paralelos. Assim, para obter um desempenho superior, tanto arquiteturas paralelas quanto aplicativos paralelos devem ser desenvolvidos.
Para aumentar o desempenho de um aplicativo, a aceleração é o fator chave a ser considerado. Speedup em p processadores é definido como -
$$ Speedup (p \ processadores) \ equiv \ frac {Desempenho (p \ processadores)} {Desempenho (1 \ processador)} $$Para o único problema resolvido,
$$ performance \ of \ a \ computer \ system = \ frac {1} {Tempo \ necessário \ para \ completar \ o \ problema} $$ $$ Speedup \ _ {fixed \ problem} (p \ processadores) = \ frac {Tempo (1 \ processador)} {Tempo (p \ processador)} $$Computação Científica e de Engenharia
A arquitetura paralela tornou-se indispensável na computação científica (como física, química, biologia, astronomia, etc.) e em aplicações de engenharia (como modelagem de reservatório, análise de fluxo de ar, eficiência de combustão, etc.). Em quase todas as aplicações, existe uma grande demanda por visualização de saída computacional resultando na demanda por desenvolvimento de computação paralela para aumentar a velocidade computacional.
Computação Comercial
Na computação comercial (como vídeo, gráficos, bancos de dados, OLTP, etc.) também são necessários computadores de alta velocidade para processar uma grande quantidade de dados dentro de um tempo especificado. O Desktop usa programas multithread que são quase como programas paralelos. Isso, por sua vez, exige o desenvolvimento de uma arquitetura paralela.
Tendências de Tecnologia
Com o desenvolvimento da tecnologia e da arquitetura, existe uma forte demanda pelo desenvolvimento de aplicativos de alto desempenho. Os experimentos mostram que os computadores paralelos podem funcionar muito mais rápido do que o único processador desenvolvido. Além disso, computadores paralelos podem ser desenvolvidos dentro do limite da tecnologia e do custo.
A principal tecnologia usada aqui é a tecnologia VLSI. Portanto, hoje em dia cada vez mais transistores, portas e circuitos podem ser instalados na mesma área. Com a redução do tamanho do recurso VLSI básico, a taxa de clock também melhora em proporção a ele, enquanto o número de transistores aumenta conforme o quadrado. Pode-se esperar que o uso de muitos transistores de uma vez (paralelismo) funcione muito melhor do que aumentando a taxa de clock
As tendências tecnológicas sugerem que o bloco de construção básico de um único chip proporcionará uma capacidade cada vez maior. Portanto, aumenta a possibilidade de colocar vários processadores em um único chip.
Tendências arquitetônicas
O desenvolvimento em tecnologia decide o que é viável; a arquitetura converte o potencial da tecnologia em desempenho e capacidade.Parallelism e localitysão dois métodos em que maiores volumes de recursos e mais transistores aumentam o desempenho. No entanto, esses dois métodos competem pelos mesmos recursos. Quando várias operações são executadas em paralelo, o número de ciclos necessários para executar o programa é reduzido.
No entanto, são necessários recursos para dar suporte a cada uma das atividades simultâneas. Recursos também são necessários para alocar armazenamento local. O melhor desempenho é alcançado por um plano de ação intermediário que usa recursos para utilizar um grau de paralelismo e um grau de localidade.
Geralmente, a história da arquitetura do computador foi dividida em quatro gerações seguindo as seguintes tecnologias básicas -
- Tubos a vácuo
- Transistors
- Circuitos integrados
- VLSI
Até 1985, a duração foi dominada pelo crescimento do paralelismo de nível de bits. Microprocessadores de 4 bits seguidos por 8 bits, 16 bits e assim por diante. Para reduzir o número de ciclos necessários para realizar uma operação completa de 32 bits, a largura do caminho de dados foi duplicada. Mais tarde, as operações de 64 bits foram introduzidas.
O crescimento em instruction-level-parallelismdominou meados dos anos 80 a meados dos anos 90. A abordagem RISC mostrou que era simples canalizar as etapas do processamento da instrução para que, em média, uma instrução fosse executada em quase todos os ciclos. O crescimento na tecnologia de compiladores tornou os pipelines de instrução mais produtivos.
Em meados dos anos 80, os computadores baseados em microprocessador consistiam em
- Uma unidade de processamento inteiro
- Uma unidade de ponto flutuante
- Um controlador de cache
- SRAMs para os dados de cache
- Armazenamento de tags
Conforme a capacidade do chip aumentou, todos esses componentes foram fundidos em um único chip. Assim, um único chip consistia em hardware separado para aritmética de inteiros, operações de ponto flutuante, operações de memória e operações de ramificação. Além de enviar instruções individuais por pipeline, ele busca várias instruções ao mesmo tempo e as envia em paralelo para diferentes unidades funcionais, sempre que possível. Este tipo de paralelismo de nível de instrução é chamadosuperscalar execution.