Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem...

20
Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30 minutos Secadora leva 30 minutos “Dobrar” leva 30 minutos “Guardar” leva 30 minutos A B C D

Transcript of Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem...

Page 1: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Processo de Pipelining (exemplo da lavanderia)

• Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas,

secadas, dobradas e guardadas

• Lavadora leva 30 minutos

• Secadora leva 30 minutos

• “Dobrar” leva 30 minutos

• “Guardar” leva 30 minutos

A B C D

Page 2: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Pipelining (exemplo da lavanderia)

• Processo seqüencial de lavagem leva oito horas para os quatro (2 para cada)

• Quanto tempo levaria, utilizando-se pipelining ?

30Ordem

Tarefas

B

C

D

ATempo

30 30 3030 30 3030 30 30 3030 30 30 3030

6 PM 7 8 9 10 11 12 1 2 AM

Page 3: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Pipelining (exemplo da lavanderia)

12 2 AM6 PM 7 8 9 10 11 1

Tempo

B

C

D

A

3030 30 3030 30 30

• Utilizando-se a técnica de pipeline consome-se 3,5 horas no processo de lavagem !

Page 4: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Observações sobre Pipelining

6 PM 7 8 9 10

B

C

D

A

3030 30 3030 30 30

• Pipelining não ajuda a melhorar a latência de uma atividade, mas aumenta o throughput (total)

• Várias tarefas operando em paralelo utilizam recursos diversos

• Aceleração potencial = Número de estágios de pipe (ex: 4)

• Taxa de pipeline limitada pelo estágio mais lento (ex: se lavar demora mais que as outras tarefas)

• Desequilíbrios na duração dos estágios reduz a aceleração

• Tempo para “encher” o pipeline e para “esvaziá-lo”reduz a aceleração

• Pode parar por dependências entre as tarefas

Pipe cheio

Page 5: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Reg a ser lido # 1

Reg a ser lido #2

Reg a ser escrito

Dado de escrita

Dado lido #1

Dadolido #2

EscReg

3

Endereço

Dado a ser escrito

Dadolido

LerMem

EscMen

Extensãode sinal

UAL

MUX

MUX

Memória de Instruções

Endereço deleitura

Instrução

PC

1 Somador

16 32

MUX

UAL

MUX

BI: Busca da instrução

DI: Decodificação/Leitura do banco de

registradores

EX: Execução/Cálculo do endereço

MEM: Acesso àmemória

ER: Escrita no bancode registradores

ERMEMEXDIBI

Page 6: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Os Cinco Estágios da Instrução de Carga

• Busca: Busca da instrução na memória de instruções• Reg/Dec: Decodificação da Instrução e Leitura do(s)

registrador(es) e• UAL: Calcula o endereço da memória de dados• Mem: Lê dado da memória de dados• Reg: Escreve o dado no banco de registradores

Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5

Busca Reg/Dec UAL Mem RegCarga

Page 7: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

PipeliningTempo

Busca Reg UAL Acesso Dados Reg

Busca Reg UAL Acesso Dados Reg

2 4 6 8

8ns

8ns

Busca Reg UAL Acesso Dados Reg

Tempo2 4 6 8

Busca Reg UAL Acesso Dados Reg

Busca Reg UAL Acesso Dados Reg

Tempo para executar 3 instruções = 24ns

Tempo para executar 3 instruções = 13ns

10 12 14

Page 8: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Monociclos vs. Pipeline

Clk

Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ciclo 10

Implementação Monociclo: cada instrução em um ciclo

Load Store Waste

Load

Implementação Pipeline:

Busca Reg Exec Mem Escr

Busca Reg Exec MemStore

Busca Reg Exec Mem EscrTipo R

ClkCiclo 1 Ciclo2

Page 9: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Por que utilizar Pipeline?

• Suponha que vão ser executadas 100 instruções• Máquina monociclo

–1 ciclo de relógio tem duração de 45 ns –Cada instrução demora 1 ciclo (ciclo grande para

possibilitar executar qualquer instrução)–Tempo total: 1 ciclo x 100 inst = 45ns x 100 = 4500 ns

