skip to main content
10.1145/1168857.1168896acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article

Mapping esterel onto a multi-threaded embedded processor

Published:20 October 2006Publication History

ABSTRACT

The synchronous language Esterel is well-suited for programming control-dominated reactive systems at the system level. It provides non-traditional control structures, in particular concurrency and various forms of preemption, which allow to concisely express reactive behavior. As these control structures cannot be mapped easily onto traditional, sequential processors, an alternative approach that has emerged recently makes use of special-purpose reactive processors. However, the designs proposed so far have limitations regarding completeness of the language support, and did not really take advantage of compile-time knowledge to optimize resource usage.This paper presents a reactive processor, the Kiel Esterel Processor 3a (KEP3a), and its compiler. The KEP3a improves on earlier designs in several areas; most notable are the support for exception handling and the provision of context-dependent preemption handling instructions. The KEP3a compiler presented here is to our knowledge the first for multi-threaded reactive processors. The translation of Esterel's preemption constructs onto KEP3a assembler is straightforward; however, a challenge is the correct and efficient representation of Esterel's concurrency. The compiler generates code that respects data and control dependencies using the KEP3a priority-based scheduling mechanism. We present a priority assignment approach that makes use of a novel concurrent control flow graph and has a complexity that in practice tends to be linear in the size of the program. Unlike earlier Esterel compilation schemes, this approach avoids unnecessary context switches by considering each thread's actual execution state at run time. Furthermore, it avoids code replication present in other approaches.

References

  1. C. André. SyncCharts: A Visual Representation of Reactive Behaviors. Technical Report RR 95-52, rev. RR (96-56), I3S, Sophia-Antipolis, France, Rev. April 1996.Google ScholarGoogle Scholar
  2. F. Balarin, P. Giusto, A. Jurecska, C. Passerone, E.M. Sentovich, B. Tabbara, M. Chiodo, H. Hsieh, L. Lavagno, A. Sangiovanni-Vincentelli, and K. Suzuki. Hardware-Software Co-Design of Embedded Systems, The POLIS Approach. Kluwer Academic Publishers, Apr. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Benveniste, P. Caspi, S.A. Edwards, N. Halbwachs, P.L. Guernic, and R. de Simone. The Synchronous Languages Twelve Years Later. In Proceedings of the IEEE, Special Issue on Embedded Systems, volume 91, pages 64--83, Jan. 2003.Google ScholarGoogle ScholarCross RefCross Ref
  4. G. Berry. The Constructive Semantics of Pure Esterel. Draft Book, 1999.Google ScholarGoogle Scholar
  5. G. Berry. The Esterel v5 Language Primer, Version v5 91. Centre de Mathématiques Appliquées Ecole des Mines and INRIA, 06565 Sophia-Antipolis, 2000.Google ScholarGoogle Scholar
  6. G. Berry. The Foundations of Esterel. Proof, Language and Interaction: Essays in Honour of Robin Milner, 2000. Editors: G. Plotkin, C. Stirling and M. Tofte. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Boldt, X. Li, and R.v. Hanxleden. Compiling Esterel for a multithreaded reactive processor. Technischer Bericht 0603, Christian-Albrechts-Universität Kiel, Institut für Informatik und Praktische Mathematik, May 2006. http://www.informatik.uni-kiel.de/reports/2006/0603.html.Google ScholarGoogle Scholar
  8. Estbench Esterel Benchmark Suite. http://www1.cs.columbia.edu/~sedwards/software/estbench-1.0.tar.gz.Google ScholarGoogle Scholar
  9. E. Closse, M. Poize, J. Pulou, P. Venier, and D. Weil. SAXO-RT: Interpreting Esterel semantic on a sequential execution structure. In F. Maraninchi, A. Girault, and E. Rutten, editors, Electronic Notes in Theoretical Computer Science, volume 65. Elsevier, July 2002.Google ScholarGoogle Scholar
  10. S.A. Edwards. CEC: The Columbia Esterel Compiler. http://www1.cs.columbia.edu/~sedwards/cec/.Google ScholarGoogle Scholar
  11. S.A. Edwards. An Esterel compiler for large control-dominated systems. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 21(2), Feb. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S.A. Edwards. Tutorial: Compiling concurrent languages for sequential processors. ACM Transactions on Design Automation of Electronic Systems, 8(2):141--187, Apr. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S.A. Edwards, V. Kapadia, and M. Halas. Compiling Esterel into static discrete-event code. In International Workshop on Synchronous Languages, Applications, and Programming (SLAP'04), Barcelona, Spain, Mar. 2004.Google ScholarGoogle Scholar
  14. Esterel Technologies. Company homepage. http://www.esterel-technologies.com.Google ScholarGoogle Scholar
  15. S. Gädtke, X. Li, M. Boldt, and R. von Hanxleden. HW/SW Co-Design for a Reactive Processor. In Proceedings of the Student Poster Session at the ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES'06), Ottawa, Canada, June 2006.Google ScholarGoogle Scholar
  16. X. Li, J. Lukoschus, M. Boldt, M. Harder, and R.v. Hanxleden. An Esterel Processor with Full Preemption Support and its Worst Case Reaction Time Analysis. In Proceedings of the International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES), pages 225--236, New York, NY, USA, Sept. 2005. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. X. Li and R. von Hanxleden. A concurrent reactive Esterel processor based on multi-threading. In Proceedings of the 21st ACM Symposium on Applied Computing (SAC'06), Special Track Embedded Systems: Applications, Solutions, and Techniques, Dijon, France, April 23-27 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Lukoschus. Removing Cycles in Esterel Programs. PhD thesis, Christian-Albrechts-Universität Kiel, Institut für Informatik und Praktische Mathematik, July 2006.Google ScholarGoogle Scholar
  19. M.D. Natale, A. Sangiovanni-Vincentelli, and F. Balarin. Task scheduling with RT constraints. In DAC '00: Proceedings of the 37th Conference on Design Automation, pages 483--488, New York, NY, USA, 2000. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. B. Plummer, M. Khajanchi, and S.A. Edwards. An Esterel virtual machine forembedded systems. In International Workshop on Synchronous Languages, Applications, and Programming (SLAP'06), Vienna, Austria, Mar. 2006.Google ScholarGoogle Scholar
  21. D. Potop-Butucaru and R. de Simone. Optimization for faster execution of Esterel programs, pages 285--315. Kluwer Academic Publishers, Norwell, MA, USA, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. P.S. Roop, Z. Salcic, and M.W.S. Dayaratne. Towards Direct Execution of Esterel Programs on Reactive Processors. In 4th ACM International Conference on Embedded Software (EMSOFT 04), Pisa, Italy, Sept. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. L.H. Yoong, P. Roop, Z. Salcic, and F. Gruian. Compiling Esterel for distributed execution. In International Workshop on Synchronous Languages, Applications, and Programming (SLAP'06), Vienna, Austria, Mar. 2006.Google ScholarGoogle Scholar

Index Terms

  1. Mapping esterel onto a multi-threaded embedded processor

          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

          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!