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

Intelの次世代主力CPU「Haswell」がついに明らかに



●Intelの強力な新マイクロアーキテクチャ
Per Hammarlund氏(Intel Fellow、左)とRonak Singhal氏(Sr. Principal Engineer, 右)

 Intelは次世代のCPUマイクロアーキテクチャ「Haswell(ハズウェル)」の概要を、ついに明らかにした。現在、サンフランシスコで開催されている同社の技術カンファレンス「Intel Developer Forum(IDF)」で、「4th Generation Intel Core Processor」と名付けられたHaswellについての説明セッションが行なわれている。

 Haswellは22nmプロセスで製造されるCPUだ。32nmのSandy Bridgeを22nmに移植したIvy Bridgeと異なり、新しいマイクロアーキテクチャとなっている。チップ全体での拡張点はマイクロアーキテクチャを含めて非常に多く、これまでのIntelのPC向けCPUから大きなジャンプとなっている。


Haswellの特徴
チックタックのビジネスモデル

 Haswellは、Intel独自の開発モデルである「チックタック(Tick Tock)」モデルのTockにあたるプロセッサだ。チックタックは、2年置きに半導体プロセス技術を革新(Tick)、その中間の2年置きにCPUマイクロアーキテクチャを刷新(Tock)する開発モデルだ。22nmプロセスを立ち上げるTickがIvy Bridge(アイビーブリッジ)で、22nm上での新マイクロアーキテクチャがHaswellだ。

 Haswellの最大のポイントは、大幅なパフォーマンスアップと、電力削減の両方を成し遂げたこと。パフォーマンスと電力は矛盾するようだが、Intelはさまざまなトリックを使って、相反する要素を両立させている。また、電力を下げることは、コア数の多いサーバーとモバイルの両方で有利となるため、サーバーからタブレットまで幅広いラインナップをカバーできる。

Ronak Singhal氏

 パフォーマンスでは、新命令拡張「AVX(Advanced Vector Extensions)2」で、積和算命令FMAをサポートして浮動小数点演算パフォーマンスを2倍にした。また、命令発行を拡張して、最大8内部命令(uOPs)を同時発行、4整数演算を並列実行できるようにした(現在は6 uOPs/3整数演算)。さらに、演算性能が上がったプロセッサコアに、データをフィードするメモリ階層を大幅に強化した。加えて、デッドロックを自動的に解決できるトランザクショナルメモリをハードウェアで実装した。

 電力では、Haswellは復帰レイテンシが短いシステムアイドルステイト「SOix」モードを設けることでアイドル時の電力を従来の20分の1に抑えた。CPU内の各ユニットの電圧制御を分離して、小さな粒度で電圧と周波数を制御できるようにした。また、プラットフォームレベルでの割り込み制御で、アイドル状態に入る時間を大幅に増やすことを可能とした。

 さらに、Haswellは、TDP(Thermal Design Power:熱設計消費電力)枠を下に広げることで、従来のIntel CPUより幅広い製品分野をカバーする。10W以下の枠をカバーする。こうした発想はAMDと似通っているが、大きく異なるのは「我々は、毎世代必ずコア当たりのパフォーマンスを増やさなければならないと考えている」(HaswellのアーキテクトであるRonak Singhal氏、Sr. Principal Engineer, Intel)ことだ。


Haswellのポートフォリオ

●2コアと4コア、3種類のGPUコアとパッケージオプション

 Haswellは4コアまたは2コアの2バージョンがあり、GPUコアにシェーダプロセッサ数の異なる3つのバージョンがある。つまりCPUコアは4Cと2C、そしてGPUコアはGT1/GT2/GT3の3バージョンの組み合わせで提供される。また、4コアとGT3の組み合わせのハイエンドバージョンでは、メモリ帯域が足りなくなるため、オンパッケージでDRAMチップを載せたバージョンも投入されると言われている。

Haswellのバリエーション
PDF版はこちら

 ただし、今回のIDFでは一切そうしたバージョンについては触れられなかった。確実ではないため、図中ではマスクしてある。同様の理由で、オンダイボルテージレギュレータにもクエスチョンマークをつけてある。また、Haswell CPUにPCH(Platform Controller Hub)チップのLynx PointをMulti-Chip Package(MCP)でワンパッケージ化した製品もウルトラモバイル向けに提供される。Intelは、このバージョンをSoC(System on a Chip)版と呼んでいる。

モジュールオプション

 Haswellの全体の構造はSandy Bridge系とよく似ている。リングバスがCPUコア、LLC(ラストレベルキャッシュ)のペア、GPUコア、そしてシステムロジックを接続している。Intelがこの構造を採用するのは、モジュラー化したユニットを、ノードの増減が容易なリングバスで接続することで、派生チップを多数産み出すことができるからだ。リングはユニダイレクショナル(1方向)で、各コア毎に上りと下りの2つのストップがある。

