全国高校eスポーツ選手権運営の舞台裏。00:01)CPUコアが2割弱ほど大型化したHaswellのダイIntelが、ついに新CPUマイクロアーキテクチャ「Haswell」を公開した。これまでベールに包まれていたHaswellダイのフロアプランの写真も公開された。4コアに中規模構成のGPUコアの「4+2」の構成で、ダイサイズは177平方mm、トランジスタ数は1.4B(14億)。HaswellのダイHaswellの概要PDF版はこちら一見してわかるように、CPUコアの左右に見慣れないレールが配置され、ノースブリッジであるシステムエージェント(SA)の中にも、これまでにないモジュールがある。Bridgeの約11.x平方mmから、Haswellでは約13.x平方mmと20%弱ほど大型化している。Bridgeと比較した図だ。Bridgeの同等構成(4+2)と比べると、GPUコアはEUが4個(積和算ユニットで16個)増えた分だけ大きくなり、GPUコアが20%弱大きくなり、その分、横長になっている。Bridgeのダイサイズ比較PDF版はこちらGPUコアの左側の上下に並んでいる長方形がEUで、その間にあるのがL3キャッシュとクロスバースイッチと見られる。EUと増えており、それが明瞭に見て取れる。CPUが横長なのは、1リングのリングバスにCPUコアとGPUコアをつなげるトポロジーを取っているからだ。Bridge(160平方mm)と比べても、10%程度しか大きくなっていない。Intelは45nmプロセスで300平方mm近くまで肥大化したメインストリームCPUのダイを、32nmで220平方mm前後に縮小し、22nmプロセスでは160~170平方mmにまで押し込んだ。IntelがCPUの製造コストを下げつつあることがわかる。現在はプロセスが微細化するにつれて、ウェハ当たりのコストが上がりつつあり、ダイを縮小しても、ある程度相殺される。Bridgeと同様に、モジュラー設計なので、より小さいサイズのダイや、大型ダイへと派生する。CPUのダイサイズの遷移PDF版はこちらHaswellのダイを、AMDのTrinity(トリニティ)系のダイ(Richlandも含む)と比べると、違いは明瞭だ。CPUコア2個分よりずっと小さい。反面、AMDはGPUコアにはより多くのエリアを割いている。Haswellには、GPUの演算ユニット数が倍のGT3構成のGPUコアもある。HaswellとTrinityのダイレイアウトの比較PDF版はこちらファイングレインで電圧を制御するiVR省電力機能の概要も、さらに見えてきた。Optimizer)」の3つ。統合電圧レギュレータについては、下の右の図のような構造になっていることが判明した。CPUで、右がHaswellだ。CPUとHaswellの電圧レギュレータPDF版はこちら従来はオフチップのマザーボード上の電圧レギュレータ(VR)から供給されていた各ユニットに対する電力が、HaswellからはCPUのダイとパッケージに取りこまれたVRから供給される。オフチップのVRからは、VCCINで単一の電圧レールで供給され、HaswellオンチップのiVRで変圧されて各ユニットに供給される。以前このコラムで説明した図との大きな違いは、CPUコアがそれぞれ独立した電圧レールになっていることだ。以前の記事で書いた、各CPUコアの電圧レールが共通というのは間違いだった。そのため、Haswellでは、CPUコア毎に最適な電圧と周波数で動作させることができるという。従来は、低周波数で動作しているコアも、高周波数で動作するコアの電圧に引きずられ、高電圧動作しなければならなかった。Haswellでは、そうしたムダがなくなった。Intelは、ロジックプロセスの上にVRのコンポーネントを全て搭載できる技術を開発してきた。Haswellの場合は、完全にオンダイに統合されているわけではない。構造上最も統合が難しいと見られるインダクタ部分はオンパッケージだと言う。ディスクリートインダクタと見られるパーツがHaswellのパッケージには見られる。iVRでは電圧切り替えのスイッチ時間が短くなるため、インダクタの容量は小さくて済むようになる。Haswellでの電圧切り替えのスイッチ速度は明かされていない。原則的にはiVRでは下のように電圧切り替えが高速化することで、ムダな電圧供給時間が削られ、動作時の電力が最適化されるようになる。Down)までの省電力ステイトが設定されており、アイドル状態が続くと、より深いCステイトに移行する。モバイル向けのHaswellでは、C7までの従来のステイトに加えて、C10までの3つの新しいステイトが新設された。C7ステイトに対してC10では6分の1にアイドル時電力を下げることができる。C10のHaswellの待機時は45mW程度だ。Haswellではより深いCステートが用意される深いCステイトになればなるほど消費電力が下がるが、アクティブに復帰するまでのレイテンシが長くなる。Level)キャッシュも段階的にフラッシュされる。外付けの電圧レギュレータからのインプット電圧Vccinは通常は1.8Vだが、C7ステイトになると1.6V以下へと下げられる。C8になると、残った電圧レールがオフになり、PLL電源もシャットダウンされ、通常の100MHzのベースクロック(BCLK)が完全に停止される。代替として24MHzのクリティカルクロックが供給される。Vccinは1.2V以下に下がる。G9になると入力電圧は0Vになり、さらに、C10になるとiVRがシャットダウンされるという。CPUはアーキテクチャルステイトを戻すレイテンシを短くするため、CPUコアがオフ時にも電圧を供給するSRAM領域(C6アレイと呼ばれる)をオンダイに持ち、そこにアーキテクチャルステイトを保持する。アーキテクチャルステイトは、C9までダイ上に保持される、C10では廃棄される。C10では、アーキテクチャステイトは、C7に入る前の段階でメモリに保存したステイト情報を書き戻す。HaswellのCステートからの復帰レイテンシPDF版はこちらHaswellの各Cステイトからの復帰レイテンシは上の図の通り。C10だけが3msと非常に長い。これは、C10からの復帰では、Haswellは事実上のコールドリセットとなるためだという。CPUにリセットをかけ電圧が安定、PLLが動作してからブートし、ステイトを読み戻す。そのため、レイテンシが長く、復帰にある程度の消費電力もかかる。復帰した場合はC0へと戻るという。Optimizer深いCステイトの問題は、そうしたCステイトに入っていられるだけのアイドル時間を確保することにある。従来では、CPUに割り込みが頻繁にかかるために、アイドル時間が分断されてしまう。Optimizer」をHaswellから導入し始める。これは、「CPPM」と以前呼ばれていた仕組みで、その機能の1つは、CPUへの割り込みを制御することだ。Optimizerでは、これまで非同期だったソフトウェアやデバイスからの割り込みを、バーストで同期させる。上の図の一番上の例のように、従来のシステムでは、横軸の時間軸に対して、矢印や縦棒で示している割り込みやDMAアクセスが非同期に入るため、CPUがアイドルに入る時間が限られてしまう。Optimizerが割り込みとDMAアクセスをまとめて同期させてしまう。タイミングクリティカルではない、またはデバイス側にバッファすることで遅延可能な割り込みを、遅らせて同期させることで、より広いアイドルウインドウを作る。(LTR)」を新たに設定した。デバイスベンダ側がLTRに対応するように働きかけてきたという。デバイスからの割り込みを制御しても、まだ上の図の黒の矢印で示されるOSのタイマ割り込みが残る。8などの新しいOSからなくしてもらうようにしたという。8+Haswellでは、より長い時間アイドルに入ることができるようになる。Optimizerのもう1つの効用は、アイドル時間を予測できるようになること。そのため、復帰レイテンシの長いCステイトでも、復帰までのウォームアップウインドウを決定して入ることができるようになった。HaswellではLTRの応答とベースにして深いCステイトに入る。LTRとCステイトの関係は上の図のようになっており、例えば、LTRで許容されるレイテンシが90μs以上の時にC8に入る。問題は、そのUltrabookに載っているデバイスが全てLTRでレインテンシに余裕を持たせてくれないと、深いCステイトに入れないこと。1個のデバイスがLTRのヘッドルームが短いだけでも、崩れてしまう。バスやデバイス自体の省電力機能も重要で、IntelがROPと呼ぶCPUやチップセット以外の部分の電力を減らす必要がある。Optimizerのフレームワークでは、それも働きかけてきた。Optimizerのフレームワークへの対応は、コストにも関係して来る。LTRの許容レイテンシが長く、電力消費の少ないデバイスで部材を揃えようとするとコストがアップするという。Optimizerは十分に活かすことができるUltrabookは、高価格帯から始まる可能性があるという。NehalemからHaswellまでのマイクロアーキテクチャの進化Haswellには、CPUコアのマイクロアーキテクチャ面での利点も大きい。Data)演算ユニットの積和算(FMAD)ユニット化によるピーク演算パフォーマンスの倍増、命令発行ポートを2ポート増やしたことによるIPC(Instruction-per-Clock)の増大、演算に合わせたロード/ストアの帯域の倍増などがポイントだ。BridgeそれぞれのCPUコアのブロック図だ。見比べてわかるように、フロントエンドは両CPUでほとんど違いがない。実行エンジンには大きな違いが見える。命令発行ポートは2つ増えて、新たに整数演算ユニットとストアユニットが加わった。Intelアーキテクチャでは、整数演算と浮動小数点/SIMD演算は、命令発行ポートを共有している。そのため、命令発行の競合が発生してしまうことがあった。整数演算ユニットの追加はそうした問題の解決のためで、例えば、従来なら乗算と競合していた分岐ユニットが独立した(実際には分岐ユニットが2個の構成になった)。Intelは2個のロード/ストアのアドレス生成ユニットに加えて、Haswellではストア専用のアドレス生成ユニットも加えた。これによって、2ロードと1ストアを1サイクルで実行できるようになった。L1データキャッシュ帯域もこれに合わせて拡張されており、32-byteのロードを2つと、32-byteのストアを並列にアクセスできるようになった。L2からの帯域も倍増された。Intelは、こうしたHaswellの命令発行の並列性の強化に合わせて、アウトオブオーダの各バッファの強化も行なっている。Bridge、Haswellまでの実行ユニットとスケジューラやキューのエントリの変化だ。Bridgeで168、Haswellで192と増大している。スケジューラのエントリや、物理レジスタ(Nehalemではレジスターリネームバッファを使用)数、ロード/ストアバッファも増大させてきた。シングルスレッド性能の強化を続けている。Bridgeの実行ユニットの比較PDF版はこちらGPUコアのメモリ階層を強化HaswellではGPUコアがモジュラー化されており、GPUの構成を変更しやすい。実際に、Haswellでは、積和算ユニットが24個の最小構成のGT1、80個のGT2、160個のGT3、160個にeDRAMチップを加えたGT3eとバリエーションがある。HaswellのGPUコアをベースにすれば、今後もIntelはGPUコアの構成を大型化することができるだろう。GPUの遷移PDF版はこちらHaswellで面白いのはGPUコアのメモリ階層で、下の図のように、非常に深いメモリ階層を持つ。Level)キャッシュから、GPUのスライス内のL3キャッシュ、サンプラのL2キャッシュL1キャッシュへと階層になっている。GT3e構成では、ここに外付けeDRAMチップが付く。このeDRAMは、大容量のグラフィクスキャッシュとしてワークするが、CPU側もeDRAMがキャッシュとして使われるという。単純にLLキャッシュの下に、キャッシュ階層として重ねると、eDRAMへのバスがボトルネックとなってしまう可能性がある。そのため、LLキャッシュからメモリへの溢れをキャッシュするなどの可能性がある。Haswellのグラフィックスメモリの階層PDF版はこちら概観すると、HaswellがIntelのCPUファミリにとって、大きなマイルストーンであることがわかる。CPUの重要なカギとなる。