Spring Semester 2002

Virtual Machine Architectures, Implementations, and Applications


Table of Contents

Instructor Information

Prof. James E. Smith

Office:             Modul D6-211
Office phone:   934017409
Email:               jes@ece.wisc.edu

Course Information

          Selected papers available via the web


    Web site created 5/29/02


Class will meet on the following schedule.

June  4-6            2 hrs Tues, Wed, Thurs
June 11-13         3 hrs. Tues; 2 hrs. Wed, Thurs
June 18-20         3 hrs. Tues, 2 hrs. Wed, Thurs

Course Outline

1. Introduction (1 lecture)
    VM types and applications
    Summary of key design issues
    Course Roadmap

2. Computer Architecture (1 lecture)
    Computer Architecture(s)
    Principal interfaces: ISA, ABI
    Managing and protecting hardware resources

3. Emulation: interpretation and binary translation (2 lectures)
    Fetch-execute interpretation
    Binary Translation
    Translation caching
    Case Studies: Shade, UQDBT

4. ABI VMs (3 lectures)
     VM Integration
     Phased translation
     Precise traps
     Self-referencing and modifying code
     Case studies: HP Shogun, FX!32, WABI

5. Dynamic  Optmization (1 lecture)
     Relationship to translation
     Case study:  HP Dynamo

6. Hardware Assisted Profiling (1 lecture)
    Profile buffers
     Path profiling
     Stratified sampling
     Case Study:  ProfileMe

7. OS VMs (3 lectures)
    OS management and protection of resources
    Virtualizing memory, processor, I/O
    Instruction set virtualizability
    Case studies: IBM VM/370 and Intel x86 VMware

8. Whole System VMs (1 lecture)
    ISA VMs
    Hosted VMs (user mode VMMs)
    Virtual memory issues
    Native mode execution
    System mode VMs
    Case Studies: SimOS, Daisy Simulator

9. Co-Designed VMs (3 lectures)
    Support for speculation
    Precise interrupts
    Case studies: Daisy, Crusoe

10. Hardware Adaptivity (2 lectures)
    Configurable Hardware
    Hardware performance monitoring and control
    Configuration algorithms


          J. E. Smith, "An Overview of Virtual Machine Architectures"

Lecture Notes

Miscellaneous Links