Pipeline
-
Upload
alessandro -
Category
Documents
-
view
384 -
download
0
Transcript of Pipeline
5/14/2018 Pipeline - slidepdf.com
http://slidepdf.com/reader/full/pipeline-55a93207e3b06 1/28
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
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.
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
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;
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)
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
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
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)
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.
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);
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.
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
5/14/2018 Pipeline - slidepdf.com
http://slidepdf.com/reader/full/pipeline-55a93207e3b06 14/28
Desempenho da PipelineSpeed up
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.
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.
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.
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;
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
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
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
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
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%
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
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
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.
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)
5/14/2018 Pipeline - slidepdf.com
http://slidepdf.com/reader/full/pipeline-55a93207e3b06 28/28
BIBLIOGRAFIA
http://student.dei.uc.pt/~pmfp/index.html