Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Example 4 . 1 0 . 2 : Loop unrolling for multiple - issue pipelines. See how well loop unrolling and scheduling work in the
Example : Loop unrolling for multipleissue pipelines.
See how well loop unrolling and scheduling work in the example above. For simplicity, assume that the loop index is a multiple of four.
Answer
To schedule the loop without any delays, it turns out that we need to make four copies of the loop body. After unrolling and eliminating the unnecessary loop overhead instructions, the loop will contain four copies each of LDUR, ADD, and STUR, plus one SUBI, one CMP and one CBZ the figure below shows the unrolled and scheduled code.
During the unrolling process, the compiler introduced additional registers The goal of this process, called register renaming, is to eliminate dependences that are not true data dependences, but could either lead to potential hazards or prevent the compiler from flexibly scheduling the code. Consider how the unrolled code would look using only There would be repeated instances of LDUR XX# ADD X X X followed by STUR # but these sequences, despite using are actually completely independentno data values flow between one set of these instructions and the next set. This case is what is called an antidependence or name dependence, which is an ordering forced purely by the reuse of a name, rather than a real data dependence that is also called a true dependence.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started