Optimal Software Pipelining with Rational Initiation Interval

We present a new approach to the loop scheduling problem with limited resources, known as software pipelining. The aproach improves previous solutions with regard to two important aspects: The initiation interval is treated as a rational variable, and the determination of it is an integral part of the solution. So far, was treated as an integer, or as a fraction of two separate integers which were held constant during optimization. Compared to previous research, our solution can provide significantly faster loop schedules, and a great reduction of the problem’s complexity and solution time. The approach supports heterogeneous processor architectures and pipelined functional units. The implementation of our approach as a single Integer Linear Program guarantees to attain the optimum loop schedule.