Você está na página 1de 35

Melhorando o Desempenho com Pipelining

Agenda

Melhorando o desempenho com Pipelining


Viso

geral de pipelining Hazards

Viso Geral de Pipelining

Pipelining

Tcnica de implementao em que vrias instrues so sobrepostas na execuo Colocar roupa na lavadora Quando lavadora terminar, colocar roupa na secadora Quando secadora terminar, passar a roupa Quando terminar de passar, guardar as roupas

Exemplo: lavanderia

Pipelining no diminui o tempo para concluir uma instruo, mas aumenta a vazo, reduzindo o tempo para concluir a aplicao

Viso Geral de Pipelining

Viso Geral de Pipelining

Instrues MIPS normalmente exigem cinco etapas:


Busca;

Decodificao/leitura
Operao/clculo Acesso

de registradores;

de endereo;

a operando na memria;

Escrita

de resultado em registrador.

Pipelining de cinco estgios

Viso Geral de Pipelining


S1 Busca de Instrues S2 Decodificao/ Busca Registradores S3 Operao/ Clculo do Endereo S4 S5 Escrita de Resultados

Acesso Memria

S1: S2: S3: S4: S5:

2 1

4 3
2 1

5
4 3 2 1

6
5 4 3 2 6

7
6 5 4 3 7

8
7 6 5 4 8

2
1

8 7
6 5 9

3 4 tempo

Desempenho de ciclo nico X desempenho com pipelining


Oito instrues: lw, sw, add, sub, and, or, slt e beq ALU e Acesso memria: 200ps, acesso registradores: 100ps Ciclo nico: ciclo precisa ser esticado para acomodar instruo mais lenta Ciclo da execuo com pipeline precisa ter ciclo no pior caso de 200ps

Desempenho de ciclo nico X desempenho com pipelining


Classe Tipo R Busca de Instrues 200 Leitura de Registrador 100 Operao Acesso a de ALU Dados 200 Escrita em Total Registrador 100 600

lw
sw Branch

200
200 200

100
100 100

200
200 200

200
200

100

800
700 500

Desempenho de ciclo nico X desempenho com pipelining

Ciclo nico
Cada

instruo: 800ps Tempo entre incio da 1a e 4a instruo: 3 x 800 = 2400ps

Pipelining
Cada

instruo: 200ps Tempo entre incio da 1a e 4a instruo: 3 x 200 = 600ps

Desempenho de ciclo nico X desempenho com pipelining


Tempo 0 200 400
ALU

600

800

1000

1200

1400

1600

1800

Busca Reg instruo

Acesso Reg dados Busca Reg instruo ALU Acesso Reg dados Busca instruo

800ps

800ps

Ordem de execuo do programa (em instrues)

Desempenho de ciclo nico X desempenho com pipelining


Tempo
0 200 400
Reg Busca instruo
ALU

600

800

1000

1200

1400

1600

1800

Busca instruo

Acesso Reg dados ALU Reg

200

Reg
Busca instruo

Acesso Reg dados


ALU Acesso Reg dados

200

200 Ordem de execuo do programa (em instrues)

200

200

200

200

Desempenho de ciclo nico X desempenho com pipelining


Melhoria de desempenho: quatro vezes


2400/600

=4

Em pipelines com estgios perfeitamente balanceados, com condies ideais


Tempo entre Instrues Sem Pipeline Tempo entre Instrues Com Pipeline= Nmeros de Estgios do Pipeline

Sob condies ideais, e com grande quantidade de instrues


Ganho

de velocidade igual ao nmero de estgios do pipeline

Desempenho de ciclo nico X desempenho com pipelining

Segundo frmula, pipelining de 5 estgios levaria a melhoria do desempenho de cinco vezes


800/5

= 160ps No exemplo, pipelining mal balanceado Custos adicionais (overhead) do pipeline

Melhoria de quatro vezes (2400/600 = 4) no refletida no tempo de execuo para trs instrues (2400 versus 1400)
Nmero

pequeno de instrues

Desempenho de ciclo nico X desempenho com pipelining

O que ocorreria com um nmero maior de instrues?

Mais 1.000.000
Com pipeline: 200.001.400ps Sem pipeline: 800.002.400ps Razo entre os tempos de execuo: (800.002.400/200.001.400) 4,00 (800/200)

Viso Geral de Pipelining

Instrues MIPS tm mesmo tamanho


Mais

fcil buscar instrues no primeiro estgio e decodificar no segundo estgio IA-32


Instrues variam de 1 byte a 17 bytes Instrues traduzidas em microoperaes Pentium-4 usa pipeline de microoperaes

MIPS tem poucos formatos de instruo


Registrador

origem na mesma posio Segundo estgio pode ler banco de registradores ao mesmo tempo em que hardware est determinando que tipo de instruo foi lida

Viso Geral de Pipelining

Operandos em memria ocorrem apenas em loads/stores

Estgios de execuo para calcular endereo de memria e depois acessar a memria no estgio seguinte IA-32

Exigiria estgio de endereo, estgio de memria e estgio de execuo

Operandos precisam estar alinhados na memria


Instruo de transferncia de dados no exige dois acessos a memria de dados Dados transferidos entre processador e memria em um nico estgio do pipeline

Hazards

Hazards: situao em que prxima instruo no pode ser executada no ciclo de clock seguinte. Trs tipos:
Hazards

estruturais Hazards de dados Hazards de controle

Hazards

Hazards Estruturais
Hardware

