1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x...

36
1 1998 Morgan Kaufmann Publishers MIPS PIPELINE

Transcript of 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x...

Page 1: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

11998 Morgan Kaufmann Publishers

MIPS

PIPELINE

Page 2: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

21998 Morgan Kaufmann Publishers

MULTICICLO x PIPELINE

• Pipeline: vários estágios funcionam simultaneamente, para intruções diferentes.

• Multiciclo: as operações são divididas em vários estágios (S)que funcionam sequencialmente.

ATIVO no ciclo 2

S1 S2 Sn

Latc

h Latc

h Latc

h

INATIVO no ciclo 2 INATIVO no ciclo 2

Latc

h Latc

h Latc

h

S1 S2 Sn

instrução k instrução k - 1 instrução k – (n -1)

Page 3: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

31998 Morgan Kaufmann Publishers

Pipeline: é natural!

• Exemplo de Lavanderia

• Tem-se os volumes A, B, C e D de roupas para lavar, secar e passar

• A lavadora leva 30 minutos

• A secadora leva 40 minutos

• “Passadeira” leva 20 minutos

A B C D

Page 4: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

41998 Morgan Kaufmann Publishers

Lavanderia Sequencial

• A lavanderia sequencial leva 6 horas para 4 volumes

• Se usarem o “pipeline”, quanto tempo levaria?

A

B

C

D

30 40 20 30 40 20 30 40 20 30 40 20

6 7 8 9 10 11 Meia noite

Task

Order

Tempo

Page 5: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

51998 Morgan Kaufmann Publishers

Lavanderia em Pipeline

• Lavanderia em Pipeline leva 3.5 horas

A

B

C

D

6 7 8 9 10 11 Meia noite

ordem

Tempo

30 40 40 40 40 20

Page 6: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

61998 Morgan Kaufmann Publishers

Lições sobre o Pipeline

• O Pipeline ajuda melhorar o throughput de um trabalho por completo

• A taxa do Pipeline é limitada pelo estágio mais lento

• Speedup ideal = Número de estágios

• Comprimentos desbalanceados dos estágios do pipeline reduzem o speedup

• O tempo para “preencher” o pipeline e o tempo para “limpar” o pipeline reduzem o speedup

A

B

C

D

6 7 8 9

ordem

Tempo

30 40 40 40 40 20

Page 7: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

71998 Morgan Kaufmann Publishers

Pipelines em Computadores

• Executa bilhões de instruções, tal que o importante seja o throughout

• Speedup: para um programa de n instruções, num computador pipeline de k estágios, relativo a um computador multiciclo de k ciclos, considerando mesmo tempo de ciclo.

Tempo do multiciclo = n . k .tempociclo Tempo do pipeline = (k + n-1).tempociclo

Speedup = tempo do multiciclo/tempo do pipeline

Para n grande, speedup ~ k

.

1

n kSpeedup

k n

Page 8: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

81998 Morgan Kaufmann Publishers

Pipeline no MIPS

multiciclo

pipeline

Page 9: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

91998 Morgan Kaufmann Publishers

Implementação do Pipeline

• O que facilita:

– Todas as instruções com mesmo comprimento

– Somente poucos formatos de instruções

– Os operandos de memória aparecem somente em loads e stores

• O que difículta:

– conflitos estruturais: supor que temos somente uma memória

– conflitos de controle: preocupar com instruções de branch

– conflitos de dados: uma instrução depende de uma instrução prévia

– Manipulação de exceções

– Melhorar o desempenho com execução fora-de-ordem, etc.

Page 10: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

101998 Morgan Kaufmann Publishers

Idéia Básica

MEM.INSTR.

REGS.

ALU

SOMADOR

MEM.DADOS

SOMADOR

Page 11: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

111998 Morgan Kaufmann Publishers

Fluxo de dados com latch’s entre os estágios

IF/ID ID/EX EX/MEM MEM/WB

PC

Mem.Instr.

Regist.

ALU

Mem.dados

somador

somador

Page 12: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

121998 Morgan Kaufmann Publishers

Pipelines representados graficamente

IM Reg DM Reg

IM Reg DM Reg

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

Time (in clock cycles)

lw $10, 20($1)

Programexecutionorder(in instructions)

sub $11, $2, $3

ALU

ALU

Page 13: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

131998 Morgan Kaufmann Publishers

PCSrc

Branc

h

MemRead

MemWrite

ALUOp

ALUSrc

RegWrite

RegDst

MemtoReg

Mem.Inst.

Regs.

Mem.dados

