仮想化でも重要な役割を果たすCPU
サーバーの統合化やバックグラウンドで動作するセキュアな実行環境など、仮想化技術のさまざまな応用が提案され、実際に使われ始めている。仮想マシンの実行効率を上げることも今後のプロセッサーの重要な課題だ。仮想化技術はすでにメインフレームなどで先行して使われていたため、進むべき方向は明確だ。
1つ目は、仮想化状態でのプログラムの実行効率や、仮想マシン/実マシン間の遷移速度の向上。2つ目はメモリーマッピングの高速化。そして最後にI/O処理の高速化である。
仮想マシンの性能向上は、仮想マシンへの遷移命令や復帰命令を高速化することで、ある程度達成できる。また現在ソフトウェアで実行しているメモリーのマッピングにハードウェアで対応することで、より高速な実行が可能になる。実際、AMDのクアッドコアOpteronには、仮想マシンのメモリーマッピングを高速化する仕組みがすでに取り入れられている。
最後のI/Oの高速化は、CPUだけでは解決できない問題だ。高速化のためには、仮想マシンから直接I/Oを操作しなければならないが、現在のI/Oやデバイスは仮想化を前提とした構成にはなっていない。そのため、仮想マシンによるI/Oへのアクセスは割り込みが発生し、実環境側でデバイスをエミュレートするか、仮想環境内でのI/Oアクセスをやめ、実環境を呼び出して処理するようなドライバを使うしかない。だが、どちらもオーバーヘッドが大きく、仮想環境の実行速度を下げている。I/Oデバイス側が仮想化に対応してコンテキスト切り替えが可能になれば、より高速な実行が可能になる。現在、PCI Expressなどで仮想化対応の作業を進めているところだ。