連載
» 2007年03月19日 16時30分 UPDATE

元麻布春男のWatchTower:仮想化技術に見るインテルとAMDの個性 (1/2)

新世代のCPUに必須の機能なのにユーザーにその効果がイマイチ認識されない「仮想化技術」。インテルとAMDのそれぞれ異なるアプローチから「仮想化技術」普及の道を探る

[元麻布春男,ITmedia]

 仮想化技術のサポートは、現在PC業界が取り組んでいる主要な技術テーマの1つだ。仮想マシンマネージャ(VMM)と呼ばれるソフトウェアを用いて、1つの物理コンピュータ上で複数の論理コンピュータを実現する仮想化技術は、1つの物理コンピュータを複数の物理コンピュータとして利用する「ハードウェアパーティショニング」と並んで、メインフレームなどの大型コンピュータで広く使われてきた。

 PCでもVMMによる仮想環境は利用されてきたが、“仮想マシンにおける互換性”や“仮想マシンの性能”という点で、必ずしも満足のいくものではなかった。仮想マシンを実行するために導入しているOSに手を加える必要があったり、仮想マシンを利用することによる性能低下というペナルティの大きさが、仮想環境の普及を妨げてきたのだ。このような状況において仮想化技術の開発を進める目的は、仮想環境で市販のOSをそのまま利用可能にすること、仮想マシンにおける性能低下を極力小さくすることにある。

 仮想化技術は、PCのプラットフォーム全般をカバーする技術であり、CPU、チップセット、I/Oデバイスに広く影響を及ぼす。現在、仮想化技術の開発はCPUメーカーであるIntelとAMDに加え、PCI SIGが中心となって進められている。

 Intelの定義に従うと、それは3つのステップに分かれる。

 まず最初のステップでは、仮想マシンを作成するなど、仮想マシンをサポートする命令セットや、仮想マシンを実行する新しいCPUステートの定義や実装を行う。これをIntelでは「VT-x」(IA-32プロセッサ)あるいは「VT-i」(IA-64プロセッサ)と呼ぶ。IntelはVT-xのサポートを2005年11月にリリースしたPentium 4プロセッサ(プロセッサナンバーの末尾が2のもの)から開始した。

kn_0606xeon02.jpg 2006年6月に行われたWoodcrestコアXeonの発表会で示されたスライドにも実装された機能として“インテル パーチャライゼーションテクノロジー”の言葉が見える

 VT-xのサポートはその後リリースされたCore(開発コード名“Yonah”)やCore2 Duo(同じく“Conroe”に“Merom”)、Xeon(同じく“Woodcrest”)などにも基本的に引き継がれている(一部で例外あり)。また、将来リリースされるIA-32プロセッサではVT-xが拡張され、VM切り替え時のオーバーヘッド削減、ページテーブルの拡張などが行われる。

 この次のステップとして実現されるのが「VT-d」と呼ばれる技術だ。VT-dの“d”は“Directed I/O”の略とされる。その名前からも分かるようにVT-dは、物理メモリの特定エリアを特定の仮想マシンのDMA領域としてマップすることで、I/Oデバイスから仮想マシンに対するデータ転送のオーバーヘッドを削減する技術である。特定のI/Oデバイスを特定の仮想マシンにマップすることで、VMMの存在を意識させず、あたかも従来のネイティブ環境と同じようにI/Oデバイスと仮想マシンが直結されているように見せかけることができる。I/Oデバイスのデータを受け取るホスト(メモリコントローラ)側の仮想化技術であり、I/Oデバイスそのものの仮想化技術ではない。I/Oデバイスの仮想化技術は“IOV”として、PCI SIGで規格化が進められているが、VT-dはその受け皿(前提)となるものだ。

 現行のIntelプラットフォームでは、メモリコントローラはチップセットが内蔵しているので、VT-dはチップセットが実装する技術となる。VT-dが最初に実装されることになるのは、次世代の「Bearlake」チップセットファミリーになると見られるが、Bearlakeチップセットファミリーのどの製品でサポートされるかは、まだ明らかにされていない。

kn_akiba1126-2_010.jpg 2006年の11月に秋葉原のパーツショップ店頭で行われたAMD-Vのデモ

 一方、AMD製CPUにおける仮想化技術(AMD-V)のサポートは、2006年5月にリリースされたRev.Fコアからだ。製品としてはAthlon 64 FX/Athlon 64 X2(開発コード名“Windsor”)やTurion 64 X2(同じく“Taylor”)などである。仮想化技術のインプリメントではIntelから半年遅れた格好だが、実装されている技術の内容を比べると単純に「半年遅れた」と評価できない。なぜなら、CPUがメモリコントローラを内蔵するAMDアーキテクチャの仮想化技術であるAMD-Vには、Intelプラットフォームではまだ実現されていないVT-dに相当する技術がすでに一部含まれているからだ。このおかげで、共有ネットワークデバイスからのデータコピーなど、仮想マシンに対するDMAアクセスの性能が問われる処理では、現時点でIntelプラットフォームを上回るパフォーマンスを発揮する。また、仮想マシン間のメモリ領域の保護という点でも、AMDが優位にある。

 この部分でIntelがAMDに追いつくのはBearlakeチップセットファミリーによるVT-dのサポートからだが、おそらくIntelはこのタイミングで別の技術の「Intel Trusted eXecution Technology」(TXT)をサポートしてくるものと思われる。以前から“LaGrande”という開発コード名で知られていたTXTを仮想化技術と組み合わせることで、仮想マシンが起動時から完全にセキュアであることを保証する。当初の予定ではWindows VistaでTXTのようなハードウェアによるセキュア技術をサポートすることになっていたが、残念ながら現在リリースされているWindows Vistaでは見送られてしまった。当初はIntelが独自のソフトウェアによりサポートすることになるのではないかと思われる。

 以上のようなIntelとAMDの仮想化技術に関する取り組みだが、IntelのVT-x/VT-dとAMDのAMD-Vでは、バイナリレベルでの互換性はない。しかし、IntelもAMDも仮想マシンにユーザーがアクセスするために利用するソフトウェアはVMMに限られるため、CPUレベルにおける非互換性は大きな問題にならないとされている。バイナリ互換性はないとはいえ、両社による競争は維持されており、かつ、ユーザーにとっても、非互換性による弊害はほとんどないものと見られる。

 仮想化技術の最後のステップである「I/Oデバイスの仮想化」については、現在PCI SIGにおいて“IOV規格”として標準化が行われている。IntelとAMDも、デバイスの仮想化についてはこのIOVに従うとしており、1つのデバイスで両社の仮想化環境に対応できる見込みだ。IOV規格は、アドレス変換サービス(ATS)規格、Single-Root(SR)デバイス共有規格、Multi-Root(MR)デバイス共有規格の3つに分かれており、ATSについては2006年末に規格化が完了している。SR規格については2007年1月にRev 0.7が、MR規格については2006年11月にRev 0.5がリリースされており、2007年中にはIOV全般において技術的な仕様はほぼまとまるのではないかと見られている。SR規格は1つの物理コンピュータ(1つのVMM)下にある複数の仮想マシンでI/Oを共有するための規格であり、MR規格は仮想マシンを動かしている複数の物理コンピュータでI/Oを共有するための規格だ。たとえばブレードPCやブレードサーバなどにおいて、スイッチを介してネットワーク接続を共有する、というイメージである。

       1|2 次のページへ

Copyright© 2016 ITmedia, Inc. All Rights Reserved.