ALUPC

CONTROLE DO PIPELINE

Page 14: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

141998 Morgan Kaufmann Publishers

• O que necessita ser controlado em cada estágio?

– Busca de Instrução e Incremento do PC– Decodificação da Instrução / Busca de Registradores– Execução– Estágio de Memória– Write Back

• Cada estágio deve funcionar para uma determinada instrução,

simultaneamente a outros estágios.

Controle do Pipeline

Page 15: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

151998 Morgan Kaufmann Publishers

Controle do Pipeline

Execution/Address Calculation stage control lines

Memory access stage control lines

Write-back stage control

lines

InstructionReg Dst

ALU Op1

ALU Op0

ALU Src Branch

Mem Read

Mem Write

Reg write

Mem to Reg

R-format 1 1 0 0 0 0 0 1 0lw 0 0 0 1 0 1 0 1 1sw X 0 0 1 0 0 1 0 Xbeq X 0 1 0 1 0 0 0 X

IF/ID ID/EX EX/MEM MEM/WB

Os sinais são repassados pelos estágios como os dados

Page 16: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

161998 Morgan Kaufmann Publishers

Branc

h

RegDst

MemWrite

Mem

Rea

d

Mem

toRe

g

RegW

rite

PCSrc

AL

UO

p

Fluxo de dados e controle

Page 17: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

171998 Morgan Kaufmann Publishers

• Pode ocorrer iniciando uma instrução antes de terminar a anterior

• dependências que “vão retroceder no tempo” são conflitos de dados

Dependências de dados

IM Reg

IM Reg

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

Time (in clock cycles)

sub $2, $1, $3

Programexecutionorder(in instructions)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

CC 7 CC 8 CC 9

10 10 10 10 10/– 20 – 20 – 20 – 20 – 20

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

Value of register $2:

DM Reg

Reg

Reg

Reg

DM

Page 18: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

181998 Morgan Kaufmann Publishers

- Atuar no caminho do banco de registr. p/ substituir o valor de leit/escrita de registrador

- Antecipação da ALU

Solução por Antecipação – usar os resultados temporários, sem esperar que eles sejam escritos

what if this $2 was $13?

IM Reg

IM Reg

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

Time (in clock cycles)

sub $2, $1, $3

Programexecution order(in instructions)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

CC 7 CC 8 CC 9

10 10 10 10 10/– 20 – 20 – 20 – 20 – 20

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

Value of register $2 :

DM Reg

Reg

Reg

Reg

X X X – 20 X X X X XValue of EX/MEM :X X X X – 20 X X X XValue of MEM/WB :

DM

Page 19: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

191998 Morgan Kaufmann Publishers

Solução por Antecipação

Unidade de antecipação

Page 20: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

201998 Morgan Kaufmann Publishers

00

01

10

00

01

10

MU

X A

MU

X B

CIRCUITO DE ANTECIPAÇÃO (FORWARDING UNIT)

=

EX

/ME

MR

eg

iste

rRd

Rs

=

EX

/ME

MR

eg

Wri

te

Rt

MUX ASA1

MUX BSB0

=

ME

M/W

BR

eg

iste

rRd

Rs

=

ME

M/W

BR

eg

Wri

te

Rt

MUX ASA0

MUX BSB1

SELEÇÃO DOMUX A

SELEÇÃO DOMUX B

Page 21: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

211998 Morgan Kaufmann Publishers

- Se uma instrução tenta ler um registrador seguindo uma instrução de load word que escreve no mesmo registrador.

• Portanto, necessitamos que a unidade de detecção de conflitos paralize, em um ciclo, as instruções seguintes ao load word

Nem sempre é possível solucionar por antecipação (Fazer o Load de uma palavra pode causar um conflito)

Reg

IM

Reg

Reg

IM

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

Time (in clock cycles)

lw $2, 20($1)

Programexecutionorder(in instructions)

and $4, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

CC 7 CC 8 CC 9

or $8, $2, $6

add $9, $4, $2

slt $1, $6, $7

DM Reg

Reg

Reg

DM

Page 22: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

221998 Morgan Kaufmann Publishers

Parada (Stall) manter instruções nos mesmos estágios

Page 23: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

231998 Morgan Kaufmann Publishers

Unidade de detecção de conflitos• A parada faz com que uma instrução que não escreve nada prossiga

Page 24: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

241998 Morgan Kaufmann Publishers

Exemplo de inserção de parada

sinais 0

Page 25: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

251998 Morgan Kaufmann Publishers

