SystemJ compilation using the tandem virtual machine approach
- 1 May 2009
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Design Automation of Electronic Systems
- Vol. 14 (3), 1-37
- https://doi.org/10.1145/1529255.1529256
Abstract
SystemJ is a language based on the Globally Asynchronous Locally Synchronous (GALS) paradigm. A SystemJ program is a collection of GALS nodes, also called clock domains, and each clock domain is a synchronous program that extends the Java language. Initial compilation of SystemJ has been to standard Java executing on a Java Virtual Machine (JVM), which is both inefficient and bulky for small embedded systems. This article proposes a new approach for compiling and executing SystemJ using a new type of virtual machine, called a Tandem Virtual Machine (TVM). The TVM approach provides an efficient implementation of SystemJ on both standard processors and resource-constrained embedded processors. The new approach is based on separating the control-driven and data-driven operations for execution on two virtual machines. While the JVM executes the data-driven operations, a Control Virtual Machine (CVM) is introduced to execute the control-driven parts of a SystemJ program. The TVM approach is capable of handling all data-driven and control-driven operations required by the GALS model. The benchmark results show that the TVM has code size improvements of over 60% on average and also a substantial improvement in execution speed over standard Java-based compilation.Keywords
This publication has 11 references indexed in Scilit:
- SHIM: a deterministic model for heterogeneous embedded systemsIEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2006
- ReactiveMLPublished by Association for Computing Machinery (ACM) ,2005
- REMICPublished by Association for Computing Machinery (ACM) ,2005
- An Esterel compiler for large control-dominated systemsIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2002
- ECLPublished by Association for Computing Machinery (ACM) ,1999
- The SugarCubes tool box: a reactive Java frameworkSoftware: Practice and Experience, 1998
- Communicating Reactive State Machines: Design, Model and ImplementationIFAC Proceedings Volumes, 1998
- The SL synchronous languageIEEE Transactions on Software Engineering, 1996
- Communicating reactive processesPublished by Association for Computing Machinery (ACM) ,1993
- Detection of Ada static deadlocks using Petri net invariantsIEEE Transactions on Software Engineering, 1989