An embedded implementation of the Common Language Infrastructure

The Common Language Infrastructure provides a unified instruction set which may be targeted by a variety of high level language compilers. This unified instruction set simplifies the construction of compilers and gives application designers the ability to choose the high level programming language that best suits the problem being solved. While the Common Language Infrastructure solves many problems related to design of applications and compilers, it is not without its own problems. The Common Language Infrastructure is based upon a virtual machine, much like the Java Virtual Machine. This requires that all instructions being executed on the Common Language Infrastructure be translated to native machine instructions before they can be executed on the host processor. This leads to degradation in performance. In order to overcome this problem it is proposed that an embedded processor capable of natively executing the CLI instruction set be developed. The objective of this work is the design and implementation, using VHDL and simulation, of an embedded processor capable of natively executing the CLI instruction set. This processor provides a platform easily targeted by software developers.

[1]  Martin Schoeberl,et al.  JOP: A Java Optimized Processor for Embedded Real-Time Systems , 2008 .

[2]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[3]  Kevin Burton NET Common Language Runtime Unleashed , 2002 .

[4]  Barton P. Miller,et al.  Performance Measurement of Interpreted Programs , 1998, Euro-Par.

[5]  David Hardin Real-time objects on the bare metal: an efficient hardware realization of the Java/sup TM/ Virtual Machine , 2001, Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISORC 2001.

[6]  Kenneth B. Kent,et al.  The co-design of virtual machines using reconfigurable hardware , 2003 .

[7]  Ramesh Radhakrishnan,et al.  Microarchitectural techniques to enable efficient java execution , 2000 .

[8]  Hans Toetenel,et al.  Embedded Software Engineering: The State of the Practice , 2003, IEEE Softw..

[9]  Edward A. Lee,et al.  What's Ahead for Embedded Software? , 2000, Computer.

[10]  Kenneth B. Kent,et al.  A quantitative analysis of the .NET common language runtime , 2008, J. Syst. Archit..

[11]  J. Michael O'Connor,et al.  picoJava-I: the Java virtual machine in hardware , 1997, IEEE Micro.

[12]  Ron Cytron,et al.  Does “just in time” = “better late than never”? , 1997, POPL '97.

[13]  Georg Acher,et al.  JIFFY - ein FPGA-basierter Java Just-in-time-Compiler für eingebettete Anwendungen , 2003 .

[14]  Matthew Arnold,et al.  A Survey of Adaptive Optimization in Virtual Machines , 2005, Proceedings of the IEEE.

[15]  Premkumar T. Devanbu,et al.  Techniques for trusted software engineering , 1998, Proceedings of the 20th International Conference on Software Engineering.

[16]  Brian D. Noble,et al.  When Virtual Is Better Than Real , 2001 .

[17]  Luigi Carro,et al.  Making Java Work for Microcontroller Applications , 2001, IEEE Des. Test Comput..