AND
 
M
U
X
 
+
PC
INSTRUCION
MEMORY



ADDRESS


READ INSTRUCTION
   
IF/ID
HAZARD DETECTION UNIT
 
OR
CONTROL
UNIT
 

M
U
X
 
 
Read Data 1
Read
Register 1
Read
Register 2

REGISTERS

Write
Register
Read Data 2
Write Data
=

SIGN
EXTENSION
   
ID/EX
WB
M
EX
 
 
CAUSE

EPC

M
U
X
M
U
X
M
U
X
M
U
X
M
U
X
M
U
X
 
M
U
X
ALU
ALU
CONTROL
UNIT
 
EX/MEM
WB
M












DATA
MEMORY



ADDRESS


DATA VALUE

WRITTEN VALUE
MEM/WB
WB
















M
U
X
FORWARDING UNIT
INSTRUCTION MEMORY
ADDER 1
INSTRUCTION FETCH MULTIPLEXER
LOGIC AND - Output = 0
PROGRAM COUNTER = 0
HAZARD DETECTION UNIT
CONTROL UNIT
INSTRUCTION DECODE MULTIPLEXER
LOGIC OR
32 REGISTERS (32-BIT)
=
SIGN EXTENSION FROM 16 TO 32 BITS
CAUSE
EPC
EXECUTE MULTIPLEXER 3
EXECUTE MULTIPLEXER 4
EXECUTE MULTIPLEXER 6
EXECUTE MULTIPLEXER 1
EXECUTE MULTIPLEXER 5
EXECUTE MULTIPLEXER 5
EXECUTE MULTIPLEXER 2
ARITHMETIC LOGIC UNIT
ALU CONTROL UNIT
FORWARDING UNIT
DATA MEMORY
WRITE BACK MULTIPLEXER
IF/ID LATCHES
ID/EX LATCHES
EX/MEM LATCHES
MEM/WB LATCHES
ID/EX.WB Register
ID/EX.MEM Register
ID/EX.EX Register
EX/MEM.WB Register
EX/MEM.MEM REgister
MEM/WB.WB Register