ポペックとゴールドバーグの仮想化要件
ポペックとゴールドバーグの
仮想化要件とは、コンピュータアーキテクチャが効率的にシステムの
仮想化を実現するための十分条件をまとめたものです。この要件は、ジェラルド・J・ポペックとロバート・P・ゴールドバーグが1974年の論文「Formal Requirements for Virtualizable Third Generation Architectures」で提唱しました。この論文では、
仮想化可能なアーキテクチャの条件について詳細に分析されており、現代の
仮想化技術の基礎となっています。
はじめに
仮想マシンとは、プロセッサ、メモリ、記憶装置、周辺機器など、
ハードウェア資源の全てを
仮想化する技術です。仮想マシンモニタ (VMM) は、仮想マシンの抽象化層を提供する
ソフトウェアであり、VMM が作り出す環境には、以下の三つの重要な特性が求められます。
等価性: VMM 上で動作するプログラムは、物理的なマシン上で直接実行した場合と、本質的に同じ振る舞いをしなければなりません。
資源の管理: VMM は、
仮想化された資源を完全に管理下に置く必要があります。
効率性: ほとんどの命令は、VMM の介在なしに実行される必要があります。
ポペックとゴールドバーグは、上記の特性を全て満たす VMM を構築するために、実機が備えるべき命令セットアーキテクチャ (ISA) の特徴を分析しました。彼らの分析は、IBM 360、Honeywell 6000、DEC
PDP-10といった第三世代アーキテクチャを基盤としていますが、現代のアーキテクチャにも適用できる普遍的な内容を含んでいます。
仮想化要件を導き出すために、ポペックとゴールドバーグは命令セットの各命令を以下の3つに分類しました。
1.
特権命令: プロセッサがユーザーモードで実行しようとした場合、トラップされる命令
2.
制御センシティブ命令: システム資源の構成を変更しようとする命令
3.
動作センシティブ命令: システム資源の構成(例:再配置レジスタやプロセッサモード)に動作や結果が依存する命令
ポペックとゴールドバーグの分析結果は、以下の定理としてまとめられます。
定理1: 一般的な第三世代コンピュータにおいて、全てのセンシティブ命令が特権命令であれば、VMM を構築できます。
この定理は、VMM の正常な動作に影響を与える可能性のある命令(センシティブ命令)は、常に VMM に制御を渡すことが、資源管理の観点から十分条件であることを示しています。また、非特権命令を直接実行することで、効率性と等価性の特性も確保できると述べています。
さらに、再帰的な
仮想化、つまり VMM が同じ VMM 上で動作するような場合についての ISA 要件も導出しています。
定理2: 一般的な第三世代コンピュータにおいて、
仮想化可能であり、かつタイミング依存がない VMM が構築できるならば、再帰的な
仮想化が可能です。
クリティカルな命令の扱い
効率性を犠牲にすれば、定理1で示された ISA
仮想化の条件を緩和できます。実際、過去には
仮想化できない ISA のために VMM が実現された例が数多く存在します。このようなアーキテクチャの
仮想化では、「クリティカルな命令」、つまりセンシティブであるにもかかわらず、特権命令ではない命令を適切に扱う必要があります。
これを実現する手法の一つが「パッチ」です。これは、動的再コンパイルの手法を用いて、クリティカル命令を実行時に検出し、VMM へのトラップに置き換えることで実現します。また、エミュレーションコードのキャッシュや
ハードウェア支援による高速化も提案されています。準
仮想化は別のアプローチであり、ゲストOSを仮想環境で動作させる前に修正する必要があります。
命令セットと仮想化要件
いくつかのアーキテクチャが
仮想化要件をどの程度満たしているかについて、以下に説明します。
PDP-10: センシティブ命令の一部が特権命令ではないため、ポペックとゴールドバーグの要件を満たしていません。
System/370: センシティブ命令がすべて特権命令であるため、
仮想化要件を満たします。
Motorola MC68000: センシティブ命令である SR レジスタからの MOVE 命令が特権命令でないため、ポペックとゴールドバーグの要件を満たしていません。MC68010以降ではこの命令が特権化されました。
IA-32 (x86): 非特権のセンシティブ命令が17個存在するため、当初は
仮想化要件を満たしていませんでした。しかし、Intel VT拡張やAMD-Vにより、ポペックとゴールドバーグの
仮想化要件を満たすプロセッサが実現しました。
IA-64: 仮想化に関する手法が論文で示されています。
SPARC: Ultra
SPARCアーキテクチャには、超特権モードが存在し、sun4vプラットフォームを定義する上で重要な役割を果たします。
まとめ
ポペックとゴールドバーグの
仮想化要件は、
仮想化技術の基礎となる重要な概念です。これらの要件を理解することで、様々なアーキテクチャにおける
仮想化の可能性や課題をより深く理解することができます。
関連項目
仮想機械
仮想化
参考文献
Smith, Jim; Ravi Nair (2005). Virtual Machines. Morgan Kaufmann.
ISBN 1-55860-910-5