COISA: A Compact OpenISA virtual platform for IoT devices

  • Carlos Eduardo Millani UNICAMP
  • Alisson Linhares UNICAMP
  • Rafael Auler UNICAMP
  • Edson Borin UNICAMP

Resumo


In face of the high number of different hardware platforms that we need to program in the Internet-of-Things (IoT), Virtual Machines (VMs) pose as a promising technology to allow a program once, deploy everywhere strategy. Unfortunately, many existing VMs are very heavy to work on resourceconstrained IoT devices. We present COISA, a compact virtual platform that relies on OpenISA, an Instruction Set Architecture (ISA) that strives for easy emulation, to allow a single program to be deployed on many platforms, including tiny microcontrollers. Our experimental results indicate that COISA is easily portable and is capable of running unmodified guest applications in highly heterogeneous host platforms, including one with only 2 kB of RAM.

Referências

A yweight Python interpreter. https://wiki.python.org/moin/PyMite. Accessed: Jul. 2015. [2] Apple II Emulator. https://courses.cit.cornell.edu/ee476/FinalProjects/s2007/bcr22/nal%20webpage/nal.html. Accessed: Jul. 2015.

AVR NESEMU. https://courses.cit.cornell.edu/ee476/FinalProjects/s2009/bhp7/teg25/bhp7/teg25/index.html. Accessed: Jul. 2015.

Commodore VIC-20 AVR Emulator. http://www.belanger.pwp.blueyonder.co.uk/Projects/Vic%20Emu/vicemu.htm. Accessed: Jul. 2015.

Emulating a z80 computer. http://hackaday.com/2010/04/27/emulating-a-z80-computer-with-an-avr-chip/. Accessed: Jul. 2015.

GCC Front Ends. https://gcc.gnu.org/frontends.html. Accessed: Jul. 2015.

GNU Binutils. https://www.gnu.org/software/binutils/. Accessed: Jul. 2015.

HaikuVM: a Java VM for ARDUINO and other micros using the leJOS runtime. http://haiku-vm.sourceforge.net/. Accessed: Jul. 2015.

SimpleRTJ a small footprint Java VM for embedded and consumer devices. www.rtjcom.com/downle.php?f=techpdf. Accessed: Jul. 2015.

The NanoVM: Java for the AVR. http://www.harbaum.org/till/nanovm/index.shtml. Accessed: Jul. 2015.

uJ: a Java VM for microcontrollers. http://goo.gl/VXdbS. Accessed: Jul. 2015. [12] F. Aslam, L. Fennell, C. Schindelhauer, P. Thiemann, G. Ernst, E. Haussmann, S. Rührup, and Z. Uzmi. Optimized Java Binary and Virtual Machine for Tiny Motes. Lecture Notes in Computer Science. Springer, Berlin, Heidelberg, 2010.

Atmel. 8-bit AVR Microcontroller with 32K Bytes In-System Programmable Flash Datasheet. http://www.atmel.com/Images/doc8161.pdf, 2009. Accessed: Jul. 2015.

R. Auler and E. Borin. OpenISA, freedom powered by efcient binary translation. In Proceedings

D. Bagley. Great Computer Language Shootout. http://dada.perl.it/shootout/. Accessed: Jul. 2015. [16] M. Banzi, D. Cuartielles, T. Igoe, G. Martino, and D. Mellis. Arduino. http://www.arduino.cc/, of the 8th AMAS-BT, 2015. 2005. Accessed: Jul. 2015.

N. Bessis and C. Dobre. Big Data and Internet of Things: A Roadmap for Smart Environments. Studies in Computational Intelligence. Springer International Publishing, 2014. [18] E. Borin and Y. Wu. Characterization of DBT overhead. In Proceedings of the 2009 IEEE International Symposium on Workload Characterization (IISWC '09), 2009.

N. Brouwers, P. Corke, and K. Langendoen. A Java Compatible Virtual Machine for Wireless Sensor Nodes. SenSys '08. ACM, 2008.

A. Caracas, T. Kramp, M. Baentsch, M. Oestreicher, T. Eirich, and I. Romanov. Mote Runner: A Multi-language Virtual Machine for Small Embedded Devices. SENSORCOMM'09. IEEE, June 2009.

A. L. Carvalho. Suporte para Execução de Máquinas Virtuais Nativas. Master's thesis, Institute of Computing, UNICAMP, 2015.

D. Cesar, R. Auler, R. Dalibera, S. Rigo, E. Borin, and G. Araujo. Modeling virtual machines misprediction overhead. In Proceedings of the IISWC, 2013.

S.B. Furber. ARM System-on-chip Architecture. Addison-Wesley, 2000. [24] Intel. Intel Edison. http://www.intel.com/content/www/us/en/do-it-yourself/edison.html, 2014.

Joel Koshy and Raju Pandey. VMSTAR: Synthesizing Scalable Runtime Environments for Sensor Accessed: Jul. 2015. Networks. SenSys '05. ACM, 2005.

K. Krewell. Transmeta Gets More Efceon. Microprocessor Report, 17(10), 2003. [27] B. C. Lopes, R. Auler, L. Ramos, E. Borin, and R. Azevedo. SHRINK: Reducing the ISA Complexity via Instruction Recycling. ISCA 42. ACM, 2015.

Y. Shi, K. Casey, M. A. Ertl, and D. Gregg. Virtual Machine Showdown: Stack Versus Registers. ACM Trans. Archit. Code Optim., 4(4):2:1–2:36, January 2008.

D. Simon, C. Cifuentes, D. Cleal, J. Daniels, and D. White. The squawk virtual machine: Java on

J.E. Smith and R. Nair. Virtual machines: versatile platforms for systems and processes. Morgan the bare metal. VEE '06. ACM, 2006. Kaufmann, 2005.

T. Suyama, Y. Kishino, and F. Naya. Abstracting IoT devices using virtual machine for wireless sensor nodes. In WF-IoT, pages 367–368, 2014.

O. Vermesan and P. Friess. Internet of Things: Converging Technologies for Smart Environments and Integrated Ecosystems. The River Publishers Series in Communications. River Publishers, 2013.
Publicado
18/10/2015
MILLANI, Carlos Eduardo; LINHARES, Alisson; AULER, Rafael; BORIN, Edson. COISA: A Compact OpenISA virtual platform for IoT devices. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 16. , 2015, Florianópolis. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2015 . p. 48-59. DOI: https://doi.org/10.5753/wscad.2015.14271.