Buscar

arquitetura e organização de computadores

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

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

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ê viu 3, do total de 33 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

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

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ê viu 6, do total de 33 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

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

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ê viu 9, do total de 33 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

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 8
2. MIPS pipeline: visão geral do pipeline, conflitos
na execução em pipeline.
Prof. José Luís Güntzel
guntzel@ufpel.edu.br
www.ufpel.edu.br/~guntzel/AOC2/AOC2.html
slide 8.2 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Analogia com uma “Lavanderia Doméstica” 1:
 Execução seqüencial
Tempo total: 8 horas
Tempo entre duas mudas de roupas prontas: 2 horas 
Ordenação 
das
Tarefas
horas18 19 20 21 22 23 24 1 2
A
B
C
D
Visão Geral do Pipeline
slide 8.3 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Ordenação 
das
Tarefas
horas18 19 20 21 22 23 24 1 2
A
B
C
D
Tempo total: 3,5 horas
Tempo entre duas mudas de roupas prontas: 1/2 hora 
Analogia com uma “Lavanderia Doméstica” 2:
 Execução em pipeline
Visão Geral do Pipeline
slide 8.4 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
1. Busca da instrução na memória
2. Leitura dos registradores, enquanto a instrução é
decodificada
3. Execução de uma operação ou cálculo de um endereço
4. Acesso a um operando na memória
5. Escrita do resultado em um registrador
Tradicionalmente, as instruções do MIPS são executadas em
5 etapas:
Visão Geral do Pipeline
slide 8.5 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Exemplo 1: compare o tempo de execução da versão
monociclo do MIPS com o tempo da versão pipeline.
Considere os tempos de operação para as principais unidades funcionais (e os
tempos das instruções) dados na tabela abaixo:
5 ns------2 ns1 ns2 nsBranch (beq)
6 ns1 ns---2 ns1 ns2 ns
Formato R (add, sub,
and, or, slt)
7 ns---2 ns2 ns1 ns2 nsStore word (sw)
8 ns1 ns2 ns2 ns1 ns2 nsLoad word (ld)
Tempo
total
Escrita no
registrador
Acesso ao
dado
Operação
na ULA
Leitura de
registrador
Busca da
instrução
Classe da instrução
Visão Geral do Pipeline
slide 8.6 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Consideremos 3 execuções seguidas da instrução lw, a qual
é a mais lenta em ambos casos (monociclo e pipeline).
Visão Geral do Pipeline
slide 8.7 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
sem pipeline
lw $1, 100($0)
lw $2, 200($0)
Ordem de
execução
do programa
(em instruções)
lw $3, 300($0)
Tempo 2 4 6 8 10 12 14 16 18
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Reg
8 ns
8 ns
8 ns
lw $1, 100($0)
lw $2, 200($0)
Ordem de
execução
do programa
(em instruções)
lw $3, 300($0)
Tempo 2 4 6 8 10 12 14 16 18
2 ns
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg2 ns
2 ns 2 ns 2 ns 2 ns 2 ns
com pipeline
Ganho do pipeline
= 24/6 = 4
slide 8.8 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
 Sem pipeline: o tempo decorrido entre o início da
primeira instrução e o início da quarta instrução é 3x8 ns
= 24 ns
 Com pipeline: o tempo decorrido entre o início da
primeira instrução e o início da quarta instrução é 3x2 ns
= 6 ns
 Logo, a melhora do desempenho advinda do uso do
pipeline é de 24 ns/6 ns = 4 vezes!
Visão Geral do Pipeline
slide 8.9 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Se os estágios de um pipeline forem perfeitamente
balanceados, então:
 Estas condições são ideais e portanto, nunca atingidas!
 Porém, costuma-se assumir que o ganho máximo teórico de um
pipeline é igual ao número de estágios.
Tempo entre instruçõespipeline
Tempo entre instruçõesnão-pipeline
Número de estágios do pipe
=
Visão Geral do Pipeline
slide 8.10 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
 Os estágios de um pipeline não são perfeitamente
