[virtmach] Implementing VMs efficiently (aka an attempt to revive the list)

Manoj Plakal plakal@cs.wisc.edu
Wed, 2 Feb 2000 14:55:35 -0600


So here's my attempt at starting a thread on this apparently
dead list :)

What are people's thoughts on trends in using dynamic optimization
or some form of hardware support to implement virtual machines?

Yes, we all know that Smalltalk, LISP, Forth etc have been there
and done that but some recent trends are interesting especially
if they make a mainstream impact (no flamewars please).

Links of interest include:

    - Transmeta's Crusoe: if you've been following posts by
      Transmeta employees to comp.arch, you may notice that
      they have a version of their code morpher that can
      morph both x86 and Java byte codes, the benchmark was
      x86 DooM with the inner loop compiled to Java using
      a picoJava back-end contributed to gcc. Reserved opcodes
      caused the morpher to switch emulated processor mode.
      Apparently, you get *better* performance when morphing
      Java than when morphing x86 (at least to the extent 
      that I understand their posts) which is interesting. At
      least they are able to emulate multiple ISAs which makes
      it interesting to more people.

    - HP Dynamo: a dynamic optimizer that can optimize PA-RISC
      binaries while they execute. The home page is at:
      http://www.hpl.hp.com/cambridge/projects/Dynamo/ and one
      of their on-line presentations talks about efficiently
      implementing VMs using their technology.

    - Wisconsin Strata: http://www.cae.wisc.edu/~ecearch/strata/
      which is trying to design better VMs using software-hardware
      co-design.

    - Sun HotSpot and allied Java JIT stuff ... (other JVMs? IBM
      Jalapeno?)

    - any number of emulation/dynamic translation software products
      (Compaq FX!32, IBM Daisy, Connectix VirtualPC, Insignia
       SoftWindows/RealPC(?), VMware (to some extent) )

Thoughts? Ideas? 

Manoj