Buscar

Aula 05 - Pipeline

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 39 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 39 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 39 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

Victor Medeiros
victor@deinfo.ufrpe.br
victorwcm
Infraestrutura de Hardware
Pipeline
Victor MedeirosInfraestrutura de Hardware
Pipeline
• Podemos fazer uma analogia do pipeline com o processo 
de lavagem de roupas 
• Lavagem sem pipeline 
• Coloca uma carga de roupa suja na lavadora; 
• Quando a lavadora termina o seu trabalho, coloca a 
roupa molhada na secadora; 
• Quando a secadora termina o seu trabalho, passa as 
roupas; 
• Depois, guarda a roupa no armário;
2
Victor MedeirosInfraestrutura de Hardware
Lavagem de roupa sem pipeline
3
lavar secar passar guardar
1 2
1ª carga
de roupas
2ª carga
de roupas
3 4
lavar secar passar guardar
5
3ª carga
de roupas
lavar secar passar guardar
6 7 8 9 10 11 12 13 14 15
Victor MedeirosInfraestrutura de Hardware
Lavagem de roupa sem pipeline
4
lavar secar passar guardar
1 2
1ª carga
de roupas
2ª carga
de roupas
3 4
lavar secar passar guardar
5
3ª carga
de roupas
lavar secar passar guardar
6 7 8 9 10 11 12 13 14 15
Se considerarmos que cada etapa 
leva 1 hora, a lavagem das 3 
cargas de roupa levaria 12 horas.
1 hora total de 12 horas
Victor MedeirosInfraestrutura de Hardware
Pipeline
• Lavagem com pipeline 
• Tão logo termine de colocar a primeira carga de roupa na 
secadora, introduz a segunda carga de roupa na lavadora; 
• Quando a primeira carga de roupa estiver seca, passe-a, 
ponha a segunda carga de roupa limpa molhada na secadora 
e, na lavadora, coloque a terceira carga de roupa suja... 
• e assim por diante... 
• Após 4 intervalos de tempo, todos os passos do processo de 
lavagem – chamados estágios do pipeline – estarão operando 
de forma concorrente; 
5
Victor Medeiros
lavar secar passar guardar
1 2
1ª carga
de roupas
2ª carga
de roupas
3 4
lavar secar passar guardar
5
3ª carga
de roupas
lavar secar passar guardar
6 7 8 9 10 11 12 13 14 15
Infraestrutura de Hardware
Lavagem de roupa com pipeline
6
Victor Medeiros
lavar secar passar guardar
1 2
1ª carga
de roupas
2ª carga
de roupas
3 4
lavar secar passar guardar
5
3ª carga
de roupas
lavar secar passar guardar
6 7 8 9 10 11 12 13 14 15
Infraestrutura de Hardware
Lavagem de roupa com pipeline
7
Se considerarmos que cada etapa leva 
1 hora, a lavagem das 3 cargas de 
roupa levaria, com o pipeline, 6 horas.