リングバス
Haswellの全体像
PDF版はこちら

●フロントエンドの拡張は限定的
展示されたHaswellシステム

 Haswellは、全体のユニットの接続のトポロジがSandy Bridge系のままで、各コアのパイプラインも前段だけ見ると、大きな変化に見えない。なぜなら、フロントエンドの命令フェッチ/デコードステージ群については、従来のSandy Bridge/Ivy Bridgeとよく似ているからだ。しかし、命令発行から下のバックエンドとキャッシュ周りは、大きく異なる。この部分はアグレッシブに拡張された。

 Haswellコアは、一言で言えば、バックエンドにフォーカスした改良を加えたマイクロアーキテクチャで、命令発行/実行パイプラインを見る限りは、過去数世代(Nehalem-Sandy Bridge)よりずっと大きなジャンプとなっている。具体的には、Merom(メロン)からIvy Bridgeまでは、6命令発行を継承していたが、今回が初の拡張で8内部命令(uOPs)発行4整数演算となる。

 アーキテクトのRonak Singhal氏(Sr. Principal Engineer, Intel)は次のように語る。「フロントエンドは多少の拡張はあるものの、ほぼ従来アーキテクチャを踏襲している。命令帯域などは以前のままだ。今のところ、そちらには大きなボトルネックがなかったからだ。もちろん、Haswellで分岐予測を一新し、キャッシュミス時のレイテンシも大幅に減らし、それはパフォーマンスに大きく寄与している。しかし、フロントエンドはそれ以上ではない。Haswellのフォーカスはバックエンドにある」。

 フロントエンドも、バックエンドと比べると地味だが、それでもいくつか、アグレッシブな拡張が加えられている。Singhal氏が言及したキャッシュミスについては、投機的にキャッシュミスハンドルを行ない、ミス時のレイテンシを隠蔽する。分岐予測については、今回も詳細は明かさないが一新したという。uOPsキャッシュもパフォーマンスに寄与している。ちなみに、uOPsキャッシュはPentium 4のトレースキャッシュとは異なり、uOPsキャシュのタグが、L1命令キャッシュのタグとひも付けされている。

フロントエンドの分岐予測の改良

●命令発行ポートはMerom以来の大きな拡張

 Intelの現在のアーキテクチャの命令発行ポートは、やや変則的で、整数演算と浮動小数点/SIMD演算が同じ命令イシューポートに割り当てられている。整数演算ALUは合計で3ユニットで、ロード/ストアパイプは2だった。しかし、Haswellでは命令発行ポートは2ポート増えて8になり、整数演算ユニットとストアパイプが1つずつ増えた。そのため、Haswellでは、4整数演算の並列実行と、2ロードと1ストアの同時実行が可能となっている。整数演算ユニットのポートには、“2つ目の”分岐ユニットも配置されている。

マイクロアーキテクチャの強化
Haswellの実行ユニット

 また、ポート0とポート1にそれぞれ接続されているAVX(Advanced Vector Extensions)の256-bit幅SIMD演算ユニットも拡張された。従来はポート0がAVXの256-bit SIMD乗算(MUL)で、ポート1がAVXの加算(ADD)だった。しかし、Haswellではポート0が256-bit SIMDの積和算(FMA)と乗算、ポート1が256-bit SIMDの積和算(FMA)と乗算または加算となっている。

 これで、ベクタユニットでのピーク演算性能は、従来の2倍に跳ね上がった。また、乗算中心の場合も2ユニットで並列できる。つまり、CPUコア数が同じでも、FMA命令を使う場合は、HaswellはSandy Bridgeに対して、CPUコア側の浮動小数点演算SIMD演算性能は2倍になる。AMDのBulldozerアーキテクチャに対しても2倍だ。また、AVX2命令では、整数の256-bit幅命令も加わり、この2ポートとポート5で実行される。

新しい命令
命令セットの比較
ピーク性能

 面白いのは、AMDはどちらかと言えば、浮動小数点演算がヘビーなワークロードはGPUコア側に振ろうとしているが、IntelはCPUコア側の浮動小数点SIMD性能も急激に伸ばしている点だ。CPUとGPUのバランスで、CPU側に振っているのがIntel、GPU側に振っているのがAMDだ。また、256-bit幅のSIMD積和算ユニットを2基備えているため、Haswell以降のアーキテクチャでは、Larrabee/Knights系の512-bit幅のSIMD命令も物理的にサポートが容易となった。Ronak Singhal氏は「それは長期的なビジョンだ」というが、Intelがそうした可能性を捨てていないことが見える。

 ポート6は整数ユニット。IntelはMerom以降、最大4命令デコードのフロントエンドを備えてきた。しかし、実行パイプラインは最大3整数演算だった。今回のHaswellで、命令デコードと実行パイプの整数演算でのピーク帯域が一致した。また、この整数演算ユニットは、ポート0とポート1にベクタ命令が発行されている時に、整数演算を実行できる。命令が混在する場合に、整数側の遅延を防ぐことができる。ポート7はストアアドレス生成の専用ポートで、ポート2とポート3をロードアドレス生成に使うことができるようになる。

 Haswellでは、各種バッファやエントリのサイズも拡張された。アウトオブオーダウインドウはSandy Bridgeの168から192に増えた。ロードとストアのインフライト制御数も増え、スケジューラのエントリ数も増えた。AVXのSIMD物理レジスタは144から168へと拡張され、整数レジスタも160から168へとわずかに増えた。また、アロケーションキューはこれまでスレッドに分離されていたのが統合された。

