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

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

Embed Size (px)

Citation preview

Datorteknik DataHazard bild 1

Data Hazards

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

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 10

Cost?

+ Hardware inexpensive - Performance (throughput)

Datorteknik DataHazard bild 11

Data Hazards

sub $6 $0 $1

add $7 $6 $1

add $7 $7 $6

..

.

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 21

Data Hazards

sub $6 $0 $1

add $6 $6 $1

add $7 $6 $1

..

.

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 24

Branch

logic

Sgn/Ze

extend

Zero ext.

ALU

A

B

31

0

4+

+

= =

= =

Datorteknik DataHazard bild 25

=

=

Forwarding Logic

&

WReg #

&

Reg #

>=1 WDRD/DWT

DATADATA

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

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