Date: Mon, 2 Aug 1999 12:11:05 -0700 (PDT) From: Julian Elischer <julian@whistle.com> To: emulation@freebsd.org Subject: Seminar: Virtual Machine Acceleration, Aug 4 (fwd) Message-ID: <Pine.BSF.3.95.990802121053.9484B-100000@current1.whistle.com>
next in thread | raw e-mail | index | archive | help
---------- Forwarded message ---------- Date: Mon, 2 Aug 1999 02:20:33 -0700 (PDT) From: Monica Lam <lam@cs.stanford.edu> To: piglets@corsica.stanford.edu, colloq@cs.stanford.edu Subject: Seminar: Virtual Machine Acceleration, Aug 4 Virtual Machine Acceleration Vasanth Bala Hewlett-Packard Labs Gates 104 August 4, 1999 1:30 pm A Virtual Machine (VM) is a software CPU that emulates a non-native (virtual) system on a native machine. It typically consists of an interpreter for the virtual instruction set, together with a runtime environment. The VM itself is a natively compiled binary, that makes system calls to the native OS, and invokes native libraries. The conventional approach to accelerating a VM is to implement its interpreter as a JIT. Although JITs can outperform pure interpretation by a substantial margin, they have some drawbacks. A JIT can make the VM code non-portable (i.e., target machine dependent), and also significantly increase its memory footprint. While these issues are unimportant in the x86-dominated desktop market, they are nevertheless critical in the embedded device market. In this talk, I explore the following question: "Is it possible to retain the portability and footprint advantages of an interpreted VM, while achieving the performance of a machine-dependent JIT?" After a 3 year long investigation that took many interesting twists and turns, we have succeeded in developing a technology that has the real possibility of answering this question in the affirmative. It is called "transparent dynamic optimization", and refers to the RUNTIME optimization of a NATIVE instruction stream. Contrary to a conventional compiler, the optimiztion is done when the native bits are about to be executed, rather than when the native bits are first created. It is "transparent" in the sense that the native binary does not have to be prepared in any special way via instrumentation or compiler/language hints. The idea is to dynamically optimize the native VM program while it interprets its non-native input program, ideally accelerating it to JIT performance levels. Early results from our prototype system, called Dynamo, demonstrate the potential of this idea in a very compelling way. Dynamo accelerates -O optimized native PA-RISC binaries for the perl, li and m88ksim benchmarks (all "portable VMs" that execute non-native programs) to a -O4 performance level (approximately 20% speedup). Dynamo is implemented entirely in software, and does not rely on any compiler, programming language, OS, or hardware support. Dynamo's code footprint is a mere 250 Kb, and its data memory footprint is only 300 Kb. ----- Bio: Vas is a scientist at HP Labs Cambridge, MA. He is the chief architect of Dynamo, and has directed the project since its inception in Dec 1995. Prior to joining HP Labs in 1994, he has held positions at Kendall Square Research, IBM T.J. Watson Research Ctr, and Caltech. His current research interests are in compilers and architectures for embedded systems. Vas received his PhD from Rice University in 1989. +----------------------------------------------------------------------------+ | This message was sent via the Stanford Computer Science Department | | colloquium mailing list. To be added to this list send an arbitrary | | message to colloq-subscribe@cs.stanford.edu. To be removed from this list,| | send a message to colloq-unsubscribe@cs.stanford.edu. For more information,| | send an arbitrary message to colloq-request@cs.stanford.edu. For directions| | to Stanford, check out http://www-forum.stanford.edu | +-------------------------------------------------------------------------xcl+ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-emulation" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95.990802121053.9484B-100000>