ISA emulation is slow, Virtual PC is not
aristobrat said:
I'm fairly patient, but using Microsoft Money on Virtual PC was impossible. The experience was nowhere near like running Money on a VMWare Workstation instance. Maybe Virtual PC has to go thru an extra step to deal with in regards to converting Intel instructions to PPC before it can 'binary translate' them?
Doesn't matter. My PB's going on eBay and I'm more than satisified with Parallel's Workstation.
If you're comparing VPC/Mac on PPC with VMware on x86 - there's no comparison. There's also no "binary translation" as VMware defines it in VPC/Mac - the entire x86 ISA is emulated. This is much slower than VMware, Parallels and VPC/Windows which do x86 on x86 and only need to emulate some privileged state instructions.
Virtual PC/Windows performs at about the same speed as VMware - since there is no need to do full ISA emulation.
"Binary translation" involves modifying the virtual machine code pages on the fly, to make sure that privileged instructions "do the right thing". The "risky" instructions are replaced with calls into the VMM - the Virtual Machine Monitor that runs on the host and manages the VM. The VMM then emulates the privileged instruction.
For example, if in the virtual machine you click "Start -> Shutdown" a bunch of x86 instructions are executed, ending in some x86 instructions that turn the electricity off. You obviously don't want this to shut off the real computer, so the VMM intercepts those "power off" instructions and instead puts the emulated virtual machine into a powered off state while leaving the real computer on.
"VT" (Intel's Virtualization Technology, and AMD's very similar Pacifica) runs the processor in a mode where it simply refuses to execute those instructions and traps into the VMM where the instruction can be emulated. This is faster, since there's no need to scan code pages for suspect instructions.
So, "VT" isn't some wonderful magic, it's better to think of it as hardware acceleration for one of the tasks associated with emulating a virtual machine. VMware with VT and VMware without VT will still be mostly the same thing - just faster with VT.
VT will also enable some new ways of virtualization that today are usually called "para-virtualization". There's a lot of excitement about the new possibilities -
for example Microsoft is embedding virtualization deep into the OS with Viridian.