Org8
PCSrc
ID/EX
Organizaç
Organização e Arquitetura de computadores
EX/MEM
Control
IF/ID
Add
RegWrite
4
PC
Add
Data
Memory
Register Read
Read Addr 2Data 1
Read
Address
File
Write Addr
Write Data
ALUSrc
16
Sign
Extend
Address
ALU
Read
Data 2
MemtoReg
Read
Data
Write Data
ALU
cntrl
Prof. Dr. Luciano José Senger
MEM/WB
Branch
Read Addr 1
Instruction
Memory
Solucionando Hazards no pipeline
Shift left 2
32
MemWrite MemRead
ALUOp
RegDst
Soluç
Solução com encaminhamento ( forwarding )
Forma mais simples de resolver hazard de dados
stall
O r d e r
stall sub $4,$1,$5
IM
Reg
DM
Reg
DM
Reg
sub $4,$1,$5
and $6,$7,$1 or $8,$1,$1
sw
$4,4($1)
IM
Reg
IM
Reg
IM
Reg
IM
Reg
DM
Reg
DM
Reg
DM
Resolve o hazard através do encaminhamento do resultado tão logo este esteja disponível Reg
DM
ALU
Reg
ALU
and $6,$7,$1
IM
ALU
O r d e r
I n s t r.
ALU
Reg
Reg
ALU
DM
IM
ALU
Reg
add $1,
ALU
IM
ALU
add $1,
I n s t r.
Resolve o hazard através da espera, mas tem impacto negativo no
CPI
Implementaç
Implementação de encaminhamento
Implementaç
Implementação do encaminhamento
• Encaminhamento (forwarding)
• Controle do Multiplexador
– A implementação do forwarding necessita de uma forma de identificar o hazard
– Deve-se coletar o resultado dos registradores de pipeline e realizar o encaminhamento para a ALU que necessita dos dados
• Para a ALU, as entradas vem de quaisquer registradores de pipeline ao invés do registrador ID/EX
• Multiplexadores são adicionados nas entradas da ALU para selecionados os dados corretos
• Adiciona-se um controle de hardware apropriado para controlar os novos multiplexadores
• Outras unidades funcionais, como DM, necessitam de uma lógica similar – Com forwarding, é possível atingir um CPI igual a 1 mesmo quando existirem dependências de dados
Reg
DM
Reg
Condiç
Condições para detecç detecção de hazard de dados
I n s t r.
!= 0)
=