44
MS108 Computer System I Lecture 6 Scoreboarding Prof. Xiaoyao Liang 2015/4/3 1

MS108 Computer System I

  • Upload
    yovela

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

MS108 Computer System I. Lecture 6 Scoreboarding Prof. Xiaoyao Liang 2014/3/17. Complex Pipeline. Floating Point ISA. FPU. Pipeline FPU. FP Multiplier Pipeline. Memory Timing. Pipeline Timing. Structure Hazard. Data Hazards. Detecting the Hazards. Memory Hazards. - PowerPoint PPT Presentation

Citation preview

Page 1: MS108 Computer System I

MS108 Computer System I

Lecture 6

Scoreboarding

Prof. Xiaoyao Liang

2015/4/31

Page 2: MS108 Computer System I

Complex PipelineComplex Pipeline

2

Page 3: MS108 Computer System I

3

Floating Point ISAFloating Point ISA

Page 4: MS108 Computer System I

4

FPUFPU

Page 5: MS108 Computer System I

5

Pipeline FPUPipeline FPU

Page 6: MS108 Computer System I

FP Multiplier PipelineFP Multiplier Pipeline

6

Page 7: MS108 Computer System I

Memory TimingMemory Timing

7

Page 8: MS108 Computer System I

Pipeline TimingPipeline Timing

8

Page 9: MS108 Computer System I

Structure HazardStructure Hazard

9

Page 10: MS108 Computer System I

Data HazardsData Hazards

10

Page 11: MS108 Computer System I

11

Detecting the HazardsDetecting the Hazards

Page 12: MS108 Computer System I

12

Memory HazardsMemory Hazards

Page 13: MS108 Computer System I

13

Instruction SchedulingInstruction Scheduling

Page 14: MS108 Computer System I

14

Dynamic PipelineDynamic Pipeline

Page 15: MS108 Computer System I

15

Dynamic SchedulingDynamic Scheduling

Page 16: MS108 Computer System I

Two SolutionsTwo Solutions

16

Page 17: MS108 Computer System I

CDC 6600, Seymour Cray, CDC 6600, Seymour Cray, 1963 1963

17

Page 18: MS108 Computer System I

ScoreboardScoreboard

18

Page 19: MS108 Computer System I

Hazards for Dynamic Hazards for Dynamic PipelinePipeline

19

Page 20: MS108 Computer System I

20

ScoreboardScoreboard

Page 21: MS108 Computer System I

21

MIPS ScoreboardMIPS Scoreboard

Page 22: MS108 Computer System I

22

Pipeline with ScoreboardPipeline with Scoreboard

Page 23: MS108 Computer System I

23

Scoreboard ComponentsScoreboard Components

Page 24: MS108 Computer System I

24

ExampleExample

Page 25: MS108 Computer System I

25

Dependency GraphDependency Graph

Page 26: MS108 Computer System I

26

Scoreboard Example: Cycle 1Scoreboard Example: Cycle 1

Instruction status Read Execution Write

Instruction j k Issue operandscompleteResult

L.D F6 34+ R2 1L.D F2 45+ R3MUL.DF0 F2 F4SUB.DF8 F6 F2DIV.DF10 F0 F6ADD.DF6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer Yes Load F6 R2 YesMult1 NoMult2 NoAdd NoDivide No

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F301 FU Integer

FP Latency: Add = 2 cycles, Multiply = 10, Divide = 40

Page 27: MS108 Computer System I

27

Scoreboard Example: Cycle 2Scoreboard Example: Cycle 2

FP Latency: Add = 2 cycles, Multiply = 10, Divide = 40

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

L.D F6 34+ R2 1L.D F2 45+ R3MUL.DF0 F2 F4SUB.DF8 F6 F2DIV.DF10 F0 F6ADD.DF6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer Yes Load F6 R2 YesMult1 NoMult2 NoAdd NoDivide No

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F302 FU Integer

2

• Issue second L.D? No, stall on structural hazard

Page 28: MS108 Computer System I

28

Scoreboard Example: Cycle 3Scoreboard Example: Cycle 3

• Issue MUL.D? In-order issue !!!

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

L.D F6 34+ R2 1 2 3L.D F2 45+ R3MUL.DF0 F2 F4SUB.DF8 F6 F2DIV.DF10 F0 F6ADD.DF6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer Yes Load F6 R2 YesMult1 NoMult2 NoAdd NoDivide No

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F303 FU Integer

