後藤弘茂のWeekly海外ニュース

Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場

CPUコアが2割弱ほど大型化したHaswellのダイ

 Intelが、ついに新CPUマイクロアーキテクチャ「Haswell」を公開した。これまでベールに包まれていたHaswellダイのフロアプランの写真も公開された。4コアに中規模構成のGPUコアの「4+2」の構成で、ダイサイズは177平方mm、トランジスタ数は1.4B(14億)。下がダイだ。

Haswellのダイ
Haswellの概要
PDF版はこちら

 一見してわかるように、CPUコアの左右に見慣れないレールが配置され、ノースブリッジであるシステムエージェント(SA)の中にも、これまでにないモジュールがある。CPUコアのレイアウトも、現在のIvy Bridge(アイビーブリッジ)からかなり変わり、CPUコアのサイズ自体もIvy Bridgeの約11.x平方mmから、Haswellでは約13.x平方mmと20%弱ほど大型化している。

 下はHaswellダイを、同じ22nmプロセスのIvy Bridgeと、32nmプロセスのSandy Bridgeと比較した図だ。Ivy Bridgeの同等構成(4+2)と比べると、GPUコアはEUが4個(積和算ユニットで16個)増えた分だけ大きくなり、GPUコアが20%弱大きくなり、その分、横長になっている。

HaswellとIvy Bridge/Sandy Bridgeのダイサイズ比較
PDF版はこちら

 GPUコアの左側の上下に並んでいる長方形がEUで、その間にあるのがL3キャッシュとクロスバースイッチと見られる。GT2構成では、Ivy Bridgeの16 EUからHaswellでは20 EUと増えており、それが明瞭に見て取れる。最近のIntel CPUが横長なのは、1リングのリングバスにCPUコアとGPUコアをつなげるトポロジーを取っているからだ。

 177平方mmというHaswellのダイサイズは、Ivy Bridge(160平方mm)と比べても、10%程度しか大きくなっていない。Intelは45nmプロセスで300平方mm近くまで肥大化したメインストリームCPUのダイを、32nmで220平方mm前後に縮小し、22nmプロセスでは160~170平方mmにまで押し込んだ。IntelがCPUの製造コストを下げつつあることがわかる。ただし、現在はプロセスが微細化するにつれて、ウェハ当たりのコストが上がりつつあり、ダイを縮小しても、ある程度相殺される。Haswellも、Sandy BridgeやIvy Bridgeと同様に、モジュラー設計なので、より小さいサイズのダイや、大型ダイへと派生する。

Intel CPUのダイサイズの遷移
PDF版はこちら

 Haswellのダイを、AMDのTrinity(トリニティ)系のダイ(Richlandも含む)と比べると、違いは明瞭だ。AMDは32nmプロセスであるにも関わらず、2個のCPUコアを融合させたPiledriver(パイルドライバ)モジュールのダイエリアは、IntelのHaswell CPUコア2個分よりずっと小さい。反面、AMDはGPUコアにはより多くのエリアを割いている。ただし、Haswellには、GPUの演算ユニット数が倍のGT3構成のGPUコアもある。

HaswellとTrinityのダイレイアウトの比較
PDF版はこちら

ファイングレインで電圧を制御するiVR

 省電力機能の概要も、さらに見えてきた。Haswellの省電力を支える柱は、「統合電圧レギュレータ(iVR:Integrated Voltage Regulator)」と「C10までの省電力ステイト」「パワーオプティマイザ(Power Optimizer)」の3つ。統合電圧レギュレータについては、下の右の図のような構造になっていることが判明した。左が従来のIntel CPUで、右がHaswellだ。

従来のIntel CPUとHaswellの電圧レギュレータ
PDF版はこちら

 従来はオフチップのマザーボード上の電圧レギュレータ(VR)から供給されていた各ユニットに対する電力が、HaswellからはCPUのダイとパッケージに取りこまれたVRから供給される。オフチップのVRからは、VCCINで単一の電圧レールで供給され、HaswellオンチップのiVRで変圧されて各ユニットに供給される。

 以前このコラムで説明した図との大きな違いは、CPUコアがそれぞれ独立した電圧レールになっていることだ。以前の記事で書いた、各CPUコアの電圧レールが共通というのは間違いだった。そのため、Haswellでは、CPUコア毎に最適な電圧と周波数で動作させることができるという。従来は、低周波数で動作しているコアも、高周波数で動作するコアの電圧に引きずられ、高電圧動作しなければならなかった。Haswellでは、そうしたムダがなくなった。

 Intelは、ロジックプロセスの上にVRのコンポーネントを全て搭載できる技術を開発してきた。しかし、Haswellの場合は、完全にオンダイに統合されているわけではない。構造上最も統合が難しいと見られるインダクタ部分はオンパッケージだと言う。ディスクリートインダクタと見られるパーツがHaswellのパッケージには見られる。ただし、iVRでは電圧切り替えのスイッチ時間が短くなるため、インダクタの容量は小さくて済むようになる。

 Haswellでの電圧切り替えのスイッチ速度は明かされていない。しかし、原則的にはiVRでは下のように電圧切り替えが高速化することで、ムダな電圧供給時間が削られ、動作時の電力が最適化されるようになる。

