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.
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Stephen A. Edwards. Compiling concurrent languages for sequential processors. ACM Transactions on Design Automation of Electronic Systems, 8(2):141--187, April 2003. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Recommendations
Using program specialization to speed SystemC fixed-point simulation
PEPM '06: Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulationGeneric simulation components, such as fixed-precision arithmetic routines, make it easier to quickly assemble system simulations, but generic components tend to simulate more slowly than their manually-written specialized counterparts. So a system ...
SHIM: a deterministic model for heterogeneous embedded systems
EMSOFT '05: Proceedings of the 5th ACM international conference on Embedded softwareTypical embedded hardware/software systems are implemented using a combination of C and an hdl such as Verilog. While each is well-behaved in isolation, combining the two gives a nondeterministic model whose ultimate behavior must be validated through ...
Scheduling-independent threads and exceptions in SHIM
EMSOFT '06: Proceedings of the 6th ACM & IEEE International conference on Embedded softwareConcurrent programming languages should be a good fit for embedded systems because they match the intrinsic parallelism of their architectures and environments. Unfortunately, typical concurrent programming formalisms are prone to races and ...






Comments