Post on 17-Apr-2015
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
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
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 !
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
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
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
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
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
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
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)
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
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
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
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!
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
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
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
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
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
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