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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Leiserson, C.E., Saxe, J.B.: Retiming Synchronous Circuitry. Algorithmica, 5–35 (January 1995)
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)
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)
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)
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
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)
Allan, V., Jones, R.B., Lee, R.M., Allan, S.J.: Software Pipelining. ACM Computmg Surveys 27(3) (September 1995)
Ramanujam, J.: Optimal Software Pipelining of Nested Loops. In: Proceeding 8th International Parallel Processing Symposium, April 1994, pp. 335–342 (1994)
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)
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)
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)
Schrijver, A.: Theory of linear and integer programming. John Wiley and Sons, Chichester (1986)
Khachian, L.-G.: A polynomial algorithm in linear programming. Soviet Math Doklady 20 (1979)
Karmakar, N.: A new polynomial-time algorithm for linear programming. Combinatorica 4 (1984)
Camion P. : Characterisation of totally unimodular matrices. Proc. of the Amer. Math. Soc. 16 (1965)
The LP_Solve Tool, ftp://ftp.ics.ele.tue.nl/pub/lp_solve/
ISCAS 1989 Benchmark suite. North Carolina State University, Department of Computer Science, http://www.cbl.ncsu.edu/benchmarks/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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