Buscar

Slides perfeitos do Livro_AOC2_aula10

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal de Pelotas
Instituto de Física e Matemática
Departamento de Informática
Bacharelado em Ciência da Computação
Arquitetura Arquitetura e e OrganizaOrganizaçãçãoo
de de Computadores Computadores IIII
Aula 10
2. MIPS pipeline: conflitos por dados e
adiantamento.
Prof. José Luís Güntzel
guntzel@ufpel.edu.br
www.ufpel.edu.br/~guntzel/AOC2/AOC2.html
slide 10.2 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Conflitos por Dados
Seja o seguite trecho de código, escrito para o MIPS
# primeiro operando ($2) depende de sub$12, $2, $5and
# registrador $2 é escrito pela instrução sub$2, $1, $3sub
# segundo operando ($2) depende de sub$13, $6, $2or
# base ($2) depende de sub$15, 100($2)sw
# primeiro e segundo operandos ($2) dependem de sub$14, $2, $2add
Para estudar as conseqüências destas dependências quando da
execução em pipeline, usar um diagrama de pipeline de múltiplos
ciclos.
slide 10.3 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
sub $2, $1, $3
Ordem de execução
do programa
(em instruções)
MI Reg MD RegULA
MI Reg MD RegULA
Conflitos por Dados
-20-20-20-2010/-2010101010Valor do reg. $2
CC9CC8CC7CC6CC5CC4CC3CC2CC1
Tempo, em
Ciclos de clock
MI Reg MD RegULA
MI Reg MD RegULA
MI Reg MD RegULA
and $12, $2, $5
or $13, $6, $2
add $14, $2, $2
sw $15, 100($2)
slide 10.4 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Conflitos por Dados
Uma solução seria o compilador evitar seqüências de
instruções que gerassem conflitos por dados
# na falta de instruções que sejam independentes, onop
# compilador inseriria instruções “nop”nop
# primeiro operando ($2) depende de sub$12, $2, $5and
# registrador $2 é escrito pela instrução sub$2, $1, $3sub
# segundo operando ($2) depende de sub$13, $6, $2or
# base ($2) depende de sub$15, 100($2)sw
# primeiro e segundo operandos ($2) dependem de sub$14, $2, $2add
Problemas:
 Conflitos por dados são muito freqüentes
 A inserção de instruções nop causa perda de desempenho!
slide 10.5 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Conflitos por Dados
Outra solução
 Detectar o conflito
 Adiantar o resultado da ULA (ou da memória de dados)
Testes para detecção de conflito (uso dos registradores de pipeline):
1a) EX/MEM.RegistradorRd = DI/EX.RegistradorRs
1b) EX/MEM.RegistradorRd = DI/EX.RegistradorRt
2a) MEM/ER.RegistradorRd = DI/EX.RegistradorRs
2b) MEM/ER.RegistradorRd = DI/EX.RegistradorRt
slide 10.6 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
sub $2, $1, $3
Ordem de execução
do programa
(em instruções)
MI Reg MD RegULA
MI Reg MD RegULA
Conflitos por Dados
-20-20-20-2010/-2010101010Valor do reg. $2
CC9CC8CC7CC6CC5CC4CC3CC2CC1
Tempo, em
Ciclos de clock
MI Reg MD RegULA
MI Reg MD RegULA
MI Reg MD RegULA
and $12, $2, $5
or $13, $6, $2
add $14, $2, $2
sw $15, 100($2)
Rd Rs Rt
1a) EX/MEM.RegistradorRd = DI/EX.RegistradorRs
1b) EX/MEM.RegistradorRd = DI/EX.RegistradorRst
2a) MEM/ER.RegistradorRd = DI/EX.RegistradorRs
2b) MEM/ER.RegistradorRd = DI/EX.RegistradorRt
slide 10.7 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Conflitos por Dados
Endereço Dado
lido
Dado a ser
escrito
Memória
de dados
EX/MEM MEM/ER
32Endereço
 Instrução
lida
Memória 
de Instruções
PC
4
M
U
X
0
1
+
M
U
X
0
1
DI/EX
Desl.
à esq.
2 bits
M
U
X
0
1
Zero
Resultado
ULA
+
M
U
X
0
1
BI/DI
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Exten-
são de 
sinal
3216
[25-21]
[20-16]
[15-11]
[15-0]
1a) EX/MEM.RegistradorRd = DI/EX.RegistradorRs
MemóriaExecuçãoDecodificação da instrução
or $13, $6, $2 and $12, $2, $5 sub $2, $1, $3
Rs
Rd
slide 10.8 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Conflitos por Dados
Endereço Dado
lido
Dado a ser
escrito
Memória
de dados
EX/MEM MEM/ER
32Endereço
 Instrução
