米Intelは31日(現地時間)、Broadwell-EPことIntel Xeon E5 2600 v4ファミリを発表した。ここでは、Xeon E5 2600 v3ファミリ(Haswell-EP)との比較を行いながらBroadwell-EPの新機能を解説する。

現在のIntel製プロセッサは、デスクトップ/モバイル向けプロセッサのマイクロアーテキクチャが先、サーバー向けプロセッサであるXeonがあとから発表される。以前はこの順番が逆で、先にサーバー向けプロセッサを開発して、それをデスクトップやモバイルに適合させることもあったが、モバイル系が大半を占める現在では、消費電力などを考慮して先にモバイル、デスクトップ向けのプロセッサが作られる。

なお、基本となるマイクロアーキテクチャの設計時には、サーバー向けも考慮しているようで、2015年のIDFにあったSkylakeのセッションでは、Skylakeの開発では当初の予定では、TDPの幅が3倍程度だったものが、最終的には20倍となり、PCだけでなくタブレット向けのI/Oを搭載する計画になったことを明かしている。

さて、Broadwell-EPは、基本的にクライアント向けのBroadwellをベースとして、サーバ向けにメモリコントローラやキャッシュといった性能強化と、各種のRAS機能や仮想マシン支援機能などの機能強化が行われている。

ここでは、前世代のHaswell-EPとの比較を中心にBroadwell-EPの機能強化点を解説する。なお、記事量の関係もありクライアント向けのBroadwellに搭載されている機能については省略していることを予めお断りしておく。

ハードウェア強化点

まずは、ハードウェア、外部仕様的な部分での違いを見ていくことにしよう。ご存じのようにBroadwellマイクロアーテキクチャは、Haswellマイクロアーキテクチャを14ナノメートルプロセスで製造できるように設計したマイクロアーテキクチャで、細かい改良はあるものの、基本的には「同種」のプロセッサになる。このため、ハードウェアスペック面での違いもあまり大きくない。

ハードウェア的な部分では次のような違いがある。

  • マイクロアーテキクチャ(製造プロセス)
  • 最大コア数/最大スレッド数
  • LLC合計サイズ
  • メモリコントローラーの強化

なお、Broadwell-EPは、Haswell-EPとソケット互換となっているため、製造メーカーは現行製品を容易にBroadwell-EPに対応させることが可能だという。

Xeon E5 v4系列と同v3のハードウェア的な違い。ただし、両者はソケット互換である

Broadwell-EPは、Haswell-EPと同様に3種類のダイを用意するが、コア数は10/15/24コアとそれぞれ増えている。ただし、製品として投入されるのは最大22コアとなる。これについてIntelは、Broadwell-EPのダイは24コアとして設計しており、最大コアを持つSKUは実際には24コアが搭載されていると説明する。つまり、24コアのうち2コアを無効化していると考えられる。

これが冗長性(製造後、問題のないコアを22個選択する)のためなのか、24コアではTPDなどが想定内にならなかったのか、あるいは今後24コアの製品が登場するのかは不明だが、このような構成になっていることを考えると、コア数の少ないSKUでもダイは同じで単にコアが動作しないようになっているものもあるかもしれない。

内部構造的には、Haswell-EP/EXと同じく、リングバスでコアとLLCモジュールを接続し、2つのリングバス間をバッファースイッチで接続するという構成だ。なお、10コア以下の場合には、リングバスは1つのみになるようだ。

コア数の多いBoradwell-EPでは12個のコアが1つのリング(2重)につながり、2つのリングがバッファースイッチで接続されている。なおXeon E5 v4の最大コア数は22とされているが、ダイ上には24個の物理コア(およびLLCユニット)があるという

コア数が10個以下の場合には、リングバスは1つだけ。10を越える場合には、2つのリングとなり、片方に10コアが接続され、残りはもう1つのリングに接続される

LLC(Last Level Cache)に関してはコアあたりのキャッシュサイズは2.5メガバイトと変わらないが、コア数が増えたことにより、合計サイズが変わっている。

