VoltarNa construção de computadores rápidos há vários fatores limitantes como a velocidade da luz e o calor dissipado. De acordo com as leis da física nada pode viajar mais rápido que a luz, cuja a velocidade é 20 cm/ns no fio de cobre. Além disso, computadores rápidos produzem mais calor que os lentos e isso torna difícil a construção de computadores com dimensões pequenas.
Contundo, podemos enfrentar esses problemas de outra maneira. Ao invés de construirmos computadores de alta velocidade podemos construir máquinas paralelas, ou seja, máquinas que trabalham com a execução de várias instruções simultaneamente.
Podemos dividir essas máquinas em três categorias: SISD, SIMD e MIMD.
As máquinas SISD possuem fluxo único de instruções e dados. Nessa máquina se consegue uma quantidade limitada de paralelismo buscando-se e iniciando-se a próxima instrução antes que a corrente esteja terminada. A execução de cada instrução é dividida em partes. Na figura abaixo mostramos uma máquina pipeline que pode ter um ganho de até cinco vezes na velocidade.
As máquinas SIMD tem um fluxo único de instruções mas múltiplo de dados. As máquinas SIMD podem ter dois tipos de arquitetura:
Máquina vetorial - o fluxo de dados dessa máquina é parecido com o da máquina de Von Neumann mas na entrada da ALU, ao invés de se ter uma única variável temos um vetor com n entradas. Uma aplicação típica para essa máquina é a previsão do tempo, pois exatamente o mesmo cálculo precisa ser feito, porém com dados diferentes.
Array processor - consiste em uma grade quadrada de processadores e memória, onde cada processador possui seu próprio dado e memória e executam as instruções paralelamente. Uma aplicação para essa máquina são os cálculos matriciais.
As máquinas MIMD por sua vez, possuem CPUs diferentes executando programas diferentes. Para evitar o conflito quando vários processadores tentarem acessar a memória pelo mesmo barramento foi dado a cada processador uma memória local. Um exemplo de aplicação dessa arquitetura é o sistema de reserva de passagens aéreas.