Software pipelining a hyperblock loop

Patent

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

395588, G06F 945

Patent

active

059207248

ABSTRACT:
An iterative software pipelining method promotes instructions of a program loop to previous loop iterations and then reschedules the instructions until either 1) the resultant schedule is optimal (i.e., the initiation interval is equal to the minimal initiation interval) or 2) the resultant schedule is not an improvement over the previous schedule generated. The method is applicable to a sequence of instructions within a program loop having a single control flow entry and one or more control flow exit points. First, a minimum initiation interval of the program loop is computed. Second, instruction level parallelism transformations are applied on the program loop. Third, a single iteration schedule is determined for the program loop. Fourth, selected instructions are percolated to a prior iteration of the program loop to generate a new instruction order for the program loop. Each of steps two through four is performed as long as a previous length of the program loop exceeds a single iteration schedule length and the single iteration schedule length exceeds the minimum initiation interval.

REFERENCES:
patent: 5265253 (1993-11-01), Yamada
patent: 5303357 (1994-04-01), Inoue et al.
patent: 5317743 (1994-05-01), Imai et al.
patent: 5367651 (1994-11-01), Smith et al.
patent: 5375238 (1994-12-01), Ooi
patent: 5386562 (1995-01-01), Jain et al.
Alexander Aiken & Alexandru Nicolau, "Optimal Loop Parallelization", Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, SIGPLAN Notices, vol. 23, No. 7, Jul. 1988, pp. 308-317.
David Bernstein, Doron Cohen, & Hugo Krawczyk, "Code Duplication: An Assist for Global Instruction Scheduling", MICRO 24: Proceedings of the 24th Annual International Symposium on Microarchitecture, Nov. 1991, pp. 103-113.
David Bernstein, Doron Cohen, Yuval Lavon, & Vladimir Rainish, "Performance Evaluation of Instruction Scheduling on the IBM RISC System/6000", MICRO 25: Proceedings of the 25th Annual International Symposium on Microarchitecture, Dec. 1992, pp. 226-235.
David Bernstein & Yuval Lavon, "A Software Pipelining Algorithm Based on Global Instruction Scheduling", Technical Report 88.338, IBM Israel, Science and Technology, Sep. 1993, pp. 1-18.
David Bernstein & Michael Rodeh, "Global Instruction Scheduling for Superscalar Machines", Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, SIGPLAN Notices, vol. 26, No. 6, Jun. 1991, pp. 241-255.
James C. Dehnert, Peter Y.-T. Hsu & Joseph P. Bratt, "Overlapped Loop Support in the Cydra 5", ASPLOS-III Proceedings of the 3rd International Conference on Architectural Support for Programming Languages and Operating Systems, Apr. 1989, pp. 26-38.
Kemal Ebcioglu, "A Compilation Technique for Software Pipelining of Loops with Conditional Jumps", MICRO 20: Proceedings of the 20th Annual Workshop on Microprogramming, Dec. 1987, pp. 69-79.
Alexandre E. Eichenberger, Edward S. Davidson, & Santosh G. Abraham, "Minimum Register Requirements for a Modulo Schedule", MICRO 27: Proceedings of the 27th Annual International Symposium on Microarchitecture, 1994, pp. 75-84.
Rajiv Gupta & Mary Lou Soffa, "Region Scheduling: An Approach for Detecting and Redistributing Parallelism", IEEE Transactions on Software Engineering, vol. 16, No. 4, Apr. 1990, pp. 421-431.
Mike Johnson, Superscalar Microprocessor Design, Prentice-Hall, Inc., Englewood Cliffs, N.J., 1991, pp. 9-28, 177-199, & 203-235.
Monica Lam, "Software Pipelining: An Effective Scheduling Technique for VLIW Machines", Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, SIGPLAN Notices, vol. 23, No. 7, Jul. 1988, pp. 318-328.
Soo-Mook Moon & Kemal Ebcioglu, "An Efficient Resource-Constrained Global Scheduling Technique for Superscalar and VLIW Processors", MICRO 25: Proceedings of the 25th Annual International Symposium on Microarchitecture, Dec. 1992, pp. 55-71.
Qi Ning & Guang R. Gao, "A Novel Framework of Register Allocation for Software Pipelining", Conference Record of the 20th Annual ACM SIGPLAN--SIGACT Symposium on Principles of Programming Languages, Jan. 1993, pp. 29-42.
B.R. Rau & C.D. Glaeser, "Some Scheduling Techniques and An Easily Schedulable Horizontal Architecture for High Performance Scientific Computing", MICRO 14: Proceedings of the 14th Annual Microprogramming Workshop, Oct. 1981, pp. 183-198.
B.R. Rau, M. Lee, P.P. Tirumalai, & M.S. Schlansker, "Register Allocation for Software Pipelined Loops", Proceedings of the ACM SIGPLAN '92 Conference on Programming Language and Design and Implementation, SIGPLAN Notices, vol. 27, No. 7, Jul. 1992, pp. 283-299.
P. Atirumalai, M. Lee & M. Schlansker, "Parallelization of Loops with Exits on Pipelined Architectures", Proceedings of the Supercomputing '90, Nov. 1990, pp. 200-212.
Roy F. Touzeau, "A Fortran Compiler for the FPS--164 Scientific Computer", Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction, SIGPLAN Notices, vol. 19, No. 6, Jun. 1984, pp. 48-57.
Nancy J. Warter, Grant E. Haab, Krishna Subramanian, & John W. Bockhaus, "Enhanced Modulo Scheduling for Loops with Conditional Branches", MICRO 25: Proceedings of the 25th Annual International Symposium on Microarchitecture, Dec. 1992, pp. 170-179.
"Parallelization of WHILE Loops on Pipelined Architectures", Tirumalai et al., Journal of SuperComputing, 1991, pp. 119-136.
"Non-unimodular Transformations of Nested Loops", Ramanujam, SuperComputing 1992, pp. 214-223.
"Code Generation Schema for Modulo Scheduled Loops", Rau et al., 1992, pp. 158-169.
"Compiler Code Transformation for Superscalar-Based High-Performance Systems", Mahlke et al., Supercomputing 1992, pp. 808-817.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Software pipelining a hyperblock loop does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Software pipelining a hyperblock loop, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Software pipelining a hyperblock loop will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-906426

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.