Explanations of each stages, A big...

29
1 Lecture 6: Tomasulo Algorithm (II) Explanations of each stages, A big example

Transcript of Explanations of each stages, A big...

Page 1: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

1

Lecture 6: Tomasulo Algorithm (II)

Explanations of each stages, A big example

Page 2: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

2

Three Stages of Tomasulo Algorithm1. Issue—get instruction from FP Op Queue

If reservation station free (no structural hazard), control issues instr & sends operands (renames registers).

2.Execution—operate on operands (EX)When both operands ready then execute;if not ready, watch Common Data Bus for result

3.Write result—finish execution (WB)Write on Common Data Bus to all awaiting units; mark reservation station available

Issue: build dependence for new instWriteback: Wakeup dependent instructions

Adapted from UCB CS252 S98

Page 3: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

3

Issue Stage and Renaming TableRenames its two source registers (source renaming)Assigns it to a free RSUpdates Renaming table (dest renaming)Also decodes the inst and read register values in parallel

How would the following inst be renamed?ADD $16, $8, $9ADD $17, $16, $16

Page 4: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

4

Execute Stage

Only “ready” instructions can join the competitionThere is a select logic to select instructions for FU execution

Some policy may be used, e.g. age basedNon-ready instructions can be “waken up” during writeback of its parent inst

Page 5: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

5

Writeback and Common Data BusNormal data bus: data + destination (“go to” bus)Common data bus: data + source (“come from” bus)

64 bits of data + 4 bits of source index (tag)Does the broadcast to every instruction in the fly

Child instructions do tag matching and update their ready bits and value fields (if the tag matches theirs)

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 6: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

6

Code ExampleLD F6,34(R2)LD F2,45(R3)MULTI F0,F2,F4SUBD F8,F6,F2DIVD F10,F0,F6ADD F6,F8,F2

LD1 LD2

MULTISUBD

DIVDADD

Operation latencies: load/store 2 cycles,Add/sub 2 cycles, Mult 10 cycles, divide 40 cycle

Page 7: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

7

Tomasulo Example Cycle 0

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 Load1 NoLD F2 45+ R3 Load2 NoMULT F0 F2 F4 Load3 NoSUBD F8 F6 F2DIVD F10 F0 F6ADDD F6 F8 F2Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No0 Add3 No0 Mult1 No0 Mult2 No

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

0 FU

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 8: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

8

Tomasulo Example Cycle 1

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 Load1 No 34+R2LD F2 45+ R3 Load2 NoMULT F0 F2 F4 Load3 NoSUBD F8 F6 F2DIVD F10 F0 F6ADDD F6 F8 F2Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No

Add3 No0 Mult1 No0 Mult2 No

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

1 FU Load1

Yes

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 9: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

9

Tomasulo Example Cycle 2

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 Load1 Yes 34+R2LD F2 45+ R3 2 Load2 Yes 45+R3MULT F0 F2 F4 Load3 NoSUBD F8 F6 F2DIVD F10 F0 F6ADDD F6 F8 F2Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No

Add3 No0 Mult1 No0 Mult2 No

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

2 FU Load2 Load1

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 10: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

10

Tomasulo Example Cycle 3

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 Load1 Yes 34+R2LD F2 45+ R3 2 Load2 Yes 45+R3MULT F0 F2 F4 3 Load3 NoSUBD F8 F6 F2DIVD F10 F0 F6ADDD F6 F8 F2Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No

Add3 No0 Mult1 Yes MULTD R(F4) Load20 Mult2 No

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

3 FU Mult1 Load2 Load1

• Note: registers names are removed (“renamed”) in Reservation Stations

• Load1 completing; what is waiting for Load1?Adapted from UCB CS252 S98, Copyright 1998 USB

Page 11: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

11

Tomasulo Example Cycle 4

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 Load2 Yes 45+R3MULT F0 F2 F4 3 Load3 NoSUBD F8 F6 F2 4DIVD F10 F0 F6ADDD F6 F8 F2Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 Yes SUBD M(34+R2) Load20 Add2 No

Add3 No0 Mult1 Yes MULTD R(F4) Load20 Mult2 No

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

4 FU Mult1 Load2 M(34+R2) Add1

