Professional Documents
Culture Documents
Data Hazards: Danger!Danger!Danger!
Data Hazards: Danger!Danger!Danger!
IM
ALU
Reg
Reg
IM
OR R8, R1, R9
CC 4
DM
Reg
IM
CC 5
CC 6
Reg
DM
Reg
Reg
DM
ALU
or
Danger!Danger!Danger!
IM
CC 3
ALU
Pipeline Hazards
CC 2
ALU
CC 1
CSE 240A
Dean Tullsen
Data Hazard
lw R8, 10000(R3)
ID/EX
IF/ID
4
ADD
M
u
x
MEM/WB
Instruction
memory
IR
IR 11..15
MEM/WB.IR
Registers
M
u
x
M
u
x
16
CSE 240A
Sign
extend
Branch
taken
IR 6..10
PC
Dean Tullsen
Data Dependence
EX/MEM
Zero?
Reg
CSE 240A
ALU
Data
memory
M
u
x
32
Dean Tullsen
CSE 240A
Dean Tullsen
RAW Hazard
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
CSE 240A
Dean Tullsen
CSE 240A
WAR Hazard
Dean Tullsen
OR R8, R1, R9
CC 1
CC 2
IM
Reg
IM
CC 3
Reg
IM
CC 4
DM
Reg
IM
CC 5
CC 6
Reg
DM
Reg
Reg
DM
ALU
The hazard
add R1, R2, R3
sub R5, R1, R4
ALU
ALU
ALU
WAW Hazard
CSE 240A
Dean Tullsen
CSE 240A
Reg
Dean Tullsen
WB
ID/EX
IF/ID
Zero?
MEM/WB
Branch
taken
IR 6..10
Instruction
memory
M
u
x
IR 11..15
IR
Registers
MEM/WB.IR
ALU
M
u
x
16
Sign
extend
Data
memory
M
u
x
32
CSE 240A
Dean Tullsen
CSE 240A
Dean Tullsen
More Forwarding
CC 1
CC 2
CC 3
CC 4
IM
Reg
ALU
LW
DM
R1, 0(R2)
Reg
ALU
IM
DM
Reg
ALU
IM
Reg
CC 4
CC 5
CC 6
DM
Reg
IM
Reg
Bubble
IM
Bubble
Reg
Bubble
IM
DM
DM
OR R8, R1, R9
CSE 240A
IM
CC 3
Reg
SW 12(R1), R4
CC 2
Reg
LW R4, 0(R1)
CC 1
CC 6
ALU
PC
ALU
ADD
EX/MEM
M
u
x
ALU
Forwarding Options
Dean Tullsen
CSE 240A
Reg
Dean Tullsen
Example
LW R9, 1012(R8)
SW R9, 1016(R8)
CSE 240A
ID/EX
Dean Tullsen
CSE 240A
Dean Tullsen
CSE 240A
EX/MEM
MEM/WB
opcode rd
Dean Tullsen
opcode rd
CSE 240A
ALU
Dean Tullsen
Inserting Bubbles
Adding Datapaths
ID/EX
EX/MEM
MEM/WB
Zero?
M
u
x
ALU
Data
memory
M
u
x
CSE 240A
Dean Tullsen
CSE 240A
Dean Tullsen
Control Hazards
Branch Hazards
Branch
IF
I2
I3
I4
correct instruction
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
branch taken
and
sub
CSE 240A
Dean Tullsen
CSE 240A
Dean Tullsen
New Datapath
ID/EX
ADD
IF/ID
ADD
IR
IR
Instruction
memory
Dean Tullsen
correct instruction
I4
I5
CSE 240A
MEM/WB.IR
Registers
ALU
Sign
extend
Data
M
u
x
memory
32
CSE 240A
Branch Hazards
I2
6..10
11..15
16
CSE 240A
IF
IR
M
u
x
Branch
M
u
x
PC
MEM/WB
EX/MEM
Zero?
Dean Tullsen
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
Dean Tullsen
CSE 240A
Dean Tullsen
branch instruction
sequential successor1
sequential successor2
........
sequential successorn
branch target if taken
1 slot delay allows proper decision and branch target address in 5 stage
pipeline
MIPS uses this
CSE 240A
Dean Tullsen
CSE 240A
Delayed Branch
Dean Tullsen
Key Points
Dean Tullsen
CSE 240A
Dean Tullsen