583L11 - EECS 583 Class 11 Instruction Scheduling...

Info iconThis preview shows pages 1–7. Sign up to view the full content.

View Full Document Right Arrow Icon
EECS 583 – Class 11 Instruction Scheduling University of Michigan October 12, 2011
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
- 1 - Reading Material + Announcements Today’s class » “The Importance of Prepass Code Scheduling for Superscalar and Superpipelined Processors,” P. Chang et al., IEEE Transactions on Computers, 1995, pp. 353-370. Next class » “Sentinel Scheduling for VLIW and Superscalar Processors”, S. Mahlke et al., ASPLOS-5, Oct. 1992, pp.238-247. Reminder: HW 2 – Speculative LICM » Due Week from Fri Get busy, go bug Daya if you are stuck! Class project proposals » Week of Oct 24: Daya and I will meet with each group to discuss informal project proposal » Signup sheet available next week » Think about partners/topic!
Background image of page 2
- 2 - Homework Problem From Last Time - Answer r1 = load(r2) r5 = r6 + 3 r6 = r5 + r1 r2 = r2 + 4 if (r2 < 400) goto loop loop: r1 = load(r2) r5 = r6 + 3 r6 = r5 + r1 r2 = r2 + 4 r1 = load(r2) r5 = r6 + 3 r6 = r5 + r1 r2 = r2 + 4 r1 = load(r2) r5 = r6 + 3 r6 = r5 + r1 r2 = r2 + 4 if (r2 < 400) goto loop loop: Optimize the unrolled loop Renaming Tree height reduction Ind/Acc expansion r1 = load(r2) r5 = r1 + 3 r6 = r6 + r5 r2 = r2 + 4 r11 = load(r2) r15 = r11 + 3 r6 = r6 + r15 r2 = r2 + 4 r21 = load(r2) r25 = r21 + 3 r6 = r6 + r25 r2 = r2 + 4 if (r2 < 400) goto loop loop: after renaming and tree height reduction r1 = load(r2) r5 = r1 + 3 r6 = r6 + r5 r11 = load(r2+4) r15 = r11 + 3 r16 = r16 + r15 r21 = load(r2+8) r25 = r21 + 3 r26 = r26 + r25 r2 = r2 + 12 if (r2 < 400) goto loop r6 = r6 + r16 r6 = r6 + r26 r16 = r26 = 0 loop: after acc and ind expansion
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
- 3 - From Last Time: Dependences Flow Output Anti r1 = r2 + r3 r4 = r1 * 6 r1 = r2 + r3 r1 = r4 * 6 r1 = r2 + r3 r2 = r5 * 6 Register Dependences Memory Dependences Mem-flow Mem-output Mem-anti store (r1, r2) r3 = load(r1) store (r1, r2) store (r1, r3) r2 = load(r1) store (r1, r3) Control (C1) if (r1 != 0) r2 = load(r1) Control Dependences
Background image of page 4
- 4 - From Last Time: Dependence Graph Represent dependences between operations in a block via a DAG » Nodes = operations » Edges = dependences Single-pass traversal required to insert dependences Example 1: r1 = load(r2) 2: r2 = r1 + r4 3: store (r4, r2) 4: p1 = cmpp (r2 < 0) 5: branch if p1 to BB3 6: store (r1, r2) 1 2 5 4 3 6 BB3:
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Dependence Graph Properties - Estart Estart = earliest start time, (as soon as possible - ASAP) » Schedule length with infinite resources (dependence height) » Estart = 0 if node has no predecessors
Background image of page 6
Image of page 7
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 25

583L11 - EECS 583 Class 11 Instruction Scheduling...

This preview shows document pages 1 - 7. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online