PopekとGoldbergの仮想化要件
効率性の特性を犠牲にすれば、定理1で示された ISA 仮想化の条件を緩めることができる。過去にも、(Popek と Goldberg の定義で)仮想化可能でない ISA 用の VMM は何度となく実現されてきた。
このようなアーキテクチャの仮想化には、「クリティカルな命令」すなわち、センシティブであるにもかかわらず、特権命令ではない命令を適切に扱う必要がある。これを実現する方法の一つ は動的再コンパイルで用いられる手法によりクリティカル命令を実行時に発見し、VMM へのトラップに置き換える「パッチ」として知られる方法である。パッチをうまく働かせるためにエミューレーションコードをキャッシュしたり、ハードウェアの支援により高速化するといった様々な手法が提案されている。別のアプローチとして準仮想化の方法があり、これには仮想環境で動作させる前にゲストのオペレーティングシステムを修正する(VMMに移植する)必要がある。
IA-32の命令セットには、非特権のセンシティブ命令が17個ある 。これらは、二つに分類できる。
センシティブなレジスタの操作: センシティブなレジスタへの読み書き、クロックや割り込みなどのメモリ番地への読み書き SGDT, SIDT, SLDT SMSW PUSHF, POPF
システム保護命令: 記憶域保護の機構、メモリ、アドレス再配置機構への参照 LAR, LSL, VERR, VERW POP PUSH CALL, JMP, INT n, RET STR MOV
2005年11月13日に、 Intel VT 拡張によってPopekとGoldbergの仮想化要件を満たすx86プロセッサが実現された。AMD-V は2006年5月23日登場。