WAW Hazards In FP MIPS Pipeline - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

WAW Hazards In FP MIPS Pipeline

Description:

Mult is issued. No. 7. Issue Read operands Execution complete ... Mult in execution (1 out of 10) Sub in execution (1 out of 2) Div is stalled waiting for F0 ... – PowerPoint PPT presentation

Number of Views:114
Avg rating:3.0/5.0
Slides: 42
Provided by: leigh63
Category:
Tags: mips | waw | hazards | mult | pipeline

less

Transcript and Presenter's Notes

Title: WAW Hazards In FP MIPS Pipeline


1
Time 1
Issue first load
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
L.D F2, 45(R3)
MUL.D F0, F2, F4
SUB.D F8, F6, F2
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
Yes
Load
F6
R2
Yes
FP Mult1
FP Mult2
FP Add
FP Div
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Integer
2
Time 2
First load reads operands
Second load cannot be issued due to structural
hazard
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
L.D F2, 45(R3)
MUL.D F0, F2, F4
SUB.D F8, F6, F2
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
Yes
Load
F6
R2
Yes
No
FP Mult1
FP Mult2
FP Add
FP Div
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Integer
3
Time 3
First load completes execution
Second load cannot be issued due to structural
hazard
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
MUL.D F0, F2, F4
SUB.D F8, F6, F2
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
Yes
Load
F6
R2
No
FP Mult1
FP Mult2
FP Add
FP Div
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Integer
4
Time 4
First load writes the result and frees ALU
Second load cannot be issued due to structural
hazard
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
MUL.D F0, F2, F4
SUB.D F8, F6, F2
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
Yes
Load
F6
R2
No
FP Mult1
FP Mult2
FP Add
FP Div
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Integer
5
Time 5
Second load is issued
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
MUL.D F0, F2, F4
SUB.D F8, F6, F2
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
Yes
Load
F2
R3
Yes
FP Mult1
FP Mult2
FP Add
FP Div
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Integer
6
Time 6
Second load reads operands
Mult is issued
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
MUL.D F0, F2, F4
?
SUB.D F8, F6, F2
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
Yes
Load
F2
R3
Yes
No
FP Mult1
No
Yes
Integer
Yes
Mult
F0
F2
F4
FP Mult2
FP Add
FP Div
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Integer
Mult1
7
Time 7
Second load completes execution
Mult is stalled waiting for F2
Instruction status
Sub is issued
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
SUB.D F8, F6, F2
?
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
Yes
Load
F2
R3
No
FP Mult1
No
Yes
Integer
Yes
Mult
F0
F2
F4
FP Mult2
FP Add
Yes
Integer
No
Sub
F8
F6
F2
Yes
FP Div
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Add
Integer
Mult1
8
Time 8
Second load writes result
Mult is stalled waiting for F2
Sub is stalled waiting for F2
Instruction status
Div is issued
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
SUB.D F8, F6, F2
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
Yes
Load
F2
R3
No
FP Mult1
No
Yes
Yes
Integer
Yes
Mult
F0
F2
F4
FP Mult2
FP Add
Yes
Integer
No
Sub
F8
F6
F2
Yes
Yes
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
Integer
9
Time 9
Mult reads operands
Sub reads operands
Div is stalled waiting for F0
Instruction status
Add cannot be issueddue to structural hazard
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
SUB.D F8, F6, F2
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
Yes
Yes
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
FP Add
Yes
No
Yes
Yes
Sub
F8
F6
F2
No
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
10
Time 10
Mult in execution (1 out of 10)
Sub in execution (1 out of 2)
Div is stalled waiting for F0
Instruction status
Add cannot be issueddue to structural hazard
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
19
SUB.D F8, F6, F2
11
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
FP Add
Yes
No
Sub
F8
F6
F2
No
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
11
Time 11
Mult in execution (2 out of 10)
Sub completes execution
Div is stalled waiting for F0
Instruction status
Add cannot be issueddue to structural hazard
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
19
SUB.D F8, F6, F2
11
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
FP Add
Yes
No
Sub
F8
F6
F2
No
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
12
Time 12
Mult in execution (3 out of 10)
Sub writes result, frees adder
Div is stalled waiting for F0
Instruction status
Add cannot be issueddue to structural hazard
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
19
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
FP Add
Yes
No
Sub
F8
F6
F2
No
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Divide
Add
13
Time 13
Add is issued
Mult in execution (4 out of 10)
Div is stalled waiting for F0
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
19
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
Add
F6
F8
F2
FP Add
Yes
Yes
Yes
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
14
Time 14
Mult in execution (5 out of 10)
Div is stalled waiting for F0
Add reads operands
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
19
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
Add
F6
F8
F2
FP Add
Yes
No
Yes
Yes
No
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
15
Time 15
Mult in execution (6 out of 10)
Div is stalled waiting for F0
Add in execution (1 out of 2)
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
19
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
16
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
Add
F6
F8
F2
FP Add
Yes
No
No
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
16
Time 16
Mult in execution (7 out of 10)
Div is stalled waiting for F0
Add completes execution
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
19
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
?
16
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
Add
F6
F8
F2
FP Add
Yes
No
No
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
17
Time 17
Mult in execution (8 out of 10)
Div is stalled waiting for F0
Add is stalled, WAR hazard
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
?
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
Add
F6
F8
F2
FP Add
Yes
No
No
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
18
Time 19
Mult completes execution
Div is stalled waiting for F0
Add is stalled, WAR hazard
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
?
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
?
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
Add
F6
F8
F2
FP Add
Yes
No
No
FP Div
Div
F10
F0
Yes
Mult1
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Add
Divide
19
Time 20
Mult writes result
Div is stalled waiting for F0
Add is stalled, WAR hazard
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
?
?
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
?
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
No
No
Yes
Mult
F0
F2
F4
FP Mult2
Add
F6
F8
F2
FP Add
Yes
No
No
FP Div
Div
F10
F0
Yes
Mult1
No
Yes
F6
Yes
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Mult1
Divide
Add
20
Time 21
Div reads operands
Add is stalled, WAR hazard
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
?
?
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
?
ADD.D F6, F8, F2
?
?
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
FP Mult2
Add
F6
F8
F2
FP Add
Yes
No
No
FP Div
Div
F10
F0
Yes
No
Yes
F6
Yes
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Divide
Add
21
Time 22
Div in execution (1 out of 40)
Add writes result
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
?
?
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
61
?
?
ADD.D F6, F8, F2
?
?
?
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
FP Mult2
Add
F6
F8
F2
FP Add
Yes
No
No
FP Div
Div
F10
F0
No
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Add
Divide
22
Time 61
Div completes execution
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
?
?
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
?
?
ADD.D F6, F8, F2
?
?
?
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
FP Mult2
FP Add
FP Div
Div
F10
F0
No
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Divide
23
Time 62
Div writes result
Instruction status
Issue Read operands Execution complete
Write result
L.D F6, 34(R2)
?
?
?
?
L.D F2, 45(R3)
?
?
?
?
MUL.D F0, F2, F4
?
?
?
?
SUB.D F8, F6, F2
?
?
?
?
DIV.D F10, F0, F6
?
?
?
?
ADD.D F6, F8, F2
?
?
?
?
Functional unit status
Busy Op Fi Fj Fk
Qj Qk Rj Rk
Integer ALU
FP Mult1
FP Mult2
FP Add
FP Div
Div
F10
F0
No
Yes
F6
No
Register result status
F0 F2 F4 F6
F8 F10 F12
Functional unit
Divide
24
Tomasulos Algorithm
  • Use reservation stations that will hold operands
    for instructions waiting to issue
  • Reservation station fetches the operand as soon
    as it is available
  • Pending instructions read operands from
    reservation stations
  • When writes overlap in execution, only the last
    write actually updates the register

