Skip to main content

Minimizing Variables’ Lifetime in Loop-Intensive Applications

  • Conference paper
  • 579 Accesses

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

Abstract

In this paper, we address a set of research problems regarding loopintensive applications. The first problem consists of minimizing variables’ lifetime under timing constraints. Any variable that is alive for more than one iteration must be saved by for instance storing it into a register. The second problem is derived from the first one, and consists of balancing variables’ lifetime for a target total number of registers and under timing constraints. For the third problem, we focus on minimizing variables’ lifetime in the context of software pipelining in the case of one loop as well as nested loops. We provide methods to solve these three problems, and show that a set of them have polynomial run-time. Once these methods are used, one may need to solve the problem of generating the transformed code and reducing its size. We provide algorithms to solve this fourth problem. Designers face these problems during hardware-software co-design, and in designing embedded systems as well as system-on-chip. Solving these problems is also useful in low power design. We exercise some of these methods on known benchmarks, and provide obtained numerical results that show their effectiveness. We solve these problems using techniques related to retiming, an algorithm originally developed for hardware optimization.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Leiserson, C.E., Saxe, J.B.: Retiming Synchronous Circuitry. Algorithmica, 5–35 (January 1995)

    Google Scholar 

  2. Fraboulet, A., Mignotte, A., Huard, G.: Loop alignment for memory accesses optimization. In: Proc. of the 12th International Symposium on System Synthesis, November 1999, pp. 71–77 (1999)

    Google Scholar 

  3. Chabini, N.: WolfW.: Reducing Dynamic Power Consumption in Synchronous Sequential Digital Designs Using Retiming and Supply Voltage Scaling. Submitted to IEEE Transactions on VLSI (March 2003)

    Google Scholar 

  4. Zhuge, Q., Shao, Z., Sha, E.H.-M.: Optimal Code Size Reduction for Software-Pipelined Loops on DSP Applications. In: Proceedings of the International Conference on Parallel Processing, Vancouver, Canada (August 2002)

    Google Scholar 

  5. Zhuge, Q., Xiao, B., Sha, E.H.-M.: Code Size Reduction Technique and Implementation for Software-Pipelined DSP Applications. Submitted to ACM Transcations in Embedded Computing Systems

    Google Scholar 

  6. Catthoor, F., Danckaert, K., Wuytack, S., Dutt, N.-D.: Code transformations for data transfer and storage exploration preprocessing in multimedia processors. IEEE Design & Test of Computers 18(3), 70–82 (2001)

    Article  Google Scholar 

  7. Allan, V., Jones, R.B., Lee, R.M., Allan, S.J.: Software Pipelining. ACM Computmg Surveys 27(3) (September 1995)

    Google Scholar 

  8. Ramanujam, J.: Optimal Software Pipelining of Nested Loops. In: Proceeding 8th International Parallel Processing Symposium, April 1994, pp. 335–342 (1994)

    Google Scholar 

  9. Panda, P.-R., et al.: Data and memory optimization techniques for embedded systems. ACM Trans. on Design Automation of Electronic Systems 6(2) (April 2001)

    Google Scholar 

  10. Dasdan, A., Gupta, R.K.: Faster Maximum and Minimum Mean Cycle Algorithms for System Performance Analysis. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 17(10) (October 1998)

    Google Scholar 

  11. Passos, N.-L., Sha, E.H.-M.: Achieving full parallelism using multidimensional retiming. IEEE Transactions on Parallel and Distributed Systems 7(11), 1150–1163 (1996)

    Article  Google Scholar 

  12. Schrijver, A.: Theory of linear and integer programming. John Wiley and Sons, Chichester (1986)

    MATH  Google Scholar 

  13. Khachian, L.-G.: A polynomial algorithm in linear programming. Soviet Math Doklady 20 (1979)

    Google Scholar 

  14. Karmakar, N.: A new polynomial-time algorithm for linear programming. Combinatorica 4 (1984)

    Google Scholar 

  15. Camion P. : Characterisation of totally unimodular matrices. Proc. of the Amer. Math. Soc. 16 (1965)

    Google Scholar 

  16. The LP_Solve Tool, ftp://ftp.ics.ele.tue.nl/pub/lp_solve/

  17. ISCAS 1989 Benchmark suite. North Carolina State University, Department of Computer Science, http://www.cbl.ncsu.edu/benchmarks/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Chabini, N., Wolf, W. (2003). Minimizing Variables’ Lifetime in Loop-Intensive Applications. In: Alur, R., Lee, I. (eds) Embedded Software. EMSOFT 2003. Lecture Notes in Computer Science, vol 2855. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45212-6_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-45212-6_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20223-3

  • Online ISBN: 978-3-540-45212-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics