skip to main content
article

Automatic rate desynchronization of embedded reactive programs

Published:01 August 2006Publication History
Skip Abstract Section

Abstract

Many embedded reactive programs perform computations at different rates, while still requiring the overall application to satisfy very tight temporal constraints. We propose a method to automatically distribute programs such that the obtained parts can be run at different rates, which we call rate desynchronization. We consider general programs whose control structure is a finite state automaton and with a DAG of actions in each state. The motivation is to take into account long-duration tasks inside the programs: these are tasks whose execution time is long compared to the other computations in the application, and whose maximal execution rate is known and bounded. Merely scheduling such a long duration task at a slow rate would not work since the whole program would be slowed down if compiled into sequential code. It would thus be impossible to meet the temporal constraints, unless such long duration tasks could be desynchronized from the remaining computations. This is precisely what our method achieves: it distributes the initial program into several parts, so that the parts performing the slow computations can be run at an appropriate rate, therefore not impairing the global reaction time of the program. We present in detail our method, all the involved algorithms, and a small running example. We also compare our method with the related work.

References

  1. Aubry, P., Le Guernic, P., and Machard, S. 1996. Synchronous distributions of signal programs. In Hawaii International Conference on System Sciences, HICSS'96. IEEE, Honolulu, HI. 656--665. Google ScholarGoogle Scholar
  2. Benveniste, A. et al. 1998. Safety critical embedded systems design: The SACRES approach. Tutorial at the Symposium on Formal Techniques in Real-Time and Fault Tolerant systems, FTRTFT'98.Google ScholarGoogle Scholar
  3. Benveniste, A., Caillaud, B., and Le Guernic, P. 2000. Compositionality in dataflow synchronous languages: Specification and distributed code generation. Information and Computation 163, 125--171. Google ScholarGoogle Scholar
  4. Benveniste, A., Caspi, P., Edwards, S., Halbwachs, N., Le Guernic, P., and de Simone, R. 2003. The synchronous languages twelve years later. Proceedings of the IEEE 91, 1 (Jan.), 64--83. Special issue on embedded systems.Google ScholarGoogle Scholar
  5. Bergerand, J.-L. and Pilaud, E. 1988. SAGA: A software development environment for dependability in automatic control. In International Conference on Computer Safety, Reliabilitiy, and Security, SAFECOMP'88. Fulda, Germany. Pergamon Press, New York.Google ScholarGoogle Scholar
  6. Berry, G. and Gonthier, G. 1992. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming 19, 2, 87--152. Google ScholarGoogle Scholar
  7. Caillaud, B., Caspi, P., Girault, A., and Jard, C. 1997. Distributing automata for asynchronous networks of processors. European Journal of Automation (RAIRO-APII-JESA) 31, 3, 503--524. Research report Inria 2341.Google ScholarGoogle Scholar
  8. Caspi, P. 1992. Clocks in data-flow languages. Theoretical Computer Science 94, 125--140. Google ScholarGoogle Scholar
  9. Caspi, P. and Girault, A. 1995. Execution of distributed reactive systems. In 1st International Conference on Parallel Processing, EURO-PAR'95, S. Haridi, K. Ali, and P. Magnusson, Eds. LNCS, vol. 966. Stockholm, Sweden. Springer-Verlag, New York. 15--26. Google ScholarGoogle Scholar
  10. Caspi, P. and Pouzet, M. 1996. Synchronous Kahn networks. In ACM SIGPLAN International Conference on Functional Programming, ICFP'96. ACM Press, New York. Google ScholarGoogle Scholar
  11. Caspi, P., Girault, A., and Pilaud, D. 1999. Automatic distribution of reactive systems for asynchronous networks of processors. IEEE Trans. on Software Engineering 25, 3 (May-June). 416--427. Google ScholarGoogle Scholar
  12. Caspi, P., Fernandez, J.-C., and Girault, A. 1995. An algorithm for reducing binary branchings. In 15th Conference on the Foundations of Software Technology and Theoretical Computer Science, FST&TCS'95, P. Thiagarajan, Ed. LNCS, vol. 1026. Bangalore, India. Springer-Verlag, New York. 279--293. Google ScholarGoogle Scholar
  13. Caspi, P., Curic, A., Maignan, A., Sofronis, C., Tripakis, S., and Niebert, P. 2003. From Simulink to Scade/Lustre to TTA: A layered approach for distributed embedded applications. In International Conference on Languages, Compilers, and Tools for Embedded Systems, LCTES'03. San Diego, CA, ACM, New York. 153--162. Google ScholarGoogle Scholar
  14. Colaço, J.-L. and Pouzet, M. 2003. Clocks as first class abstract types. In International Conference on Embedded Software, EMSOFT'03, R. Alur and I. Lee, Eds. LNCS, vol. 2855. Philadelphia, PA Springer-Verlag, New York. 134--155.Google ScholarGoogle Scholar
  15. Fernandez, J.-C. and Mounier, L. 1991. “On the fly” verification of behavioural equivalences and preorders. In Workshop on Computer-Aided Verification, CAV'91, K. Larsen, Ed. LNCS. Aalbord, Denmark. Springer-Verlag, New York. Google ScholarGoogle Scholar
  16. Gupta, R., Pande, S., Psarris, K., and Sarkar, V. 1999. Compilation techniques for parallel systems. Parallel Computing 25, 13, 1741--1783. Google ScholarGoogle Scholar
  17. Halbwachs, N., Caspi, P., Raymond, P., and Pilaud, D. 1991. The synchronous data-flow programming language Lustre. Proceedings of the IEEE 79, 9 (Sept.). 1305--1320.Google ScholarGoogle Scholar
  18. Harel, D. and Pnueli, A. 1985. On the development of reactive systems. In Logic and Models of Concurrent Systems, NATO. Springer-Verlag, New-York. 477--498. Google ScholarGoogle Scholar
  19. Henzinger, T., Horowitz, B., and Kirsch, C. 2003. Giotto: A time-triggered language for embedded programming. Proceedings of the IEEE 91. 84--99.Google ScholarGoogle Scholar
  20. Kopetz, H. 1997. Real-Time Systems Design Principles for Distributed Embedded Applications. Kluwer Academic Publishers, Boston, MA. Google ScholarGoogle Scholar
  21. Le Guernic, P. 2003. Personnal communication.Google ScholarGoogle Scholar
  22. Le Guernic, P., Gautier, T., Le Borgne, M., and Lemaire, C. 1991. Programming real-time applications with Signal. Proceedings of the IEEE 79, 9 (Sept.), 1321--1336.Google ScholarGoogle Scholar
  23. Liu, C. and Layland, J. 1973. Scheduling algorithms for multiprogramming in hard real-time environnement. Journal of the ACM 20, 1 (Jan.), 46--61. Google ScholarGoogle Scholar
  24. Maffeïs, O. 1993. Ordonnancements de graphes de flots synchrones; application à la mise en œuvre de Signal. Ph.D. thesis, University of Rennes I, Rennes, France.Google ScholarGoogle Scholar
  25. Milner, R. 1980. A Calculus of Communicating Systems. LNCS, vol. 92. Springer-Verlag, New York. Google ScholarGoogle Scholar
  26. Paris, J.-P. 1992. Exécution de tâches asynchrones depuis Esterel. Ph.D. thesis, University of Nice, Nice, France.Google ScholarGoogle Scholar
  27. Plaice, J. and Saint, J.-B. 1987. The Lustre-Esterel Portable Format. Inria, Sophia-Antipolis, France. User Manual.Google ScholarGoogle Scholar
  28. Salpétrier, F. 2002. Interface graphique utilisateur pour la répartition de programmes Lustre dirigée par les horloges. M.S. thesis, ESISAR, Valence, France.Google ScholarGoogle Scholar
  29. Sha, L., Rajkumar, R., and Lehoczky, J. 1990. Priority inheritance protocols: An approach to real-time synchronization. IEEE Trans. on Computers 39, 1175--1185. Google ScholarGoogle Scholar
  30. The MathWorks, Inc. 1999. Real-Time Workshop User's Guide, Version 3.Google ScholarGoogle Scholar

Index Terms

  1. Automatic rate desynchronization of embedded reactive programs

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!