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

Intelの次世代CPUマイクロアーキテクチャ「Sunny Cove」

Sunny Coveや7nmプロセス、積層技術などを明らかに

 Intelは、次世代のCPUマイクロアーキテクチャ「Sunny Cove(サニーコーヴ)」の概要を一部明らかにした。

 10nmプロセスCPUコアで、命令発行ポートを拡張する大幅なマイクロアーキテクチャ刷新となる。Intelは、Haswell(ハズウェル)世代で命令発行ポートを増やしたが、Sunny Coveの拡張はそれと同様の大きな変革となる。

 ただし、新アーキテクチャと言っても、Sunny Coveはフルスクラッチで起こした真っさらなアーキテクチャには見えない。Core系マイクロアーキテクチャの、複雑な命令発行ポートの配置などはそのまま継承されている。

 また、Intelは次世代の7nmプロセスの開発状況を明らかにした。Intelは、7nmプロセスからEUV(Extreme Ultraviolet)露光を採用する。ただし、この“7nm”が、10nmに対してノード数字通りにスケールダウンするかどうかは、まだ明確ではない。

 Intelの10nmプロセスは、他社の7nmプロセス相当のスペックであるため、Intelの7nmは、他社の5nm相当か、それ以上の可能性がある。ファウンダリは、2019年から5nmのシャトル(顧客設計を1枚のウェハに相乗りさせる試作)による試作サービスをスタートさせる。

 さらに、Intelはチップ積層技術を積極的に採用して行くことも明らかにした。Intelは、すでに2.5D積層によって、異なるプロセスのチップレットをワンパッケージに収める方向を明らかにしている。Intelの独自の2.5D(2.5次元)ソリューション「Embedded Multi-die Interconnect Bridge (EMIB)」を開発している。加えてIntelは、同社の新しい3D積層技術「Foveros」も発表した。

メモリ系のパイプラインを大幅拡張

 Intelは同社のイベント「Intel Architecture Day」において、Sunny Coveマイクロアーキテクチャの、バックエンドの実行エンジン群とメモリコントロール系の概要を明らかにした。

 フロントエンドについては、x86/64命令からデコードした内部命令uOPを格納するキャッシュ「uOPキャッシュ」の大型化など、一部の情報しか明らかにしていない。フロントエンドの拡張がどの程度されているのか、たとえば分岐予測の変更などは、バッファサイズの増加以外は明らかになっていない。

 アウトオブオーダー部のバックエンドのパイプラインでは、まず命令の発行ポートが、Skylake系アーキテクチャの8ポートからさらに増やされ、10ポートとなった。

 また、命令スケジューラのリザベーションステーションの構成などが変更された。命令発行の拡張に合わせて、アウトオブオーダ実行時の命令ハンドル数のためのリオーダバッファが拡張され、リザベーションステーションで待機できる命令数も拡張された。

 スライドで示されたマイクロアーキテクチャは、AVX-512ユニット搭載の構成となっている。

IntelのCPUマイクロアーキテクチャの変遷

 Sunny Coveの10ポートは、多いように見えるが、これはIntelアーキテクチャの特殊性から増えている要素もある。

 実際には、演算系のポートは4ポートのみで、整数演算4ユニットと、ベクタ演算3ユニットが同じポートに割り当てられている。整数とベクタが同一ポートにあてがわれている点は従来通りで、演算系ユニットへのポート数は、それほど多くはない。

 Skylakeでは、ロード/ストア系が3ポート、加えてストアデータの1ポートがあった。これがSunny Coveでは、ロード/ストアが4ポート、ストアデータが2ポートに増えた。

 つまり、増えた命令ポートは、演算以外の部分となっている。

 とくに目立つのは、ロード/ストアのポートとユニットの構成。Skylakeまでのアーキテクチャでは、ロード/ストアはAGU(アドレス生成ユニット:Address Generator Unit)が3つで、そのうちポート2と3がロードとストアの両対応、ポート7がストア専用となっていた。2ソース、1デスティネーションに対応したような構成だ。

 それに対して、Sunny Coveでは、ロード/ストアパイプはロードとストアのペアが2組となった。ポート2と8がそれぞれロードとストア、ポート3と7がそれぞれロードとストアでペアとなっている。ロード2に対してストア2ではバランスが悪いように見えるが、ポートに送るuOPsを待機させるリザベーションステーションの構成を見ると、ペアで配置することに意味があると見られる。

SkylakeとSunny Coveのバックエンドの比較。上がSkylake、下がSunny Cove

 Skylakeでは、ロード/ストアのリザベーションステーションは、3つのAGUに対して単一だった。それに対して、Sunny Coveでは、ロード/ストアのペアごとに、リザベーションステーションを分離して命令待機させるようになった。

 この構成の目的は、依存性のあるロードとストアを同じリザベーションステーションに流し込むことで、スケジューリングを容易にすることかもしれない。

 ロード/ストアのAGUの数は、Skylakeまでの3個から、Sunny
Coveでは4個となった。ストアAGUのスループットが2になったことで、ストアデータユニットも1から2へと増えた。L1データキャッシュへのライトポートも倍増され、ストア帯域は2倍になった。これは、ストアユニット数が増えたため当然だ。

 また、L1データキャッシュも、従来の32KBから48KBへと50%増量された。L2キャッシュ容量も拡張されるが、これは製品単位で異なる。また、L2のTranslation
Lookaside Buffer (TLB)のサイズも拡張された。

