Skip to main content
Log in

A Method for Computing the Number of Iterations in Data Dependent Loops

  • Published:
Real-Time Systems Aims and scope Submit manuscript

Abstract

This paper addresses the problem of loop iteration number estimation, applied to linear loops. This is important to statically put an upper bound on the execution time of real-time systems and implement timing constraint verification. In our approach, matrix calculation is applied to derive the analytical equation that holds the number of iterations as a solution, and it is proved that such solution is related to a zero of an exponential function of the eigenvalues. So, the number of iterations turns out to be an implicit variable of the equation, which can be easily exactly calculated for loops depending on few free variables.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Abd-El-Hafiz, S.K. and Basili, V.R. 1996. A knowledge-based approach to the analysis of loops. IEEE Transactions on Software Engineering 22(5): 339–360.

    Google Scholar 

  • Basu, S. and Misra, J. 1975. Proving loop programs. IEEE Transactions on Software Engineering 1(1): 76–86.

    Google Scholar 

  • Bini, D.A., Daddi, F. and Gemignani L. 2004. On the shifted QR iteration applied to companion matrices. Electronic Transactions on Numerical Analysis 8: 137–152.

    Google Scholar 

  • Caplain, M. 1975. Finding invariant assertions for proving programs. In Proceedings of the International Conference on Reliable Software Los Angeles, U.S.A., pp. 165–171.

  • Dunlop, D.D. and Basili, V.R. 1984. A heuristic for deriving loop functions. IEEE Transactions on Software Engineering 10(3): 275–285.

    Google Scholar 

  • Ellozy, H.A. 1981. The determination of loop invariants for programs with arrays. IEEE Transactions on Software Engineering 7(2): 197–206.

    Google Scholar 

  • Ermedahl, A. and Gustafsson, J. 1997. Deriving annotations for tight calculation of execution time. In Proceedings of the European Conference on Parallel Processing Passau, Germany, pp. 1298–1307.

  • Floyd, R.W. 1967. Assigning meanings to programs. In Proceedings of the Symposium on Applied Mathematics Vol. 19, J.T. Schwartz, Ed., Amer. Math. Soc., Providence, U.S.A., pp. 19–32.

  • Golub, G.H. and Van Loan, C.F. 1996. In Matrix Computations (Johns Hopkins Studies in Mathematical Sciences). The Johns Hopkins University Press, Third Edition.

  • Healy, C.A., Sjödin, M., Rustagi V. and Whalley, D. 1998. Bounding loop iterations for timing analysis. In Proceedings of the 4th IEEE Real-Time Technology and Applications Symposium(RTAS‘98) Denver, U.S.A.

  • Healy, C.A., Sjödin, M., Rustagi V., Whalley, D. and van Engelen, R. 2000. Supporting timing analysis by automatic bounding of loop iterations. Real-Time Systems 18(2–3): 129–156.

    Google Scholar 

  • Hoare, C.A.R. 1969. An Axiomatic basis of computer programming. Communications of the Association for Computer Machinery 12: 576–580.

  • Katz, S. and Manna, Z. 1976. Logical analysis of programs. Communications of the Association for Computer Machinery 19(4): 188–206.

  • Mills, H.D. 1975. The new math of computer programming. Communications of the Association for Computer Machinery 18: 43–48.

  • Misra, J. 1978. Some aspects of the verification of loop computations. IEEE Transactions on Software Engineering 4(6): 478–486.

    Google Scholar 

  • Najjar, W.A., Miller, W.M. and Wim Böhm, A.P. 1992. An analysis of loop latency in data flow execution. In Proceedings of the 19th International Symposium on Computer Architecture (ISCA'92) Gold Coast, Australia.

  • Smale, S. 1997. Complexity theory and numerical analysis. Acta Numerica pp. 523–551.

  • Spezialetti, M. and Gupta, R. 1995. Loop monotonic statements. IEEE Transactions on Software Engineering, 21(6): 497–505.

    Google Scholar 

  • Waters, R.C. 1979. A Method for analyzing loop programs. IEEE Transactions on Software Engineering 5(3): 237–247.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Francesco Curatelli.

Additional information

Francesco Curatelli received the degree in Electronic Engineering and the Ph.D. degree in Microelectronics from the University of Genova, Italy. During the years 1980-85 he worked as a design engineer at Elsag Inc., Genova. Since 1985 he has been working at the Microelectronics group of the Department of Biophysical and Electronic Engineering (DIBE) at the University of Genova, initially as Research assistant and, since 1992, as Professor in Electronics. His research activities concern the study and development of algorithms and design tools for real-time systems, HCI and assistive technology. He is the author of more than 80 papers published in journals, conference proceedings, and books.

Leonardo Mangeruca received his master and PhD degrees in Electrical Engineering and Computer Science from the University of Genoa, Italy, between 1995 and 1998. In 1999 he joined PARADES, Roma, Italy, directed by Prof. A.L. Sangiovanni-Vincentelli, where he focused on research activities in System Level Design and Advanced Architectures for Embedded Systems. His interests include formal models and methods for system design, distributed systems, fault-tolerant architectures, embedded software, real-time scheduling. He is involved in numerous cooperations with international research institutions and represents PARADES in several European Projects.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Curatelli, F., Mangeruca, L. A Method for Computing the Number of Iterations in Data Dependent Loops. Real-Time Syst 32, 73–104 (2006). https://doi.org/10.1007/s11241-006-5317-1

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11241-006-5317-1

Keywords

Navigation