Fine Grain Power Managementの仕組み
PDF版はこちら

コールドリセット相当となるHaswellのC10ステイト

 Haswellのもう1つの重要な省電力機能は、C10までの深い省電力ステイトと、それを使えるようにするPower Optimizer。従来のIntel CPUはC7(Deep Power Down)までの省電力ステイトが設定されており、アイドル状態が続くと、より深いCステイトに移行する。モバイル向けのHaswellでは、C7までの従来のステイトに加えて、C10までの3つの新しいステイトが新設された。C7ステイトに対してC10では6分の1にアイドル時電力を下げることができる。C10のHaswellの待機時は45mW程度だ。

Haswellではより深いCステートが用意される

 深いCステイトになればなるほど消費電力が下がるが、アクティブに復帰するまでのレイテンシが長くなる。C7では、ほとんどの内部クロックと電圧レールが停止され、大容量の共有LL(Last Level)キャッシュも段階的にフラッシュされる。外付けの電圧レギュレータからのインプット電圧Vccinは通常は1.8Vだが、C7ステイトになると1.6V以下へと下げられる。

 C8になると、残った電圧レールがオフになり、PLL電源もシャットダウンされ、通常の100MHzのベースクロック(BCLK)が完全に停止される。代替として24MHzのクリティカルクロックが供給される。Vccinは1.2V以下に下がる。G9になると入力電圧は0Vになり、さらに、C10になるとiVRがシャットダウンされるという。

 Intel CPUはアーキテクチャルステイトを戻すレイテンシを短くするため、CPUコアがオフ時にも電圧を供給するSRAM領域(C6アレイと呼ばれる)をオンダイに持ち、そこにアーキテクチャルステイトを保持する。アーキテクチャルステイトは、C9までダイ上に保持される、C10では廃棄される。C10では、アーキテクチャステイトは、C7に入る前の段階でメモリに保存したステイト情報を書き戻す。

HaswellのCステートからの復帰レイテンシ
PDF版はこちら

 Haswellの各Cステイトからの復帰レイテンシは上の図の通り。C10だけが3msと非常に長い。これは、C10からの復帰では、Haswellは事実上のコールドリセットとなるためだという。CPUにリセットをかけ電圧が安定、PLLが動作してからブートし、ステイトを読み戻す。そのため、レイテンシが長く、復帰にある程度の消費電力もかかる。また、復帰した場合はC0へと戻るという。

より長いアイドル時間を確保するためのPower Optimizer

 深いCステイトの問題は、そうしたCステイトに入っていられるだけのアイドル時間を確保することにある。従来では、CPUに割り込みが頻繁にかかるために、アイドル時間が分断されてしまう。そこで、Haswellでは、プラットフォームパワーマネージメントのフレームワーク「Power Optimizer」をHaswellから導入し始める。これは、「CPPM」と以前呼ばれていた仕組みで、その機能の1つは、CPUへの割り込みを制御することだ。

Power Optimizerの仕組み
PDF版はこちら

 Power Optimizerでは、これまで非同期だったソフトウェアやデバイスからの割り込みを、バーストで同期させる。上の図の一番上の例のように、従来のシステムでは、横軸の時間軸に対して、矢印や縦棒で示している割り込みやDMAアクセスが非同期に入るため、CPUがアイドルに入る時間が限られてしまう。

 しかし、Haswellでは、図の中央の例のように、Power Optimizerが割り込みとDMAアクセスをまとめて同期させてしまう。タイミングクリティカルではない、またはデバイス側にバッファすることで遅延可能な割り込みを、遅らせて同期させることで、より広いアイドルウインドウを作る。そのために、IntelはPower Optimizerフレームワークで、レイテンシの許容値を動的にCPU側に伝えるための「Latency Tolerance Reporting (LTR)」を新たに設定した。デバイスベンダ側がLTRに対応するように働きかけてきたという。

 デバイスからの割り込みを制御しても、まだ上の図の黒の矢印で示されるOSのタイマ割り込みが残る。これについては、Windows 8などの新しいOSからなくしてもらうようにしたという。そのため、Windows 8+Haswellでは、より長い時間アイドルに入ることができるようになる。

 Power Optimizerのもう1つの効用は、アイドル時間を予測できるようになること。そのため、復帰レイテンシの長いCステイトでも、復帰までのウォームアップウインドウを決定して入ることができるようになった。

