Integrated Modulo Scheduling for Clustered VLIW Architectures

  • Mattias V. Eriksson
  • Christoph W. Kessler
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5409)


We solve the problem of integrating modulo scheduling with instruction selection (including cluster assignment), instruction scheduling and register allocation, with optimal spill code generation and scheduling. Our method is based on integer linear programming. We prove that our algorithm delivers optimal results in finite time for a certain class of architectures. We believe that these results are interesting both from a theoretical point of view and as a reference point when devising heuristic methods.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Allan, V.H., Jones, R.B., Lee, R.M., Allan, S.J.: Software pipelining. ACM Comput. Surv. 27(3), 367–432 (1995)CrossRefGoogle Scholar
  2. 2.
    Altman, E.R., Govindarajan, R., Gao, G.R.: Scheduling and mapping: Software pipelining in the presence of structural hazards. In: Proc. SIGPLAN 1995 Conf. on Programming Language Design and Implementation, pp. 139–150 (1995)Google Scholar
  3. 3.
    Charlesworth, A.E.: An approach to scientific array processing: The architectural design of the AP-120b/FPS-164 family. Computer 14(9), 18–27 (1981)CrossRefGoogle Scholar
  4. 4.
    Codina, J.M., Sánchez, J., González, A.: A unified modulo scheduling and register allocation technique for clustered processors. In: PACT 2001: Proc. 2001 Int. Conf. on Parallel Architectures and Compilation Techniques, pp. 175–184. IEEE Computer Society, Los Alamitos (2001)CrossRefGoogle Scholar
  5. 5.
    Cortadella, J., Badia, R.M., Sánchez, F.: A mathematical formulation of the loop pipelining problem. In: XI Conference on Design of Integrated Circuits and Systems, Barcelona, pp. 355–360 (1996)Google Scholar
  6. 6.
    Eriksson, M.V., Skoog, O., Kessler, C.W.: Optimal vs. heuristic integrated code generation for clustered VLIW architectures. In: SCOPES, pp. 11–20 (2008)Google Scholar
  7. 7.
    Gebotys, C.H., Elmasry, M.I.: Global optimization approach for architectural synthesis. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 12(9), 1266–1278 (1993)CrossRefGoogle Scholar
  8. 8.
    Huff, R.A.: Lifetime-sensitive modulo scheduling. In: Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation, pp. 258–267 (1993)Google Scholar
  9. 9.
    Kessler, C., Bednarski, A., Eriksson, M.: Classification and generation of schedules for VLIW processors. Concurrency and Computation: Practice and Experience 19(18), 2369–2389 (2007)CrossRefGoogle Scholar
  10. 10.
    Lam, M.: Software pipelining: an effective scheduling technique for VLIW machines. SIGPLAN Not. 23(7), 318–328 (1988)CrossRefGoogle Scholar
  11. 11.
    Llosa, J., Gonzalez, A., Ayguade, E., Valero, M.: Swing modulo scheduling: a lifetime-sensitive approach. In: Proceedings of the Conference on Parallel Architectures and Compilation Techniques, pp. 80–86 (October 1996)Google Scholar
  12. 12.
    Nagarakatte, S.G., Govindarajan, R.: Register allocation and optimal spill code scheduling in software pipelined loops using 0-1 integer linear programming formulation. In: Krishnamurthi, S., Odersky, M. (eds.) CC 2007. LNCS, vol. 4420, pp. 126–140. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  13. 13.
    Ning, Q., Gao, G.R.: A novel framework of register allocation for software pipelining. In: POPL 1993: Proceedings of the 20th ACM symp. on Principles of programming languages, pp. 29–42. ACM, New York (1993)Google Scholar
  14. 14.
    Pister, M., Kästner, D.: Generic software pipelining at the assembly level. In: SCOPES 2005: Proc. workshop on Software and compilers for embedded systems, pp. 50–61. ACM, New York (2005)CrossRefGoogle Scholar
  15. 15.
    Rau, B.R.: Iterative modulo scheduling: An algorithm for software pipelining loops. In: MICRO-27, pp. 63–74 (November 1994)Google Scholar
  16. 16.
    Rau, B.R., Glaeser, C.D.: Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing. SIGMICRO Newsl. 12(4), 183–198 (1981)CrossRefGoogle Scholar
  17. 17.
    Stotzer, E., Leiss, E.: Modulo scheduling for the TMS320C6x VLIW DSP architecture. SIGPLAN Not. 34(7), 28–34 (1999)CrossRefGoogle Scholar
  18. 18.
    Texas Instruments Incorporated. TMS320C6000 CPU and Instruction Set Reference Guide (2000)Google Scholar
  19. 19.
    Touati, S.-A.-A.: On periodic register need in software pipelining. IEEE Trans. Comput. 56(11), 1493–1504 (2007)MathSciNetCrossRefGoogle Scholar
  20. 20.
    živojnović, V., Velarde, J.M., Schläger, C., Meyr, H.: DSPSTONE: A DSP-oriented benchmarking methodology. In: Proc. Int. Conf. on Signal Processing and Technology (ICSPAT 1994) (1994)Google Scholar
  21. 21.
    Wilson, T.C., Grewal, G.W., Banerji, D.K.: An ILP Solution for Simultaneous Scheduling, Allocation, and Binding in Multiple Block Synthesis. In: Proc. Int. Conf. on Computer Design (ICCD), pp. 581–586 (1994)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Mattias V. Eriksson
    • 1
  • Christoph W. Kessler
    • 1
  1. 1.PELAB, Dept. of Computer and Information ScienceLinköping universityLinköpingSweden

Personalised recommendations