pipeline (patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · parar o pipeline. unidades...
TRANSCRIPT
Pipeline(Patterson)
Prof.: Carlos Bazilio
Tempo de execuçãodas instruções
5ns2ns1ns2nsbeq
6ns1ns2ns1ns2nstipo R
7ns2ns2ns1ns2nssw
8ns1ns2ns2ns1ns2nslw
TotalEscrita Reg
MemUALLeitura Regs
BuscaInstrução
Monociclo versusPipeline
Problema do Desvio Condicional
Solução através demovimentação de instrução
Adiantamento deinstruções
Problema do adiantamentocom instruções lw e R
Caminho de dadosmonociclo
Monociclo comexecução em pipeline
Versão em pipeline docaminho de dados
Passo a passo da execução de instrução lw (1/6)
Passo a passo da execução de instrução lw (2/6)
Passo a passo da execução de instrução lw (3/6)
Passo a passo da execução de instrução lw (4/6)
Passo a passo da execução de instrução lw (5/6)
Passo a passo da execução de instrução lw (6/6)
Exemplo de execução pipeline – 1º. ciclo
Exemplo de execução pipeline – 2º. ciclo
Exemplo de execução pipeline – 3º. ciclo
Exemplo de execução pipeline – 4º. ciclo
Exemplo de execução pipeline – 5º. ciclo
Exemplo de execução pipeline – 6º. ciclo
Pipeline com sinais de controle
Linhas de controle para os estágios
Sinais de controle conectados
Conflito por Dados e Adiantamento de Valores
sub $2, $1, $3 # $2 atualizado
and $12, $2, $5 # $2 lido
or $13, $6, $2 # $2 lido
add $14, $2, $2 # $2 lido, já atualizado
sw $15, 100($2) # $2 lido
Dependências no Caminho de Dados
Primeira Solução para Conflito por Dados
sub $2, $1, $3 # $2 atualizado
nop
nop
and $12, $2, $5 # $2 lido
or $13, $6, $2 # $2 lido
add $14, $2, $2 # $2 lido, já atualizado
sw $15, 100($2) # $2 lido
Notação para Representar as Dependências
• <Registr_Pipeline>.<Campo_Registr>
• Exemplo:
– DI/EX.RegistradorRs: Primeira porta de leitura do banco de registradores no registrador DI/EX.
• Possíveis condições de conflito:
– EX/MEM.RegistradorRd = DI/EX.RegistradorRs
– EX/MEM.RegistradorRd = DI/EX.RegistradorRt
– MEM/ER.RegistradorRd = DI/EX.RegistradorRs
– MEM/ER.RegistradorRd = DI/EX.RegistradorRt
Dependências na Seqüência de Instruções
(1/2)
sub $2, $1, $3
and $12, $2, $5
EX/MEM.RegistradorRd = DI/EX.RegistradorRs = $2sub $2, $1, $3
or $13, $6, $2
MEM/ER.RegistradorRd = DI/EX.RegistradorRt = $2
Dependências na Seqüência de Instruções
(2/2)
Dependências com Adiantamentos
Caminho de Dados sem Adiantamento
Caminho de Dados com Adiantamento
Valores dos Multiplexadores
Segundo da ual é adiantado da memória ou do anterior da ual
MEM/ERB = 01
Segundo da ual é adiantado a partir do anterior
EX/MEMB = 10
Segundo da ual vem do bancoDI/EXB = 00
Primeiro da ual é adiantado da memória ou do anterior da ual
MEM/ERA = 01
Primeiro da ual é adiantado a partir do anterior
EX/MEMA = 10
Primeiro da ual vem do bancoDI/EXA = 00
DescriçãoFonteControle
Implementação da Unidade de Adiantamento
• Exemplo de detecção de conflito:
Se (EX/MEM.EscReg
e (EX/MEM.RegistradorRd ≠ 0)
e (EX/MEM.RegistradorRd =DI/EX.RegistradorRs))
Adianta.A = 10
Caminho de Dados com Controle para Adiantamento
Execução de Seqüência de Instruções (1/5)
sub $2, $1, $3 # $2 escrito
and $4, $2, $5 # $2 lido e $4 escrito
or $4, $4, $2 # $2 e $4 lidos e $4 escrito
add $9, $4, $2 # $2 e $4 lidos
Execução de Seqüência de Instruções (2/5)
Execução de Seqüência de Instruções (3/5)
Execução de Seqüência de Instruções (4/5)
Execução de Seqüência de Instruções (5/5)
Conflito com Instruções lw e tipo R
Conflito com Instruções lw e tipo R
Implementação da Detecção do Conflito para
Parada do Pipeline
Se (DI/EX.LerMem
e ((DI/EX.RegistradorRt = BI/DI. RegistradorRs) ou (DI/EX.RegistradorRt = BI/DI. RegistradorRt))
Parar o pipeline
Unidades de Adiantamento e Detecção de Conflitos
Execução de Seqüência de Instruções (1/7)
lw $2, 20($1) # $2 escrito
and $4, $2, $5 # $2 lido e $4 escrito
or $4, $4, $2 # $4 escrito e ambos lidos
add $9, $4, $2 # $2 e $4 lidos
Execução de Seqüência de Instruções (2/7)
Execução de Seqüência de Instruções (3/7)
Execução de Seqüência de Instruções (4/7)
Execução de Seqüência de Instruções (5/7)
Execução de Seqüência de Instruções (6/7)
Execução de Seqüência de Instruções (7/7)
Bibliografia
Organização e projeto de computadores
David A. Patterson e John L. Hennessy
LTC