Vários tipos de Pipelines actuais
Os Pipelines, hoje, levam muitas estruturas
diferentes, do tipo Superescalar, Dinâmico, Out-of-Order, entre outros, que vêm
solucionar problemas nos processadores com Pipeline, tentando minimizar o uso
de bolhas nos processadores, assim maximizando o uso do processador. Ao mesmo
tempo em que os processadores ficam mais sofisticados eles têm diminuído de
tamanho através do uso de tecnologias de fabricação mais precisas. Isto leva a
um problema de dissipação de calor. Não vou entrar em detalhes de como funciona
ou como se resolvem problemas de Engenharia. Vou apenas tentar dar a idéia
básica do que existe hoje no mercado e como essas tecnologias funcionam.
O SUPERPIPELINING:
Consiste em se colocar um grande número de
estágios, no caso, sendo mais que 6 estágios.
Vantagens: Maior número de instruções sendo
processadas ao mesmo tempo e maior freqüência de Clock.
Desvantagens: Aumenta a complexidade,
dependências e desvios.
O PIPELINE SUPERESCALAR:
Consiste em se aumentar o número de
pipelines, ao invés de 1, teríamos 2 ou 3 pipelines em paralelo.
Vantagens: Paralelismo real, com 2 ou mais
instruções sendo processadas em paralelo, com melhora significativa de performance.
Desvantagens: Necessidade do código ser
preparado, aumento de complexidade e problemas de dependências e desvios.
PREVISÃO DE DESVIOS:
Esse pipeline procura "adivinhar"
qual será o comportamento de um desvio condicional.
Vantagens: Diminuição do número de vezes em
que é necessário inserir bolhas no pipeline devido a um desvio.
Desvantagens: Complexidade.
PIPELINE ESPECULATIVO:
Ele inicia o processamento dos 2 caminhos
possíveis após um desvio.
Vantagens: Elimina a perda de tempo por
seguir a seqüência da instrução errada.
Desvantagens: Altamente complexo pois
necessita dois PCs.
PIPELINE DINÂMICO:
Consiste em várias unidades de processamento
em paralelo. O processador executa instruções de tipos diferentes em paralelo e
em ordem invertida. Seria mais ou menos o seguinte, o processador teria um
paralelo especializado em instruções de Ponto Fixo (Soma e Subtração), outro
paralelo para Ponto Flutuante (senos e cosenos) e, às vezes, um terceiro
paralelo para Multimídia (Som, Vídeo).
Vantagens: Instruções mais lentas não
atrasam o processamento das instruções seguintes.
Desvantagens: Complexidade e dificuldade de
testar o processador.
OUT-OF-ORDER:
A Execução Fora-De-Ordem faz o processador
reordenar as instruções para melhor aproveitar o pipeline e evitar a inserção
de bolhas. Ele necessita uma unidade de reordenação de instruções após
executá-las. Pode existir em todos os tipos de pipeline mas é obrigatório em um
pipeline dinâmico.
Vantagens: Performance otimizada e menos
bolhas.
Desvantagens: Complexidade.
Esses são os
pipelines mais utilizados e a maioria dos processadores utilizam várias destas
técnicas ao mesmo tempo. Existem outros tipos de Pipeline, mas raramente são
utilizados. Existem ainda processadores muito rápidos que não utilizam
pipeline, mas isso já é outra história.