●広汎に適用されるNehalemのTurbo Boost Intelは、今年(2008年)11月半ばに投入する「Core i7(Nehalem:ネハーレン)」に多段階の「ターボモード」を実装する。CPUの動作周波数を、スペック以上に自動的にターボアップする“公式なクロックアップ”モードだ。「Intel Turbo Boost Technology」と名前がつけられていることがIDFで明かされた。 ターボモードの基本的な考え方は簡単だ。PCの冷却機構は、CPUのTDP(Thermal Design Power:熱設計消費電力)スペックに合わせて作られている。TDPは、CPUがメーカーの想定する負荷のワークロードで、スペック周波数で動作した場合に消費する電力に基づいている。そのため、マルチコアCPUで、CPUコアのいくつかがスリープ状態になると、実際の電力消費はTDPより低くなる。 そこで、ターボモードでは減った消費電力のバジェット(余裕)を、アクティブなCPUコアに振り分ける。具体的には、CPUの駆動電圧を上げ、アクティブなCPUコアの動作周波数を引き上げる。アクティブCPUコアの電力消費は多くなるが、スリープCPUコアの電力消費が低いため、TDPの枠内に収まるというわけだ。 ターボモードは、45nm版Core 2 Duo(Penryn:ペンリン)として導入された。「Intel Dynamic Acceleration Technology(IDA)」と名付けられたPenrynのターボモードは、モバイルCPUの動作周波数を1グレード引き上げるものだった。Intelは、Nehalemではターボモードによる周波数アップを3グレードまで引き上げ、デスクトップ&サーバーまで広汎に適用する見込みだ。
また、Penrynはデュアルコアの片方のコアがスリープした時だけ、もう片方のCPUコアの動作周波数を引き上げていた。Nehalemでは4個のコアのさまざまなスリープ/アクティブの組み合わせに応じて周波数を引き上げる。この他、CPUのワークロードが軽く各CPUコアの実際の電力消費が低い場合、TDPリミットまで周波数を引き上げる。つまり、Nehalemでは、ターボモードによって、パフォーマンスが重要なデスクトップ&サーバーで、より多くの機会に、より大きなパフォーマンスアップが得られることになる。
●CPUパフォーマンスを引き上げる打ち出の小槌 現在の段階では、ターボモードは、CPUのシングルコア性能をちょっと引き上げるだけの“オマケ”機能にしか見えないかもしれない。しかし、Intelはターボモードを、CPUの性能を大きくブーストする、新しい重要なフィーチャとして考えている。 ターボモードを開発した、Intelイスラエルの開発施設「Haifa Design Centre(ハイファデザインセンター)」では、Nehalemの次の「Sandy Bridge(サンディブリッジ)」世代ではさらに広汎にターボモードを適用することを計画している。Nehalemのターボモードはその先駆けとなるものだ。 Sandy Bridge世代で実装される見込みのターボモードへの遷移トリガーは、非常に広汎だ。(1)マルチコアCPUで、一部のCPUコアがアイドルになった場合を利用するPenryn型の方法、(2)環境温度の変化を利用する方法、(3)プラットフォーム温度の変化を利用する方法、(4)マルチダイCPUの場合にパッケージレベルで複数のダイの電力消費の差を利用する方法がある。それぞれのターボモードについては、以前の記事「環境条件を利用して性能を引き上げるターボモードの秘密」で紹介している。
Nehalemでは、(1)のコア単位のターボをPenrynより拡張するほか、ワークロードベースのターボも行なう。また、(4)のパッケージターボもマルチダイの「Havendale(ヘイブンデール)/Auburndale(オーバーンデール)」で利用すると推測される。 IntelのRon Friedman(ロン・フリードマン)氏(Vice President, General Manager, Mobile Microprocessors Group)は「ターボモードは、環境条件をうまく使うことで、同じ消費電力(TDP)の中でより高いパフォーマンスを引き出すための、新しいメカニズムだ。ターボモードの本質は、楽観主義的なものであって、必ずしも常に利用できるわけではない。しかし、ユーザーが使う時間のほとんどで、ターボモードのベネフィット(利益)を得られると考えている。ほとんどのケースで20%を超えるパフォーマンス向上が得られるだろう」と語っていた。 ターボモードの重要なポイントは、CPUのトランジスタをほとんど増やすことなく、同じTDP同じ冷却機構で、パフォーマンスアップを得られることにある。20%の性能をアーキテクチャ上で得ようとすると、膨大なトランジスタを投入しなければならないだろう。ターボモードは、CPUアーキテクチャ的には、ほぼノーコストのパフォーマンスアップであり、Intelはこれを広く活用してゆくつもりだ。つまり、ターボモードはNehalemの単なるオマケではなく、CPUパフォーマンスを引き上げる重要な要素であり、IntelはそれをNehalem以降も発展させるつもりだ。 ●多段階に周波数を引き上げるNehalemのターボ Nehalemのターボモードには、見かけ上2つのトリガーがある。1つは、PenrynのIDAと同じコア数に応じた制御。Nehalemの省電力設計を担当したRajesh Kumar氏(Intel Fellow, Director, Circuit and Low Power Technologies, Intel)は次のように説明していた。 「もし4個のCPUコアがあり、そのうち1つか2つのコアしか実際にはアクティブでないことを検知したら、(アイドルコアの)パワーグリッドをオフにして、それらのコアの分の電力をゼロにする。そして「PCU(Power Control Unit)」がその電力によって、(アクティブCPUコアの)電圧を高くし、周波数を引き上げて、結果的にパフォーマンスを上げる」「2個のアクティブコアだけではない、例えばアクティブなコアが3個でアイドルが1個など、どんな組み合わせでも可能だ」。 例えば、下のスライドのように、軽いマルチスレッディングソフトウェア環境で、アクティブなCPUコアが2個だけで、他の2コアがアイドル状態にある場合。OSがアクティブコアの負荷が大きいと判断すると、アクティブコアのプロセッサパフォーマンスステイト(P-state)を最上位の「P0ステイト」に設定する。すると、NehalemのPCUは、TDPやCPUケース温度(Tcase)や電流量(Icc)をチェック、それらに余裕がある場合にはターボモードに入る。 ターボモードに入ると、アクティブなCPUコアの動作周波数が1ビン(1グレード)引き上げられる。そこで、CPUは再びTDP/Tcase/Iccなどのチェックを行ない、余裕がまだあるようなら、さらに動作周波数を1ビン引き上げる。これを繰り返して、TDPなどの限界に達するか、CPUスペックで定められたターボ動作周波数の上限に達すると止める。
●4CPUコアがアクティブな場合もターボが可能 Nehalemのターボモードは、アクティブコアが何個の場合に何グレード上がると決まっているわけではなく、動的に制御されていると見られる。ただし、上限は決められているという。Nehalemのターボ周波数の上限は、SKU(Stock Keeping Unit=商品)によって異なるが、最大で3グレードと言われている。 Penrynのターボモードとの違いは、ターボのアップ幅が大きいことと、ターボに入るチャンスが多いことだ。Intelは次のように説明する「CPUコア数が増えると、それだけターボできるチャンスが増える。4コアでは、より多くの機会でターボが可能だ。また、Nehalemでは、CPUコアを完全にOFFにできるパワーゲーティングのおかげで、アイドル状態のCPUコアの電力消費がより小さい。その分、アクティブなCPUコアを、より高い周波数にターボできる」。 Nehalemのターボモード遷移の2つ目のケースは、ライトスレッディングの場合だ。CPUのTDPは、ある程度負荷の高いソフトウェアを走らせたケースを考えて設定されている。そのため、4コア全てがアクティブな場合でも、CPUコアの負荷が軽いと、CPUの消費電力が低くTDPの上限に達しない可能性がある。その場合、OSがCPUのパワーステイトを最上位のP0ステイトに置くと、NehalemはTDP、Tcase、Iccなどをチェック。余裕がある場合には、動作周波数を1ビン引き上げるという。ターボ周波数へと引き上げるのが特定のコアだけというケースもありうる。
PenrynのターボモードIDAは、実装上はSpeedStepの最上位のオペレーティングポイントで、パワーステイトとしては「P0」として露出していた。Nehalemの実装でも、パワーステイト最上位のP0ステイトの時に、動作周波数の遷移が自動的に行なわれるようだ。ターボモードはシステム側からはトランスペアレントで、ソフトウェア側が特別な対応をする必要がない。制御は、Nehalemに新たに実装されたプログラマブルな電源制御プロセッサ「PCU」が行なう。
●Intelにとっては難しい側面も エンドユーザーにとってターボモードの効用は、ワークロードに応じてパフォーマンスが最適化されることだ。例えば、フルにマルチスレッド化されたアプリケーションを使う時には、4コアがフルにスペック周波数で動作する(TDP枠に余裕があればさらに高い周波数で)。一方、シングルスレッド中心のアプリケーションの場合は、アクティブコアの周波数がターボで上がるため、ターボがないCPUに対して、相対的にシングルスレッド性能が上がる。 Intelの従来の製品構成では、クアッドコア版のようにCPUコア数の多い上位の製品は、価格帯によって動作周波数が抑えられている。同じ価格帯なら、クアッドコア版の方がデュアルコア版より周波数が低い。そのため、マルチスレッド性能を求めないのなら、CPUコア数の少ない製品の方が、同価格帯では性能が高いケースが一般的だ。 それに対して、Nehalemではクアッドコア版でも、ターボモードのおかげで、シングルスレッドアプリケーション性能が削られる心配がない。マルチコア版の付加価値が増したと考えることもできる。 ただし、業界関係者によると、ターボモードはIntelの販売戦略上では、頭の痛い問題も含んでいるという。デスクトップCPUなどの場合、スペック周波数の低い下位のSKU(Stock Keeping Unit)が、ターボモードで上位のSKUの周波数に近づいてしまうからだという。シングルスレッドが主体の使い方の場合は、上位のSKUを選ぶ必然性が薄れてしまう。ちなみに、サーバーCPU「Nehalem-EP」では、2.13GHz以下の低価格帯のSKUではターボモードがサポートされない。 Nehalemのターボモードは、Penrynよりはるかに適用できるチャンスが多く、パフォーマンスアップも大きい。また、サーバーに至るまで、広い製品ラインでサポートされる。ターボモードを、CPUのパフォーマンスアップのカギとして活用するというIntelの構想は、Nehalemから本格化することになりそうだ。 □関連記事 (2008年8月26日) [Reported by 後藤 弘茂(Hiroshige Goto)]
【PC Watchホームページ】
|