Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.