May 2006


Virtual Machine Architectures, Implementations, and Applications 

 

Table of Contents

Instructor Information

Prof. James E. Smith

Office:            
Office phone:   
Email:               jes@ece.wisc.edu

Course Information

          Readings from the literature (below)
 
          Projects that further the student's research are encouraged.

News

        Web site created May 10, 2006
 

Calendar

        Class will meet on the following schedule.

        May 15 -- 1400-1700
        May 16 -- 1200-1400, 1500-1700
        May 17 -- 1400-1700

        May 22 -- 1400-1700
        May 23 -- 1200-1400, 1500-1700
        May 24 -- 1400-1700

Course Outline

1. Introduction (1 hour)
     Motivation
    Architecture, abstraction, virtualization
    VM types and applications
    Course Roadmap

2. Emulation: Interpretation and Binary Translation (3 hours)
     Decode-dispatch interpretation
     Threaded interpretation
     Translation chaining
     Design issues and alternatives
     Case Study: Shade

3. Process VMs (3 hours)
     VM Integration
     Code Cacheing
     Handling OS calls
     Case studies: FX!32, WABI

4. Dynamic  Optmization (3 hours)
     Profiling
     Staged optimization
     Superblock optimization
     Precise traps
     Condition codes
     Case studies:  IA-32 EL, HP Dynamo

5. Co-Designed VMs (4 hours)
     Microarchitecture
     Support for speculation
     Precise interrupts
     Superscalar processors
     Power/resource  management
     Case studies: Daisy, Crusoe, rePLay, AS/400
6. System VMs (3 hours)
   OS management and protection of resources
   Virtualizing memory, processor, I/O
   Instruction set virtualizability
   Hosted VMs  
   Case studies: IBM VM/370, Intel x86 VMware, Vanderpool

Readings

Lecture Notes

Miscellaneous Links