Time-Constrained Instruction Scheduling


Overview

This project investigates the problem of scheduling instructions (or unit-execution-time tasks) in the presence of arbitrary release-times and deadlines, precedence and latency constraints.

Release-times and deadlines constraints occur naturally in real-time applications, and can also be generated from decomposing a complex resource allocation problem typical in compiler optimizations. For example, by imposing an early deadline or a late release-time on an instruction using a critical register, the scheduler can reduce register pressure. Similarly, a complex global instruction scheduling problem may be decomposed into two or more simpler problems, such that latencies that cross the boundaries of the decomposed problems can be treated as release-times and deadlines in each of the subproblems.


Polynomial Solvability Results

In the paper A fast algorithm for scheduling time-constrained instructions on processors with ILP (PACT '98), I presented a generic algorithm for optimally scheduling basic block instances of the following forms:

Algorithmic Results

The polynomial complexity of instances (a), (b) and (f) are previously unknown. The above results subsume almost all previous known polynomially solvable instances in the area of deterministic scheduling with pipelines, latencies, deadlines and release-times, including previous results obtained by Bruno Jones and So [1980], Garey and Johnson [1976, 1977], Palem and Simons [1993] and, Finta and Liu[1999].

The generic algorithm is based on deadline modification and list-scheduling. Modified deadlines are computed via a particular relaxation method which can be shown to be a generalization of almost all previously deadline modification schemes, i.e. our algorithm can be seen as a unification result.

This algorithm runs in O(n^3 alpha(n)) time, where alpha(n) is the functional inverse of the Ackermann function. The runtime has since been improved to O(n^2 log(n) alpha(n)), and also extended to instances of the form:

Latencies of -1 can be used to model output- and anti- dependences, in situations where an instruction is allowed to start before or concurrent with another, but no later. These newer results are described in the following full report:

Related Applications

Some addition research, such as a time-constraint specification language for real-time compilation, have been done using this algorithm as a starting point. Electronic copies of this and other related papers can be obtained from the Trimaran project home page.
Back to my home page Validate this page