Pipeline
Microarquiteturas de Alto Desempenho
Pipeline
Gabriel P. Silva
Microarquitetura de Alto Desempenho
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.
Microarquitetura de Alto Desempenho
Exemplo
Vamos supor uma lavanderia, em que cada etapa possa ser realizada em 30 minutos: 2.Colocar a roupa na máquina de lavar 3.Depois de lavada, colocá-la na máquina de secar roupa 4.Depois de seca, passar a ferro 5.Depois de passada, arrumá-la no armário
Microarquitetura de Alto Desempenho
Exemplo sem Pipeline
Microarquitetura de Alto Desempenho
Exemplo com Pipeline
Microarquitetura de Alto Desempenho
Exemplo
• 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
Microarquitetura de Alto Desempenho
Pipeline
• 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
Microarquitetura de Alto Desempenho
Arquitetura Básica
REM PC
32 RD = RS1 oper R2
RI Endereço de Desvio 4
32 16 INSTRUÇÃO 5 5 5 #RS1 #RS2 #RD
ENDEREÇO
ENDEREÇO
RD Banco de