A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Multiplicador e Forwarding no MIPS

Apresentações semelhantes


Apresentação em tema: "Multiplicador e Forwarding no MIPS"— Transcrição da apresentação:

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

2 Sumário Objetivos MIPS Pipeline Multiplicador Forwarding
Implementação Simulação Forwarding Conclusão/Sugestões

3 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

4 MIPS Pipelined

5 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

6 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

7 Multiplicador – Implementação
Componente instanciado dentro da unidade Execute Entradas do multiplicador conectadas ao mecanismo de forwarding

8 Diagrama de Bloco unidade Execute c/ Multiplicação

9 Simulação Multiplicador

10 Forwarding I M R e g C 1 2 3 4 5 6 T i m ( n c l o k y s ) u b $ , P r
x t d I M R e g D C 7 8 9 1 / 2 o r $ 3 , 6 a d 4 s w 5 ( ) V l u f r e g i s t e r $ 2 : V a l u e o f E X / M E M : X X X 2 X X X X X V a l u e o f M E M / W B : X X X X 2 X X X X D M R e g R e g D M R e g R e g

11 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 and(EX/MEM.RegisterRd = Id/EX.RegisterRt))ForwardB=10

12 Forwarding 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 and(MEM/WB.RegisterRd = Id/EX.RegisterRt))ForwardB=01

13 Forwarding - Controle Controle 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 Operando 2 vem do banco de registradores ForwardB = 10 Operando 2 é “forwarding” do resultado exatamente anterior da ALU ForwardB = 01 Operando 2 é “forwarding” da leitura da memória ou resultado ALU anterior

14 Forwarding - Implementação
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

15 Diagrama de Bloco Estagio Execute c/ Forwarding

16 Ciclo Fetch Decode Execute Memory Write Back 1 lw $3 2 lw $4,20($1) 3 add $5,$1,$2 4 add 6,$2,$3 5 add $3,$2,$1 add $6,$2,$3 6 and $5,$4,$3 7 or $6,$2,$1 8 add $7,$4,$5 9 10 11

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

18 and $5,$4,$3 add $3,$2,$1

19 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

20 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


Carregar ppt "Multiplicador e Forwarding no MIPS"

Apresentações semelhantes


Anúncios Google