• Load2 completing; what is waiting for it?

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 12: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

12

Tomasulo Example Cycle 5

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 Load3 NoSUBD F8 F6 F2 4DIVD F10 F0 F6 5ADDD F6 F8 F2Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk2 Add1 Yes SUBD M(34+R2) M(45+R3)0 Add2 No

Add3 No10 Mult1 Yes MULTD M(45+R3) R(F4)

0 Mult2 Yes DIVD M(34+R2) Mult1Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

5 FU Mult1 M(45+R3) M(34+R2) Add1 Mult2

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 13: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

13

Tomasulo Example Cycle 6

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 Load3 NoSUBD F8 F6 F2 4DIVD F10 F0 F6 5ADDD F6 F8 F2 6Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk1 Add1 Yes SUBD M(34+R2) M(45+R3)0 Add2 Yes ADDD M(45+R3) Add1

Add3 No9 Mult1 Yes MULTD M(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

6 FU Mult1 M(45+R3) Add2 Add1 Mult2

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 14: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

14

Tomasulo Example Cycle 7

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 Load3 NoSUBD F8 F6 F2 4 7DIVD F10 F0 F6 5ADDD F6 F8 F2 6Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 Yes SUBD M(34+R2) M(45+R3)0 Add2 Yes ADDD M(45+R3) Add1

Add3 No8 Mult1 Yes MULTD M(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

7 FU Mult1 M(45+R3) Add2 Add1 Mult2

• Add1 completing; what is waiting for it?

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 15: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

15

Tomasulo Example Cycle 8

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULTF0 F2 F4 3 Load3 NoSUBDF8 F6 F2 4 7 8DIVD F10 F0 F6 5ADDDF6 F8 F2 6Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No 2 Add2 Yes ADDD M()-M() M(45+R3)0 Add3 No7 Mult1 Yes MULTDM(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

8 FU Mult1 M(45+R3) Add2 M()-M() Mult2

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 16: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

16

Tomasulo Example Cycle 9

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 Load3 NoSUBD F8 F6 F2 4 7 8DIVD F10 F0 F6 5ADDD F6 F8 F2 6Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No1 Add2 Yes ADDD M()–M() M(45+R3)0 Add3 No6 Mult1 Yes MULTD M(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

9 FU Mult1 M(45+R3) Add2 M()–M() Mult2

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 17: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

17

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 Load3 NoSUBD F8 F6 F2 4 7 8DIVD F10 F0 F6 5ADDD F6 F8 F2 6 10Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 Yes ADDD M()–M() M(45+R3)0 Add3 No5 Mult1 Yes MULTD M(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

10 FU Mult1 M(45+R3) Add2 M()–M() Mult2

Tomasulo Example Cycle 10

• Add2 completing; what is waiting for it?

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 18: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

18

Tomasulo Example Cycle 11

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULTF0 F2 F4 3 Load3 NoSUBDF8 F6 F2 4 7 8DIVD F10 F0 F6 5ADDDF6 F8 F2 6 10 11Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No0 Add3 No4 Mult1 Yes MULTDM(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

11 FU Mult1 M(45+R3) (M-M)+M() M()ŠM() Mult2

• Write result of ADDD here vs. scoreboard?Adapted from UCB CS252 S98, Copyright 1998 USB

Page 19: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

19

Tomasulo Example Cycle 12

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMUL F0 F2 F4 3 Load3 NoSUB F8 F6 F2 4 7 8DIVDF10 F0 F6 5ADD F6 F8 F2 6 10 11Reservation Stations S1 S2 RS for j RS for k

Time Name BusyOp Vj Vk Qj Qk0 Add1 No0 Add2 No0 Add3 No3 Mult1 Yes MULTM(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

12 FU Mult1 M(45+R3) (M-M)+M()M()–M(Mult2

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 20: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

20

Tomasulo Example Cycle 13

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 Load3 NoSUBD F8 F6 F2 4 7 8DIVD F10 F0 F6 5ADDD F6 F8 F2 6 10 11Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No

Add3 No2 Mult1 Yes MULTD M(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

13 FU Mult1 M(45+R3) (M–M)+M() M()–M() Mult2

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 21: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

21

Tomasulo Example Cycle 14

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 Load3 NoSUBD F8 F6 F2 4 7 8DIVD F10 F0 F6 5ADDD F6 F8 F2 6 10 11Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No0 Add3 No1 Mult1 Yes MULTD M(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

14 FU Mult1 M(45+R3) (M–M)+M() M()–M() Mult2

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 22: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

22

Tomasulo Example Cycle 15

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 15 Load3 NoSUBD F8 F6 F2 4 7 8DIVD F10 F0 F6 5ADDD F6 F8 F2 6 10 11Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No

Add3 No0 Mult1 Yes MULTD M(45+R3) R(F4)0 Mult2 Yes DIVD M(34+R2) Mult1

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

15 FU Mult1 M(45+R3) (M–M)+M() M()–M() Mult2

• Mult1 completing; what is waiting for it?

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 23: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

23

Tomasulo Example Cycle 16

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 15 16 Load3 NoSUBD F8 F6 F2 4 7 8DIVD F10 F0 F6 5ADDD F6 F8 F2 6 10 11Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No

Add3 No0 Mult1 No

40 Mult2 Yes DIVD M*F4 M(34+R2)Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

16 FU M*F4 M(45+R3) (M–M)+M() M()–M() Mult2

• Note: Just waiting for divide

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 24: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

24

Tomasulo Example Cycle 55

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 15 16 Load3 NoSUBD F8 F6 F2 4 7 8DIVD F10 F0 F6 5ADDD F6 F8 F2 6 10 11Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No

Add3 No0 Mult1 No1 Mult2 Yes DIVD M*F4 M(34+R2)

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

55 FU M*F4 M(45+R3) (M–M)+M() M()–M() Mult2

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 25: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

25

Tomasulo Example Cycle 56

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 15 16 Load3 NoSUBD F8 F6 F2 4 7 8DIVD F10 F0 F6 5 56ADDD F6 F8 F2 6 10 11Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No

Add3 No0 Mult1 No0 Mult2 Yes DIVD M*F4 M(34+R2)

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

56 FU M*F4 M(45+R3) (M–M)+M() M()–M() Mult2

• Mult 2 completing; what is waiting for it?

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 26: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

26

Tomasulo Example Cycle 57

Instruction status Execution WriteInstruction j k Issue complete Result Busy AddressLD F6 34+ R2 1 3 4 Load1 NoLD F2 45+ R3 2 4 5 Load2 NoMULT F0 F2 F4 3 15 16 Load3 NoSUBD F8 F6 F2 4 7 8DIVD F10 F0 F6 5 56 57ADDD F6 F8 F2 6 10 11Reservation Stations S1 S2 RS for j RS for k

Time Name Busy Op Vj Vk Qj Qk0 Add1 No0 Add2 No

Add3 No0 Mult1 No0 Mult2 No

Register result statusClock F0 F2 F4 F6 F8 F10 F12 ... F30

57 FU M*F4 M(45+R3) (M–M)+M() M()–M() M*F4/M

• Again, in-oder issue, out-of-order execution, completion

Adapted from UCB CS252 S98, Copyright 1998 USB

Page 27: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

27

Review Dependences

How are dependences are enforced or removed in Tomasulo Algorithm?

Data dependences (RAW)Antidependence (WAR)Output Dependence (WAW)

Page 28: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

28

The Use of TagIn Tomasulo, RS and

load/store buffer index is used as tag.Renaming assign new inst a unique tagRS stores tags to preserve dependencesCDB broadcasts tag with data for data passing and wakeup

Why tag is so chosen?

What does tag really represent?

What else can be used as tag?

Page 29: Explanations of each stages, A big examplehome.eng.iastate.edu/~zzhang/courses/cpre585_f03/slides/... · 2004. 8. 13. · 2 Three Stages of Tomasulo Algorithm 1.Issue—get instruction

29

Tomasulo SummaryReservations stations:

Increases effective register numberDistributes scheduling logic

Register renaming: Avoids WAR and WAW dependence

Tag + Data broadcasting for waking up child instructions

Pros: can be effectively combined with speculative execution

Cons: CDB broadcasting adds one-cycle delay (addressed in modern instruction scheduling)

Adapted from UCB CS252 S98, Copyright 1998 USB