ACM SIGPLAN 2004 Workshop on

Interpreters, Virtual Machines and Emulators (IVME'04)

 

Final Program

Invited Talks

Online Registration

Program Committee

Last Year's IVME

Invited Talks

Real-Life JVM Design for Mobile Devices
Bernd Mathiske, Sun Labs

The design of Java(TM) Virtual Machines for mobile devices is strongly influenced by resource limitations (memory sizes, processor speed, power consumption, etc.). For early designs like the KVM, the main challenge was to meet the given restrictions at all. Meanwhile, the design space has shifted and widened, accompanied by increasing user demands for execution speed, interactive responsiveness and reliability. Consequently, JVMs for mobile devices need to incorporate increasingly sophisticated features, in some cases “trickling down” from larger JVMs. It is not straight forward to adopt any of the latter, though, since resource limitations simultaneously increase the urgency of enhancing resource management and the urgency of simplicity.

In this tension field, we will review design decisions made for the CLDC HotSpot(TM) Java Virtual Machine, a high performance product running on mobile phones. Drawing comparisons with alternative designs in different JVMs that support larger or smaller Java platform stacks, we will determine practical viability and necessity boundaries for alternative implementations of features (e.g. garbage collection, multi-tasking),respectively for employing them at all (e.g. preverification, interpretation, dynamic compilation). Related aspects of testing, benchmarking and tuning will also be addressed.

Bio: Bernd Mathiske is a Senior Staff Engineer at Sun Microsystems Laboratories working on Java(TM) Virtual Machine implementation. In recent years, he led the productization of the CLDC HotSpot(TM) Virtual Machine in Sun's Wireless Technology Group. He holds a PhD from the University of Hamburg, Germany.

 

Experiences with Interpretation vs. Translation in Transmeta's Code Morphing Software
Dean Deaver, Transmeta

Transmeta's Efficeon microprocessor is a full, system-level implementation of the x86 architecture, comprising a native VLIW microprocessor with a software layer, the Code Morphing Software (CMS), that combines an interpreter, dynamic binary translator, ptimizer, and run-time system. This software layer provides unique opportunities for studying the tradeoffs between interpretation and dynamic translation with various levels of optimization, while running arbitrary PC workloads. This talk presents some results from such a study, and provides insight into what mix of these emulation modes is most desirable over the range of tested workloads.

Bio: Dean Deaver is a member of the technical staff at Transmeta, and is currently responsible for various components of the Code Morphing Software (CMS) Translator. Prior to joining Transmeta, he was an engineer in the Alpha Migration Tools (AMT) group at Digital Equipment Corporation, where he worked on binary translation for the Alpha and development tools for the StrongARM architecture. Dean holds a MS in Computer Science from Virginia Commonwealth University.

 

Performance Issues and Resolutions for the .NET Runtime Virtual Machine.
Vance Morrison, Microsoft

The .NET Runtime is an example of virtual machine technology “in action”. It forms the foundation of every C#, and VB application written today, and is one of the most widely distributed pieces of virtual machine technology. Performance considerations have been a driving force in its design; however they may not be the ones you might have guessed. Scalability, working set, and startup time turn out to be more important considerations then the more traditional “instruction path” notion of performance. In this talk I will provide a brief background on the runtime, describe some of the

performance problems we faced, and how we solved them. Finally I will talk a bit about the performance challenges we have still in front of us as ever more demanding customers use the runtime.

Bio: Vance Morrison is the lead programmer for the 'just in time' compiler for the .NET Runtime. He has been a member of the .NET Runtime group since its inception over 5 years ago. He was a key designer of the intermediate language used by the runtime, and participated in the design of the much of the fundamental parts of the system (MetaData, IL, Object Model, GC synchronization etc). He is associated with over 10 patents associated with the runtime. He will undoubtedly be at it 5 years from now, since we have only scratched the surface of what Virtual Machine technology can do.

send comments to franz@uci.edu