Upload
karson-fincher
View
218
Download
5
Tags:
Embed Size (px)
Citation preview
Datorteknik DataHazard bild 2
IM
Reg DM Reg
Step 3, we calculate $0 - $1
IM
Reg DM Reg
0x30 sub $6 $0 $1
0x34 add $7 $6 $1
! ! ! HAZARD ! ! !
OLD VALUE OF $6
Datorteknik DataHazard bild 3
IM
Reg DM Reg
Step 4, we calculate $1 + $6
IM
Reg DM Reg
0x30 sub $6 $0 $1
0x34 add $7 $6 $1
Datorteknik DataHazard bild 4
IM
Reg DM Reg
Step 5, Now we write $6
IM
Reg DM Reg
0x30 sub $6 $0 $1
0x34 add $7 $6 $1
HAZARD OVERNEW VALUE OF $6
WRITTEN TO REGFILE
Datorteknik DataHazard bild 5
IM
Reg DM Reg
Step 2, nop
IM
Reg DM Reg
0x30 sub $6 $0 $1
0x34 nop
IM
Reg DM Reg
IM
Reg DM Reg
Datorteknik DataHazard bild 6
IM
Reg DM Reg
Step 3, nop
IM
Reg DM Reg
IM
Reg DM Reg
IM
Reg DM Reg
0x30 sub $6 $0 $1
0x34 nop
0x38 nop
Datorteknik DataHazard bild 7
IM
Reg DM Reg
Step 4, add $7 $6 $1
IM
Reg DM Reg
IM
Reg DM Reg
IM
Reg DM Reg0x3C add $7 $6 $1
0x30 sub $6 $0 $1
0x34 nop
0x38 nop
Datorteknik DataHazard bild 8
IM
Reg DM Reg
Step 5, new $6 used
IM
Reg DM Reg
IM
Reg DM Reg
IM
Reg DM Reg0x3C add $7 $6 $1
0x30 sub $6 $0 $1
0x34 nop
0x38 nop
Datorteknik DataHazard bild 9
Data Hazards
Read After Write Solved by inserting “nop” operations
(bubbles) or by hardware “stalling” the pipe
Datorteknik DataHazard bild 12
IM
Reg DM Reg
We calculate $0 - $1
IM
Reg DM Reg
0x30 sub $6 $0 $1
0x34 add $7 $6 $1
! ! ! HAZARD ! ! !
OLD VALUE OF $6
Datorteknik DataHazard bild 13
IM
Reg DM Reg
We “forward” the new result
IM
Reg DM Reg
0x30 sub $6 $0 $1
0x34 add $7 $6 $1
HAZARD SOLVED BY“FORWARDING”
Datorteknik DataHazard bild 14
Branch
logic
Sgn/Ze
extend
Zero ext.
ALU
A
B
31
0
4+
+
HERE IS THE RESULT
0x30 sub $6 $0 $1 0x34 add $7 $6 $1> 0x38 add $7 $7 $1 ... ..
Datorteknik DataHazard bild 15
Branch
logic
Sgn/Ze
extend
Zero ext.
ALU
A
B
31
0
4+
+
WE NEED IT HERE
0x30 sub $6 $0 $1 0x34 add $7 $6 $1> 0x38 add $7 $7 $1 ... ..
Datorteknik DataHazard bild 16
A
B
0
DATA WORD
0x30 sub $6 $0 $1> 0x34 add $7 $6 $1 ... ..
sub $6 $0 $1add $7 $6 $1
Datorteknik DataHazard bild 17
=
A
B
0
REG NR
sub $6 $0 $1add $7 $6 $1
0x30 sub $6 $0 $1> 0x34 add $7 $6 $1 ... ..
Datorteknik DataHazard bild 18
Branch
logic
Sgn/Ze
extend
Zero ext.
ALU
A
B
31
0
4+
+
0x30 sub $6 $0 $1 0x34 add $7 $6 $1 0x38 add $7 $7 $6> 0x3C sw $5 4($0)
Datorteknik DataHazard bild 19
ALU
A
B
0
=
=
0x30 sub $6 $0 $1 0x34 add $7 $6 $1> 0x38 add $7 $7 $6 ... ..
sub $6 $0 $1add $7 $6 $1add $7 $7 $6
Datorteknik DataHazard bild 20
ALU
A
B
0
= =
= =
0x30 sub $6 $0 $1 0x34 add $7 $6 $1> 0x38 add $7 $7 $6 ... ..
sub $6 $0 $1add $7 $6 $1add $7 $7 $6
Datorteknik DataHazard bild 22
ALU
A
B
0
= =
= =
0x30 sub $6 $0 $1 0x34 add $6 $6 $1> 0x38 add $7 $6 $1 ... ..
sub $6 $0 $1add $6 $6 $1add $7 $6 $1
Datorteknik DataHazard bild 23
Performance
No “Bubbles” or “Stalls”– increased throughput
But did we change the critical path?– Topological sort
– Static timing analysis
Datorteknik DataHazard bild 26
Branch
logic
Sgn/Ze
extend
Zero ext.
ALU
A
B
31
0
4+
+
= =
= =
Critical path ALU?
Datorteknik DataHazard bild 27
Branch
logic
Sgn/Ze
extend
Zero ext.
ALU
A
B
31
0
4+
+
= =
= =
Critical path DATA MEMORY?
Datorteknik DataHazard bild 28
All problems solved?
NO, what will happen if......
lw $6 $0($1) add $4 $6 $1 add $7 $6 $2
Datorteknik DataHazard bild 29
IM
Reg DM Reg
OK, “DM” to “DE”
IM
Reg DM Reg
IM
Reg DM Reg
0x30 lw $6 $0($1)
0x34 add $4 $6 $1
0x38 add $7 $6 $2