?

Page 29: MS108 Computer System I

29

Scoreboard Example: Cycle 4Scoreboard Example: Cycle 4

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

L.D F6 34+ R2 1 2 3 4L.D F2 45+ R3MUL.DF0 F2 F4SUB.DF8 F6 F2DIV.DF10 F0 F6ADD.DF6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer Yes Load F6 R2 YesMult1 NoMult2 NoAdd NoDivide No

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F304 FU Integer

Page 30: MS108 Computer System I

30

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3F0 F2 F4F8 F6 F2F10 F0 F6

L.DL.DMUL.DSUB.DDIV.DADD.DF6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer Yes Load F2 R3 YesMult1 NoMult2 NoAdd NoDivide No

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F305 FU Integer

5

Scoreboard Example: Cycle 5Scoreboard Example: Cycle 5

Page 31: MS108 Computer System I

31

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3F0 F2 F4F8 F6 F2F10 F0 F6F6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer Yes Load F2 R3 YesMult1Mult2 NoAdd NoDivide No

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F306 FU Integer

Yes Mult F0 F2 F4 Integer No Yes

5 6 6

Mult1

L.DL.DMUL.DSUB.DDIV.DADD.D

Scoreboard Example: Cycle 6Scoreboard Example: Cycle 6

Page 32: MS108 Computer System I

32

Scoreboard Example: Cycle 7Scoreboard Example: Cycle 7

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3F0 F2 F4F8 F6 F2F10 F0 F6F6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer Yes Load F2 R3 YesMult1Mult2 NoAddDivide No

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F307 FU Integer

5 6 76

Yes Mult F0 F2 F4 Integer No Yes

Yes Sub F8 F6 F2 Integer Yes No

Mult1 Add

7

• Read multiply operands?

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 33: MS108 Computer System I

33

Scoreboard Example: Cycle Scoreboard Example: Cycle 8a8a(First half of cycle 8)(First half of cycle 8)Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3F0 F2 F4F8 F6 F2F10 F0 F6F6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer Yes Load F2 R3 YesMult1Mult2 NoAddDivide

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F308 FU Integer

5 6 76

Yes Mult F0 F2 F4 Integer No Yes

Yes Sub F8 F6 F2 Integer Yes No

Mult1 Add Divide

78

Yes Div F10 F0 F6 Mult1 No Yes

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 34: MS108 Computer System I

34

Scoreboard Example: Cycle Scoreboard Example: Cycle 8b8b(Second half of cycle 8)(Second half of cycle 8)

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3F0 F2 F4F8 F6 F2F10 F0 F6F6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer NoMult1Mult2 NoAddDivide

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F308 FU

5 6 7 86

Yes Mult F0 F2 F4 Yes Yes

Yes Sub F8 F6 F2 Yes Yes

Mult1 Add Divide

78

Yes Div F10 F0 F6 Mult1 No Yes

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 35: MS108 Computer System I

35

Scoreboard Example: Cycle 9Scoreboard Example: Cycle 9FP Latency: Add = 2 cycles, Multiply = 10, Divide = 40

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3F0 F2 F4F8 F6 F2F10 F0 F6F6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer No10 Mult1

Mult2 No2 Add

DivideRegister result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F309 FU

5 6 7 86 9

Yes Mult F0 F2 F4 Yes Yes

Yes Sub F8 F6 F2 Yes Yes

Mult1 Add Divide

7 98

Yes Div F10 F0 F6 Mult1 No Yes

• Read operands for MUL.D & SUB.D? Issue ADD.D?

?

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 36: MS108 Computer System I

36

Scoreboard Example: Cycle Scoreboard Example: Cycle 1111

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3F0 F2 F4F8 F6 F2F10 F0 F6F6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer No8 Mult1

Mult2 No0 Add

DivideRegister result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F3011 FU

5 6 7 86 9

Yes Mulu F0 F2 F4 Yes Yes

Yes Sub F8 F6 F2 Yes Yes

Mult1 Add Divide

7 9 118

Yes Div F10 F0 F6 Mult1 No Yes

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 37: MS108 Computer System I

37

Scoreboard Example: Cycle Scoreboard Example: Cycle 1212

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3F0 F2 F4F8 F6 F2F10 F0 F6F6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer No7 Mult1