no pode admitir a combinao de instrues que queremos executar no mesmo ciclo de clock
precisa ser interrompido porque os dados para executar a instruo ainda no esto disponveis

Hazards de Dados
Pipeline

Ex.: add $s0, $t0, $t1 sub $t2, $s0, $t3 Add no escreve resultado at o quinto estgio

Acontecem

com muita freqncia

Hazards

Hazard de Controle (ou desvio): necessidade de tomar deciso baseado nos resultados de uma instruo enquanto outras ento sendo executadas
Ex:

operao de desvio

Hazards

Soluo
No

precisamos esperar instruo terminar Hardware adicionado para ter o item que falta antes do previsto: forwarding ou bypassing
Tempo add $s0, $t0, $t1 0 IF 200 ID 400 600 800 MEM

1000
WB

EX

IF: Busca instruo, ID: decodifica/l registrador, EX: execuo, MEM: memria WB: Escreve resultado. Sombreado lado direito: Leitura, esquerdo: escrita. Sem Sombreado: no usado

Hazards
Tempo add $s0, $t0, $t1 0 200 400 ID EX 600 800 MEM 1000 WB

IF

sub $t2, $s0, $t3 Ordem de execuo do programa (em instrues)

IF

ID

EX

MEM

WB

Hazards
Forwarding s vlido se estgio destino estiver mais adiante no tempo No pode impedir todos os stalls no pipeline

Ex:

load de $s0 ao invs de add

Hazards
Tempo lw $s0, 20($t1) 0 200 400 ID EX 600 800 MEM 1000 WB

IF

Bolha

Bolha

Bolha

Bolha

Bolha

sub $t2, $s0, $t3 Ordem de execuo do programa (em instrues)

IF

ID

EX

MEM

WB

Hazards

Hazard de Controle (ou desvio): necessidade de tomar deciso baseado nos resultados de uma instruo enquanto outras ento sendo executadas
Ex:

operao de desvio

Trs opes

Hazards

Primeira Opo: Causar stall no pipeline imediatamente aps buscarmos um desvio


Esperar

at que o pipeline determine resultado do

desvio Endereo ento disponvel para determinar prxima instruo

Supondo hardware extra para testar registradores, calcular endereo do destino e atualizar PC no segundo estgio...

Hazards
Tempo 0 add $4, $5, $6 beq $1, $2, 40 200 400
Reg Busca instruo

600
ALU

800

1000

1200

1400

Busca instruo

Acesso Reg dados ALU

200

Reg

Acesso Reg dados

200 or $7, $8, $9

Bolha

Bolha
Busca instruo

Bolha
Reg

Bolha
ALU

Bolha
Acesso Reg dados

400

Ordem de execuo do programa (em instrues)

Exemplo
Estime o impacto nos ciclos de clock por instruo (CPI) no stall nos desvios. Suponha que todas as outras instrues tenham um CPI de 1. Considere que as instrues de desvio so 13% das instrues executadas por uma aplicao. R.: Como as outras instrues possuem um CPI de 1 e dos desvios tomam um ciclo extra para o stall, ento teramos um CPI de 1,13.

Hazards

Segunda Opo: Previso para tratar desvios


Tcnica

simples: prever que os desvios no sero tomados

Hazards
Tempo 0 add $4, $5, $6 beq $1, $2, 40 200 400
Reg Busca instruo

600
ALU

800

1000

1200

1400

Busca instruo

Acesso Reg dados ALU

200

Reg

Acesso Reg dados

200 or $7, $8, $9

Bolha

Bolha
Busca instruo

Bolha
Reg

Bolha
ALU

Bolha
Acesso Reg dados

400

Ordem de execuo do programa (em instrues)

Hazards
Tempo 0 add $4, $5, $6 beq $1, $2, 40 lw $3, 300($0) 200 400
Reg Busca instruo

600
ALU

800

1000

1200

1400

Busca instruo

Acesso Reg dados ALU

200

Reg
Busca instruo

Acesso Reg dados


ALU Acesso Reg dados

200

Reg

Ordem de execuo do programa (em instrues)

Hazards

Verso mais sofisticada: alguns desvios previstos como tomados e outros como no tomados

Ex.: Assumir que loop sempre volta para trs

Duas verses anteriores estticas / estereotipadas Previsores dinmicos

Escolhas dependem do comportamento de cada desvio Podem ser alteradas durante a vida de um programa Mantm histrico, usando comportamento passado para prever futuro Previso pode ser superior a 90%

Hazards

Quando pipeline erra, controle ter de garantir que as instrues aps o desvio errado no tenham efeito
Pipeline

reiniciado a partir do endereo de desvio apropriado Pipelines mias longos aumentam o problema (aumentam o custo do erro de previso)

Hazards

Terceira opo: Desvio adiado


Sempre

executa a prxima instruo seqencial, com desvio ocorrendo aps esse atraso de uma instruo Instruo no afetada pelo desvio add $4, $5, $6 beq $1, $2, 40 til quando desvios so curtos

Hazards

Harzards estruturais: Unidade de ponto flutuante Harzard de controle: Programas de inteiros


Mais

desvios, alm de desvios menos previsveis

Harzard de dados: inteiros e ponto-flutuante


Inteiros Escalonamento de instrues mais complexo Acesso menos regular e maior uso de ponteiros Ponto Flutuante Menor freqncia de desvios Padro de acesso mais regular

Hazards

Hazard de Controle (ou desvio): necessidade de tomar deciso baseado nos resultados de uma instruo enquanto outras ento sendo executadas
Ex:

operao de desvio

Trs opes

Você também pode gostar