Skip to main content

An integer linear programming model of software pipelining for the MIPS R8000 processor

  • Theory
  • Conference paper
  • First Online:
Parallel Computing Technologies (PaCT 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1277))

Included in the following conference series:

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Erik R. Altman.Optimal Software Pipelining with Function Unit and Register Constraints. PhD thesis, McGill University, Montreal, Quebec, 1995.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. David W. Goodwin and Kent D. Wilken. Optimal and near-optimal global register allocation using 0–1 integer programming. Software-Practice and Experience, 1996.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. P. M. Kogge. The Architecture of Pipelined Computers. McGraw Hill, New York, 1981.

    Google Scholar 

  9. G. L. Nemhauser and L. A. Wolsey. Handbooks in peration Research and Management Science: Optimization, volume 1. Elsevier Science, New York, 1989. ch.6.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. Charles Price. MIPS IV Instruction Set. Silicon Graphics Computer Systems, January 1995. Revision 3.1.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Victor Malyshkin

Rights and permissions

Reprints 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

Publish with us

Policies and ethics