TinyVM: an energy‐efficient execution infrastructure for sensor networks

Energy‐efficient implementation techniques for virtual machines (VMs) have received little attention yet: conventional wisdom claims that VMs have a diametrical effect on energy consumption, and VM‐based applications are therefore short‐lived. In this paper, we argue that bytecode interpretation is affordable if we synthesize VMs specifically for energy efficiency. We present TinyVM, an execution infrastructure that seamlessly integrates with C and nesC/TinyOS‐based programming environments. TinyVM achieves high code density through the use of compressed bytecode as the primary program representation. Compressed bytecode allows rapid application deployment with low communication overhead. TinyVM executes compressed bytecode in place, which eliminates the need for a decompression stage and thereby reduces memory consumption on sensor nodes. Our infrastructure automates the creation of energy‐efficient application‐specific VMs. Applications are partitioned in machine code, bytecode, and VM instruction set extensions. Partitioning is manually controlled and/or fully guided by a discrete optimization problem that produces a partitioning with lowest energy consumption for a given program size limit. We provide experimental results for sensor network benchmarks and for selected applications on various CPU architectures including Atmega128‐based motes and the ARM‐based Intel iMote2. TinyVM has been released under the GNU General Public License. Copyright © 2011 John Wiley & Sons, Ltd.

[1]  Gustavo Alonso,et al.  SwissQM: Next Generation Data Processing in Sensor Networks , 2007, CIDR.

[2]  Carlos Serôdio,et al.  Virtual Machines Applied to WSN's: The state-of-the-art and classification , 2007, 2007 Second International Conference on Systems and Networks Communications (ICSNC 2007).

[3]  Elfed Lewis,et al.  A comparative review of wireless sensor network mote technologies , 2009, 2009 IEEE Sensors.

[4]  David E. Culler,et al.  System architecture directions for networked sensors , 2000, SIGP.

[5]  M. Minuth,et al.  SenseBench: toward an accurate evaluation of sensor network processors , 2005, IEEE International. 2005 Proceedings of the IEEE Workload Characterization Symposium, 2005..

[6]  Bernd Burgstaller,et al.  An Embedded Systems Programming Environment for C , 2006, Euro-Par.

[7]  Keith D. Cooper,et al.  Enhanced code compression for embedded RISC processors , 1999, PLDI '99.

[8]  David J. Malan,et al.  Crypto for Tiny Objects , 2004 .

[9]  Philip Levis,et al.  The nesC language: a holistic approach to networked embedded systems , 2003, SIGP.

[10]  Wayne H. Wolf,et al.  SAMC: a code compression algorithm for embedded processors , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[11]  Philip Levis,et al.  Maté: a tiny virtual machine for sensor networks , 2002, ASPLOS X.

[12]  Jens Palsberg,et al.  Avrora: scalable sensor network simulation with precise timing , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[13]  Bernd Burgstaller,et al.  Treegraph-based Instruction Scheduling for Stack-based Virtual Machines , 2011, Bytecode@ETAPS.

[14]  Brian W. Kernighan,et al.  AMPL: A Mathematical Programing Language , 1989 .

[15]  David Gregg,et al.  Vmgen—a generator of efficient virtual machine interpreters , 2002, Softw. Pract. Exp..

[16]  Gu-Yeon Wei,et al.  An ultra low power system architecture for sensor network applications , 2005, 32nd International Symposium on Computer Architecture (ISCA'05).

[17]  R. Kling,et al.  The Intel/sup /spl reg// mote platform: a Bluetooth-based sensor network for industrial monitoring , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[18]  Bernd Burgstaller,et al.  Billy get your guns: fast barrel-shift decoding for in-place execution of Huffman-encoded bytecode streams , 2010 .

[19]  Pedro José Marrón,et al.  Generic role assignment for wireless sensor networks , 2004, EW 11.

[20]  Sungho Kim,et al.  An Efficient Mixed-Mode Execution Environment for C on Mobile Phone Platforms , 2009, 2009 WRI World Congress on Computer Science and Information Engineering.

[21]  Christopher W. Fraser,et al.  Code compression , 1997, PLDI '97.

[22]  David E. Culler,et al.  Telos: enabling ultra-low power wireless research , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[23]  John Daniels,et al.  Java™ on the bare metal of wireless sensor devices: the squawk Java virtual machine , 2006, VEE '06.

[24]  Christopher W. Fraser,et al.  A Retargetable C Compiler: Design and Implementation , 1995 .

[25]  Joel Koshy,et al.  VMSTAR: synthesizing scalable runtime environments for sensor networks , 2005, SenSys '05.

[26]  Adam Dunkels,et al.  Run-time dynamic linking for reprogramming wireless sensor networks , 2006, SenSys '06.

[27]  Brian W. Kernighan,et al.  AMPL: a mathematical programming language , 1989 .

[28]  David E. Culler,et al.  Active sensor networks , 2005, NSDI.

[29]  Robert Szewczyk,et al.  System architecture directions for networked sensors , 2000, ASPLOS IX.

[30]  Luc Van Gool,et al.  Speeded-Up Robust Features (SURF) , 2008, Comput. Vis. Image Underst..

[31]  M. Kozuch,et al.  Compression of embedded system programs , 1994, Proceedings 1994 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[32]  David E. Culler,et al.  A building block approach to sensornet systems , 2008, SenSys '08.

[33]  Jiun-Long Huang,et al.  A Virtual Machine-Based Programming Environment for Rapid Sensor Application Development , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[34]  Marc Feeley,et al.  Generation of fast interpreters for Huffman compressed bytecode , 2003, IVME '03.

[35]  Jan Beutel,et al.  Fast-prototyping Using the BTnode Platform , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[36]  Pedro José Marrón,et al.  FlexCup: A Flexible and Efficient Code Update Mechanism for Sensor Networks , 2006, EWSN.

[37]  Saumya K. Debray,et al.  Profile-guided code compression , 2002, PLDI '02.

[38]  Mani B. Srivastava,et al.  Multi-level software reconfiguration for sensor networks , 2006, EMSOFT '06.

[39]  Sungho Kim,et al.  TinyVM, an efficient virtual machine infrastructure for sensor networks , 2009, SenSys '09.

[40]  Wei Hong,et al.  The design of an acquisitional query processor for sensor networks , 2003, SIGMOD '03.

[41]  Christopher W. Fraser,et al.  Analyzing and compressing assembly code , 1984, SIGPLAN '84.

[42]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[43]  Kurt Keutzer,et al.  Code density optimization for embedded DSP processors using data compression techniques , 1995, Proceedings Sixteenth Conference on Advanced Research in VLSI.