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.
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- G. Berry. The Constructive Semantics of Pure Esterel. Draft Book, 1999.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- Estbench Esterel Benchmark Suite. http://www1.cs.columbia.edu/~sedwards/software/estbench-1.0.tar.gz.Google Scholar
- 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 Scholar
- S.A. Edwards. CEC: The Columbia Esterel Compiler. http://www1.cs.columbia.edu/~sedwards/cec/.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Esterel Technologies. Company homepage. http://www.esterel-technologies.com.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- J. Lukoschus. Removing Cycles in Esterel Programs. PhD thesis, Christian-Albrechts-Universität Kiel, Institut für Informatik und Praktische Mathematik, July 2006.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Index Terms
Mapping esterel onto a multi-threaded embedded processor
Recommendations
Mapping esterel onto a multi-threaded embedded processor
Proceedings of the 2006 ASPLOS ConferenceThe 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 ...
Mapping esterel onto a multi-threaded embedded processor
Proceedings of the 2006 ASPLOS ConferenceThe 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 ...
Mapping esterel onto a multi-threaded embedded processor
Proceedings of the 2006 ASPLOS ConferenceThe 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 ...








Comments