メモリコントローラーにも改良があり、最大メモリスピードがDDR4-2400までとなった(Haswell-EPでは2133まで)。また、従来のRDIMM(Registered buffer DIMM)、LRDIMM(Load reduced DIMM)にくわえ、3DS LRDIMMが利用できるようになった。ただし、3DS LRDIMM自体の採用に関して、Intelは市場動向によるとしている。

3DS LRDIMMは、メモリダイを縦に積み上げた3次元構造を持つDRAMデバイスを使うLRDIMMだ。また、メモリ関連のRAS機能では、DDR4 Write CRCへの対応がある。DDR4 Write CRCは、DDR4メモリの書き込み動作の1つで、CRCを付けた書き込みコマンドを使う。メモリ側では、CRCを受け取り、後続する書き込みデータが正しいかどうかを検証する。

機能面での拡張/強化ポイント

Broadwell-EPでの機能強化のうち、サーバ向けとしての目玉は「Intel RDT」と「VM機能強化」になる。

Intel RDT(Resource Director Technology)は、キャッシュやメモリバンド幅などの「システムリソース」をソフトウェアで制御するための機構だ。これを使うことで、ソフトウェアによるリソースの自動配分や制御が可能になる。

RDTは「CAT:Cache Allocation Technology」、「CDP:Code and Data Prioritization」、「MBM:Memory Bandwidth Monitering」、「CMT:Enchanced Chache Moniring Technology」の4つの機能からなる。このうち「CMT」は、Haswell-EPにも搭載されていたChache Moniring Technologyの強化版にあたる。

Intel RDTは、OSやVMMがキャッシュやメモリバンド幅の利用状況を把握し、キャッシュなどを割り当てる管理機能を実現する

Broadwell-EPでは、キャッシュやメモリ帯域の状態取得機能や制御機能をRDTというテクノロジーとしてまとめた。RDTでは、スレッド、アプリケーション、仮想マシンを対象にすることができる。RMID(Resource Monitoring ID)を割り当てることで、キャッシュの利用量やメモリ帯域の占有量を追跡できるようになる。

RDTでは、タスクやアプリ、VMごとにRMIDを割り当て、このRMIDを使ってリソース利用の追跡を行う

また、キャッシュなどの割り当てを示すCLOS(Class Of Service)という値を定義する。CLOSは複数定義でき、それぞれがキャッシュ割り当てパターンに対応する。

RDTでは、最初にCLOSにキャッシュの制御情報を定義しておき、スレッドやアプリ、仮想マシンに対して、CLOS番号を割り当て、これによりキャッシュ割り当てなどを制御する

RMIDに対応するスレッド、アプリ、仮想マシンに、CLOS番号を割り当てることで、動作時のキャッシュなどの配分が決まる。たとえば、「優先度の高いタスクのクラス(グループ)」に割り当てるCLOS番号では多くのキャッシュが使えるようにしておくなどの設定ができる。

仮想マシン関連の強化点

Broadwell-EPのもう1つの強化点が、仮想マシン関連の機能強化だ。これには、「Posted Interrupts」、「Page Modification Logging」などがある。「Posted Interrupts」は、VMで直接割り込みを受け、VMMの介在を排除するもの。

従来は、VMが割り込みを受けるためには、VMMの支援が必要で、VMとVMM間を複数回遷移する必要があった。しかし、Posted Interruptsを使うと、VMが割り込みを受け取るのにVMMの支援は不要で、VMMは事前に設定だけを行うだけでよくなる

Haswell-EPまでは、VM内から割り込みコントローラーを制御するための支援ハードウェア「APIC-V」(PCアーテキクチャで割り込みを制御する周辺回路であるAPIC:Advanced Programmable Interrupt Controllerを仮想化したもの)があり、割り込みをどのように受けるかを制御することはできた。

しかし、外部からの割り込みは、VMMで受け、どのVMに対するものかを判断し、VMに引き渡す処理などでVMとVMM間を何回か遷移する必要があった。Posted Interruptsは、割り込みをVMに対して直接「投函」する機能だ。