balanceados
 Existe um overhead referente ao preenchimento do
pipeline.
Em função do segundo motivo, o tempo entre instruções é
mais importante do que o tempo total.
Motivos pelos quais o ganho teórico não é atingido:
Visão Geral do Pipeline
slide 8.11 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Exemplo 2: ainda com relação ao exemplo 1, considere que
ao invés de 3 instruções lw, sejam executadas 1003
instruções lw seguidas.
Qual será o tempo total em cada caso (monociclo e pipeline)
e qual será o ganho obtido pelo uso do pipeline?
Visão Geral do Pipeline
slide 8.12 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
sem pipeline
lw $1, 100($0)
lw $2, 200($0)
Ordem de
execução
do programa
(em instruções)
lw $3, 300($0)
Tempo 2 4 6 8 10 12 14 16 18
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Reg
8 ns
8 ns
8 ns
lw $1, 100($0)
lw $2, 200($0)
Ordem de
execução
do programa
(em instruções)
lw $3, 300($0)
Tempo 2 4 6 8 10 12 14 16 18
2 ns
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg2 ns
2 ns 2 ns 2 ns 2 ns 2 ns
com pipeline
slide 8.13 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
• Sem pipeline: 24 ns + 1000 x 8 ns = 8024 ns
• Com pipeline: 14 ns + 1000 x 2 ns = 2014 ns
Ganho = 8024 ns / 2014 ns = 3,98 ≈ 8 ns / 2 ns
O pipeline aumenta o desempenho por meio do aumento do
throughput das instruções, ou seja, aumentando o número de
instruções executadas na unidade de tempo (e não por meio da
diminuição do tempo de execução de uma instrução individual).
Visão Geral do Pipeline
slide 8.14 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Projeto da Arquitetura para o MIPS Pipeline
(Conjunto de Instruções ) 
1. Todas as instruções têm o mesmo tamanho
2. Poucos formatos de instruções, sempre com o registrador-fonte
localizado na mesma posição
3. Somente as instruções load word e store word manipulam
operandos na memória
4. Os operandos do MIPS precisam estar alinhados na memória
Características da Arquitetura do Processador MIPS*:
* Na realidade, o conjunto de instruções do MIPS foi projetado visando
a execução em pipeline.
slide 8.15 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
“Existem situações de execução no pipeline em que a
instrução seguinte não pode ser executada no próximo ciclo
de relógio. Tais situações são chamadas de conflitos.”
Tipos de Conflitos:
 Estruturais
 De controle
 De dados
