Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dynamic ILP: Scoreboard Professor Alvin R. Lebeck Computer Science 220 / ECE 252 Fall 2008.

Similar presentations


Presentation on theme: "Dynamic ILP: Scoreboard Professor Alvin R. Lebeck Computer Science 220 / ECE 252 Fall 2008."— Presentation transcript:

1 Dynamic ILP: Scoreboard Professor Alvin R. Lebeck Computer Science 220 / ECE 252 Fall 2008

2 2 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Precise Exceptions What is precise? –All instructions older than interrupt are complete –All instructions younger than interrupt haven’t started Simultaneous interrupts/exceptions Odd bits of state Out of order writes

3 3 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Review: CPI < 1 Superscalar: Issue & execute > 1 instruction/cycle In-order processor –Instructions move from D to E in program order –May finish execute out of order problem spots –fetch, branch prediction  trace cache? –decode (N 2 dependence cross-check) –execute (N 2 bypass)  clustering?

4 4 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Can we do better? Problem: Stall in ID stage if any data hazard. MULD F2, F3, F4Long latency… ADDD F1, F2, F3 ADDD F3, F4, F5 ADDD F1, F4, F5

5 5 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 HW Schemes: Instruction Parallelism Why in HW at run time? –Works when can’t know dependencies –Simpler Compiler –Code for one machine runs well on another machine Key Idea: Allow instructions behind stall to proceed DIVDF0, F2, F4 ADD F10, F0, F8 SUBD F8, F8, F14 –Enables out-of-order execution => out-of-order completion –ID stage check for both structural & data dependencies

6 6 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 HW Schemes: Instruction Parallelism Out-of-order execution divides ID stage: 1. Issue: decode instructions, check for structural hazards 2. Read: operands wait until no data hazards, then read operands Scoreboards allow instruction to execute whenever 1 & 2 hold, not waiting for prior instructions

7 7 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Implications Out-of-order completion => WAR, WAW hazards? Solutions for WAR –Queue both the operation and copies of its operands –Read registers only during Read Operands stage For WAW, must detect hazard: stall until other completes Need to have multiple instructions in execution phase => multiple execution units or pipelined execution units Scoreboard keeps track of dependencies, state or operations Scoreboard replaces ID, EX, WB with 4 stages

8 8 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Four Stages of Scoreboard Control 1. Issue: decode instructions & check for structural hazards (ID1, sometimes called dispatch) If a functional unit for the instruction is free and no other active instruction has the same destination register (WAW), the scoreboard issues the instruction to the functional unit and updates its internal data structure. If a structural or WAW hazard exists, then the instruction issue stalls, and no further instructions will issue until these hazards are cleared. 2. Read operands: wait until no data hazards, then read operands (ID2, sometimes called issue) A source operand is available if no earlier issued active instruction is going to write it, or if the register containing the operand is being written by a currently active functional unit. When the source operands are available, the scoreboard tells the functional unit to proceed to read the operands from the registers and begin execution. The scoreboard resolves RAW hazards dynamically in this step, and instructions may be sent into execution out of order.

9 9 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Four Stages of Scoreboard Control 3. Execution: operate on operands The functional unit begins execution upon receiving operands. When the result is ready, it notifies the scoreboard that it has completed execution. 4. Write Result: finish execution (WB) Once the scoreboard is aware that the functional unit has completed execution, the scoreboard checks for WAR hazards. If none, it writes results. If WAR, then it stalls the instruction. Example: DIVDF0,F2,F4 ADDDF10,F0,F8 SUBDF8,F8,F14 CDC 6600 scoreboard would stall SUBD until ADDD reads operands

10 10 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Three Parts of the Scoreboard 1. Instruction status: which of 4 steps the instruction is in 2. Functional unit status: Indicates the state of the functional unit (FU). 9 fields for each functional unit Busy--Indicates whether the unit is busy or not Op--Operation to perform in the unit (e.g., + or -) Fi--Destination register Fj, Fk--Source-register numbers Qj, Qk--Functional units producing source registers Fj, Fk Rj, Rk--Flags indicating when Fj, Fk are ready 3. Register result status: Indicates which functional unit will write each register, if one exists. Blank when no pending instructions will write that register

11 11 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 1

12 12 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 2

13 13 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 3

14 14 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 4

15 15 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 5

16 16 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 6

17 17 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 7

18 18 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 8a

19 19 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 8b

