Data Hazards

30
Datorteknik DataHazard bild 1 Data Hazards 0x30 sub $6 $0 $1 0x34 add $7 $6 $1 ... .. .

description

Data Hazards. 0x30 sub $6 $0 $1 0x34 add $7 $6 $1. Step 3, we calculate $0 - $1. Reg. 0x30 sub $6 $0 $1. IM. DM. Reg. 0x34 add $7 $6 $1. Reg. IM. DM. Reg. ! ! ! HAZARD ! ! ! OLD VALUE OF $6. Step 4, we calculate $1 + $6. Reg. 0x30 sub $6 $0 $1. IM. DM. Reg. - PowerPoint PPT Presentation

Transcript of Data Hazards

Page 1: Data Hazards

Datorteknik DataHazard bild 1

Data Hazards

0x30 sub $6 $0 $1 0x34 add $7 $6 $1 ... .. .

Page 2: Data Hazards

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

Page 3: Data Hazards

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

Page 4: Data Hazards

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

Page 5: Data Hazards

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

Page 6: Data Hazards

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

Page 7: Data Hazards

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

Page 8: Data Hazards

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

Page 9: Data Hazards

Datorteknik DataHazard bild 9

Data Hazards

Read After Write Solved by inserting “nop” operations

(bubbles) or by hardware “stalling” the pipe

Page 10: Data Hazards

Datorteknik DataHazard bild 10

Cost?

+ Hardware inexpensive - Performance (throughput)

Page 11: Data Hazards

Datorteknik DataHazard bild 11

Data Hazards

sub $6 $0 $1

add $7 $6 $1

add $7 $7 $6

..

.

Page 12: Data Hazards

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

Page 13: Data Hazards

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”

Page 14: Data Hazards

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 ... ..

Page 15: Data Hazards

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 ... ..

Page 16: Data Hazards

Datorteknik DataHazard bild 16

A

B

0

DATA WORD

0x30 sub $6 $0 $1 0x34 add $7 $6 $1> 0x38 add $7 $7 $1 ... ..

sub $6 $0 $1add $7 $6 $1

Page 17: Data Hazards

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> 0x38 add $7 $7 $1 ... ..

Page 18: Data Hazards

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)

Page 19: Data Hazards

Datorteknik DataHazard bild 19

ALU

A

B

0

=

=

0x30 sub $6 $0 $1 0x34 add $7 $6 $1 0x38 add $7 $7 $6> 0x3C sw $5 4($0)

sub $6 $0 $1add $7 $6 $1add $7 $7 $6

Page 20: Data Hazards

Datorteknik DataHazard bild 20

ALU

A

B

0

= =

= =

0x30 sub $6 $0 $1 0x34 add $7 $6 $1 0x38 add $7 $7 $6> 0x3C sw $5 4($0)

sub $6 $0 $1add $7 $6 $1add $7 $7 $6

Page 21: Data Hazards

Datorteknik DataHazard bild 21

Data Hazards

sub $6 $0 $1

add $6 $6 $1

add $7 $6 $1

..

.

Page 22: Data Hazards

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

Page 23: Data Hazards

Datorteknik DataHazard bild 23

Performance

No “Bubbles” or “Stalls”– increased throughput

But did we change the critical path?– Topological sort

– Static timing analysis

Page 24: Data Hazards

Datorteknik DataHazard bild 24

Branch

logic

Sgn/Ze

extend

Zero ext.

ALU

A

B

31

0

4+

+

= =

= =

Page 25: Data Hazards

Datorteknik DataHazard bild 25

=

=

Forwarding Logic

&

WReg #

&

Reg #

>=1 WDRD/DWT

DATADATA

Page 26: Data Hazards

Datorteknik DataHazard bild 26

Branch

logic

Sgn/Ze

extend

Zero ext.

ALU

A

B

31

0

4+

+

= =

= =

Critical path ALU?

Page 27: Data Hazards

Datorteknik DataHazard bild 27

Branch

logic

Sgn/Ze

extend

Zero ext.

ALU

A

B

31

0

4+

+

= =

= =

Critical path DATA MEMORY?

Page 28: Data Hazards

Datorteknik DataHazard bild 28

All problems solved?

NO, what will happen if......

lw $6 $0($1) add $4 $6 $1 add $7 $6 $2

Page 29: Data Hazards

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

Page 30: Data Hazards

Datorteknik DataHazard bild 30

IM

Reg DM Reg

“DM” to “EX” ?

IM

Reg DM Reg

IM

Reg DM Reg

0x30 lw $6 $0($1)

0x34 add $4 $6 $1

0x38 add $7 $6 $2