

















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An example of the scoreboard method used in pipeline control to manage data flow between functional units and registers in a computer system. It covers the stages of scoreboard control, including issue, read operands, execution, write result, and instruction status. The document also discusses pipeline latencies and the impact of structural hazards on instruction execution.
Typology: Study notes
1 / 25
This page cannot be seen from the preview
Don't miss anything!


















50
51
52
53
56
WAR
57
58
59
Int ALU
Register File
Int ALU
FP multiply
FP divide
Int Divide
62
Int ALU
Register File
Int ALU
FP multiply
FP divide
Int Divide
63
Int ALU
Register File
Int ALU
FP multiply
FP divide
Int Divide
64
Int ALU
Register File
Int ALU
FP multiply
FP divide
Int Divide
65
68
69
70
71
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 LD F2 45+ R MULT F0 F2 F SUBD F8 F6 F DIVD F10 F0 F ADDD F6 F8 F
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer Yes Ld F6 R2 Yes Mult1 No Mult2 No Add No Divide No
74
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Int
CLOCK 2
Issue 2nd LD?
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 LD F2 45+ R MULT F0 F2 F SUBD F8 F6 F DIVD F10 F0 F ADDD F6 F8 F
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer Yes Ld F6 R2 Yes Mult1 No Mult2 No Add No Divide No
75
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Int
CLOCK 3 - single cycle load completes
What if we had a multi-cycle load???
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R MULT F0 F2 F SUBD F8 F6 F DIVD F10 F0 F ADDD F6 F8 F
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer Yes Ld F6 R2 Yes Mult1 No Mult2 No Add No Divide No
76
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Int
CLOCK 4 - load completes, write result (WAR?)
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R3 5 MULT F0 F2 F SUBD F8 F6 F DIVD F10 F0 F ADDD F6 F8 F
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer Yes Ld F2 R3 Yes Mult1 No Mult2 No Add No Divide No
77
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Int
CLOCK 5 - structural hazard for Int unit resolved
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R3 5 6 7 MULT F0 F2 F4 6 SUBD F8 F6 F2 7 DIVD F10 F0 F6 8 ADDD F6 F8 F
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer Yes Ld F2 R3 Yes Mult1 Yes Mult F0 F2 F4 Int No Yes Mult2 No Add Yes Sub F8 F6 F2 Int Yes No Divide Yes Div F10 F0 F6 M1 No Yes
80
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Mult1 Int Add Div
CLOCK 8(a) - immediately before LD completes
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R3 5 6 7 8 MULT F0 F2 F4 6 SUBD F8 F6 F2 7 DIVD F10 F0 F6 8 ADDD F6 F8 F
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer No Mult1 Yes Mult F0 F2 F4 Yes Yes Mult2 No Add Yes Sub F8 F6 F2 Yes Yes Divide Yes Div F10 F0 F6 M1 No Yes
81
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Mult1 Add Div
CLOCK 8(b) (the LD completes. M1 and ADD ready.)
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R3 5 6 7 8 MULT F0 F2 F4 6 9 SUBD F8 F6 F2 7 9 DIVD F10 F0 F6 8 ADDD F6 F8 F
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer No 10 Mult1 Yes Mult F0 F2 F4 Yes Yes Mult2 No 2 Add Yes Sub F8 F6 F2 Yes Yes Divide Yes Div F10 F0 F6 M1 No Yes
82
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Mult1 Add Div
CLOCK 9 - MULT and SUBD’s operands ready, go!
Can the ADDD issue next cycle? What happens?
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R3 5 6 7 8 MULT F0 F2 F4 6 9 SUBD F8 F6 F2 7 9 11 DIVD F10 F0 F6 8 ADDD F6 F8 F
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer No 8 Mult1 Yes Mult F0 F2 F4 Yes Yes Mult2 No 0 Add Yes Sub F8 F6 F2 Yes Yes Divide Yes Div F10 F0 F6 M1 No Yes
83
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Mult1 Add Div
CLOCK 11 - SUBD finishes before MULT
Can SUBD write its result?
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R3 5 6 7 8 MULT F0 F2 F4 6 9 SUBD F8 F6 F2 7 9 11 12 DIVD F10 F0 F6 8 ADDD F6 F8 F2 13 14
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer No 5 Mult1 Yes Mult F0 F2 F4 Yes Yes Mult2 No 2 Add Yes Add F6 F8 F2 Yes Yes Divide Yes Div F10 F0 F6 M1 No Yes
86
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Mult1 Add Div
CLOCK 14 - ADDD reads operands
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R3 5 6 7 8 MULT F0 F2 F4 6 9 SUBD F8 F6 F2 7 9 11 12 DIVD F10 F0 F6 8 ADDD F6 F8 F2 13 14
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer No 4 Mult1 Yes Mult F0 F2 F4 Yes Yes Mult2 No 1 Add Yes Add F6 F8 F2 Yes Yes Divide Yes Div F10 F0 F6 M1 No Yes
87
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Mult1 Add Div
CLOCK 15
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R3 5 6 7 8 MULT F0 F2 F4 6 9 SUBD F8 F6 F2 7 9 11 12 DIVD F10 F0 F6 8 ADDD F6 F8 F2 13 14 16
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer No 3 Mult1 Yes Mult F0 F2 F4 Yes Yes Mult2 No 0 Add Yes Add F6 F8 F2 Yes Yes Divide Yes Div F10 F0 F6 M1 No Yes
88
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Mult1 Add Div
CLOCK 16 - ADDD finishes
Instruction status Op d j k Issue Read Finish Write LD F6 34+ R2 1 2 3 4 LD F2 45+ R3 5 6 7 8 MULT F0 F2 F4 6 9 SUBD F8 F6 F2 7 9 11 12 DIVD F10 F0 F6 8 ADDD F6 F8 F2 13 14 16
Functional unit status Time Name Busy Op Fi Fj Fk Qj Qk Rj Rk Integer No 2 Mult1 Yes Mult F0 F2 F4 Yes Yes Mult2 No Add Yes Add F6 F8 F2 Yes Yes Divide Yes Div F10 F0 F6 M1 No Yes
89
Register result status F0 F2 F4 F6 F8 F10 F12 ... F FU Mult1 Add Div
CLOCK 17
Can we write result of ADDD? What about the Add FU?