CS211Lecture6Module2

CS211Lecture6Module2 - CS 211: Computer Architecture...

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

View Full Document Right Arrow Icon
CS 211: Computer Architecture Lecture 6 Module 2 Exploiting Instruction Level Parallelism with Software Approaches Instructor: Morris Lancaster
Background image of page 1

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

View Full DocumentRight Arrow Icon
5/30/3008 CS 211 Lecture 6 2 Global Code Scheduling Used where body of an unrolled loop contains internal code flow Will require moving instructions across branches Objective is to compact a code fragment with internal control structure into the shortest possible sequence that preserves the data and control dependences. Data dependences require imposing a partial ordering Control dependences dictate what code cannot be moved across control boundaries
Background image of page 2
5/30/3008 CS 211 Lecture 6 3 Figure 4.8 A Common Control Flow
Background image of page 3

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

View Full DocumentRight Arrow Icon
5/30/3008 CS 211 Lecture 6 4 Global Scheduling Desire is to move the assignments to B and C earlier in the execution sequence, before the test of A. Perform these movements ensuring that neither the data flow nor the exception behavior is changes Exception behavior – compilers will not move certain classes of instructions
Background image of page 4
5/30/3008 CS 211 Lecture 6 5 Global Scheduling (continued) Can be extremely complex Movement of instructions can have impact in many areas Decision of how far to move the code can be complex Trade-offs can occur that are difficult to program for Selecting the candidate instruction to move is difficult Candidate methods Trace scheduling: Focusing on critical path Superblocks
Background image of page 5

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

View Full DocumentRight Arrow Icon
5/30/3008 CS 211 Lecture 6 6 Trace Scheduling Useful for processors with a large number of issues per clock, where simple loop unrolling may not be sufficient to uncover enough ILP to keep the processor busy. Take the costs of moving code on the less frequent paths Best used where profile information indicates significant differences in frequency between different paths and where the profile is correct independent of particular inputs to the program Only certain classes of programs meet these criteria
Background image of page 6
5/30/3008 CS 211 Lecture 6 7 Trace Scheduling (Two Steps) Trace selection Tries to find a likely sequence of basic blocks where the
Background image of page 7

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

View Full DocumentRight Arrow Icon
Image of page 8
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 21

CS211Lecture6Module2 - CS 211: Computer Architecture...

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

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