Scheduling time-constrained instructions on pipelined processors

In this work we investigate the problem of scheduling instructions on idealized microprocessors with multiple pipelines, in the presence of precedence constraints, release-times, deadlines, and latency constraints. A latency of <italic>l<subscrpt>ij</subscrpt></italic> specifies that there must be at least <italic>l<subscrpt>ij</subscrpt></italic> time-steps between the completion time of instruction <italic>i</italic> and the start time of instruction <italic>j</italic>. A latency of <italic>l<subscrpt>ij</subscrpt></italic>=−1 can be used to specify that <italic>j</italic> may be scheduled concurrently with <italic>i</italic> but not earlier. We present a generic algorithm that runs in <italic>O</italic>(<italic>n</italic><supscrpt>2</supscrpt>log<italic>n</italic>α(<italic>n</italic>)+<italic>ne</italic>) time, given<italic>n</italic> instructions and <italic>e</italic> edges in the precedence DAG, where α(<italic>n</italic>) is the functional inverse of the Ackermann function. Our algorithm can be used to construct feasible schedules for various classes of instances, including instances with the following configurations: (1) one pipeline, with individual release-times and deadlines and where the latencies between instructions are restricted to 0 and 1; (2) <italic>m</italic> pipelines, with individual release-times and deadlines, and monotone-interval order precedences; (3) two pipelines with latencies of −1 or 0, and release-times and deadlines; (4) one pipeline, latencies of 0 or 1 and individual processing times that are at least one; (5) <italic>m</italic> pipelines, intree precedences, constant latencies, and deadlines; (6) <italic>m</italic> pipelines, outtree precedences, constant latencies, and release-times. For instances with deadlines, optimal schedules that minimize the maximal tardiness can be constructed using binary search, in <italic>O</italic>(log <italic>n</italic>) iterations of our algorithm. We obtain our results using backward scheduling, a very general relaxation method, which extends, unifies, and clarifies many previous results on instruction scheduling for pipelined and parallel machines.

[1]  B. Ramakrishna Rau,et al.  Iterative modulo scheduling: an algorithm for software pipelining loops , 1994, MICRO 27.

[2]  Robert E. Tarjan,et al.  A linear-time algorithm for a special case of disjoint set union , 1983, J. Comput. Syst. Sci..

[3]  Amir Pnueli,et al.  A fast algorithm for scheduling time-constrained instructions on processors with ILP , 1998, Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192).

[4]  David S. Johnson,et al.  Two-Processor Scheduling with Start-Times and Deadlines , 1977, SIAM J. Comput..

[5]  T. C. Hu Parallel Sequencing and Assembly Line Problems , 1961 .

[6]  Robert E. Tarjan,et al.  Efficiency of a Good But Not Linear Set Union Algorithm , 1972, JACM.

[7]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[8]  Philip H. Sweany,et al.  Building a retargetable local instruction scheduler , 1998, Softw. Pract. Exp..

[9]  Norman P. Jouppi,et al.  The MIPS Machine , 1982, COMPCON.

[10]  Jian Wang,et al.  Microcode compaction with timing constraints , 1987, MICRO 20.

[11]  Philip H. Sweany,et al.  Building a retargetable local instruction scheduler , 1998 .

[12]  Emmanuel Katevenis,et al.  Reduced instruction set computer architectures for VLSI , 1984 .

[13]  John L. Bruno,et al.  Deterministic Scheduling with Pipelined Processors , 1980, IEEE Transactions on Computers.

[14]  Michael Rodeh,et al.  Global instruction scheduling for superscalar machines , 1991, PLDI '91.

[15]  Greg N. Frederickson,et al.  Scheduling Unit-Time Tasks With Integer Release Times and Deadlines , 1983, Inf. Process. Lett..

[16]  Kwei-Jay Lin,et al.  Scheduling Real-Time Computations with Separation Constraints , 1992, Inf. Process. Lett..

[17]  Soo-Mook Moon,et al.  An efficient resource-constrained global scheduling technique for superscalar and VLIW processors , 1992, MICRO 25.

[18]  Eugene L. Lawler,et al.  Optimal Sequencing of a Single Machine Subject to Precedence Constraints , 1973 .

[19]  Jian Wang,et al.  Foresighted Instruction Scheduling Under Timing Constraints , 1992, IEEE Trans. Computers.

[20]  Steven J. Beaty Lookahead scheduling , 1992, MICRO.

[21]  Oliver Vornberger,et al.  On Some Variants of the Bandwidth Minimization Problem , 1984, SIAM J. Comput..

[22]  Zhen Liu,et al.  Single Machine Scheduling Subject To Precedence Delays , 1996, Discret. Appl. Math..

[23]  Barbara B. Simons,et al.  Multiprocessor Scheduling of Unit-Time Jobs with Arbitrary Release Times and Deadlines , 1983, SIAM J. Comput..

[24]  David S. Johnson,et al.  Scheduling Tasks with Nonuniform Deadlines on Two Processors , 1976, J. ACM.

[25]  Thomas R. Gross,et al.  Postpass Code Optimization of Pipeline Constraints , 1983, TOPL.

[26]  Krishna Ssv. Palem On the Complexity of Precedence Constrained Scheduling , 1986 .

[27]  E.L. Lawler,et al.  Optimization and Approximation in Deterministic Sequencing and Scheduling: a Survey , 1977 .

[28]  S. J. Beaty,et al.  List scheduling: alone, with foresight, and with lookahead , 1994, Proceedings of the First International Conference on Massively Parallel Computing Systems (MPCS) The Challenges of General-Purpose and Special-Purpose Computing.

[29]  Krishna V. Palem,et al.  Scheduling time-critical instructions on RISC machines , 1989, TOPL.

[30]  Jeffrey D. Ullman,et al.  NP-Complete Scheduling Problems , 1975, J. Comput. Syst. Sci..

[31]  George Radin,et al.  The 801 minicomputer , 1982, ASPLOS I.

[32]  B. Ramakrishna Rau,et al.  Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing , 1981, MICRO 14.

[33]  Jan Karel Lenstra,et al.  Complexity of machine scheduling problems , 1975 .

[34]  Vicki H. Allan,et al.  Incremental foresighted local compaction , 1989, MICRO 22.

[35]  Henry S. Warren,et al.  Instruction Scheduling for the IBM RISC System/6000 Processor , 1990, IBM J. Res. Dev..

[36]  Mihalis Yannakakis,et al.  Scheduling Interval-Ordered Tasks , 1979, SIAM J. Comput..

[37]  David Bernstein,et al.  Scheduling expressions on a pipelined processor with a maximal delay of one cycle , 1989, TOPL.