Organização de Computadores
Pipeline
Processo de Pipelining (exemplo da
lavanderia)
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
Pipelining (exemplo da lavanderia)
Organização de Computadores
6 PM
O
r
d
e
m
T
a
r
e
f
a
s
8
7
30
30
30
30
30
30
30
30
12
11
10
9
30
30
30
30
2 AM
1
30
30
30
Tempo
A
B
C
D
• Processo seqüencial de lavagem leva oito horas para os quatro
• Quanto tempo levaria, utilizando-se pipelining ?
30
Pipelining (exemplo da lavanderia)
Organização de Computadores
6 PM
O
r
d
e
m
T
a
r
e
f
a
s
8
7
30
30
30
30
10
9
30
11
12
1
Tempo
30
30
A
B
C
D
• Utilizando-se a técnica de pipeline consome-se 3,5 horas
no processo de lavagem !
2 AM
Observações sobre Pipelining
Organização de Computadores
6 PM
O
r
d
e
m
T
a
r
e
f
a
s
7
8
9
Tempo
30
30
30
30
30
30
30
• 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
A
• Aceleração potencial = Número de
estágios de pipe
B
• Taxa de pipeline limitada pelo estágio
mais lento
C
• Desequilíbrios na duração dos
estágios reduz a a aceleração
D
• Tempo para “encher” o pipeline e
para “esvaziá-lo”reduz a aceleração
• Pode parar por dependências
Idéia Básica
Organização de Computadores
BI: Busca da instrução
0
M
u
x
1
4
DI: Decodificação/
Leitura do banco de
registradores
s
o
m
a
d
o
r
Registradores
PC
EX: Execução/
Cálculo do endereço
Endereço
Instrução
Memória de
Instruções
Reg a ser Dado
lido #1
Reg a ser lido #1
lido #2 Dado
Reg a ser lido #2
escrito
16
Ext.
de
sinal
32
s
o
m
a
d
o
r
Shift
left 2
MEM: Acesso à
memória
ER: Escrita mo banco
de registradores
Resultado
da soma
Zero
0
M
u
x
1
UAL
Resultado
da UAL
Endereço Dado
lido
Memória de
Dados
Dado a ser
escrito
1
M
u
x
0
Os Cinco Estágios da Instrução de
Carga
Organização de Computadores
Ciclo 1 Ciclo 2
Load Busca
Reg/Dec
Ciclo 3 Ciclo 4
UAL
Mem
Ciclo 5
Reg
• 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
Pipelining
Organização de Computadores
Ordem de
execução
do programa
(em instruções)
2
Tempo
lw 0 1 100
Busca
4
Reg
6
10
12
14
16
18
Acesso ao
Reg
dado
UAL
lw 0 2 200
8
Busca
8 ns
Reg
Acesso ao
Reg
dado
UAL
lw 0 3 300
Busca
8 ns
...
8 ns
Ordem de
execução
Tempo
do programa
(em instruções)
lw 0 1 100
llw 0 2 200
lw 0 3 300
2
Busca
2 ns
4
Reg
Busca
2 ns
6
UAL
Reg
Busca
2 ns
8
10
14
12
Acesso ao
Reg
dado
UAL
Reg
2 ns
Acesso ao
Reg
dado
UAL
2 ns
Acesso ao
Reg
dado
2 ns
2 ns
Monociclo vs Pipeline
Organização de Computadores
Ciclo 1
Ciclo2
Clk
Implementação Monociclo:
Load
Store
Waste
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ciclo 10
Clk
Implementação Pipeline:
Load Busca
Reg
Store Busca
Exec
Mem
Escr
Reg
Exec
Mem
Escr
Exec
Mem
Tipo R Busca
Reg
Escr
Porque Usar 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
Representação Gráfica de Pipeline
Organização de Computadores
Tempo (em ciclos de clock)
Ordem de
execução
do programa
(em instruções)
lw $1, 100($0)
lw $2, 200($0)
lw $3, 300($0)
CC 1
CC 2
MI
Reg
MI
CC 3
ALU
Reg
MI
CC 4
CC 5
MD
Reg
ALU
Reg
MD
ALU
CC 6
CC 7
Reg
MD
Reg
Pipeline - Recursos disponíveis
Organização de Computadores
Tempo (ciclos de clock)
Mi
Md
Reg
Md
Mi
Reg
Mi
Reg
Reg
Reg
Md
Reg
ALU
Inst 4
Reg
Reg
ALU
Inst 2
Inst 3
Mi
Md
ALU
Inst 1
Reg
ALU
I
n
s
t
r.
r
Inst 0
Mi
ALU
O
r
d
e
m
Md
Reg
Conflitos do Pipeline
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
Conflito Estrutural - Memória Única
Organização de Computadores
Tempo (ciclos de clock)
Mi
Reg
Md
Mi
Reg
Md
Mi
Reg
ALU
Md
Mi
Reg
ALU
Instr 2
Md
ALU
Instr 1
Reg
ALU
I
n
s
t
r.
Load
Mi
ALU
O
r
d
e
m
Instr 3
Instr 4
Deteção fácil nesse caso!
Reg
Reg
Reg
Reg
Md
Reg
Conflitos do Pipeline
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
Soluções para Conflito de Controle
Organização de Computadores
• Parada: espera até decisão estar clara
Add
Beq
Reg
Md
Mi
Reg
Reg
Md
Reg
Mi
Reg
ALU
Load
Mi
ALU
I
n
s
t
r
Tempo (ciclos de clock)
ALU
O
r
d
e
m
Md
Reg
Soluções para Conflito de Controle
Organização de Computadores
• Predição: escolhe uma direção e retorna se errada
Tempo (ciclos de clock)
Reg
Md
Mi
Reg
Md
Mi
Reg
ALU
Add
Beq
Load
Mi
ALU
I
n
s
t
r
• predição não executada
ALU
O
r
d
e
m
• Certo 50% do tempo
Reg
Reg
Md
Reg
Conflitos do Pipeline
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
Conflito de Dados com r1
Organização de Computadores
add r2 r3 r1
addi r1 r4 100
Conflito de Dados com r1
Organização de Computadores
Tempo (ciclos de clock)
BI
ID/RF
addi r1 r4 100
Reg
Md
Mi
Reg
ALU
I
n
s
t
r
Mi
MEM
ALU
O
r
d
e
m
add r2 r3 r1
EX
REG
Reg
Md
Reg
Solução para Conflito por Dados
Organização de Computadores
• “Adiantamento” do resultado de um estágio para outro
I
n
s
t
r
add r2 r3 r1
Mi
addi r1 r4 100
MEM
Reg
Md
Mi
Reg
ALU
O
r
d
e
m
EX
ALU
Tempo (ciclos de clock)
ID/RF
BI
ER
Reg
Md
Reg
Download

Pipeline - Instituto de Computação