skip to main content
article
Free Access

The embedded machine: Predictable, portable real-time code

Published:01 October 2007Publication History
Skip Abstract Section

Abstract

The Embedded Machine is a virtual machine that mediates in real time the interaction between software processes and physical processes. It separates the compilation of embedded programs into two phases. The first phase, the platform-independent compiler phase, generates E code (code executed by the Embedded Machine), which supervises the timing, not the scheduling of, application tasks relative to external events such as clock ticks and sensor interrupts. E code is portable and, given an input behavior, exhibits predictable (i.e., deterministic) timing and output behavior. The second phase, the platform-dependent compiler phase, checks the time safety of the E code, that is, whether platform performance (determined by the hardware) and platform utilization (determined by the scheduler of the operating system) enable its timely execution. We have used the Embedded Machine to compile and execute high-performance control applications written in Giotto, such as the flight control system of an autonomous model helicopter.

References

  1. Armstrong, J. 1997. The development of Erlang. In Proceedings of the ACM International Conference on Functional Programming. 196--203. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Berry, G. 2000. The foundations of Esterel. In Proof, Language, and Interaction: Essays in Honour of Robin Milner, G. Plotkin, C. Stirling, and M. Tofte, Eds. MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Burns, A. and Wellings, A. 1997. Real-Time Systems and Programming Languages. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Buttazzo, G. 1997. Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications. Kluwer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dean, T. and Boddy, M. 1988. An analysis of time-dependent planning. In Proceedings of the National Conference on Artificial Intelligence. 49--54.Google ScholarGoogle Scholar
  6. Ferdinand, C., Heckmann, R., Langenbach, M., Martin, F., Schmidt, M., Theiling, H., Thesing, S., and Wilhelm, R. 2001. Reliable and precise WCET determination for a real-life processor. In Proceedings of the International Workshop on Embedded Software. Lecture Notes in Computer Science, Vol. 2211, Springer, 469--485. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Halbwachs, N. 1993. Synchronous Programming of Reactive Systems. Kluwer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Halbwachs, N., Caspi, P., Raymond, P., and Pilaud, D. 1991. The synchronous dataflow programming language Lustre. In Proceedings of the IEEE 79, 1305--1320.Google ScholarGoogle ScholarCross RefCross Ref
  9. Henzinger, T., Horowitz, B., and Kirsch, C. 2003. Giotto: A time-triggered language for embedded programming. In Proceedings of the IEEE 91, 84--99.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Henzinger, T., Kirsch, C., Majumdar, R., and Matic, S. 2002. Time-safety checking for embedded programs. In Proceedings of the International Workshop on Embedded Software. Lecture Notes in Computer Science, Vol. 2491, Springer, 76--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Henzinger, T., Kirsch, C., and Matic, S. 2003. Schedule-carrying code. In Proceedings of the International Workshop on Embedded Software. Lecture Notes in Computer Science, Vol. 2855, Springer, 241--256.Google ScholarGoogle ScholarCross RefCross Ref
  12. Henzinger, T., Kirsch, C., and Matic, S. 2005. Composable code generation for distributed Giotto. In Proceedings of the ACM Conference on Languages, Compilers, and Tools for Embedded Systems. 21--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Kirsch, C., Sanvido, M., and Henzinger, T. 2005. A programmable microkernel for real-time systems. In Proceedings of the ACM International Conference on Virtual Execution Environments. 35--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kirsch, C., Sanvido, M., Henzinger, T., and Pree, W. 2002. A Giotto-based helicopter control system. In Proceedings of the International Workshop on Embedded Software. Lecture Notes in Computer Science, Vol. 2491, Springer, 46--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Liu, C. and Layland, J. 1973. Scheduling algorithms for multiprogramming in a hard-real-time environment. J. ACM 20, 46--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Plaice, J. and Saint, J.-B. 1998. The Lustre-Esterel portable format. Tech. rep. INRIA Sophia Antipolis.Google ScholarGoogle Scholar
  17. Sanvido, M. 1999. A computer system for model helicopter flight control; Technical memo Nr. 3: The software core. Tech. rep. 317, ETH Zurich.Google ScholarGoogle Scholar
  18. Weil, D., Bertin, V., Closse, E., Poize, M., Venier, P., and Pulou, J. 2000. Efficient compilation of Esterel for real-time embedded systems. In Proceedings of the ACM International Conference on Compilers, Architectures, and Synthesis for Embedded Systems. 2--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Wirth, N. 1977. Toward a discipline of real-time programming. Comm. ACM 20, 577--583. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Wirth, N. 1996. Tasks versus threads: An alternative multiprocessing paradigm. Software: Concepts Tools 17, 6--12.Google ScholarGoogle Scholar

Index Terms

  1. The embedded machine: Predictable, portable real-time code

        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

        • Published in

          cover image ACM Transactions on Programming Languages and Systems
          ACM Transactions on Programming Languages and Systems  Volume 29, Issue 6
          October 2007
          408 pages
          ISSN:0164-0925
          EISSN:1558-4593
          DOI:10.1145/1286821
          Issue’s Table of Contents

          Copyright © 2007 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 October 2007
          Published in toplas Volume 29, Issue 6

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • article

        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!