Dynamic Scheduling Using Tomasulo's Approach: - A Big Picture
Dynamic Scheduling Using Tomasulo's Approach: - A Big Picture
A big picture
Focus on FP and load/store, can be easily extended (for example, integer, branch, etc) 4 Steps: Fetch, Issue, Execute, Write Result
Each steps can take more than one cycles
Reservation stations
Associated with functional units Hold issued instructions awaiting executions at that unit Provide the values for the insts or the name of other reservations stations that will provide the values
Issue
In-order issue: get the next instruction from instruction queue (FIFO) Issuing the next instruction if a matching reservation station is available Keeping track of the availability of operands Renaming registers
Register Field
Qi: which reservation station has the operations whose result should be stored into this register
Example
L.D L.D Mul.D Sub.D Div.D Add.D F6, 34(R2) F2, 45(R3) F0, F2, F4 F8, F2, F6 F10, F0, F6 F6, F8, F2 41
Assume Execution Cycles: load 2 cycle, add 3 cycles, mul 11 cycles, div cycles
Assume Execution Cycles: load 2 cycle, add 3 cycles, mul 11 cycles, div 41 cycles
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Add1 No Add2 No Add3 No Mult1 No Mult2 No
Op
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
Yes No No 34+R2
Reservation Stations:
Time Name Busy Add1 No Add2 No Add3 No Mult1 No Mult2 No
Op
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
Load1
F8
F10
F12
...
F30
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
Yes Yes No 34+R2 45+R3
Reservation Stations:
Time Name Busy Add1 No Add2 No Add3 No Mult1 No Mult2 No
Op
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
Load2
F4
F6
Load1
F8
F10
F12
...
F30
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
Yes Yes No 34+R2 45+R3
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No Mult1 Yes MULTD Mult2 No
S1 Vj
S2 Vk
RS Qj
RS Qk
R(F4) Load2
F0
F2
F4
F6
Load1
F8
F10
F12
...
F30
Mult1 Load2
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No Yes No 45+R3
Reservation Stations:
Time Name Busy Op Add1 Yes SUBD M(A1) Load2 Add2 No Add3 No Mult1 Yes MULTD R(F4) Load2 Mult2 No
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 Load2
M(A1) Add1
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op 2 Add1 Yes SUBD M(A1) M(A2) Add2 No Add3 No 10 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 M(A2)
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op 1 Add1 Yes SUBD M(A1) M(A2) Add2 Yes ADDD M(A2) Add1 Add3 No 9 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
Add2
F8
F10
F12
...
F30
Mult1 M(A2)
Add1 Mult2
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op 0 Add1 Yes SUBD M(A1) M(A2) Add2 Yes ADDD M(A2) Add1 Add3 No 8 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
Add2
F8
F10
F12
...
F30
Mult1 M(A2)
Add1 Mult2
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No 2 Add2 Yes ADDD (M-M) M(A2) Add3 No 7 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 M(A2)
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No 1 Add2 Yes ADDD (M-M) M(A2) Add3 No 6 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 M(A2)
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No 0 Add2 Yes ADDD (M-M) M(A2) Add3 No 5 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 M(A2)
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No 4 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 M(A2)
(M-M+M)M-M) Mult2 (
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No 3 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 M(A2)
(M-M+M)M-M) Mult2 (
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No 2 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 M(A2)
(M-M+M)M-M) Mult2 (
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No 1 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 M(A2)
(M-M+M)M-M) Mult2 (
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No 0 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1
S1 Vj
S2 Vk
RS Qj
RS Qk
F0
F2
F4
F6
F8
F10
F12
...
F30
Mult1 M(A2)
(M-M+M)M-M) Mult2 (
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No Mult1 No 40 Mult2 Yes DIVD
S1 Vj
S2 Vk
RS Qj
RS Qk
M*F4 M(A1)
F0
F2
F4
F6
F8
F10
F12
...
F30
M*F4 M(A2)
(M-M+M)M-M) Mult2 (
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No Mult1 No 1 Mult2 Yes DIVD
S1 Vj
S2 Vk
RS Qj
RS Qk
M*F4 M(A1)
F0
F2
F4
F6
F8
F10
F12
...
F30
M*F4 M(A2)
(M-M+M)M-M) Mult2 (
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No Mult1 No 0 Mult2 Yes DIVD
S1 Vj
S2 Vk
RS Qj
RS Qk
M*F4 M(A1)
F0
F2
F4
F6
F8
F10
F12
...
F30
M*F4 M(A2)
(M-M+M)M-M) Mult2 (
Load=2
Add=3
Mult=11
Div=41
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Busy Address
No No No
Reservation Stations:
Time Name Busy Op Add1 No Add2 No Add3 No Mult1 No No Mult2 Yes DIVD
S1 Vj
S2 Vk
RS Qj
RS Qk
M*F4 M(A1)
F0
F2
F4
F6
F8
F10
F12
...
F30
M*F4 M(A2)
(M-M+M)M-M) Result (
Load=2
Add=3
Mult=11
Div=41