Escolar Documentos
Profissional Documentos
Cultura Documentos
Pipeline Rodrigo 2
Pipeline Rodrigo 2
Agenda
Pipelining
Tcnica de implementao em que vrias instrues so sobrepostas na execuo Colocar roupa na lavadora Quando lavadora terminar, colocar roupa na secadora Quando secadora terminar, passar a roupa Quando terminar de passar, guardar as roupas
Exemplo: lavanderia
Pipelining no diminui o tempo para concluir uma instruo, mas aumenta a vazo, reduzindo o tempo para concluir a aplicao
Decodificao/leitura
Operao/clculo Acesso
de registradores;
de endereo;
a operando na memria;
Escrita
de resultado em registrador.
Acesso Memria
2 1
4 3
2 1
5
4 3 2 1
6
5 4 3 2 6
7
6 5 4 3 7
8
7 6 5 4 8
2
1
8 7
6 5 9
3 4 tempo
Oito instrues: lw, sw, add, sub, and, or, slt e beq ALU e Acesso memria: 200ps, acesso registradores: 100ps Ciclo nico: ciclo precisa ser esticado para acomodar instruo mais lenta Ciclo da execuo com pipeline precisa ter ciclo no pior caso de 200ps
lw
sw Branch
200
200 200
100
100 100
200
200 200
200
200
100
800
700 500
Ciclo nico
Cada
Pipelining
Cada
600
800
1000
1200
1400
1600
1800
Acesso Reg dados Busca Reg instruo ALU Acesso Reg dados Busca instruo
800ps
800ps
600
800
1000
1200
1400
1600
1800
Busca instruo
200
Reg
Busca instruo
200
200
200
200
200
=4
Melhoria de quatro vezes (2400/600 = 4) no refletida no tempo de execuo para trs instrues (2400 versus 1400)
Nmero
pequeno de instrues
Mais 1.000.000
Com pipeline: 200.001.400ps Sem pipeline: 800.002.400ps Razo entre os tempos de execuo: (800.002.400/200.001.400) 4,00 (800/200)
Instrues variam de 1 byte a 17 bytes Instrues traduzidas em microoperaes Pentium-4 usa pipeline de microoperaes
origem na mesma posio Segundo estgio pode ler banco de registradores ao mesmo tempo em que hardware est determinando que tipo de instruo foi lida
Estgios de execuo para calcular endereo de memria e depois acessar a memria no estgio seguinte IA-32
Instruo de transferncia de dados no exige dois acessos a memria de dados Dados transferidos entre processador e memria em um nico estgio do pipeline
Hazards
Hazards: situao em que prxima instruo no pode ser executada no ciclo de clock seguinte. Trs tipos:
Hazards
Hazards
Hazards Estruturais
Hardware
no pode admitir a combinao de instrues que queremos executar no mesmo ciclo de clock
precisa ser interrompido porque os dados para executar a instruo ainda no esto disponveis
Hazards de Dados
Pipeline
Ex.: add $s0, $t0, $t1 sub $t2, $s0, $t3 Add no escreve resultado at o quinto estgio
Acontecem
Hazards
Hazard de Controle (ou desvio): necessidade de tomar deciso baseado nos resultados de uma instruo enquanto outras ento sendo executadas
Ex:
operao de desvio
Hazards
Soluo
No
precisamos esperar instruo terminar Hardware adicionado para ter o item que falta antes do previsto: forwarding ou bypassing
Tempo add $s0, $t0, $t1 0 IF 200 ID 400 600 800 MEM
1000
WB
EX
IF: Busca instruo, ID: decodifica/l registrador, EX: execuo, MEM: memria WB: Escreve resultado. Sombreado lado direito: Leitura, esquerdo: escrita. Sem Sombreado: no usado
Hazards
Tempo add $s0, $t0, $t1 0 200 400 ID EX 600 800 MEM 1000 WB
IF
IF
ID
EX
MEM
WB
Hazards
Forwarding s vlido se estgio destino estiver mais adiante no tempo No pode impedir todos os stalls no pipeline
Ex:
Hazards
Tempo lw $s0, 20($t1) 0 200 400 ID EX 600 800 MEM 1000 WB
IF
Bolha
Bolha
Bolha
Bolha
Bolha
IF
ID
EX
MEM
WB
Hazards
Hazard de Controle (ou desvio): necessidade de tomar deciso baseado nos resultados de uma instruo enquanto outras ento sendo executadas
Ex:
operao de desvio
Trs opes
Hazards
Supondo hardware extra para testar registradores, calcular endereo do destino e atualizar PC no segundo estgio...
Hazards
Tempo 0 add $4, $5, $6 beq $1, $2, 40 200 400
Reg Busca instruo
600
ALU
800
1000
1200
1400
Busca instruo
200
Reg
Bolha
Bolha
Busca instruo
Bolha
Reg
Bolha
ALU
Bolha
Acesso Reg dados
400
Exemplo
Estime o impacto nos ciclos de clock por instruo (CPI) no stall nos desvios. Suponha que todas as outras instrues tenham um CPI de 1. Considere que as instrues de desvio so 13% das instrues executadas por uma aplicao. R.: Como as outras instrues possuem um CPI de 1 e dos desvios tomam um ciclo extra para o stall, ento teramos um CPI de 1,13.
Hazards
Hazards
Tempo 0 add $4, $5, $6 beq $1, $2, 40 200 400
Reg Busca instruo
600
ALU
800
1000
1200
1400
Busca instruo
200
Reg
Bolha
Bolha
Busca instruo
Bolha
Reg
Bolha
ALU
Bolha
Acesso Reg dados
400
Hazards
Tempo 0 add $4, $5, $6 beq $1, $2, 40 lw $3, 300($0) 200 400
Reg Busca instruo
600
ALU
800
1000
1200
1400
Busca instruo
200
Reg
Busca instruo
200
Reg
Hazards
Verso mais sofisticada: alguns desvios previstos como tomados e outros como no tomados
Escolhas dependem do comportamento de cada desvio Podem ser alteradas durante a vida de um programa Mantm histrico, usando comportamento passado para prever futuro Previso pode ser superior a 90%
Hazards
Quando pipeline erra, controle ter de garantir que as instrues aps o desvio errado no tenham efeito
Pipeline
reiniciado a partir do endereo de desvio apropriado Pipelines mias longos aumentam o problema (aumentam o custo do erro de previso)
Hazards
executa a prxima instruo seqencial, com desvio ocorrendo aps esse atraso de uma instruo Instruo no afetada pelo desvio add $4, $5, $6 beq $1, $2, 40 til quando desvios so curtos
Hazards
Hazards
Hazard de Controle (ou desvio): necessidade de tomar deciso baseado nos resultados de uma instruo enquanto outras ento sendo executadas
Ex:
operao de desvio
Trs opes