1 hora total de 6 horas
Victor MedeirosInfraestrutura de Hardware
Introdução
• Pipeline é uma técnica de projeto onde o hardware 
processa mais de uma instrução de cada vez, sem 
esperar que uma instrução termine antes de 
começar a próxima; 
• Permite que os processadores rodem mais 
rapidamente. 
• Sempre que tivermos recursos separados para 
executar cada passo (estágio) de uma tarefa, esta 
tarefa pode ser executada em pipeline.
8
Victor MedeirosInfraestrutura de Hardware
Características
• O pipeline não diminui o tempo de execução de 
uma instrução, cada instrução continua 
necessitando da mesma quantidade de tempo 
para ser teminada; 
• O pipeline aumenta o número de instruções 
executadas na unidade de tempo; 
• O segredo do pipeline é que todos os recursos 
envolvidos operam em paralelo;
9
Victor MedeirosInfraestrutura de Hardware 10
Victor MedeirosInfraestrutura de Hardware 11
Monociclo, multiciclo e pipeline 
Victor MedeirosInfraestrutura de Hardware
Representando pipelines graficamente
• Pode ajudar a responder 
questões como: 
• quantos ciclos leva 
para executar esse 
código? 
• qual é a ALU sendo 
executada durante o 
ciclo 4? 
• vamos utilizar esta 
representação para 
ajudar a entender os 
caminhos de dados
12
Victor MedeirosInfraestrutura de Hardware
Conflitos do pipeline
• Existem situações no pipeline em que a 
instrução seguinte não pode ser executada no 
próximo ciclo de clock. Esses eventos chamam-
se conflitos: 
• Conflitos estruturais; 
• Conflitos de controle; 
• Conflitos de dados;
13
Victor MedeirosInfraestrutura de Hardware
Conflitos estruturais
• Ocorrem quando o hardware não suporta a 
combinação de instruções que o pipeline deseja 
executar no mesmo ciclo; 
• Analogia com a lavagem de roupa: 
• O conflito estrutural poderia ocorrer no caso 
da lavadora e secadora estarem integradas 
no mesmo dispositivo.
14
Victor MedeirosInfraestrutura de Hardware
Conflitos estruturais
• No caso do MIPS: 
• O conflito estrutural poderia ocorrer se tivéssemos 
apenas uma única memória para armazenar dados e 
instruções.
15
Victor MedeirosInfraestrutura de Hardware
Conflitos estruturais
• No caso do MIPS: 
• O conflito estrutural poderia ocorrer se tivéssemos 
apenas uma única memória para armazenar dados e 
instruções.
16
Conflito estrutural
Victor MedeirosInfraestrutura de Hardware
Conflitos de controle
• Ocorrem quando há a necessidade de se tomar uma 
decisão com base no resultado de uma instrução, enquanto 
outras estão sendo executadas. 
• Analogia com a lavagem de roupa: 
• Suponha que queremos lavar uniformes de futebol. A 
quantidade de sabão necessária para limpar efetivamente 
os uniformes depende do estado de sujeira dos mesmos. 
• Devemos esperar pelo segundo estágio para examinar os 
uniformes secos e verificar se precisamos ou não alterar 
a quantidade de sabão.
17
Victor MedeirosInfraestrutura de Hardware
Soluções para conflitos de controle
• Analogia com a lavagem de roupa: 
• Solução 1: Parada 
• Espere até que a primeira carga de roupas 
esteja seca e repita a operação de lavagem 
até encontrar a quantidade de sabão 
adequada. 
• Esta solução funciona, porém é muito lenta.
18
Victor MedeirosInfraestrutura de Hardware
Soluções para conflitos de controle
• No caso do MIPS: 
• Este conflito ocorre: 
• na execução de instruções de desvio condicional, 
incondicional 
• chamadas e retornos de subrotinas 
• interrupções 
• Se o computador tiver que parar durante a execução de 
um desvio condicional, ele deve interromper a 
progressão das instruções pelo pipeline
19
Victor MedeirosInfraestrutura de Hardware
Soluções para conflitos de controle
20
Victor MedeirosInfraestrutura de Hardware
Soluções para conflitos de controle
21
Victor MedeirosInfraestrutura de Hardware
Soluções para conflitos de controle
• Congelamento do pipeline: 
• Esperar para buscar próxima instrução até que o 
desvio seja executado 
• Quando a instrução de desvio é descoberta no 
pipeline, suspende a busca de instruções até que 
o desvio seja concluído. 
• Positivo: Solução simples 
• Negativo: Degradação do desempenho do pipeline
22
Victor MedeirosInfraestrutura de Hardware
Soluções para conflitos de controle
• Execução especulativa 
• Consiste em predizer o comportamento do desvio 
• Técnicas de compilação podem ser utilizadas 
para aumentar a taxa de acertos 
• A previsão de desvio pode ser feita de várias 
formas, um exemplo é a previsão dinâmina: 
• Uma das formas de previsão dinâmica é a 
chave desvio / não desvio
23
Victor MedeirosInfraestrutura de Hardware
Soluções para conflitos de controle
• Chave desvio / não desvio
24
Victor MedeirosInfraestrutura de Hardware
Soluções para conflitos de controle
• Técnicas sofisticadas: 
• Um “buffer de destino de desvio” nos ajuda a consultar o destino. 
• Correlacionar previsores que baseiem a previsão no comportamento 
global e nos desvios recentemente executados (por exemplo, previsão 
para uma instrução de desvio específica com base no que ocorreu nos 
desvios anteriores). 
• Previsores de competição que usam diferentes tipos de estratégias de 
previsão e controlam qual delasestá sendo melhor executada. 
• Previsão de desvio é especialmente importante porque permite que outras 
técnicas de pipelining mais avançadas sejam eficazes! 
• Os processadores modernos prevêem corretamente 95% das vezes!
25
Victor MedeirosInfraestrutura de Hardware
Conflitos de dados
• Ocorre quando a execução de uma instrução depende do 
resultado de outra que ainda está no pipeline. 
• Analogia com a lavagem de roupa: 
• Suponha que estejamos dobrando uma carga de 
roupas composta quase inteiramente por meias. Neste 
caso pode acontecer de um pé de meia estar em uma 
carga de roupa e o seu par correspondente pertencer à 
segunda carga. 
• Nesta situação, não podemos guardar as meias no 
armário até que os pares estejam casados.
26
Victor MedeirosInfraestrutura de Hardware
Conflitos de dados
• No caso do MIPS: 
• Suponhamos que temos que executar as seguintes 
instruções:



