Virtual Machine Architectures, Implementations, and
Table of Contents
Office phone: 934017409
Selected papers available
via the web
- Reference Course Material
1) John L. Hennessy and David A. Patterson, Computer Architecture:
Approach, 2nd Edition, Morgan Kaufmann Publishers,
2) Andrew S. Tanenbaum, Modern Operating Systems, 2nd Edition, Prentice
The default project is to write a paper that surveys an area within virtual
Co-Designed VM Slides Available May 21
HLL VM slides available May 21
OS VM slides avalable May 21
Dynamic Optimization Slides Available May 19
ABI VM reading and slides available May 14
Web site created May 11 '03
Class will meet on the following schedule.
May 13 & 15 Tues, Thurs
May 20, 22, 23 Tues,Thurs, Fri.
1. Introduction (1 hour)
VM types and applications
Translation, Optimization, Replication
Summary of key design issues
2. Computer Architecture (1 hour)
Principal interfaces: ISA, ABI
Managing and protecting hardware resources
3. Emulation: Interpretation and Binary Translation
Design issues and alternatives
Case Study: Shade
4. ABI VMs (3 hours)
Handling OS calls
Case studies: FX!32, WABI
5. Dynamic Optmization (2 hours)
Case studies: UQDBT, HP Shogun, HP Dynamo
6. Co-Designed VMs (1 hour)
Support for speculation
Case studies: Daisy, Crusoe
7. HLL VMs (1 hour)
8. System VMs (3 hours)
OS management and protection of resources
Virtualizing memory, processor, I/O
Instruction set virtualizability
Whole System VMs
Case studies: IBM VM/370, Intel x86 VMware, SimOS
- J. E. Smith, "An Overview
of Virtual Machine Architectures"
- J. E. Smith, "ISA Emulation:
Interpretation and Binary Translation"
- J. E. Smith, "ABI Virtual
- R. J. Hookway, M. A. Herdeg, "Digital
FX!32: Combining Emulation and Binary Translation," Digital Technical
Journal, Jan. 1997, pp. 3-12.
- B. Cmelik and D. Keppel, "Shade:
A Fast Instruction-Set Simulator for Execution Profiling," University
of Washington Technical Report, UWCSE 93-06-06.
- V. Bala, E. Duesterwald, S. Banerjia, "Transparent
Dynamic Optimization: The Design and Implementation of Dynamo," HP Laboratories
Technical Report HPL-1999-78, June 1999.
- B. C. Le, "An Out-of-Order
Execution Technique for Runtime Binary Translators," Proc. 8th
ASPLOS, 1998, pp. 151-158.
- J. Dean, et al, "ProfileMe:
Hardware Support for Instruction-Level Profiling on Out-of-Order Processors,"
30th Int. Symp. on Microarchitecture, Dec. 1997, pp. 292-302.
- Thomas M. Conte et al., "Accurate
and practical profile-driven compilation using the profile buffer", Proceedings
of the 29th Annual International Symposium on Microarchitecture, December
1996, pp. 36-45.
- K. Ebcioglu, et al., "Dynamic
Binary Translation and Optimization," IEEE Transactions on Computers,
June 2001, pp. 529-548.
- A. Klaiber, "The
Technology Behind Crusoe Processors," Transmeta Technical Brief, 2000.
- M. C. Merten, et al., "An Architectural
Framework for Runtime Optimization," IEEE Transactions on Computers,
June 2001, pp. 567-589.
- J. Olin, "Inside
the Java Virtual Machine", 1996
- S. Meloan, "The
Java HotSpot Performance Engine: An In-Depth Look," 1999
- M. Arnold et al., "Adaptive
Optimization in the Jalapeno JVM", OOPSLA '00, Oct. 2000.
- A. Tabatabai, et al., "Fast
Effective Code Generation in a Just-In-Time Java Compiler," ACM SIGPLAN
'98, pp. 280-290, 1998.
- R. Goldberg, "Formal Requirements
for Virtualizable Third Generation Architectures," CACM, July
1974, pp. 412-421.
- R. A. MacKinnon, "The Changing
Virtual Machine Environment: Interfaces to Real Hardware, Vrtual Hardware
and Other Virtual Machines," IBM Systems Journal, 1979.
- K. Lawton, "Plex86:
an i80x86 Virtual Machine," Usenix, Oct. 2000.
- Anon. "VMware Virtual
Platform Technology White Paper", VMware Corporation, 1999.
- M. Rosenblum, "VMware's
Virtual Platform Technology," Stanford Computer Systems Seminar,
Jan. 12, 2000.
- J. Sugerman, et al., "Virtualizing
I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor,"
- M. Rosenblum, et al, "Complete Computer
System Simulation: the SimOS Approach", IEEE Parallel and Distributed
Technology, Fall 1995.
- E. Bugnion, S. Devine and M. Rosenblum, "Disco: Running
Commodity Operating Systems on Scalable Multiprocessors," Proc. of 16th
Symposium on Operating Systems Principles, 1997.
- E. Sirer, et al., "Design
and Implementation of a Distributed Virtual Machine for Networked Computers,"
SOSP-17, pp. 202-216, 1999.