Abstract
In parallelizing the code for high-performance processors, software pipelining of innermost loops is of fundamental importance. In order to benefit from software pipelining, two separate tasks need to be performed: (i) software pipelining proper (find the rate-optimal legal schedule), and (ii) register allocation (allocate registers to the found schedule). Software pipelining and register allocation can be formulated as an integer linear programming (ILP) problem, aiming to produce optimal schedules. In this paper, we discuss the application of the integer linear programming to software pipelining on the MIPS R8000 superscalar microprocessor. Some of the results were presented in the PLDI96 [14], where they were compared to the MIPSpro software pipeliner. In this paper we further extend the ILP model for the MIPS R8000 by including memory optimization and present the entire model in detail.
important part of this work was done while in McGill University in Montreal
Preview
Unable to display preview. Download preview PDF.
References
Erik R. Altman.Optimal Software Pipelining with Function Unit and Register Constraints. PhD thesis, McGill University, Montreal, Quebec, 1995.
Erik R. Altman, R. Govindarajan, and Guang R. Gao. Scheduling and mapping: Software pipelining in presence of structural hazards. In Conference on Programming Language Design and Implementation, pages 139–150, La Jolla, CA, June 1995. ACM SIGPLAN.
R. Bixby, Ken Kennedy, and Uwe Kremer. Automatic data layout using 0–1 integer linear programming. In Conference on Parallel Architectures and Compilation Techniques, pages 111–122, August 1994.
James C. Dehnert and Ross A. Towle. Compiling for cydra 5. The Journal of Supercomputing (Special Issue on Instruction-Level Parallelism, 7(1/2), July 1993.
Alexandre E. Eichenberger, David S. Davidson, and Santosh G. Abraham. Optimum modulo schedules for minimum register requirements. In International Conference on Supercomputing, pages 31–40, Barcelona, Spain, July 1995. ACM SIGARCH.
David W. Goodwin and Kent D. Wilken. Optimal and near-optimal global register allocation using 0–1 integer programming. Software-Practice and Experience, 1996.
R. Govindarajan, Erik R. Altman, and Guang R. Gao. Minimizing register requirements under resource-constrained rate-optimal software pipelining. In 27th Annual International Symposium on Microarchitecture, pages 85–94, San Jose, CA, November–December 1994.
P. M. Kogge. The Architecture of Pipelined Computers. McGraw Hill, New York, 1981.
G. L. Nemhauser and L. A. Wolsey. Handbooks in peration Research and Management Science: Optimization, volume 1. Elsevier Science, New York, 1989. ch.6.
Qi Ning and Guang R. Gao. A novel framework of register allocation for software pipelining. In 20th Annual International Symposium on Principles of Programming Languages, pages 29–42, January 1993.
Charles Price. MIPS IV Instruction Set. Silicon Graphics Computer Systems, January 1995. Revision 3.1.
B. R. Rau and Joseph A. Fisher. Instruction-level parallel processing: History, overview, and prospective. The Journal of Supercomputing (Special Issue on Instruction-Level Parallelism), 7(1/2):9–50, 1993.
B. R. Rau and Joseph A. Fisher. Some scheduling techniques and a easily schedulable horizontal architecture for high-performance scientific programming. In IEEE/ACM 14th Annual Microprogramming Workshop, October 1993.
John C. Ruttenberg, Guang R. Gao, Artour Stoutchinin, and Woody Lichtenstein. Software pipelining showdown: Optimal vs heuristic methods in a production compiler. In Conference on Programming Language Design and Implementation, pages 1–11, Philadelphia, PA, May 1996. ACM SIGPLAN.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Stoutchinin, A. (1997). An integer linear programming model of software pipelining for the MIPS R8000 processor. In: Malyshkin, V. (eds) Parallel Computing Technologies. PaCT 1997. Lecture Notes in Computer Science, vol 1277. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63371-5_14
Download citation
DOI: https://doi.org/10.1007/3-540-63371-5_14
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63371-6
Online ISBN: 978-3-540-69525-7
eBook Packages: Springer Book Archive