lida
Memória 
de Instruções
PC
4
M
U
X
0
1
+
M
U
X
0
1
DI/EX
Desl.
à esq.
2 bits
M
U
X
0
1
Zero
Resultado
ULA
+
M
U
X
0
1
BI/DI
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Exten-
são de 
sinal
3216
[25-21]
[20-16]
[15-11]
[15-0]
Rt
2b) MEM/ER.RegistradorRd = DI/EX.RegistradorRt
MemóriaExecuçãoDecodificação da instrução
add $14, $2, $2 and $12, $2, $5
Escrita no
banco de
registradores
sub $2, $1, $3or $13, $6, $2
Rd
slide 10.9 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Conflitos por Dados
Endereço Dado
lido
Dado a ser
escrito
Memória
de dados
EX/MEM MEM/ER
32Endereço
 Instrução
lida
Memória 
de Instruções
PC
4
M
U
X
0
1
+
M
U
X
0
1
DI/EX
Desl.
à esq.
2 bits
M
U
X
0
1
Zero
Resultado
ULA
+
M
U
X
0
1
BI/DI
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Exten-
são de 
sinal
3216
[25-21]
[20-16]
[15-11]
[15-0]
Ao final deste CC, add $14, $2, $2
lê o valor correto de $2
MemóriaExecuçãoDecodificação da instrução
add $14, $2, $2 and $12, $2, $5
Escrita no
banco de
registradores
sub $2, $1, $3or $13, $6, $2
slide 10.10 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
sub $2, $1, $3
Ordem de execução
do programa
(em instruções)
MI Reg MD RegULA
MI Reg MD RegULA
Conflitos por Dados
-20-20-20-2010/-2010101010Valor do reg. $2
CC9CC8CC7CC6CC5CC4CC3CC2CC1
Tempo, em
Ciclos de clock
MI Reg MD RegULA
MI Reg MD RegULA
MI Reg MD RegULA
and $12, $2, $5
or $13, $6, $2
add $14, $2, $2
sw $15, 100($2)
slide 10.11 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Detectando e Resolvendo Conflitos por Dados
1. Conflitos no Estágio EX
se (EX/MEM.EscReg = 1
e (EX/MEM.RegistradorRd ≠ 0 )
e (EX/MEM.RegistradorRd = DI/EX.RegistradorRs )) Adianta.A = 10
se (EX/MEM.EscReg = 1
e (EX/MEM.RegistradorRd ≠ 0 )
e (EX/MEM.RegistradorRd = DI/EX.RegistradorRt )) Adianta.B = 10
slide 10.12 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Detectando e Resolvendo Conflitos por Dados
2. Conflitos no Estágio MEM
se (EX/MEM.EscReg = 1
e (EX/MEM.RegistradorRd ≠ 0 )
e (MEM/ER.RegistradorRd = DI/EX.RegistradorRs )) Adianta.A = 01
se (EX/MEM.EscReg = 1
e (EX/MEM.RegistradorRd ≠ 0 )
e (MEM/ER.RegistradorRd = DI/EX.RegistradorRt )) Adianta.B = 01
slide 10.13 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Detectando e Resolvendo Conflitos por Dados
Complicação:
 Conflito entre o resultado no estágio ER e o resultado no
estágio MEM e o operando-fonte da instrução no estágioda
ULA.
$1, $1, $4add
…
$1, $1, $3add
$1, $1, $2add
slide 10.14 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Detectando e Resolvendo Conflitos por Dados
2. Conflitos no Estágio MEM
se (EX/MEM.EscReg = 1
e (EX/MEM.RegistradorRd ≠ 0 )
e (EX/MEM.RegistradorRd ≠ DI/EX.RegistradorRs )
e (MEM/ER.RegistradorRd = DI/EX.RegistradorRs )) Adianta.A = 01
se (EX/MEM.EscReg = 1
e (EX/MEM.RegistradorRd ≠ 0 )
e (EX/MEM.RegistradorRd ≠ DI/EX.RegistradorRt )
e (MEM/ER.RegistradorRd = DI/EX.RegistradorRt )) Adianta.B = 01
slide 10.15 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Uso do Simulador DLX
 O processador DLX é um primo-irmão do MIPS, mostrado no outro
livro do Patersson-Hennessy (Computer Architecture: A Quantitative
Approach. 2nd edition. San Francisco, California: Morgan Kaufmann Publishers,
1996.)
 O DLX é capaz de executar todas as instruções do MIPS
 Disponível em ftp://ftp.mkp.com/pub/dlx/
 O arquivo-fonte contendo o programa em simbólico deve ser editado
em um editor ascii, sem formatação, e deve receber um nome com
extensão “.s”
 O simulador do DLX mostra a progressão das instruções nos estágios
do pipeline
 Permite visualizar a execução com e sem Unidade de Adiantamento
(with or without forwarding)

Outros materiais