Lect 06
Lect 06
• HW #2
• Project Selection by October 2
– Your own ideas?
• Short proposal due October 2
– Content: problem definition, goal of project, metric for success
– 3 - 5 page document
– 5 - 10 minute presentation
• Status report due November 1.
– document only
• Final report due December 6
– 8-10 page document
– 15-20 minute presentation
Today
• SW parallelism dependencies defined for program,
hazards if HW cannot resolve dependencies
• SW dependencies/Compiler sophistication determine
if compiler can unroll loops
– Memory dependencies hardest to determine
1 Loop: LD F0,0(R1)
2 LD F6,-8(R1)
• What assumptions
3 LD F10,-16(R1) made when moved
4 LD F14,-24(R1) code?
5 ADDD F4,F0,F2 – OK to move store past
6 ADDD F8,F6,F2 SUBI even though changes
7 ADDD F12,F10,F2 register
8 ADDD F16,F14,F2 – OK to move loads before
9 SD 0(R1),F4 stores: get right data?
10 SD -8(R1),F8 – When is it safe for
11 SD -16(R1),F12 compiler to do such
12 SUBI R1,R1,#32 changes?
13 BNEZ R1,LOOP
14 SD 8(R1),F16 ; 8-32 = -24
Load FP op
Buffers queue
Operand
Bus
Store
Buffers
To Memory
FP adders FP multipliers
• 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
Loop: LD F0 0 R1
MULTD F4 F0 F2
SD F4 0 R1
SUBI R1 R1 #8
BNEZ R1 Loop