Upload
internet
View
103
Download
0
Embed Size (px)
Citation preview
Organização de Computadores
PipelinePipeline
Organização de Computadores
• 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
Processo de Pipelining (exemplo da lavanderia)
Organização de Computadores
• Processo seqüencial de lavagem leva oito horas para os quatro
• 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)
Organização de Computadores
• Utilizando-se a técnica de pipeline consome-se 3,5 horas no processo de lavagem !
Ordem
Tarefas
12 2 AM6 PM 7 8 9 10 11 1
Tempo
B
C
D
A
3030 30 3030 30 30
Pipelining (exemplo da lavanderia)
Organização de Computadores
• Pipelining não ajuda a melhorar a latência de uma atividade, mas aumenta o throughput
• Várias tarefas operando em paralelo utilizam recursos diversos
• Aceleração potencial = Número de estágios de pipe
• Taxa de pipeline limitada pelo estágio mais lento
• Desequilíbrios na duração dos estágios reduz a a aceleração
• Tempo para “encher” o pipeline e para “esvaziá-lo”reduz a aceleração
• Pode parar por dependências
6 PM 7 8 9
Tempo
B
C
D
A
3030 30 3030 30 30
Ordem
Tarefas
Observações sobre Pipelining
Organização de Computadores
Idéia Básica
4
32
0
Shiftleft 2
Mux
0
1
PC
0
Mux
1
16
1
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 mo bancode registradores
somador
Endereço
InstruçãoMemória deInstruções
Reg a serlido #1
Reg a serlido #2Reg a ser
escrito
Dadolido #1Dado
lido #2
Registradores
Ext.de
sinal
somador
Resultadoda soma
UALZero
Resultadoda UAL
Endereço
Dado a serescrito
Dadolido
Memória deDados
Organização de Computadores
• Busca: Busca da instrução da memória de instruções
• Reg/Dec: Leitura do(s) registrador(es) e decodificação da Instrução
• 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 RegLoad
Os Cinco Estágios da Instrução de Carga
Organização de Computadores
Pipelining
8 ns
8 ns
8 ns
lw 0 1001
lw
lw 0 300
2 4 6 8 10 12 14 16 18
2 4 6 8 10 12 14
...
lw
lw
2 ns
2 ns Reg Reg
2 ns 2 ns 2 ns 2 ns 2 ns
Ordem deexecução
do programa(em instruções)
Tempo
Reg RegBusca UALAcesso ao
dado
Reg RegBusca UALAcesso ao
dado
Busca
Ordem deexecução
do programa(em instruções)
Tempo
Busca
Busca
Busca
Reg
Reg
UAL
UAL
UAL
Acesso aodado
Acesso aodado
Acesso aodado
Reg
Reg
0 2 02 0
3
0 1 01 0
l 0 2 02 0
lw 0 3003
Organização de Computadores
Clk
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ciclo 10
Implementação Monociclo:
Load Store Waste
Load
Implementação Pipeline:
Busca Reg Exec Mem Escr
Busca Reg Exec Mem EscrStore
Busca Reg Exec Mem EscrTipo R
Clk
Ciclo 1 Ciclo2
Monociclo vs Pipeline
Organização de Computadores
• Suponha que vão ser executadas 100 instruções
• Máquina monociclo • 1 ciclo de relógio tem duração de 45 ns
• 45 ns/ciclo 1 CPI x 100 inst = 4500 ns
• Máquina ideal pipelined• 1 ciclo de relógio tem duração de 10 ns
• cada estágio de pipeline utiliza um ciclo de relógio
• 5 1 ciclo + (1 ciclo (100 inst -1)) = 50 ns + 99 10 ns = 1040 ns
Porque Usar Pipeline?
Organização de Computadores
Representação Gráfica de Pipeline
Reg RegALU
Reg RegALU
CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7
lw $2, 200($0)
lw $3, 300($0)
lw $1, 100($0) Reg RegALU
Ordem deexecução
do programa(em instruções)
Tempo (em ciclos de clock)
MI MD
MI
MI
MD
MD
Organização de Computadores
Ordem
Instr.r
Tempo (ciclos de clock)
Inst 0
Inst 1
Inst 2
Inst 4
Inst 3
AL
UMi Reg Md Reg
AL
UMi Reg Md Reg
AL
UMi Reg Md Reg
AL
UMi Reg Md Reg
AL
UMi Reg Md Reg
Pipeline - Recursos disponíveis
Organização de Computadores
• Conflitos estruturais: tentativa de utilizar o mesmo recurso de modos diferentes ao mesmo tempo
• E.x., lavadora/secadora combinadas, ou pessoa que dobra ocupada com outra atividade (lavando panela)
• sem duas memórias, não poderia ter acesso à instrução simultâneo com dados
Conflitos do Pipeline
Organização de Computadores
Ordem
Instr.
Mi
Tempo (ciclos de clock)
Load
Instr 1
Instr 2
Instr 3
Instr 4A
LUMi Reg Md Reg
AL
UMi Reg Md Reg
AL
UMi Reg Md Reg
AL
UReg Md Reg
AL
UMi Reg Md Reg
Deteção fácil nesse caso!
Conflito Estrutural - Memória Única
Organização de Computadores
• Conflitos de controle: tentativa de tomar uma decisão antes que a condição seja avaliada
• E.x., lavar uniformes de time de futebol e precisa saber quantidade de sabão; precisa esperar a secadora para colocar próximo uniforme
• instruções de desvio
Conflitos do Pipeline
Organização de Computadores• Parada: espera até decisão estar clara
Ordem
Instr
Tempo (ciclos de clock)
Add
Beq
LoadA
LUMi Reg Md Reg
AL
UMi Reg Md Reg
AL
UReg Md RegMi
Soluções para Conflito de Controle
Organização de Computadores
• Predição: escolhe uma direção e retorna se errada• predição não executada
• Certo 50% do tempo
Ordem
Instr
Tempo (ciclos de clock)
AddBeqLoad
AL
UMi Reg Md Reg
AL
UMi Reg Md Reg
Mi
AL
UReg Md Reg
Soluções para Conflito de Controle
Organização de Computadores
• Conflitos de dados: tentativa de utilizar um item antes de estar pronto
• E.x., uma meia na secadora outro na lavadora; não pode dobrar
• instrução depende de resultado da instrução anterior ainda no pipeline
Conflitos do Pipeline
Organização de Computadores
add r2 r3 r1
addi r1 r4 100
Conflito de Dados com r1
Organização de Computadores
Ordem
Instr
Tempo (ciclos de clock)
add r2 r3 r1
addi r1 r4 100
BI ID/RF EX MEM REGAL
UMi Reg Md Reg
AL
UMi Reg Md Reg
Conflito de Dados com r1
Organização de Computadores• “Adiantamento” do resultado de um estágio para outro
Ordem
Instr
Tempo (ciclos de clock)
BI ID/RF EX MEM ERAL
UMi Reg Md Reg
AL
UMi Reg Md Reg
Solução para Conflito por Dados
add r2 r3 r1
addi r1 r4 100