アイドル時間の予測
HaswellのCステートのエントリと復帰レイテンシ
PDF版はこちら

 基本的に、Ultrabook HaswellではLTRの応答とベースにして深いCステイトに入る。LTRとCステイトの関係は上の図のようになっており、例えば、LTRで許容されるレイテンシが90μs以上の時にC8に入る。

 問題は、そのUltrabookに載っているデバイスが全てLTRでレインテンシに余裕を持たせてくれないと、深いCステイトに入れないこと。1個のデバイスがLTRのヘッドルームが短いだけでも、崩れてしまう。また、バスやデバイス自体の省電力機能も重要で、IntelがROPと呼ぶCPUやチップセット以外の部分の電力を減らす必要がある。Power Optimizerのフレームワークでは、それも働きかけてきた。

CPUのみならずバスやデバイス自体の省電力機能も働きかける必要がある

 しかし、こうしたPower Optimizerのフレームワークへの対応は、コストにも関係して来る。LTRの許容レイテンシが長く、電力消費の少ないデバイスで部材を揃えようとするとコストがアップするという。そのため、Power Optimizerは十分に活かすことができるUltrabookは、高価格帯から始まる可能性があるという。

NehalemからHaswellまでのマイクロアーキテクチャの進化

 Haswellには、CPUコアのマイクロアーキテクチャ面での利点も大きい。Haswellマイクロアーキテクチャでは、SIMD(Single Instruction, Multiple Data)演算ユニットの積和算(FMAD)ユニット化によるピーク演算パフォーマンスの倍増、命令発行ポートを2ポート増やしたことによるIPC(Instruction-per-Clock)の増大、演算に合わせたロード/ストアの帯域の倍増などがポイントだ。

Haswellのアーキテクチャブロックダイアグラム
PDF版はこちら
Sandy Brdigeのアーキテクチャブロックダイアグラム
PDF版はこちら

 上はHaswellとSandy BridgeそれぞれのCPUコアのブロック図だ。ぱっと見比べてわかるように、フロントエンドは両CPUでほとんど違いがない。しかし、実行エンジンには大きな違いが見える。命令発行ポートは2つ増えて、新たに整数演算ユニットとストアユニットが加わった。

 Intelアーキテクチャでは、整数演算と浮動小数点/SIMD演算は、命令発行ポートを共有している。そのため、命令発行の競合が発生してしまうことがあった。整数演算ユニットの追加はそうした問題の解決のためで、例えば、従来なら乗算と競合していた分岐ユニットが独立した(実際には分岐ユニットが2個の構成になった)。

 Intelは2個のロード/ストアのアドレス生成ユニットに加えて、Haswellではストア専用のアドレス生成ユニットも加えた。これによって、2ロードと1ストアを1サイクルで実行できるようになった。L1データキャッシュ帯域もこれに合わせて拡張されており、32-byteのロードを2つと、32-byteのストアを並列にアクセスできるようになった。また、L2からの帯域も倍増された。

 Intelは、こうしたHaswellの命令発行の並列性の強化に合わせて、アウトオブオーダの各バッファの強化も行なっている。下の図は、NehalemからSandy Bridge、Haswellまでの実行ユニットとスケジューラやキューのエントリの変化だ。アウトオブオーダのウインドウは、Nehalemの128からSandy Bridgeで168、Haswellで192と増大している。スケジューラのエントリや、物理レジスタ(Nehalemではレジスターリネームバッファを使用)数、ロード/ストアバッファも増大させてきた。シングルスレッド性能の強化を続けている。

HaswellとSandy/Ivy Bridgeの実行ユニットの比較
PDF版はこちら

GPUコアのメモリ階層を強化

 HaswellではGPUコアがモジュラー化されており、GPUの構成を変更しやすい。実際に、Haswellでは、積和算ユニットが24個の最小構成のGT1、80個のGT2、160個のGT3、160個にeDRAMチップを加えたGT3eとバリエーションがある。HaswellのGPUコアをベースにすれば、今後もIntelはGPUコアの構成を大型化することができるだろう。

Haswellのグラフィックス
PDF版はこちら
Intel GPUの遷移
PDF版はこちら

 Haswellで面白いのはGPUコアのメモリ階層で、下の図のように、非常に深いメモリ階層を持つ。基本は、CPUと共有するLL(Last Level)キャッシュから、GPUのスライス内のL3キャッシュ、サンプラのL2キャッシュL1キャッシュへと階層になっている。そして、GT3e構成では、ここに外付けeDRAMチップが付く。

 このeDRAMは、大容量のグラフィクスキャッシュとしてワークするが、CPU側もeDRAMがキャッシュとして使われるという。もっとも、単純にLLキャッシュの下に、キャッシュ階層として重ねると、eDRAMへのバスがボトルネックとなってしまう可能性がある。そのため、LLキャッシュからメモリへの溢れをキャッシュするなどの可能性がある。

Haswellのグラフィックスメモリの階層
PDF版はこちら

 概観すると、HaswellがIntelのCPUファミリにとって、大きなマイルストーンであることがわかる。特に、電圧レギュレータの統合やPower Optimizerによる電力制御は、新しいステップで今後のIntel CPUの重要なカギとなる。

(後藤 弘茂 (Hiroshige Goto)E-mail