ECE 902: Special Topics in Computers

Fall Semester 2004

Virtual Machines and Dynamic Binary Translation


Table of Contents

Instructor Information

Prof. James E. Smith

Office:         4621 Engineering Hall
Office hours:   3-4 PM, Tues., 2::30-3:00, 4:00-4:30 Thurs, or by appointment
Office phone:   265-5737
Email:   be sure to put "902" in the subject line

Course Information

       J. E. Smith and Ravi Nair, Virtual Machine Architectures, Implementations and Applications, Morgan Kaufmann Publishers, 2005 (alpha version)
      -- Chapter 1  available online; all other chapters available at Bob's Copy Shop
          and selected papers available via the web


Final Exam Available Dec. 13; Due Dec. 19
No Lecture Nov. 16
Chapters 8,9,10 available at Bob's
Midterm Exam Available Oct. 20: Due Nov. 2 9AM
No Lecture Oct. 21

Chapter 6 & 7 available at  Bob's
Chapter 5  available at Bob's
Added WABI link; Sept. 29
Modified process virtual machine notes; Sept. 29
Project Assignment available Sept. 22
Process VM notes available Sept. 22
Emulation notes available Sept. 15
Added links to two emulation-related papers Sept. 15
Added link to bochs Sept. 15
No Lecture Sept. 7 and Sept. 9

Web site created August 30, 2004 

Tentative Lecture Schedule

Class will meet twice per week (as often as possible), on the following schedule.

Sept. 2                             Introduction
Sept. 14                           Real Machines
Sept. 16,21,23                 Emulation: Interpretation and Binary Translation
Sept. 28,30, Oct. 5,7       Process VMs
Oct. 12,14                       Dynamic Optimiization
Oct. 19,21, Nov. 2,4       High Level VMs
Nov. 9,11                        Co-Designed VMs
Nov. 11, 18,23                System VMs
Nov. 30, Dec. 2               Multiprocessor Systems
Dec. 9.14                         Emerging Applications

Tentative Course Outline

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

2. Real Machines (1 lecture)

    Computer Architecture(s)
    Principal interfaces: ISA, ABI
    Overview main components of
       I/O architecture    
    Managing and protecting hardware resources

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

4. Process VMs (4 lectures)
      VM Integration
      Translation Cacheing
      Handling OS calls
      Case studies: FX!32, WABI

5. Dynamic  Optmization (2 lectures)
    Staged optimization
    Superblock optimization
    Precise trap implementation
    Case studies:  UQDBT,  HP Dynamo

6. High Level VMs (4 lectures)
     Modern VMs: network computing, object oritentation
     Sun Java
     Microsoft CLI
     Case Study: IBM Jikes

7. Co-Designed VMs (2 lectures)
    Concealed memory
    Support for speculation
    Precise interrupts
    Case studies: IBM Daisy, Tranmeta Crusoe, IBM AS/400

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

9. Multiprocessor Systems (2 lectures)
    Memory consistency
    Case studies: IBM LPAR, Stanford DISCO

10. Emerging Applications (1 lecture)
    Environment migration
    The Grid


Lecture Notes


           Proposal due Oct. 14, 2004
           Status reports due Nov. 4 and Nov. 18, 2004
           Final report due Dec. 14, 2004
           Project Assignment

Miscellaneous Links