• Máquina ideal pipelined– 1 ciclo de relógio tem duração de 10 ns (ciclo tem

tempo igual ao tempo do elemento mais lento)– cada estágio de pipeline utiliza um ciclo de relógio (são

5 estágios no total)–Tempo total: 5 1 ciclo + (1 ciclo (100 inst -1)) =

10 ns x 99 + 50 ns = 1040 ns

Page 10: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Monociclos vs. Pipeline

Clk

Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ciclo 10

Implementação Pipeline:

Busca Reg Exec Mem Escr

Busca Reg Exec Mem

Busca Reg Exec Mem Escr

Escr

5 ciclos + 1 ciclo por instrução (descontando a primeira instrução que dura 5 ciclos)

Page 11: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Representação Gráfica de Pipeline

Tempo em ciclos de clock

Ordem de execução

das instruções

lw

lw

lw

Lendo

Escrevendo

MI Reg MD RegUAL

C1 C2 C3 C4 C5 C6 C7

MI Reg MD RegUAL

MI Reg MD RegUAL

Page 12: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Pipeline – Recursos Disponíveis

MI Reg MD RegUAL

C1 C2 C3 C4 C5 C6 C7

Tempo em ciclos de clock

MI Reg MD RegUAL

MI Reg MD RegUAL

MI Reg MD RegUAL

MI Reg MD RegUAL

C8 C9

A partir da instrução 5, temos ocupação máxima doprocessador

Page 13: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Conflitos do Pipeline: Conflito Estrutural

Conflitos estruturais: • Tentativa de utilizar o mesmo recurso de modos

diferentes e ao mesmo tempoEx da lavadora: –Lavar e secar utilizando a mesma máquina–Pessoa que dobra roupa já está ocupada

guardando roupa

–Sem duas memórias, não poderia ter acesso à instrução simultaneamente com dados

Page 14: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Conflitos do Pipeline: Conflito Estrutural

MI Reg MD RegUAL

C1 C2 C3 C4 C5 C6 C7

Tempo em ciclos de clock

MI Reg MD RegUAL

MI Reg MD RegUAL

MI Reg MD RegUAL

MI Reg MD RegUAL

C8 C9

Detecção fácil neste caso!

Page 15: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Conflitos do Pipeline: Conflito de Controle

Conflitos de controle: • Tentativa de tomar uma decisão antes que a condição

seja avaliadaEx da lavanderia: –Para lavar uniformes precisa saber quantidade de

sabão; –Precisa esperar a secadora ficar disponível para

colocar próximo uniforme

–Instruções de desvio

Page 16: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Soluções para Conflito de Controle

MI Reg MD RegUAL

C1 C2 C3 C4 C5 C6 C7

Tempo em ciclos de clock

MI Reg MD RegUAL

MI Reg MD RegUAL

C8 C9

Parada: espera até a decisão estar clara

Add

Beq

Load

Page 17: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Soluções para Conflito de Controle

MI Reg MD RegUAL

C1 C2 C3 C4 C5 C6 C7

Tempo em ciclos de clock

MI Reg MD RegUAL

MI Reg MD RegUAL

C8 C9

Predição: Escolhe uma direção e retorna se não for a direção correta.

50% mais rápido se der certo

Add

Beq

Load

Page 18: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Conflitos do Pipeline: Conflito de Dados

Conflitos de dados: • Tentativa de utilizar um item antes de estar pronto

Ex da lavanderia: –Uma meia na secadora outra na lavadora; não

pode dobrar

–Instrução depende de resultado da instrução anterior ainda no pipeline

Ex: add r2 r3 r1 addi r1 r4 100

Page 19: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Solução para Conflito por Dados

MI Reg MD RegUAL

C1 C2 C3 C4 C5 C6 C7

Tempo em ciclos de clock

MI Reg MD RegUAL

Add r2 r3 r1

Addi r1 r4 100

Page 20: Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Conflitos do Pipeline: Conflito Estrutural

MI Reg MD RegUAL

C1 C2 C3 C4 C5 C6 C7

Tempo em ciclos de clock

MI Reg MD RegUAL

Add r2 r3 r1

Addi r1 r4 100

Adiantamento: Adianta o resultado de um estágiopara o outro