仮想マシン向けに外部割り込みを受ける支援ハードウェアが用意され、VMMは、初期設定などを行うだけで済み、割り込みを受ける場合にVMMの支援が不要になり、VMとVMM間の遷移を排除することができる。

VMとVMM間の遷移には、仮想マシンのコンテキストセーブ、ロードなどの処理が必要で、レイテンシーが大きい。このため、Haswell-EPなど従来のプロセッサでは、割り込みの処理効率が高くなかった。

しかし、最近ではNVFやSDIなど、ネットワークやインフラの仮想化が行われはじめており、仮想マシンでも割り込みを使って高速な処理を行う必要がでてきた。Posted Interruptsは、こうした要求に応じるための機能だ。

「Page Modification Logging」は、仮想記憶のメモリページへのアクセスや書き込みを記録する機能。Haswell-EPでは、EPT Access/Dirtyビットがサポートされており、メモリページがアクセスされたか、書き込みされたかを判別することはできた。

「Page Modification Logging」は、これを進めて、仮想マシンが使うメモリページのチェックポイント(ある時点のメモリ状態を記録したもの。スナップショットなどともいう)を容易に作成するためのものだ。

Page Modification Loggingは、VMのメモリ利用を記録、VMのチェックポイント作成処理を簡単に行うことができるようにする

仮想マシンが使っているメモリページがアクセスされたのか(キャッシュされている可能性がある)、書き込みされたのかが簡単にわかるようになるため、前回のチェックポイントに対して、必要な部分を簡単に区別できるようになる。

この機能は、仮想マシンのライブマイグレーションやフォールトトレラントのときに利用する。この場合、片方のVMは実行中であり、VMイメージのコピーには時間がかかり、その間にメモリが更新される可能性が高い。このため、スナップショットを作り、ある時点のVMイメージをコピーし、コピー終了後に必要な部分のみをコピーする必要がある。

Page Modification Loggingは、この作業を簡略化でき、より短時間でマイグレーションが可能になる。フォールトトレラントで仮想マシンを使う場合、別のマシンへ一定時間ごとにVMイメージを差分コピーしていく。Page Modification Loggingは、この差分コピー作業を簡略化し、短時間で処理を終わらせることができるため、コピー間隔を短くすることが可能で、VM切り替えに伴い失われる情報をより小さくすることが可能になる。

Xeon E5 2600 V4の性能

Intel自身が行ったベンチマークによれば、Xeon E5 2600 v4ファミリ(Broadwell-EP)は、前世代のXeon E5 2600 v3(Haswell-EP)と比較して、ざっくりと1.27倍の性能があるという。

Intelが行ったベンチマーク結果を平均すると、ざっと1.27倍の性能差がHaswell-EPとBroadwell-EPにはあるという

ただし、最大コア数はXeon E5 2699 v4が上回る(22コアと18コア)ものの、クロック周波数はXeon E5 2699 v3が上回る(2.2GHzと2.3GHz)ため、単体コアの性能ではXeon E5 2699 v3のほうが高くなっている。

AVX2命令を使ったSMP LINPACKベンチマーク(マルチプロセッシングでのLINPACKベンチマーク)では、16~23%の性能向上がある。これは、マルチプロセッシングなのでコア数の違いがでやすい。

LINPACKベンチマーク。AVX2命令を使い16~23%の性能向上がある

これに対してSTREAM Memory Benchmarkでは、性能向上が8~9%程度とあまり差が出ていない。この差は、メモリ速度の差やAVX2命令の強化点(BroadwellはHaswellに比べてキャッシュからAVX実行ユニットへのデータ転送速度を向上させている。ただしこれはすべてのBroadwellが持つ機能でBroadwell-EP固有の拡張点ではない)などによるものと思われる。

STREAM Memory Benchmarkでは、コア数の差が有効ではなく、メモリスペックの差などが有効だが、あまり大きな差が出ない