• Quando é decidido pelo branch, outras instruções estão em pipeline!

• O pipeline equivale a previsão de “não ocorrer branch”– Solução: hardware para desprezar as instruções posteriores caso haja branch

Conflitos de Desvio (Branch)

Reg

Reg

CC 1

Time (in clock cycles)

40 beq $1, $3, 7

Programexecutionorder(in instructions)

IM Reg

IM DM

IM DM

IM DM

DM

DM Reg

Reg Reg

Reg

Reg

RegIM

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

72 lw $4, 50($7)

CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9

Reg

Page 26: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

261998 Morgan Kaufmann Publishers

Controle para limpar as instruções posteriores

IFFlush

além de antecipar o cálculo da condição

Page 27: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

271998 Morgan Kaufmann Publishers

beq $1,$3,7and $12,$2,$5

Exemplo de beq e atualização do PC

Resulta em NOP

endereço 72 lw $4, 50($7)

4044

Page 28: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

281998 Morgan Kaufmann Publishers

RESULTADO DO CONTROLE DE DESVIO

Necessidade de limpar apenas uma instrução

Page 29: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

291998 Morgan Kaufmann Publishers

Melhorando o desempenho

• Tentar evitar paradas! P.ex., reordenar essas instruções:

lw $t0, 0($t1)lw $t2, 4($t1)sw $t2, 0($t1)sw $t0, 4($t1)

• Adicionar um “branch delay slot”

– permitindo que a próxima instrução seguida do branch seja sempre executada

– Confiar no compilador para preencher o slot com algo útil

• Processador Superescalar: iniciar mais que uma instrução no mesmo ciclo

Page 30: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

301998 Morgan Kaufmann Publishers

MIPS superescalar

Page 31: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

311998 Morgan Kaufmann Publishers

MIPS superescalar

Tipo de instrução

Estágios do pipeline

R ou desvio IF ID EX MEM WB

Load/store IF ID EX MEM WB

R ou desvio IF ID EX MEM WB

Load/store IF ID EX MEM WB

R ou desvio IF ID EX MEM WB

Load/store IF ID EX MEM WB

R ou desvio IF ID EX MEM WB

Load/store IF ID EX MEM WB

Page 32: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

321998 Morgan Kaufmann Publishers

EXEMPLO

loop: lw $t0, 0 ($s1) # t0 = elemento de array add $t0, $t0,$s2 # soma o elemento do array a um valor escalar em $s2 sw $t0, 0($s1) # armazena o resultado addi $s1, $s1, -4 # decrementa o ponteiro bne $s1, $zero, loop # desvia para loop se $s1 diferente de 0

R ou desvio Load/store Ciclo de clock

loop: lw $t0, 0($s1) 1

addi $s1, $s1,-4 2

add $t0 , $t0, $s2 3

bne $s1, $zero, loop sw $t0, 4($s1) 4

O código:

pode ser escalonado para o MIPS superescalar da seguinte forma:

5 instruções em 4 ciclos

Page 33: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

331998 Morgan Kaufmann Publishers

Desdobramento de laço (loop unrolling)

R ou desvio Load/store Ciclo

de clock

Observações

loop: addi $s1, $s1, -16 lw $t0, 0 ($s1) 1 $s1 inicial

lw $t1, 12($s1) 2 $s1 = $s1 - 16

add $t0, $t0, $s2 lw $t2, 8($s1) 3

add $t1, $t1, $s2 lw $t3, 4($s1) 4

add $t2, $t2, $s2 sw $t0, 16($s1) 5 16($s1) =

$s1 inicial

add $t3, $t3, $s2 sw $t1, 12($s1) 6

sw $t2, 8($s1) 7

bne $s1, $zero, loop sw $t3, 4($s1) 8

14 instruções em 8 ciclos

Page 34: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

341998 Morgan Kaufmann Publishers

Escalação Dinâmica

• O hardware realiza a “escalação”

– O hardware tenta encontrar instruções para executar

– É possível execução fora de ordem

– Execução especulativa e previsão dinâmica de desvio (branch)

– DEC Alpha 21264: tem 9 estágios pipeline, 6 instruções simultâneas

– PowerPC e Pentium: tabela de história de desvio

– É importante a tecnologia do compilador

Page 35: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

351998 Morgan Kaufmann Publishers

Escalação Dinâmica

Despacho em ordem

Execuçãofora de ordem

Escrita final do resultado em ordem

Unidadesfuncionais

Page 36: 1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

361998 Morgan Kaufmann Publishers

A microarquitetura do Pentium 4