Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades...

54
Pipeline (Patterson) Prof.: Carlos Bazilio

Transcript of Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades...

Page 1: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Pipeline(Patterson)

Prof.: Carlos Bazilio

Page 2: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Tempo de execuçãodas instruções

5ns2ns1ns2nsbeq

6ns1ns2ns1ns2nstipo R

7ns2ns2ns1ns2nssw

8ns1ns2ns2ns1ns2nslw

TotalEscrita Reg

MemUALLeitura Regs

BuscaInstrução

Page 3: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Monociclo versusPipeline

Page 4: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Problema do Desvio Condicional

Page 5: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Solução através demovimentação de instrução

Page 6: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Adiantamento deinstruções

Page 7: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Problema do adiantamentocom instruções lw e R

Page 8: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Caminho de dadosmonociclo

Page 9: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Monociclo comexecução em pipeline

Page 10: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Versão em pipeline docaminho de dados

Page 11: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Passo a passo da execução de instrução lw (1/6)

Page 12: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Passo a passo da execução de instrução lw (2/6)

Page 13: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Passo a passo da execução de instrução lw (3/6)

Page 14: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Passo a passo da execução de instrução lw (4/6)

Page 15: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Passo a passo da execução de instrução lw (5/6)

Page 16: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Passo a passo da execução de instrução lw (6/6)

Page 17: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Exemplo de execução pipeline – 1º. ciclo

Page 18: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Exemplo de execução pipeline – 2º. ciclo

Page 19: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Exemplo de execução pipeline – 3º. ciclo

Page 20: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Exemplo de execução pipeline – 4º. ciclo

Page 21: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Exemplo de execução pipeline – 5º. ciclo

Page 22: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Exemplo de execução pipeline – 6º. ciclo

Page 23: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Pipeline com sinais de controle

Page 24: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Linhas de controle para os estágios

Page 25: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Sinais de controle conectados

Page 26: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

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

Page 27: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Dependências no Caminho de Dados

Page 28: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

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

Page 29: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

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

Page 30: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

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

Page 31: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Dependências na Seqüência de Instruções

(2/2)

Page 32: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Dependências com Adiantamentos

Page 33: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Caminho de Dados sem Adiantamento

Page 34: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Caminho de Dados com Adiantamento

Page 35: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

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

Page 36: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

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

Page 37: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Caminho de Dados com Controle para Adiantamento

Page 38: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

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

Page 39: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (2/5)

Page 40: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (3/5)

Page 41: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (4/5)

Page 42: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (5/5)

Page 43: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Conflito com Instruções lw e tipo R

Page 44: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Conflito com Instruções lw e tipo R

Page 45: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

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

Page 46: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Unidades de Adiantamento e Detecção de Conflitos

Page 47: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

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

Page 48: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (2/7)

Page 49: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (3/7)

Page 50: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (4/7)

Page 51: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (5/7)

Page 52: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (6/7)

Page 53: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Execução de Seqüência de Instruções (7/7)

Page 54: Pipeline (Patterson) - ic.uff.brbazilio/cursos/arqcomp/pipeline.pdf · Parar o pipeline. Unidades de Adiantamento e Detecção de Conflitos. Execução de Seqüência de Instruções

Bibliografia

Organização e projeto de computadores

David A. Patterson e John L. Hennessy

LTC