Os Conflitos do Pipeline
slide 8.16 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPelArquitetura e Organização de Computadores II
O Hardware não pode suportar a combinação de instruções
que o pipeline deseja executar em um dado ciclo de relógio.
• O conjunto de instruções do MIPS foi projetado para executar
em pipeline (é muito fácil evitar conflitos estruturais quando
do desenho do pipeline)
• Mas se houvesse somente uma memória (para dados e
instruções), se uma instrução tentasse acessar um dado na
memória enquanto tivesse que ser buscada uma nova
instrução, ocorreria um conflito estrutural.
Conflitos Estruturais (Structural Hazards)
slide 8.17 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
• Originam-se na necessidade de se tomar uma decisão
baseada nos resultados de uma instrução, a qual ainda
não foi concluída.
• Muito comuns em instruções de salto condicional (beq,
no caso do MIPs reduzido)
• Uma possível solução é a parada (também chamada de
“bolha”), ou seja, interromper a progressão das
instruções pelo pipeline.
Conflitos de Controle (Control Hazards)
slide 8.18 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Exemplo 3: analisar o efeito da parada no desempenho do
desvio condicional.
Considere que se tenha hardware extra que permita testar registradores, calcular
o endereço de desvio condicional e atualizar o PC, tudo isso no segundo estágio.
add $4, $5, $6
beq $1, $2, 40
Ordem de
execução
do programa
(em instruções)
lw $3, 300($0)
Tempo 2 4 6 8 10 12 14 16 18
2 ns
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg4 ns
2 ns 2 ns 2 ns 2 ns 2 ns
Conflitos de Controle: parada
slide 8.19 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Se for necessário resolver o desvio condicional em um estágio
posterior ao segundo (o que é o ocorre na maioria dos processadores
reais), ocorrerá uma perda maior de desempenho em função da
necessidade de encher novamente o pipeline
add $4, $5, $6
beq $1, $2, 40
Ordem de
execução
do programa
(em instruções)
lw $3, 300($0)
Tempo 2 4 6 8 10 12 14 16 18
2 ns
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
6 ns
2 ns 2 ns 2 ns 2 ns 2 ns
pipeline esvaziando
Conflitos de Controle: parada
slide 8.20 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Outra solução é a Predição:
• É a técnica geralmente adotada nos processadores reais!
• Um esquema simples de predição é assumir sempre que os
desvios condicionais sempre irão falhar.
– Se acertar, o pipeline prossegue com velocidade máxima
– Se errar, será neccesário atrasar o avanço das instruções pelo
pipeline
Conflitos de Controle: predição estática
slide 8.21 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
add $4, $5, $6
beq $1, $2, 40
Ordem de
execução
do programa
(em instruções)
lw $3, 300($0)
Tempo 2 4 6 8 10 12 14 16 18
2 ns
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
2 ns
add $4, $5, $6
beq $1, $2, 40
Ordem de
execução
do programa
(em instruções)
or $7, $8, $9
Tempo 2 4 6 8 10 12 14 16 18
2 ns
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg4 ns
bolha bolha bolha bolha bolha
Quando o
desvio condicional
não se realiza
Quando o
desvio condicional
se realiza
Conflitos de Controle: predição estática
slide 8.22 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
• Outro esquema mais sofisticado de predição reside em se
considerar parte dos desvios se realizando e parte não se
realizando
• Exemplo de uso prático: nos loops a última instrução é
sempre um desvio para um endereço anterior, que na
maioria das vezes, se concretiza
• Dada a grande probabilidade de se realizarem, podemos
predizer que os desvios para endereços anteriores sempre
se realizam…
Conflitos de Controle: predição estática
slide 8.23 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
• Predição dinâmica realiza a predição em função do comportamento
anterior de cada desvio
• Podem mudar a predição para um mesmo desvio com o decorrer da
execução do programa
• Um esquema comum é manter uma história para cada desvio
realizado ou não-realizado
• Preditores dinâmicos são implementados em hardware e apresentam
até 90% de acerto
• Quando o palpite estiver errado, o controle do pipeline precisa
assegurar que as instruções seguintes ao desvio não terão influência
na execução futura
Conflitos de Controle: predição dinâmica
slide 8.24 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
• Decisão retardada consiste em escolher uma instrução para ser
executada logo após a instrução de desvio, de modo a manter o
pipeline preenchido
add $4, $5, $6
beq $1, $2, 40
Ordem de
execução
do programa
(em instruções)
lw $3, 300($0)
Tempo 2 4 6 8 10 12 14 16 18
2 ns
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg4 ns
add $4, $5, $6
beq $1, $2, 40
Ordem de
execução
do programa
(em instruções)
lw $3, 300($0)
Tempo 2 4 6 8 10 12 14 16 18
2 ns
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
2 ns
original
Slot do desvio retardado
Conflitos de Controle: delayed branch
slide 8.25 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
• A execução de uma instrução depende do resultado de
outra, a qual ainda está no pipeline. Exemplo:
add $s0, $t0, $t1
sub $t2, $s0, $t3
add $s0, $t0, $t1
Ordem de
execução
do programa
(em instruções)
sub $t2, $s0, $t3
Tempo 2 4 6 8 10 12 14 16 18
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
Busca da
instrução
Acesso
ao Dado
ULAReg Reg
bolha bolha bolha bolha bolha
bolha bolha bolha bolha bolha
bolha bolha bolha bolha bolha
Conflitos de Dados (Data Hazards)
slide 8.26 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
• Passar para o compilador a solução deste tipo de conflito é
inviável, pois este tipo de conflito é muito freqüente
• Solução: não é preciso esperar pelo término de uma
instrução aritmética/lógica
• Tão logo a ULA chegue ao resultado da operação, este
resultado pode ser disponibilizada para as instruções que
vem a seguir
• Esta técnica é chamada de adiantamento (forwarding ou
bypass)
Conflitos de Dados: adiantamento
slide 8.27 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Exemplo 4: considerando as duas instruções citadas
anteriormente, mostre as conexões necessárias entre os estágios
do pipeline de modo a tornar viável o adiantamento.
Conflitos de Dados:adiantamento
slide 8.28 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estágios:
BI: busca de instrução (memória de instruções)
DI: decodificação da instrução e leitura do banco de registradores (banco de
registradores sendo lido)
EX: estágio de execução da instrução (ULA)
MEM: acesso à memória (memória de dados)
ER: escrita do resultado no banco de registradores (banco de registradores
sendo escrito)
EX MEM ERDIBIadd $s0, $t0, $t1
Tempo 2 4 6 8 10
Representação Gráfica do Pipeline de Instrução
slide 8.29 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
EX MEM ERDIBIadd $s0, $t0, $t1
Leitura do banco
de registradores
Escrita no banco
de registradores
Memória de
dados não é
acessada
Representação Gráfica do Pipeline de Instrução
slide 8.30 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Solução do Exemplo 4: conexão entre a saída da ULA e a
entrada da própria ULA
EX MEM ERDIBIadd $s0, $t0, $t1
sub $t2, $s0, $t1
Ordem de
execução
do programa
(em instruções)
Tempo 2 4 6 8 10
EX MEM ERDIBI EX
Resultado: não haverá bolha!
Só pode haver caminho para adiantamento se o estágio-destino for
posterior no tempo ao estágio-fonte
Conflitos de Dados: adiantamento
slide 8.31 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Exemplo 5: adiantamento envolvendo instrução lw
Resultado: mesmo com adiantamento, haverá a perda de um
ciclo de relógio (a bolha inevitável)
Conflitos de Dados: adiantamento
lw $s0, 20($t1)
sub $t2, $s0, $t3
Ordem de
execução
do programa
(em instruções)
Tempo 2 4 6 8 10
EX MEM ERDIBI EX
bolha bolha bolha bolha bolha
EX ERDIBI MEM
slide 8.32 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
 # reg $t1 possui o endereco de v[k]
lw $t0, 0($t1) # reg $t0 (temp) = v[k]
lw $t2, 4($t1) # reg $t2 = v[k+1]
sw $t2, 0($t1) # v[k] = reg $t2
sw $t0, 4($t1) # v[k+1] = reg $t0 (temp)
Exemplo 6: encontre o conflito existente no código do
procedimento swap, abaixo.
Conflitos de Dados: reordenação do código
O conflito aparece no registrador $t2, entre a 2a e a 3a linhas. 
slide 8.33 Prof. José Luís Güntzel
2. Organizações do MIPS: pipeline
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
O conflito aparece no registrador $t2, entre a 2a e a 3a linhas.
Solução: intercambiar as duas últimas instruções de sw.
 # reg $t1 possui o endereco de v[k]
lw $t0, 0($t1) # reg $t0 (temp) = v[k]
lw $t2, 4($t1) # reg $t2 = v[k+1]
sw $t0, 4($t1) # v[k+1] = reg $t0 (temp)
sw $t2, 0($t1) # v[k] = reg $t2
Note que nenhum novo conflito foi criado!
Conflitos de Dados: reordenação do código

Outros materiais