An enhanced Co-scheduling method using reduced MS-state diagrams

Instruction scheduling methods based on the construction of state diagrams (or automata) have been used for architectures involving deeply pipelined function units. However, the size of the state diagram is prohibitively large, resulting in high execution time and space requirement. We present a simple method for reducing the size of the state diagram by recognizing unique paths of a state diagram. Our experiments show that the number of paths in the reduced state diagram is significantly lower-by 1 to 3 orders of magnitude-compared to the number of paths in the original state diagram. Using the reduced MS-state diagrams, we develop an efficient software pipelining method. The proposed software pipelining algorithm produced efficient schedules and performed better than R.A. Huff's (1993) Slack Scheduling method, and the original Co-scheduling method, in terms of both the initiation interval (II) and the time taken to construct the schedule.

[1]  Richard A. Huff,et al.  Lifetime-sensitive modulo scheduling , 1993, PLDI '93.

[2]  John Paul Shen,et al.  A limit study of local memory requirements using value reuse profiles , 1995, MICRO 1995.

[3]  Joseph A. Fisher,et al.  Trace Scheduling: A Technique for Global Microcode Compaction , 1981, IEEE Transactions on Computers.

[4]  Thomas Müller Employing finite automata for resource scheduling , 1993, MICRO 1993.

[5]  Christopher W. Fraser,et al.  Detecting pipeline structural hazards quickly , 1994, POPL '94.

[6]  Janak H. Patel,et al.  Improving the Throughput of a Pipeline by Insertion of Delays , 1976, ISCA.

[7]  Mark Smotherman,et al.  Instruction scheduling for the Motorola 88110 , 1993, Proceedings of the 26th Annual International Symposium on Microarchitecture.

[8]  Josep Llosa,et al.  Hypernode reduction modulo scheduling , 1995, MICRO 28.

[9]  Alexandre E. Eichenberger,et al.  A reduced multipipeline machine description that preserves scheduling constraints , 1996, PLDI '96.

[10]  Vasanth Bala,et al.  A limit study of local memory requirements using value reuse profiles , 1995, MICRO 28.

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

[12]  Peter M. Kogge,et al.  The Architecture of Pipelined Computers , 1981 .

[13]  Guang R. Gao,et al.  Co-scheduling hardware and software pipelines , 1996, Proceedings. Second International Symposium on High-Performance Computer Architecture.

[14]  Guang R. Gao,et al.  Scheduling and mapping: software pipelining in the presence of structural hazards , 1995, PLDI '95.