Pipeline

28
 Pipeline

Transcript of Pipeline

Page 1: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 1/28

 

Pipeline

Page 2: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 2/28

 

Objetivo dos projetistas tornar os computadores cada vezmais rápidos

Como a velocidade do hardware depende dodesenvolvimento tecnológico, o paralelismo é chave paratornar os computadores mais rápidos

O Primeiro processador com pipeline foi o Stretch IBM 7030.Ele é uma evolução do IBM 704, porém 100 vezes maisrápido. O processador RISC foi pensado pela primeira vezcom pipeline, em 1980.

O primeiro processador com SuperPipelining foi o MIPSR4000 e foi também o primeiro com arquitetura 64Bits.

INTRODUÇÃO

Page 3: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 3/28

 

Estratégia do Pipeline

Igual a linha de montagem de uma fábricaDividir para tirar melhor proveito de cada estágio;

Um processo não espera que o outro termine para poder iniciar;Trabalho simultâneo.

Page 4: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 4/28

 

Pipeline na Computação

Pipeline : Uma técnica inicialmente usada em processadoresRISC, que consiste em dividir as instruções no processadorem vários estágios distintos. Assim, permite a sobreposiçãotemporal das diversas fases da execução de instruções.

Divisão de execução de instruções em estágios Ex: (No MIPS, as instruções são executadas em até 5 estágios) 1) Busca Instrução na memória 2) Leitura dos registradores e decodificação das instruções 3) Execução de operação ou cálculo de endereço 4) Acesso a operando na memória 5) Escrita do resultado em registrador

Page 5: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 5/28

 

Pipeline na Computação

Em condições ideais: O ganho devido ao pipeline é igual ao número de estágios do

pipeline Logo, idealmente, um pipeline de 5 estágios é 5 vezes mais

rápido que o processador não pipeline. Nota: Caso os estágios sejam perfeitamente balanceados, isto é, caso

o tempo de cada estágio seja o mesmo, teremos:

Tempo entre instruções pipeline = Tempo entre instruções não-pipeline

Número de estágios do pipeline

Não é isso que ocorre: Balanceamento não perfeito Desvios; 

Page 6: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 6/28

 

Desempenho Monociclo x Pipeline

Calcular o tempo de execução das instruções: lw $t1, 100($t0) lw $t2, 200($t0) lw $t3, 300($t0) 

Page 7: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 7/28

Desempenho Monociclo x Pipeline

Projeto Monociclo O tempo para executar a instrução mais lenta (lw) é 8ns.

Deve ser atribuído as demais.

É fácil notar que o tempo para executar as 3 instruções é3 x 8ns = 24ns

 

Page 8: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 8/28

Desempenho Monociclo x Pipeline

• Projeto Pipeline Todos os estágios gastam um único ciclo.

No caso do processador pipeline temos 14nspara processar tudo

 

Page 9: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 9/28

Desempenho Monociclo x Pipeline

Comparando 24ns (Monociclo) x 14ns (pipeline)

 

Page 10: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 10/28

Métrica desempenho Pipeline

Segundo a fórmula aplicada anteriormente, considerando 5estágios temos: 8ns/5 = 1,6ns ao invés dos 2ns indicado. O exemplo mostra que os estágios não possui um balanceamentoperfeito

Além disso a própria técnica do pipeline envolve overhead,representado pelo tempo que se gasta para “encher” todo o pipe.

Portanto o tempo de execução de uma instrução em uma máquinapipeline deverá exceder o mínimo teórico e o ganho será menor que onúmero de estágios do pipeline.

O pipeline melhora o desempenho por meio do aumento dothroughput das instruções, ou seja, aumentando o número deinstruções executadas na unidade de tempo. E não por meio da diminuição do tempo de execução de uma

instrução individual.

 

Page 11: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 11/28

Aumento no número de estágios

Dividir em seis estágios: Busca de instrução (BI);

Decodificação da instrução (DI); Cálculo de Operandos (CO);

Busca de Operandos (BO); Execução da instrução (EI); Escrita de Operando (EO);

 

Page 12: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 12/28

Pipeline de 6 estágios

Exemplo:

9 instruções, passa de 54 para 14 unidades de tempo

Nem sempre uma instrução precisa de todos os estágios, maspara sincronização, se abstrai que se precise.

 

Page 13: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 13/28

Desempenho da PipelineCálculo de desempenho e speed up 

Tempo de um ciclo de uma pipeline

Para k estágios e n instruçõessem desvio, o tempo será:

Speed up 

 

Page 14: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 14/28

Desempenho da PipelineSpeed up

 

Page 15: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 15/28

Maior número de Estágios implicaem melhor Desempenho?

Dois fatores frustram essa idéia: Overhead Custo de movimentação de dados nas áreas. Replicação do hardware

( por exemplo, acesso simultâneo a memória)

Lógica de controle Lógica de comutação de estágios fica mais complexa do que os

estágios a serem controlados.

 

Page 16: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 16/28

Maior número de Estágios implicaem melhor Desempenho?

Dois fatores frustram essa idéia: Overhead Custo de movimentação de dados nas áreas. Replicação do hardware

( por exemplo, acesso simultâneo a memória)

Lógica de controle Lógica de comutação de estágios fica mais complexa do que os

estágios a serem controlados.

 

Page 17: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 17/28

Maior número de Estágios implicaem melhor Desempenho?

Parada do pipeline ou “bolha”  Atraso devido a uma instrução de desvio condicional,

