仮想化道場

Haswellアーキテクチャの最上位プロセッサ「Xeon E7 v3」

Xeon E7 v3コアの強化点

 Xeon E7 v3コアの強化点としては、昨年発表されたXeon E5 v3とあまり変わらない。

 それでも、Ivy Bridgeコアに比べるとIPCで約10%の性能アップが見られるほか、融合積和演算(FMA)の性能向上、AVX整数演算の256ビット化、暗号などに使用されるRSAやGMP(多倍長整数演算)などの多倍長演算(Crypto)の性能向上が行われている。

Xeon E7 v3はHaswellコアを使用しているため、コアの機能としては昨年発表されたXeon E5 v3とほとんど変わらない
プロセッサ内部のリングバスは、完全に2重化された。これも、Xeon E5 v3と変わらない
Xeon E7 v2とXeon E7 v3では、リングバスの構造が変わったり、DDR4メモリのサポートなどが行われている
また、TSX機能のサポート、エンハンスドMCA Gen2のサポートなどが行われている

 最も大きいのは、Xeon E5 v3でサポートが見送られたTSX(トランザクショナルメモリ)がXeon E5 E7 v3では正式にサポートされたことだ。

 TSXでは、メモリのロック機能とデータベースなどで使われるトランザクショナル機能をハードウェア(命令セット)で実現している。

 メモリのロックは、現在読み書きしているメモリをロックして、ほかのプログラムから、作業中にデータを書き換えられることを防ぐ機能だ。

 この機能は便利だが、ほかのプログラムからはロックが解除されない限り、他のプログラムはそのメモリの読み書きができないため、他のプログラムはアイドル状態になってしまう。もしプログラムのミスなどでメモリのロックが解除されない場合は、ずっとアイドル状態で待ち続けることになる(デッドロック)。

 そこで、データベースなどで使われているトランザクショナル機能と同じような機能をメモリに持ち込んだのが、TSXになる。

 TSXでは、メモリロックを行って、メモリの読み書きを制限するのではなく、全てのプログラムを同時に実行させる。

 もし、あるメモリ領域のデータを読み込こんで処理を行っているプログラムがある場合に、別のプログラムが同じメモリ領域に別のデータを書き込んだとする。そのときには、メモリに新しいデータを書き込む段階で、読み込んだときのデータと比較して、データが異なっていたら、処理のやり直しを行う。このことをトランザクショナル処理という。

 Xeon E7 v3を使えば、トランザクショナル処理プログラミングせず、プロセッサのTSX機能を利用することができる。また、ロック/アンロック機能、トランザクショナル機能をハードウェア(命令セット)で実現するため、性能が向上する。ソフトウェアで、ロック/アンロック機能、トランザクショナル機能をインプリメントするには、膨大なコードが必要になるが、これがいくつかの命令で実現できるなら、アプリケーション自体のコードもシンプルになる。このため、TSX機能をサポートしたインメモリデータベースなどでは、高い性能を出すことができる。

 もっとも、現状では、すべてのプロセッサでTSX機能がサポートされているわけではなく、多くのプロセッサに対応するのであれば、ソフトウェアで、ック/アンロック機能、トランザクショナル機能をサポートする必要がある。今の時点で、インメモリデータベースなどのコードが劇的にシンプルになるということはないだろう。

Xeon E7 v2に比べると、TSXをサポートしたSAP HANAは劇的なパフォーマンスアップを果たしている
TSXのサポートにより、インメモリデータベースなどのパフォーマンスはアップする。ただし、ソフト側でTSXをサポートする必要あるため、現状では限定的かもしれない

 仮想化においても、Xeon E5 v3と同じくVMCSシャドウイングがサポートされている。この機能では、頻繁に起こるVM Read/VM WriteをVMCSシャドウが中間層としてまとめ、ルートVMMに送ることで、頻繁に起こるVM開始/VM終了の数を劇的に減らす。VM開始/VM終了は、プロセッサから見れば、1つの命令に多くのクロックが費やされるため、これを減らすことで、ハイパーバイザーのパフォーマンスがアップすることになる。

 また、ハイパーバイザーが使用するEPT A/Dビットをハードウェアが管理することで、ハイパーバイザーがEPT A/Dビットのトラッキングをする必要がなくなる。これにより、ハイパーバイザーの動作が軽くなる。

 これらの仮想化機能はXeon E5 v3でも追加されているが、対応するハイパーバイザーが必要になる。現状では、LinuxのKVMやXenでサポートされており、VMwareのESXi、MicrosoftのHyper-Vなどでサポートが予定されている(一部の機能は、テクニカルプレビューの様な形でサポートされている)。

Xeon E7 v3(Haswellコア)で採用されたVMCBシャドウイングにより、ハイパーバイザーがVMExit/VMEntryを発行する回数が大幅に減る
Xeon E7 v3(Haswellコア)では、EPT A/Dサポートもハードウェアで行われている
Xeon E5 v3で追加されたキャッシュ モニタリング機能も、同じHaswellコアのXeon E7 v3は搭載している

(山本 雅史)