20
Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Embed Size (px)

Citation preview

Page 1: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Multiplicador e Forwarding no MIPS

CMP114 - Arquitetura e Projeto de Sistemas VLSI I

Andre Resende

Page 2: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Sumário• Objetivos• MIPS Pipeline• Multiplicador

– Implementação– Simulação

• Forwarding– Implementação– Simulação

• Conclusão/Sugestões

Page 3: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Objetivos

• Implementar um multiplicador em hardware e o mecanismo de forwarding na descrição VHDL do processador MIPS com pipeline

• Possibilitar a comparação com o processador FemtoJava

Page 4: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

MIPS Pipelined

P C A dd re ss

Instructio nMem ory

Co ntro l

Instruction[15-0]

R e adR e gis te r 1

R e adR e gis te r 2

W riteR e gis te r

W riteD a ta

R e adDa ta 1

R e adDa ta 2

ALU

Zero

A L UR es u lt

S hiftLe ft

2

A d dres s

W riteD a ta

D ataM em ory

R e adD a ta

ADD

4

S ig nE xten d

16 32 A LUC o n tro l

1

0

Mux

0

1

Mux

Re gis ters

Instruction[20-16]Instruction[15-11]

Pipeline

Register

A DDAD D

R es ult

0

1

Mux

6

W B

M

E X

Pipeline

Register

Pipeline

Register

P CS rc

ID/EX

0

1

Mux

A LU O p

R eg D st

A LU S rc

W B

M

E X /M E M

Pipeline

Register

W B

ME M /W B

B r a n c h

M e m R e a d

IF /ID

Page 5: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Multiplicador

• Multiplicador em hardware no processador Mips

• Reuso do código VHDL implementado para o FemtoJava: Multiplicador Booth Paralelo

• 8 bits

• Componente no módulo Execute

Page 6: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Multiplicador – Implementação

• Entradas da ALU foram copiadas para o multiplicador

• Foram criados 2 registradores para armazenar o resultado: Hi e Lo

• Sinal de controle para a multiplicação gerado na unidade de Controle– Sinal de entrada com o functo code

Page 7: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Multiplicador – Implementação

• Componente instanciado dentro da unidade Execute

• Entradas do multiplicador conectadas ao mecanismo de forwarding

Page 8: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

1

Multi plica dor

R e a d D a t a

Z e r o

A L U R e s u l t

A L U

A L U C o n t r o l

2 R e a d D a t a

HiLoWrite

Mul_Result

Diagrama de Bloco unidade Execute c/ Multiplicação

Page 9: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

mul $4,$3

Simulação Multiplicador

Page 10: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Forwarding

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 11: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Forwarding • Abordagem de Patterson• Algoritmos

– EXE-MEM Hazard: if (EX/MEM.RegWrite

and(EX/MEM.RegisterRd<>0)

and(EX/MEM.RegisterRd = Id/EX.RegisterRs))ForwardA=10

if (EX/MEM.RegWrite

and(EX/MEM.RegisterRd<>0)

and(EX/MEM.RegisterRd = Id/EX.RegisterRt))ForwardB=10

Page 12: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

• Algoritmos– MEM-WB Hazard:

if (MEM/WB.RegWrite and(MEM/WB.RegisterRd<>0) and(EX/MEM.RegisterRd<>ID/EX.RegisterRt) and(MEM/WB.RegisterRd = Id/EX.RegisterRs))ForwardA=01 if (MEM/WB.RegWrite and(MEM/WB.RegisterRd<>0) and(EX/MEM.RegisterRd<>ID/EX.RegisterRt) and(MEM/WB.RegisterRd = Id/EX.RegisterRt))ForwardB=01

Forwarding

Page 13: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Forwarding - ControleControle Origem Descrição

ForwardA = 00 ID/EX Operando 1 vem do banco de registradores

ForwardA = 10 EX/MEM Operando 1 é “forwarding” do resultado exatamente anterior da ALU

ForwardA = 01 MEM/WB Operando 1 é “forwarding” da leitura da memória ou resultado ALU anterior

ForwardB = 00 ID/EX Operando 2 vem do banco de registradores

ForwardB = 10 EX/MEM Operando 2 é “forwarding” do resultado exatamente anterior da ALU

ForwardB = 01 MEM/WB Operando 2 é “forwarding” da leitura da memória ou resultado ALU anterior

Page 14: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

• Componente dentro da unidade Execute

• Inclusão de 2 multiplexadores: um para a cada entrada ALU em Execute

• Conexão com as saídas de EX/MEM e MEM/WB

Forwarding - Implementação

Page 15: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

1

0

1 M u x

A D D A D D

R e s u l t S h i f t L e f t

2

P C + 4

S i g n E x t e n d

R e a d D a t a

S i g n E x t e n d

Z e r o

A L U R e s u l t

A L U

A L U O P A L U

C o n t r o l

A L U S r c

2 R e a d D a t a

0

1 M u x

Reg Dest MEM-WB Reg Dest EXE-MEM

Forward C o n t r o l

0

1 M u x

End Rg D MEM-WB End Rg D EXE-MEM

End Rg 2 ID/Ex

End Rg 1 ID/Ex

Diagrama de Bloco Estagio Execute c/ Forwarding

Page 16: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Ciclo Fetch Decode Execute Memory Write Back

1 lw $3

2 lw $4,20($1) lw $3

3 add $5,$1,$2 lw $4,20($1) lw $3

4 add 6,$2,$3 add $5,$1,$2 lw $4,20($1) lw $3

5 add $3,$2,$1 add $6,$2,$3 add $5,$1,$2 lw $4,20($1) lw $3

6 and $5,$4,$3 add $3,$2,$1 add $6,$2,$3 add $5,$1,$2 lw $4,20($1)

7 or $6,$2,$1 and $5,$4,$3 add $3,$2,$1 add $6,$2,$3 add $5,$1,$2

8 add $7,$4,$5 or $6,$2,$1 and $5,$4,$3and $5,$4,$3 add $3,$2,$1add $3,$2,$1 add $6,$2,$3

9 add $7,$4,$5 or $6,$2,$1or $6,$2,$1 and $5,$4,$3 add $3,$2,$1add $3,$2,$1

10 add $7,$4,$5add $7,$4,$5 or $6,$2,$1 and $5,$4,$3and $5,$4,$3

11 add $7,$4,$5 or $6,$2,$1

      add $7,$4,$5

           

           

Page 17: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

ID: EX: add $7,$4,$5 ME: or $6,$2,$1 WB: $5,$4,$3

108 12

Page 18: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

and $5,$4,$3

add $3,$2,$1

Page 19: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Conclusões

• Compreensão código VHDL (1/2 trabalho)

• Velocidade do multiplicador , não afetou o clock da versão pipeline (depende do hardware??)

• Baixa complexidade X dificuldade de implementação

Page 20: Multiplicador e Forwarding no MIPS CMP114 - Arquitetura e Projeto de Sistemas VLSI I Andre Resende

Sugestões

• Multiplicador sensível ao sinal de controle

• Particionamento do multiplicador em ciclos

• Sinal de controle para identificar qdo:Instrução(15-11) Rd