interrompendo a progressão das instruções pelo pipeline.

Quando maior o pipeline maior será a perda de performance nocaso de parada nas instruções de desvio condicional. Custo daopção de parada é muito alto.

 

Page 18: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 18/28

Problemas com o pipelineDESVIO CONDICIONAL

Apenas no momento da execução da instrução se saberá se odesvio será ou não executado e o endereço de destino podeser carregado na unidade de busca de instrução

CONSEQÜÊNCIAS Não se sabe se o destino vai ser tomado; A pipeline carrega as próximas linhas até saber se o desvio vai ser

tomado, se o desvio for tomado as instruções devem ser removidasdo pipeline (operação chamada de Squashing)

Perda de algumas unidades de tempo;

 

Page 19: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 19/28

Problemas com o pipelineDESVIO CONDICIONAL – “Soluções” 

Existem formas de tentar minimizar a penalidade causadapor desvios

PREVISÕES DE DESVIO (Branch Prediction) ESTÁTICAS Não dependem do histórico de execução Feita antes da execução Simples implementação

Nunca será tomado

Continua buscar instruções na sequência do programa

   

Page 20: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 20/28

Problemas com o pipelineDESVIO CONDICIONAL – “Soluções” 

PREVISÃO QUE O DESVIO NÃO SERÁ TOMADO

Instrução 2 – Instrução de desvio condicional

BI 1 2 3 4 5 6 7

DI 1 2 3 4 5 6

BO 1 2 3 4 5

CO 1 2 3 4

EI 1 2 3

EO 1 2

BI 1 2 3 4 5 6 7

DI 1 2 3 4 5 6 7

BO 1 2 3 4 5 6 7

CO 1 2 3 4 5 6 7

EI 1 2 3 4 5 6 7

EO 1 2 3 4 5 6 7

BI 1 2 40 41 42

DI 1 2 40 41 42

BO 1 2 40 41 42

CO 1 2 40 41 42

EI 1 2 40 41 42

EO 1 2 40 41

 

Page 21: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 21/28

Problemas com o pipelineDESVIO CONDICIONAL – “Soluções”  Sempre será tomado Em mais de 50% das vezes o desvio é tomado. Busca instruções a partir do endereço alvo do desvio

   

Page 22: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 22/28

Problemas com o pipelineDESVIO CONDICIONAL – “Soluções” 

BI 1 2 3

DI 1 2 3

BO 1 2CO 1

EI

EO

BI 1 2 3 40 41

DI 1 2 3 40 41

BO 1 2 40CO 1 2

EI 1 2

EO 1 2

BI 1 2 3 40 41

DI 1 2 3 40 41

BO 1 2 40 41CO 1 2 40 41

EI 1 2 40 41

EO 1 2 40 41

PREVISÃO QUE O DESVIO SERÁ TOMADO

Instrução 2 – Instrução de desvio condicional

 

Page 23: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 23/28

Problemas com o pipelineDESVIO CONDICIONAL – “Soluções” 

Conforme código de operação Pode-se prever durante a compilação qual será o resultado do

desvio Instruções de loop

Na maioria das vezes o desvio é executado Testes de condição de erro

Na maioria das vezes o desvio não é executado

Taxas de acerto superiores a 75%

 

Page 24: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 24/28

Problemas com o pipelineDESVIO CONDICIONAL – “Soluções” 

DINÂMICAS Dependem do histórico de execução

Baseada em chaves de desvio tomado e desvio não tomado Bits de histórico (chaves de desvio)

São associados a cada instrução de desvio condicional Memória cache é utilizada

Problema: histórico recente perdido quando instrução ésubstituída

Podem ser usados 1 ou mais bits

Desvantagem Instrução alvo buscada apenas quando seu endereço é

decodificado

 

Page 25: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 25/28

Problemas com o pipelineDESVIO CONDICIONAL – “Soluções” Ilustração utilizando 2 bits de históricoInstrução JZ – 100111

última execução

penúltima execução

Atualização após instrução executada e desvio não tomado

1 0 0 1 1 1 1 1

1 0 0 1 1 1 0 0

1 0 0 1 1 1 0 1

Atualização após instrução executada e desvio não tomado

 

Page 26: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 26/28

Problemas com o pipelineDESVIO CONDICIONAL – “Soluções” 

Baseada em tabela de histórico de desvios Similar a uma pequena memória cache

Associada ao estágio de busca de instruções Cada entrada possui 3 elementos Endereço de uma instrução de desvio Bits de histórico (estado da instrução) Informação sobre a instrução alvo (endereço ou a própria)

Após execução da instrução, seu estado é atualizado de acordocomo resultado

Caso a instrução de desvio não seja encontrada na tabela, elaserá adicionada à tabela e outra instrução removida.

Desvantagem Não é possivel armazenar todas as instruções devido ao tamanho da

memória.

 

Page 27: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 27/28

Problemas com o pipelineDESVIO CONDICIONAL – “Soluções” 

End. Instrução de desvio Endereço Alvo Bits de histórico

.

.

.

.

.

.

.

.

.

Tabela de Histórico de Desvios (Branch History Table – BHT)

 

Page 28: Pipeline

5/14/2018 Pipeline - slidepdf.com

http://slidepdf.com/reader/full/pipeline-55a93207e3b06 28/28

BIBLIOGRAFIA

http://student.dei.uc.pt/~pmfp/index.html