20 20 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 9

21 21 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 11

22 22 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 12

23 23 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 13

24 24 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 14

25 25 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 15

26 26 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 16

27 27 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 17

28 28 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 18

29 29 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 19

30 30 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 20

31 31 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 21

32 32 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 22 40 cycle Divide

33 33 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Example Cycle 61

34 34 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Scoreboard Summary Speedup 1.7 from compiler; 2.5 by hand BUT slow memory (no cache) Limitations of 6600 scoreboard –No forwarding –Limited to instructions in basic block (small window) –Number of functional units (structural hazards) –Wait for WAR hazards –Prevent WAW hazards How to design a datapath that eliminates these problems?

35 35 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo’s Algorithm: Another Dynamic Scheme For IBM 360/91 about 3 years after CDC 6600 Goal: High Performance without special compilers Differences between IBM 360 & CDC 6600 ISA –IBM has only 2 register specifiers/instr vs. 3 in CDC 6600 –IBM has 4 FP registers vs. 8 in CDC 6600 Differences between Tomasulo Algorithm & Scoreboard –Control & buffers distributed with Function Units vs. centralized in scoreboard; called “reservation stations” –Register specifiers in instructions replaced by pointers to reservation station buffer (Everything can be solved with level of indirection!) –HW renaming of registers to avoid WAR, WAW hazards –Common Data Bus broadcasts results to all FUs –Load and Stores treated as FUs as well

36 36 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Organization FP adders FP multipliers To Memory From Memory Load Buffers Store Buffers FP Registers From Instruction Unit FP op queue Operand Bus Common Data Bus (CDB)

37 37 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Op—Operation to perform in the unit (e.g., + or –) Qj, Qk—Reservation stations producing source registers Vj, Vk—Value of Source operands Rj, Rk—Flags indicating when Vj, Vk are ready Busy—Indicates reservation station and FU is busy Register result status—Indicates which functional unit will write each register, if one exists. Blank when no pending instructions that will write that register. Reservation Station Components

38 38 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 1.Issue—get instruction from FP Op Queue If reservation station free, the scoreboard issues instr & sends operands (renames registers). 2.Execution—operate on operands (EX) When both operands ready then execute; if not ready, watch CDB for result 3.Write result—finish execution (WB) Write on Common Data Bus to all awaiting units; mark reservation station available. Three Stages of Tomasulo Algorithm

39 39 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 0

40 40 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 1 Yes

41 41 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 2

42 42 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 3

43 43 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 4

44 44 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 5

45 45 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 6

46 46 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 7

47 47 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 8

48 48 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 9

49 49 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 10 6

50 50 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 11

51 51 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 12

52 52 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 13

53 53 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 14

54 54 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 15

55 55 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 16

56 56 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 17

57 57 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 18

58 58 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 57

59 59 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 58

60 60 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Example Cycle 59

61 61 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo vs. Scoreboard Is tomasulo better? Finish in 59 cycles vs. 61 for scoreboard, why? We do reach the divide 3 cycles earlier… Simultaneous read of operand for SUBD and MULT

62 62 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Loop Example Loop:LDF00R1 MULTDF4F0F2 SDF40R1 SUBIR1R1#8 BNEZR1Loop Multiply takes 4 clocks Loads may have cache misses

63 63 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 0

64 64 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 1

65 65 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 2

66 66 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 3

67 67 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 4

68 68 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 5

69 69 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 6

70 70 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 7

71 71 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 8

72 72 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 9

73 73 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 10

74 74 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 11

75 75 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 12

76 76 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 13

77 77 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 14

78 78 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 15

79 79 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 16

80 80 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 17

81 81 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 18

82 82 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 19

83 83 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 20

84 84 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Loop Example Cycle 21

85 85 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Tomasulo Summary Prevents Register as bottleneck Avoids WAR, WAW hazards of Scoreboard Allows loop unrolling in HW Not limited to basic blocks (provided branch prediction) Lasting Contributions –Dynamic scheduling –Register renaming –Load/store disambiguation

86 86 © 2008 Lebeck, Sorin, Roth, Hill, Wood, Sohi, Smith, Vijaykumar, Lipasti, Katz Computer Science 220 Next Time Tomasulo’s Algorithm


Download ppt "Dynamic ILP: Scoreboard Professor Alvin R. Lebeck Computer Science 220 / ECE 252 Fall 2008."

Similar presentations


Ads by Google