Skip to main content

An Experimental Environment Validating the Suitability of CLI as an Effective Deployment Format for Embedded Systems

  • Conference paper
High Performance Embedded Architectures and Compilers (HiPEAC 2008)

Abstract

Software productivity for embedded systems is greatly limited by the fragmentation of platforms and associated development tools. Platform virtualization environments, like Java and Microsoft .NET, help alleviate the problem, but they are limited to host functionalities running on the system microcontroller. Due to the ever increasing demand for processing power, it is desirable to extend their benefits to the rest of the system. We present an experimental framework based on GCC that validates the choice of CLI as a suitable processor-independent deployment format. In particular, we illustrate our GCC port to CLI and we evaluate the generated bytecode in terms of code size and performance. We inject it back into GCC through a CLI front-end that we also illustrate, and we complete the compilation down to native code. We show that using CLI does not degrade performance. Compared to other CLI solutions, we offer a full development flow for the C language, generating a subset of pure CLI that does not require any virtual machine support other than a JIT compiler. It is therefore well suited for deeply embedded media processors running high performance media applications.

This work was partially funded by the HiPEAC Network of Excellence.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. DotGNU project, http://dotgnu.org

  2. Mono-compatible compilers, http://www.mono-project.com/Languages

  3. The Mono Project, http://www.mono-project.com

  4. Bona, A., Costa, R., Ornstein, A., Rohou, E.: GCC CLI back-end project, http://gcc.gnu.org/projects/cli.html

  5. Costa, R., Ornstein, A., Rohou, E.: CLI Back-End in GCC. In: GCC Developers’ Summit, pp. 111–116, Ottawa, Canada (July 2007)

    Google Scholar 

  6. Costa, R., Rohou, E.: Comparing the Size of .NET Applications with Native Code. In: Proceedings of the 3rd IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis, Jersey City, NJ, USA, pp. 99–104. ACM Press, New York (2005)

    Chapter  Google Scholar 

  7. ECMA International, Rue du Rhône 114, 1204 Geneva, Switzerland. Common Language Infrastructure (CLI) Partitions I to IV, 4th edn. (June 2006)

    Google Scholar 

  8. Free Software Foundation. The GNU Compiler Collection, http://gcc.gnu.org

  9. The GNU Compiler for the Java Programming Language. http://gcc.gnu.org/java

  10. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Addison-Wesley, Reading (2000)

    Google Scholar 

  11. Guthaus, M.R., Ringenberg, J.S., Ernst, D., Austin, T.M., Mudge, T., Brown, R.B.: MiBench: A free, commercially representative embedded benchmark suite. In: IEEE 4th Annual Workshop on Workload Characterization, Austin, TX, USA (December 2001)

    Google Scholar 

  12. Hanson, D.R.: Lcc.NET: Targeting the .NET Common Intermediate Language from Standard C. Software: Practice and Experience 34(3), 265–286 (2003)

    Article  Google Scholar 

  13. International Organization for Standardization and International Electrotechnical Commission. International Standard ISO/IEC 23271:2006 - Common Language Infrastructure (CLI), Partitions I to VI, 2nd edn.

    Google Scholar 

  14. International Organization for Standardization and International Electrotechnical Commission. International Standard ISO/IEC 9899:TC2 - Programming languages - C (1999)

    Google Scholar 

  15. Kottalam, J.: Blog of Jeyasankar Kottalam (2005), http://gcc-cil.blogspot.com , http://forge.novell.com/modules/xfmod/project/?gcc-cil

  16. Lee, C., Potkonjak, M., Mangione-Smith, W.H.: MediaBench: A Tool for Evaluating and Synthesizing Multimedia and Communications Systems. In: Proceedings of the 30th Annual IEEE/ACM International Symposium on Microarchitecture, pp. 330–335 (1997)

    Google Scholar 

  17. Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley, Reading (1999)

    Google Scholar 

  18. Merill, J.: GENERIC and GIMPLE: A New Tree Representation for Entire Functions. In: GCC Developers’ Summit (2003)

    Google Scholar 

  19. Fernández Pascual, R.: HiPEAC PhD Internship – GCC CIL Frontend (2006), http://www.hipeac.net/node/823

  20. Rabe, B.: Towards a CLI Assembly Format for Embedded Systems. In: International Conference on Embedded Systems and Applications, Las Vegas, NE, USA (June 2006)

    Google Scholar 

  21. Richter, S., Rasche, A., Polze, A.: Hardware-near Programming in the Common Language Infrastructure. In: Proceedings of the 10th IEEE International Symposium on Object and Component-oriented Real-time Distributed Computing, Santorini Island, Greece (May 2007)

    Google Scholar 

  22. Singer, J.: GCC .NET – a Feasibility Study. In: 1st International Workshop on C# and .NET Technologies on Algorithms, Computer Graphics, Visualization, Distributed and WEB Computing, Plzen, Czech Republic (2003)

    Google Scholar 

  23. Stallman, R.M., and the GCC Developer Community. GNU Compiler Collection Internals. Free Software Foundation

    Google Scholar 

  24. STMicroelectronics. STb7100-MBoard Datasheet – Single-chip, low-cost HD set-top box decoder for digital TV, digital set-top box or cable box (December 2005)

    Google Scholar 

  25. Operating Systems and Middleware Group. Lego.NET website, http://www.dcl.hpi.uni-potsdam.de/research/lego.NET

  26. Löwis, M.v., Möller, J.: A Microsoft .NET Front-End for GCC. In: Proceedings of .NET Technologies 2006, Plzen, Czech Republic (June 2006) ISBN 80-86943-11-9

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Per Stenström Michel Dubois Manolis Katevenis Rajiv Gupta Theo Ungerer

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cornero, M., Costa, R., Fernández Pascual, R., Ornstein, A.C., Rohou, E. (2008). An Experimental Environment Validating the Suitability of CLI as an Effective Deployment Format for Embedded Systems. In: Stenström, P., Dubois, M., Katevenis, M., Gupta, R., Ungerer, T. (eds) High Performance Embedded Architectures and Compilers. HiPEAC 2008. Lecture Notes in Computer Science, vol 4917. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77560-7_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-77560-7_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-77559-1

  • Online ISBN: 978-3-540-77560-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics