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.