add $s0, $t0, $t1 

sub $t2, $s0, $t3 
• Neste caso, o conflito de dados vai fazer com que o 
progresso das instruções por meio do pipeline seja 
interrompido. É necessária a inserção de bolhas no 
pipeline.
27
Victor MedeirosInfraestrutura de Hardware
Conflitos de dados
28
Victor MedeirosInfraestrutura de Hardware
Conflitos de dados
29
Victor MedeirosInfraestrutura de Hardware 30
Soluções de software para conflitos de dados
• Podemos garantir a ausência de conflitos de dados 
inserindo instruções “nop” (bolhas) entre instruções 
que apresentem dependência de dados 
• Exemplo: Onde serão inserimos os “nops”? 






• Problema: esta solução é lenta!
sub $s2, $s1, $s3 

and $t0, $s2, $s5 

or $t1, $s6, $s2 

add $t2, $s2, $s2 

sw $t3, 100($s2)
sub $s2, $s1, $s3 

nop 

nop 

and $t0, $s2, $s5 

or $t1, $s6, $s2 

add $t2, $s2, $s2 

sw $t3, 100($s2)
Victor MedeirosInfraestrutura de Hardware 31
• Outra forma é reordenar as instruções para 
eliminar as dependências 
• Para isso precisamos de um compilador inteligente
add $s1, $s2, $s3 

sub $s4, $s1, $s3 

and $s6, $s1, $s7 

or $s8, $s1, $t0 

xor $s8, $s1, $s7
add $s1, $s2, $s3 

and $t2, $t2, $t3 

or $t4, $t4, $t5 

sub $s4, $s1, $s3 

and $s6, $s1, $s7 

or $s8, $s1, $t0 

xor $s8, $s1, $s7
Soluções de software para conflitos de dados
Victor MedeirosInfraestrutura de Hardware 32
• Curto-circuito (Forwarding) 
• Use resultados temporários, não espere que 
eles sejam escritos 
• adiantamento do arquivo de registrador para 
manipular read/write para o mesmo registrador 
• adiantamento da ULA
Soluções de hardware para conflitos de dados
Victor MedeirosInfraestrutura de Hardware 33
Soluções de hardware para conflitos de dados
Victor MedeirosInfraestrutura de Hardware 34
Soluções de hardware para conflitos de dados
Victor MedeirosInfraestrutura de Hardware 35
Curto circuito nem sempre é possível
• Load word ainda pode causar um conflito: 
• uma instrução load tenta ler um registrador e 
em seguida uma outra instrução precisa 
utilizar o mesmo registrador.
Victor MedeirosInfraestrutura de Hardware 36
Curto circuito nem sempre é possível
Victor MedeirosInfraestrutura de Hardware 37
Curto circuito nem sempre é possível
Victor MedeirosInfraestrutura de Hardware 38
Curto circuito nem sempre é possível
Victor MedeirosInfraestrutura de Hardware 39
Exercícios
1. Represente o diagrama do pipeline para os seguintes 
conjuntos de instruções. Resolva os problemas de 
conflito utilizando a técnica de bolhas, ou seja, 
atrasando o início das instruções problemáticas.





2. Identifique as dependências de dados existentes e 
quais conflitos podem ser resolvidos via curto circuito. 
B. 

add $s2, $s3, $s4 

add $s4, $s5, $s6 

add $s5, $s3, $s4
A. 

sub $s2, $s1, $s3 

and $s4, $s2, $s5 

or $t0, $t1, $s2
add $s2, $s5, $s4 

add $s4, $s2, $s5 

sw $s5, 100($s2) 

add $s3, $s2, $s4

Continue navegando