バッファやエントリのサイズ拡張

●内部メモリ帯域を大幅に拡張

 Haswellで目立たないながらも重要な拡張は、メモリ階層のアクセスの大幅な拡張だ。実行コアのパフォーマンスを大幅に伸ばしたため、それにデータをフィードするメモリ階層のパスが強化された。まず、L1からのロードは、毎サイクルに32-byte(256-bit)ロードが2に、32-byte(256-bit)ストアが1と大幅に強化された。L2からL1への帯域も、従来の32-byte(256-bit)から64-byte(512-bit)へと拡張された。さらに、L2 Translation Lookaside Buffer (TLB)も、大幅に拡張された、大規模なワークロードのパフォーマンスが上がる。

キャッシュメモリ帯域の強化
キャッシュメモリの強化

 トランザクショナルメモリもHaswellの柱の1つだ。これは、ソフトウェア開発者にとって、マルチスレッドアプリケーションを書きやすくするキーテクノロジだ。Intelの実装は、全てをトランザクショナルメモリでトラックするのではなく、命令で明示したコード部分などに限定する方式となっている。また、Haswellでは、ソフトウェア側からの要求が強かったバーチャルマシンの切り替えの高速化なども行なったという。

トランザクショナルメモリ

●Haswellの強力な省電力機能

 Haswellでは省電力機能が大幅に強化された。まず、S0アクティブモード時の電力と、S3/4スリープ時の電流の両方が下げられた。加えて、スリープ時に近いほど電力消費が少ないのに、復帰レイテンシはS0並に速い新しいシステムステイト「SOix」が設けられた。これは、Intelのモバイル向けSoC(System on a Chip)の「Medfield(メドフィールド)」とよく似ている。

 Medfieldの「S0i」レベルのステイトでは、CPUコアはC6や完全なオフ、他の機能ユニットのほとんどは電力カットされた状態になっていた。しかし、Haswellの場合は、CPUコアとGPUコアがほとんどを占めるため、Medfieldとはアプローチが大きく異なる。Haswellの場合は、チップ全体の電圧と電力の制御を、従来より細かな粒度に分離して、それらを素早く切り替えることで、省電力状態を増やす。そして、CPUコア以外の部分を、パワーゲートすることで、アイドル時の電力を減らしている。また、それに合わせて、CPUの省電力ステイトも、C6(パワーゲート)よりさらに下のステイト「C7/C8/C9/C10」が設けられた。例えば、C7は、CPUコアがオフで、ディスプレイがオンの時のモードとされている。

電力管理の革新

 Haswellの省電力のアプローチにはいくつかカギがある。1つは、PCが省電力にできない元凶の1つの割り込みの制御で、Haswellでは「Power Optimizer」または「CPPM」と呼ばれるプラットフォームパワーマネージメントのフレームワークが導入される。これは、Haswellが電源オン状態にある時に、できるだけ長時間スリープ状態に置くようにする技術だ。周辺デバイスやソフトウェアからの割り込みとDMAアクセスを整理し、同期させることで、より長いアイドル期間を創り出す。

SOixステイト
パワーオプティマイザ
PDF版はこちら

 もう1つのカギは、ボルテージレギュレータの統合だ。電圧を細粒度のリージョンで迅速に切り替えることが、Haswellの省電力のカギだとしたら、CPUにごく近いところに、高効率のボルテージレギュレータが備えられていると考えるのが自然だ。問題は、これがオンダイ(On-Die)なのかオンパッケージなのか。この部分は、今回の技術セッションでも、ぼかされて明瞭にはされなかった。Intelは、「現在は、ダイの中では細粒度のコントロールが行なわれている」としか言えないとしている。

 ボルテージレギュレータがHaswellで統合されたとすれば、これは非常に大きな変化だ。もしかすると、IntelがHaswellについてはダイ写真を公開したがらないことと関連しているのかも知れない。通常なら、この時期になれば次期CPUのダイは明らかになるが、Haswellについては公式には明かされていない。

 このほか、HaswellではGPUコアもアーキテクチャが大幅に拡張された。

HaswellのGPUコア
PDF版はこちら