Skylake-Xの延長にある演算ユニット群の配置

 実行ユニット群の基本の配置は、Skylake-Xを拡張した構成となっている。演算系のALUパイプはポート0/ポート1/ポート5/ポート6、合計4つのポートに割り当てられている。下はSkylakeのブロックダイアグラムだ。ただし、Sunny Coveでは各パイプの構成は拡充されている。

 まず、通常のデスクトップ版CPUと異なるのは、ポート5にFMA(積和算)が割り当てられていること。これは、サーバー向けに開発されたSkylake-X型のユニット構成と同等と見られる。Skylake-Xでは、512-bit幅のAVX-512をサポートする。そのために、512-bit幅のSIMD(Single Instruction, Multiple Data)ユニットを実装している。

 具体的には、従来のポート0とポート1の256-bit SIMDのFMAユニット2個を束ねて、512-bit幅のSIMDユニットとして使う。加えて、ポート5に新たに512-bitのFMAユニットを配置。ポートを3つ使うことで、512bitのFMAを2並列で実行できるアーキテクチャにしている。

 Sunny Coveマイクロアーキテクチャでも、この構成が踏襲されているように見える。

Skylakeのブロックダイアグラム

 Sunny Coveからの拡張も多い。スカラ整数系ユニットでは、アドレス値の格納のLEA(Load Effective Address)が4つのALUパイプ全てに配置された。

 また、整数演算の除算がポート1に、2つ目の整数系乗算がポート5に配置された。整数除算のレイテンシが大幅に短縮されたという。ちなみに、浮動小数点演算の除算はポート0のままだ。

 ベクタ演算系では、ベクタシャッフルユニットがポート1にも配置された。これは、本来ベクタシャッフル用のポートだったポート5にFMAが配置されたため、2つ目のユニットを別パイプに配置する構成になったと推測される。

 それなら、ポート6にシャッフルを配置すればよさそうな気もするが、そうするとベクタレジスタにアクセスするパイプが1つ増えてしまうことになる。

IntelとAMDで対照的なCPUマイクロアーキテクチャ開発姿勢

 今回明らかにされた、Sunny Coveのバックエンドのアウトオブオーダー部のスニークプレビューからは、Intelが従来のCoreアーキテクチャを拡張する路線を継続する方向が見えてくる。

 この点は、CPUのメジャーアーキテクチャチェンジごとに、マイクロアーキテクチャをフルスクラッチで一新するAMDとは路線が全く異なる。

 AMDの方式はクリーンなアーキテクチャとなり設計のメインテナンスをしやすい利点はあるが、バグを孕む可能性がある。Intelの方式はインクリメンタルで複雑度が高くなるが、既存の設計部分はマチュアであり、設計期間を短縮できる利点がある。

IntelのSunny Coveと、AMDのZEN 2

 ここに来ての10nmプロセス世代のCPUマイクロアーキテクチャの発表は、Intelの状況の変化を如実に物語っている。Intelは、長いトンネルを抜け出し、10nmプロセスの量産に、ようやく自信を持てたように見える。

 Intelの10nmプロセスの失敗は、キツすぎるスペックと、配線に新材料コバルトを導入したこと、「SAQP (Self-Aligned Quadruple Patterning)」による複雑な配線パターニング(パターニング自体が複雑なだけではなく、基本4並列の配線ができてしまうため回路設計が厄介)、そしてスタンダードセルを小さくするための「Design-Technology Co-Optimization (DTCO)」のアグレッシブな適用などにあったと見られている。トランジスタのフィンハイトも問題だったが、それはフィンを低くすることで解決した。

 Intelは、2019年にはそれらの問題を解決した10nmプロセスで、Sunny CoveマイクロアーキテクチャのCPU製品を出荷できると確信を持ったとみられる。

Intelの10nmのDTCO技術の中でもっとも議論が多いCGOA (Contact-Over-Active-Gate)

 Intelが、キツいスペックとDTCOによるスタンダードセル面積の縮小にこだわったのは、そうしなければトランジスタあたりのコストが上がってしまうからだ。

 ムーアの法則は経済則で、2倍のトランジスタをコストがあまり変わらないウェハ上に載せられるのなら、トランジスタのコストは世代ごとに半分になる。しかし、10nm以降はウェハのコストが上がってしまう。そこで、Intelは、DTCOによって実質的にロジック回路密度を高めることで、ウェハコスト増を相殺しようとした。しかし、それは無理をし過ぎたようだ。

 では、Sunny Coveを量産する段階の10nmプロセスはどうなるのだろう。

 推測できる可能性の1つは、10nmの配線アーキテクチャ自体の変更。もう1つの、よりありそうな可能性は、DTCOのアグレッシブな適用を諦めること。いずれにせよ、回路設計の大幅な変更が必要となるため、2019年の10nm本格出荷というタイミングは頷ける。

 こうした予想が当たっているとすれば、Intelの10nmは、当初予定していた14nmの3倍のトランジスタ密度には達しない可能性がある。コアサイズが予定よりも大きくなるなら、その分は、CPUマイクロアーキテクチャレベルで稼がなければならない。

 Sunny Coveマイクロアーキテクチャは、そうした要求を背景にしていると推測される。

 またその場合、10nmのコスト増がより切実になるため、CPUを異なるプロセスで製造したチップレットに分解する方向性が、より合理的となる。とくに、ダイが大きなサーバーCPUの場合だ。

 ちなみに、EUVプロセスになると、EUV装置のスループットがボトルネックになるため、EUVで製造するダイを小さくすることが合理的となる。その点でも、CPUを異なるプロセスのチップレットに分割することが理に適うようになる。

各社のプロセスのフィーチャサイズ比較