skip to main content
10.1145/1134650.1134669acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
Article

Efficient code generation from SHIM models

Published:14 June 2006Publication History

ABSTRACT

Programming concurrent systems is substantially more difficult than programming sequential systems, yet most embedded systems need concurrency. We believe this should be addressed through higher-level models of concurrency that eliminate many of the usual challenges, such as nondeterminism arising from races.The shim model of computation provides deterministic concurrency, and there already exist ways of implementing it in hardware and software. In this work, we describe how to produce more efficient C code from shim systems.We propose two techniques: a largely mechanical one that produces tail-recursive code for simulating concurrency, and a more clever one that statically analyzes the communication pattern of multiple processes to produce code with far less overhead. Experimentally, we find our tail-recursive technique produces code that runs roughly twice as fast as a baseline; our statically-scheduled code can run up to twelve times faster.

References

  1. Albert Benveniste, Paul Caspi, Stephen A. Edwards, Nicolas Halbwachs, Paul Le Guernic, and Robert de Simone. The synchronous languages 12 years later. Proceedings of the IEEE, 91(1):64--83, January 2003.Google ScholarGoogle Scholar
  2. Gérard Berry and Georges Gonthier. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming, 19(2):87--152, November 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Luca Cardelli and Rob Pike. Squeak: A language for communicating with mice. In Proceedings of the Twelfth ACM Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH), pages 199--204, San Francisco, California, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Stephen A. Edwards. Compiling concurrent languages for sequential processors. ACM Transactions on Design Automation of Electronic Systems, 8(2):141--187, April 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Stephen A. Edwards and Olivier Tardieu. SHIM: A deterministic model for heterogeneous embedded systems. In Proceedings of the International Conference on Embedded Software (Emsoft), Jersey City, New Jersey, September 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Stephen A. Edwards and Olivier Tardieu. SHIM: A deterministic model for heterogeneous embedded systems. IEEE Transactions on Very Large Scale Integrated (VLSI) Systems, 2006. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Robert S. French, Monica S. Lam, Jeremy R. Levitt, and Kunle Olukotun. A general method for compiling event-driven simulations. In Proceedings of the 32nd Design Automation Conference, pages 151--156, San Francisco, California, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Nicholas Halbwachs, Paul Caspi, Pascal Raymond, and Daniel Pilaud. The synchronous data flow programming language LUSTRE. Proceedings of the IEEE, 79(9):1305--1320, September 1991.Google ScholarGoogle ScholarCross RefCross Ref
  9. Nicholas Halbwachs, Pascal Raymond, and Christophe Ratel. Generating efficient code from data-flow programs. In Proceedings of the Third International Symposium on Programming Language Implementation and Logic Programming (PLILP), volume 528 of Lecture Notes in Computer Science, Passau, Germany, August 1991. Springer-Verlag.Google ScholarGoogle ScholarCross RefCross Ref
  10. Gilles Kahn. The semantics of a simple language for parallel programming. In Information Processing 74: Proceedings of IFIP Congress 74, pages 471--475, Stockholm, Sweden, August 1974. North-Holland.Google ScholarGoogle Scholar
  11. Bill Lin. Software synthesis of process-based concurrent programs. In Proceedings of the 35th Design Automation Conference, pages 502--505, San Francisco, California, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. André Costi Nácul and Tony Givargis. Code partitioning for synthesis of embedded applications with Phantom. In Proceedings of the IEEE/ACM International Conference on Computer Aided Design (ICCAD), pages 190--196, San Jose, California, November 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Marco Sgroi, Luciano Lavagno, Yosinori Watanabe, and Alberto Sangiovanni-Vincentelli. Synthesis of embedded software using free-choice Petri nets. In Proceedings of the 36th Design Automation Conference, pages 805--810, New Orleans, Louisiana, June 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Xiaohan Zhu and Bill Lin. Compositional software synthesis of communicating processes. In Proceedings of the IEEE International Conference on Computer Design (ICCD), pages 646--651, Austin, Texas, October 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

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
  • Published in

    cover image ACM Conferences
    LCTES '06: Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
    June 2006
    220 pages
    ISBN:159593362X
    DOI:10.1145/1134650
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 41, Issue 7
      Proceedings of the 2006 LCTES Conference
      July 2006
      208 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1159974
      Issue’s Table of Contents

    Copyright © 2006 ACM

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 14 June 2006

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    Overall Acceptance Rate116of438submissions,26%

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!