Mult2 NoAddDivide

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F3012 FU

5 6 7 86 9

Yes Mult F0 F2 F4 Yes Yes

No

Mult1 Divide

7 9 11 128

Yes Div F10 F0 F6 Mult1 No Yes

• Read operands for DIV.D?

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 38: MS108 Computer System I

38

Scoreboard Example: Cycle Scoreboard Example: Cycle 1313

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3F0 F2 F4F8 F6 F2F10 F0 F6F6 F8 F2

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer No6 Mult1

Mult2 NoAddDivide

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F3013 FU

5 6 7 86 9

Yes Mult F0 F2 F4 Yes Yes

Mult1 Add Divide

7 9 11 128

Yes Div F10 F0 F6 Mult1 No YesYes Add F6 F8 F2 Yes Yes

13

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 39: MS108 Computer System I

39

Scoreboard Example: Cycle Scoreboard Example: Cycle 1717

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3 5 6 7 8F0 F2 F4 6 9F8 F6 F2 7 9 11 12F10 F0 F6 8F6 F8 F2 13 14 16

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer No2 Mult1 Yes Mult F0 F2 F4 Yes Yes

Mult2 NoAdd Yes Add F6 F8 F2 Yes YesDivide Yes Div F10 F0 F6 Mult1 No Yes

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F3017 FU Mult1 Add Divide

• Write result of ADD.D? No, WAR hazard

L.DL.DMUL.DSUB.DDIV.DADD.D ?

Page 40: MS108 Computer System I

40

Scoreboard Example: Cycle Scoreboard Example: Cycle 2020

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3 5 6 7 8F0 F2 F4 6 9 19 20F8 F6 F2 7 9 11 12F10 F0 F6 8F6 F8 F2 13 14 16

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer NoMult1Mult2 NoAdd Yes Add F6 F8 F2 Yes YesDivide Yes Div F10 F0 F6 Yes Yes

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F3020 FU Add Divide

No

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 41: MS108 Computer System I

41

Scoreboard Example: Scoreboard Example: Cycle 21Cycle 21

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3 5 6 7 8F0 F2 F4 6 9 19 20F8 F6 F2 7 9 11 12F10 F0 F6 8 21F6 F8 F2 13 14 16

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer NoMult1Mult2 NoAdd Yes Add F6 F8 F2 Yes YesDivide Yes Div F10 F0 F6 Yes Yes

Register result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F3021 FU Add Divide

No

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 42: MS108 Computer System I

42

Scoreboard Example: Cycle Scoreboard Example: Cycle 2222

Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3 5 6 7 8F0 F2 F4 6 9 19 20F8 F6 F2 7 9 11 12F10 F0 F6 8 21 F6 F8 F2 13 14 16 22

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?

Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer NoMult1Mult2 NoAdd No

40 Divide Yes Div F10 F0 F6 Yes YesRegister result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F3022 FU Divide

No

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 43: MS108 Computer System I

43

Scoreboard Example: Cycle Scoreboard Example: Cycle 6161

Instruction status Read Execution Write

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3 5 6 7 8F0 F2 F4 6 9 19 20F8 F6 F2 7 9 11 12F10 F0 F6 8 21 61 F6 F8 F2 13 14 16 22

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?

Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer NoMult1Mult2 NoAdd No

0 Divide Yes Div F10 F0 F6 Yes YesRegister result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F3061 FU Divide

No

L.DL.DMUL.DSUB.DDIV.DADD.D

Page 44: MS108 Computer System I

44

Scoreboard Example: Scoreboard Example: Cycle 62Cycle 62Instruction status Read ExecutionWrite

Instruction j k Issue operandscompleteResult

F6 34+ R2 1 2 3 4F2 45+ R3 5 6 7 8F0 F2 F4 6 9 19 20F8 F6 F2 7 9 11 12F10 F0 F6 8 21 61 62F6 F8 F2 13 14 16 22

Functional unit status dest S1 S2 FU for j FU for k Fj? Fk?

Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk

Integer NoMult1 NoMult2 NoAdd No

0 Divide NoRegister result status

Clock F0 F2 F4 F6 F8 F10 F12 ... F3062 FU

Instruction Block done

• We have:• In-oder issue,

• Out-of-order execute and commit

L.DL.DMUL.DSUB.DDIV.DADD.D