25
Tomasulos Algorithm
Frominstruction unit
Common data bus
Instructionqueue
FP registers
LOAD-STOREOPERATIONS
Store buffers
FPOPERATIONS
Load buffers
Address unit
4 3 2 1
4 3 2 1
Reservationstations
Data
Address
Memory unit
FP adders
FP multipliers
26
Tomasulos Algorithm
  • Each reservation station holds the opcode for the
    pending instruction and either operand values or
    names of reservation stations that will provide
    them
  • Load and store buffers hold data and addresses
    for memory access
  • Transfer of all data goes over the common data bus

27
Tomasulos Algorithm
  • Each reservation station has seven fields
  • Op operation to perform
  • Qj, Qk reservation station tags that will
    produce operands (0 indicates the operand is
    ready)
  • Vj, Vk operand values
  • A immediate field and later effective address
    of load/store instruction
  • Busy this reservation station and its
    functional unit are occupied
  • Register file has a field
  • Qi tag of reservation station computing the
    result

28
Time 1
First load is issued
Instruction status
Issue Execute Write result
L.D F6, 34(R2)
?
L.D F2, 45(R3)
MUL.D F0, F2, F4
SUB.D F8, F2, F6
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Reservation stations
Busy Op Vj Vk
Qj Qk A
yes
Load1
Load
RegsR2
34
Load2
Add1
Add2
Add3
Mult1
Mult2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Load1
29
Time 2
First load calculates address
Second load is issued
Instruction status
Issue Execute Write result
L.D F6, 34(R2)
?
?
L.D F2, 45(R3)
?
MUL.D F0, F2, F4
SUB.D F8, F2, F6
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Reservation stations
Busy Op Vj Vk
Qj Qk A
yes
Load1
Load
34
RegsR2

