Download presentation
Presentation is loading. Please wait.
Published byAnne Mitchell Modified over 9 years ago
1
MS108 Computer System I Lecture 6 Scoreboarding Prof. Xiaoyao Liang 2015/4/3 1
2
Complex Pipeline 2
3
3 Floating Point ISA
4
4FPU
5
5 Pipeline FPU
6
FP Multiplier Pipeline 6
7
Memory Timing 7
8
Pipeline Timing 8
9
Structure Hazard 9
10
Data Hazards 10
11
11 Detecting the Hazards
12
12 Memory Hazards
13
13 Instruction Scheduling
14
14 Dynamic Pipeline
15
15 Dynamic Scheduling
16
Two Solutions 16
17
CDC 6600, Seymour Cray, 1963 17
18
Scoreboard 18
19
Hazards for Dynamic Pipeline 19
20
20Scoreboard
21
21 MIPS Scoreboard
22
22 Pipeline with Scoreboard
23
23 Scoreboard Components
24
24Example
25
25 Dependency Graph
26
26 Scoreboard Example: Cycle 1 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult L.DF634+R2 1 L.DF245+R3 MUL.DF0F2F4 SUB.DF8F6F2 DIV.DF10F0F6 ADD.DF6F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerYesLoadF6R2Yes Mult1No Mult2No AddNo DivideNo Register result status Clock F0F2F4F6F8F10F12...F30 1FUInteger FP Latency: Add = 2 cycles, Multiply = 10, Divide = 40
27
27 Scoreboard Example: Cycle 2 FP Latency: Add = 2 cycles, Multiply = 10, Divide = 40 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult L.DF634+R2 1 L.DF245+R3 MUL.DF0F2F4 SUB.DF8F6F2 DIV.DF10F0F6 ADD.DF6F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerYesLoadF6R2Yes Mult1No Mult2No AddNo DivideNo Register result status Clock F0F2F4F6F8F10F12...F30 2FUInteger 2 Issue second L.D? No, stall on structural hazard
28
28 Scoreboard Example: Cycle 3 Issue MUL.D? In-order issue !!! Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult L.DF634+R2123 L.DF245+R3 MUL.DF0F2F4 SUB.DF8F6F2 DIV.DF10F0F6 ADD.DF6F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerYesLoadF6R2Yes Mult1No Mult2No AddNo DivideNo Register result status Clock F0F2F4F6F8F10F12...F30 3FUInteger ?
29
29 Scoreboard Example: Cycle 4 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult L.DF634+R2123 4 L.DF245+R3 MUL.DF0F2F4 SUB.DF8F6F2 DIV.DF10F0F6 ADD.DF6F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerYesLoadF6R2Yes Mult1No Mult2No AddNo DivideNo Register result status Clock F0F2F4F6F8F10F12...F30 4FUInteger
30
30 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R2123 4 F245+R3 F0F2F4 F8F6F2 F10F0F6 L.D MUL.D SUB.D DIV.D ADD.D F6F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerYesLoadF2R3Yes Mult1No Mult2No AddNo DivideNo Register result status Clock F0F2F4F6F8F10F12...F30 5FUInteger 5 Scoreboard Example: Cycle 5
31
31 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R2123 4 F245+R3 F0F2F4 F8F6F2 F10F0F6 F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerYesLoadF2R3Yes Mult1 Mult2No AddNo DivideNo Register result status Clock F0F2F4F6F8F10F12...F30 6FU Integer Yes Mult F0 F2 F4 Integer No Yes 5 6 6 Mult1 L.D MUL.D SUB.D DIV.D ADD.D Scoreboard Example: Cycle 6
32
32 Scoreboard Example: Cycle 7 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R2123 4 F245+R3 F0F2F4 F8F6F2 F10F0F6 F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerYesLoadF2R3Yes Mult1 Mult2 No Add Divide No Register result status Clock F0F2F4F6F8F10F12...F30 7FU Integer 5 6 7 6 Yes Mult F0 F2 F4 Integer No Yes Yes Sub F8 F6 F2 Integer Yes No Mult1 Add 7 Read multiply operands? L.D MUL.D SUB.D DIV.D ADD.D
33
33 Scoreboard Example: Cycle 8a (First half of cycle 8) Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R2123 4 F245+R3 F0F2F4 F8F6F2 F10F0F6 F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerYesLoadF2R3Yes Mult1 Mult2 No Add Divide Register result status Clock F0F2F4F6F8F10F12...F30 8FU Integer 5 6 7 6 Yes Mult F0 F2 F4 Integer No Yes Yes Sub F8 F6 F2 Integer Yes No Mult1Add Divide 7 8 Yes Div F10 F0 F6 Mult1 No Yes L.D MUL.D SUB.D DIV.D ADD.D
34
34 Scoreboard Example: Cycle 8b (Second half of cycle 8) Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R2123 4 F245+R3 F0F2F4 F8F6F2 F10F0F6 F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk Integer No Mult1 Mult2 No Add Divide Register result status Clock F0F2F4F6F8F10F12...F30 8FU 5 6 7 8 6 Yes Mult F0 F2 F4 Yes Yes Yes Sub F8 F6 F2 Yes Yes Mult1Add Divide 7 8 Yes Div F10 F0 F6 Mult1 No Yes L.D MUL.D SUB.D DIV.D ADD.D
35
35 Scoreboard Example: Cycle 9 FP Latency: Add = 2 cycles, Multiply = 10, Divide = 40 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R2123 4 F245+R3 F0F2F4 F8F6F2 F10F0F6 F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk Integer No 10 Mult1 Mult2 No 2 Add Divide Register result status Clock F0F2F4F6F8F10F12...F30 9FU 5 6 7 8 6 9 Yes Mult F0 F2 F4 Yes Yes Yes Sub F8 F6 F2 Yes Yes Mult1Add Divide 7 9 8 Yes Div F10 F0 F6 Mult1 No Yes Read operands for MUL.D & SUB.D? Issue ADD.D? ? L.D MUL.D SUB.D DIV.D ADD.D
36
36 Scoreboard Example: Cycle 11 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R2123 4 F245+R3 F0F2F4 F8F6F2 F10F0F6 F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk Integer No 8 Mult1 Mult2 No 0 Add Divide Register result status Clock F0F2F4F6F8F10F12...F30 11FU 5 6 7 8 6 9 Yes Mulu F0 F2 F4 Yes Yes Yes Sub F8 F6 F2 Yes Yes Mult1Add Divide 7 9 11 8 Yes Div F10 F0 F6 Mult1 No Yes L.D MUL.D SUB.D DIV.D ADD.D
37
37 Scoreboard Example: Cycle 12 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R2123 4 F245+R3 F0F2F4 F8F6F2 F10F0F6 F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk Integer No 7 Mult1 Mult2 No Add Divide Register result status Clock F0F2F4F6F8F10F12...F30 12FU 5 6 7 8 6 9 Yes Mult F0 F2 F4 Yes Yes No Mult1 Divide 7 9 11 12 8 Yes Div F10 F0 F6 Mult1 No Yes Read operands for DIV.D? L.D MUL.D SUB.D DIV.D ADD.D
38
38 Scoreboard Example: Cycle 13 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R2123 4 F245+R3 F0F2F4 F8F6F2 F10F0F6 F8F2 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk Integer No 6 Mult1 Mult2 No Add Divide Register result status Clock F0F2F4F6F8F10F12...F30 13FU 5 6 7 8 6 9 Yes Mult F0 F2 F4 Yes Yes Mult1 Add Divide 7 9 11 12 8 Yes Div F10 F0 F6 Mult1 No Yes Yes Add F6 F8 F2 Yes Yes 13 L.D MUL.D SUB.D DIV.D ADD.D
39
39 Scoreboard Example: Cycle 17 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R21234 F245+R35678 F0F2F469 F8F6F2791112 F10F0F68 F8F2131416 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerNo 2Mult1YesMultF0F2F4Yes Mult2No AddYesAddF6F8F2Yes DivideYesDivF10F0F6Mult1NoYes Register result status Clock F0F2F4F6F8F10F12...F30 17FUMult1AddDivide Write result of ADD.D? No, WAR hazard L.D MUL.D SUB.D DIV.D ADD.D ?
40
40 Scoreboard Example: Cycle 20 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R21234 F245+R35678 F0F2F469 19 20 F8F6F2791112 F10F0F68 F8F2131416 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusyOpFiFjFkQjQkRjRk IntegerNo Mult1 Mult2No AddYesAddF6F8F2Yes DivideYesDivF10F0F6Yes Register result status Clock F0F2F4F6F8F10F12...F30 20FUAddDivide No L.D MUL.D SUB.D DIV.D ADD.D
41
41 Scoreboard Example: Cycle 21 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R21234 F245+R35678 F0F2F469 19 20 F8F6F2791112 F10F0F68 21 F6F8F2131416 Functional unit statusdestS1S2FU for jFU for kFj?Fk? TimeNameBusy OpFiFjFkQjQkRjRk IntegerNo Mult1 Mult2No AddYesAddF6F8F2Yes DivideYesDivF10F0F6Yes Register result status Clock F0F2F4F6F8F10F12...F30 21FUAddDivide No L.D MUL.D SUB.D DIV.D ADD.D
42
42 Scoreboard Example: Cycle 22 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R21234 F245+R35678 F0F2F469 19 20 F8F6F2791112 F10F0F68 21 F6F8F2131416 22 Functional unit status destS1S2FU for jFU for kFj?Fk? TimeNameBusy OpFiFjFkQjQkRjRk IntegerNo Mult1 Mult2No AddNo 40 DivideYesDivF10F0F6Yes Register result status Clock F0F2F4F6F8F10F12...F30 22FUDivide No L.D MUL.D SUB.D DIV.D ADD.D
43
43 Scoreboard Example: Cycle 61 Instruction status ReadExecution Write Instructionjk IssueoperandscompleteResult F634+R21234 F245+R35678 F0F2F469 19 20 F8F6F2791112 F10F0F68 21 61 F6F8F2131416 22 Functional unit status destS1S2FU for jFU for kFj?Fk? TimeNameBusy OpFiFjFkQjQkRjRk IntegerNo Mult1 Mult2No AddNo 0 DivideYesDivF10F0F6Yes Register result status Clock F0F2F4F6F8F10F12...F30 61FUDivide No L.D MUL.D SUB.D DIV.D ADD.D
44
44 Scoreboard Example: Cycle 62 Instruction status ReadExecutionWrite Instructionjk IssueoperandscompleteResult F634+R21234 F245+R35678 F0F2F4691920 F8F6F2791112 F10F0F68216162 F6F8F213141622 Functional unit status destS1S2FU for jFU for kFj?Fk? TimeNameBusy OpFiFjFkQjQkRjRk IntegerNo Mult1No Mult2No AddNo 0DivideNo Register result status Clock F0F2F4F6F8F10F12...F30 62FU Instruction Block done We have: In-oder issue, Out-of-order execute and commit L.D MUL.D SUB.D DIV.D ADD.D
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.