quarta-feira, 12 de janeiro de 2011

Pipeline

Introdução

             Pipeline é uma técnica de implementação de processadores que permite a sobreposição temporal das diversas fases de execução das instruções.

             Aumenta o número de instruções executadas simultaneamente e a taxa de instruções iniciadas e terminadas por unidade de tempo.

              O pipeline não reduz o tempo gasto para completar cada instrução individualmente.

Exemplo

Vamos supor uma lavandaria, em que cada etapa possa ser realizada em 30 minutos:

1) Colocar a roupa na máquina de lavar
2) Depois de lavada, colocá-la na máquina de secar roupa
3) Depois de seca, passar a ferro
4) Depois de passada, arrumá-la no armário

Instrução sem pipeline
Instrução com pipeline



Supondo-se que cada uma destas etapas leve 30 minutos para ser realizada, a lavagem de um cesto de roupas continuará levando 2 horas para ser realizada.

Entretanto, podemos iniciar a lavagem de um cesto de roupas a cada 30 minutos, até que tenhamos 4 cestos sendo lavados simultaneamente, um em cada etapa do “pipeline”.

Depois das primeiras 2 horas, teremos um cesto de roupa lavada a cada 30 minutos. Ao final do dia teremos lavado muito mais cestos de roupa do que sem o uso de pipeline.

Formula de pipeline



Síntese final

Não melhora a latência de cada tarefa individualmente.

Melhora o throughput de todo o trabalho.

Várias tarefas executam simultaneamente usando recursos diferentes.

Speedup potencial = número de estágios do pipeline.





Seguidores