yes
Load2
RegsR3
45
Load
Add1
Add2
Add3
Mult1
Mult2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Load1
Load2
30
Time 3
First load reads from memory
Second load calculates address
Instruction status
Mult is issued
Issue Execute Write result
L.D F6, 34(R2)
?
?
L.D F2, 45(R3)
?
?
MUL.D F0, F2, F4
?
SUB.D F8, F2, F6
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Reservation stations
Busy Op Vj Vk
Qj Qk A
yes
Load1
Load
RegsR234
yes
Load2
RegsR3
45

Load
Add1
Add2
Add3
RegsF4
Mult1
yes
Load2
Mult
Mult2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Load1
Load2
Mult1
31
Time 4
First load writes result
Second load reads from memory
Instruction status
Mul is stalled
Sub is issued
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
MUL.D F0, F2, F4
?
SUB.D F8, F2, F6
?
DIV.D F10, F0, F6
ADD.D F6, F8, F2
Reservation stations
Busy Op Vj Vk
Qj Qk A
yes
Load1
Load
RegsR234
yes
Load2
RegsR345
Load
Load2
Add1
yes
Sub
Mem34RegsR2
Add2
Add3
RegsF4
Mult1
yes
Load2
Mult
Mult2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Load2
Mult1
Add1
Load1
32
Time 5
Second load writes result
Mult is stalled
Sub is stalled
Instruction status
Div is issued
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
SUB.D F8, F2, F6
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
yes
Load2
RegsR345
Load
Add1
yes
Sub
Load2
Mem45RegsR3
Mem34RegsR2
Add2
Add3
RegsF4
Mult1
yes
Load2
Mult
Mem45RegsR3
yes
Mult1
Mult2
Div
Mem34RegsR2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult1
Add1
Mult2
Load2
33
Time 6
Mult is executed (1 out of 10)
Sub is executed (1 out of 2)
Div is stalled
Instruction status
Add is issued
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
?
15
SUB.D F8, F2, F6
?
?
7
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
Load2
Add1
yes
Sub
Mem45RegsR3
Mem34RegsR2
Add2
Add
Add1
yes
Mem45RegsR3
Add3
Mult1
yes
Mult
RegsF4
Mem45RegsR3
yes
Mult1
Mult2
Div
Mem34RegsR2
Register result status
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult1
Add1
Mult2
Add2
34
Time 7
Mult is executed (2 out of 10)
Sub is executed (2 out of 2)
Div is stalled
Instruction status
Add is stalled
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
?
15
SUB.D F8, F2, F6
?
?
7
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
Load2
Add1
yes
Sub
Mem45RegsR3
Mem34RegsR2
Add2
Add
Add1
yes
Mem45RegsR3
Add3
Mult1
yes
Mult
RegsF4
Mem45RegsR3
yes
Mult1
Mult2
Div
Mem34RegsR2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult1
Add1
Mult2
Add2
35
Time 8
Mult is executed (3 out of 10)
XMem34RegsR2-Mem45RegsR3
Sub writes result
Div is stalled
Instruction status
Add is stalled
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
?
15
SUB.D F8, F2, F6
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
Load2
Add1
yes
Sub
Mem45RegsR3
Mem34RegsR2
Add2
Add
Add1
yes
X
Mem45RegsR3
Add3
Mult1
yes
Mult
RegsF4
Mem45RegsR3
yes
Mult1
Mult2
Div
Mem34RegsR2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult1
Mult2
Add2
Add1
36
Time 9
Mult is executed (4 out of 10)
Div is stalled
Add is executed (1 out of 2)
Instruction status
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
?
15
SUB.D F8, F2, F6
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
?
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
Load2
Add1
Add2
Add
yes
X
Mem45RegsR3
Add3
Mult1
yes
Mult
RegsF4
Mem45RegsR3
yes
Mult1
Mult2
Div
Mem34RegsR2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult1
Mult2
Add2
37
Time 10
Mult is executed (5 out of 10)
Div is stalled
Add is executed (2 out of 2)
Instruction status
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
?
15
SUB.D F8, F2, F6
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
?
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
Load2
Add1
Add2
Add
yes
X
Mem45RegsR3
Add3
Mult1
yes
Mult
RegsF4
Mem45RegsR3
yes
Mult1
Mult2
Div
Mem34RegsR2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult1
Mult2
Add2
38
Time 11
Mult is executed (6 out of 10)
Div is stalled
Add writes result
Instruction status
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
?
15
SUB.D F8, F2, F6
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
?
?
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
Load2
Add1
Add2
Add
yes
X
Mem45RegsR3
Add3
Mult1
yes
Mult
RegsF4
Mem45RegsR3
yes
Mult2
Div
Mult1
Mem34RegsR2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult1
Mult2
Add2
39
Time 16
Mult writes result
YMem45RegsR3RegsF4
Div is stalled
Instruction status
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
?
?
SUB.D F8, F2, F6
?
?
?
DIV.D F10, F0, F6
?
ADD.D F6, F8, F2
?
?
?
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
Load2
Add1
Add2
Add3
Mult1
yes
Mult
RegsF4
Mem45RegsR3
yes
Y
Mult2
Div
Mult1
Mem34RegsR2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult2
Mult1
40
Time 17
Div is executed (1 out of 40)
Instruction status
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
?
?
SUB.D F8, F2, F6
?
?
?
DIV.D F10, F0, F6
?
?
56
ADD.D F6, F8, F2
?
?
?
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
Load2
Add1
Add2
Add3
Mult1
yes
Y
Mult2
Div
Mem34RegsR2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult2
41
Time 57
Div writes result
Instruction status
Issue Execute Write result
L.D F6, 34(R2)
?
?
?
L.D F2, 45(R3)
?
?
?
MUL.D F0, F2, F4
?
?
?
SUB.D F8, F2, F6
?
?
?
DIV.D F10, F0, F6
?
?
?
ADD.D F6, F8, F2
?
?
?
Reservation stations
Busy Op Vj Vk
Qj Qk A
Load1
Load2
Add1
Add2
Add3
Mult1
yes
Y
Mult2
Div
Mem34RegsR2
Register result status
F0 F2 F4 F6
F8 F10 F12
Qi
Mult2
Write a Comment
User Comments (0)
About PowerShow.com