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

Skylakeは14nmプロセスに合わせたマイクロアーキテクチャか

CPUのフロントエンドを大きく拡張したSkylake

 Intelの新世代のCPU「Skylake」は、実はマイクロアーキテクチャ的には飛躍した設計だった。Skylakeでは、特にCPUパイプラインの入り口である命令デコーダ&uOPキャッシュの部分が大幅に拡張されている。Haswell/Broadwell世代までのマイクロアーキテクチャでは、命令デコードは最大4命令/サイクルだったのが、Skylakeでは最大5命令/サイクルへと拡張された。命令フェッチ&デコードブロックから命令スケジューラへの内部命令uOPの発行は、Haswell/Broadwellまでは最大4 uOPs/サイクルだったのが、Skylakeでは最大6 uOPs/サイクルに拡張された。

 このように、命令デコードから実行エンジンに対する命令供給は、Skylake世代で大幅に強化された。L0命令キャッシュに相当するuOPキャッシュにヒットするなら、最大6 uOPs/サイクルの帯域となる。ピークのuOPs発行帯域で比べると、Haswell/Broadwellに対してSkylakeは1.5倍だ。最大で64-byte命令フェッチブロックに相当する範囲のメモリに含まれる命令を供給できる。それだけ、命令の並列実行が容易になったことを意味する。

 フロントエンドの抜本的な強化に合わせて、Skylakeでは、アウトオブオーダウインドウやアロケーションキューなどが強化された。Intelは、Intel Developer Forum(IDF)でこの部分をある程度詳しく公開したが、その根本となったフロントエンドの拡張は、聴かれないと答えないという姿勢を取っていた。また、Skylakeでは、CPUの動作パイプラインの段数も明らかになっていない。かなり、異例のマイクロアーキテクチャの隠蔽度合いとなっている。

Skylakeのフロントエンドの推測図、左はHaswell
PDF版はこちら

14nmプロセスに最適化したとウワサされるSkylake

 今回のIntelのSkylakeに対する姿勢の背景には、Skylakeマイクロアーキテクチャ開発の経緯が影響しているかも知れない。IntelはIDFのセッションで、Skylakeは当初の計画から変更が加えられたことを示唆した。カバーする電力レンジが広がったことも主原因に挙げていたが、もちろん、同じ14nmプロセスで先行するBroadwellが、量産にもたついていたことも影響している可能性がある。

 実際、Skylake開発のウワサで聞こえてきたのは、Intelが14nmではプロセス技術で苦労しており、そのため、Skylakeはプロセスに最適化した設計にするというものだった。プロセスへの最適化では、通常なら物理設計上で、14nmプロセスの特性に合わせた設計を行なうと推測される。しかし、IntelはCPUのマイクロアーキテクチャ面でも、プロセスの特性に合わせた設計を行なった可能性もある。

Skylake 4+2のダイ
PDF版はこちら

 例えば、もしIntelが14nmプロセスにおいて、製造時の特性ばらつきの増大で苦しんでいた場合、特性ばらつきを吸収しやすいようにマイクロアーキテクチャも工夫することも考えられる。ばらつきが増大すると、CPUのロジックパスの中で、パスが最も長くマージンがシビアな部分である「クリティカルパス」のチューニングが難しくなる。一定の動作周波数で動作できないコアを含んだダイが増え、スピードイールドが低下する可能性が出てくる。

 しかし、パイプラインをより深くしながら、動作クロックを抑えるなら、クリティカルパスのチューニングは相対的に容易になる。1ステージ当たりのサイクルタイムが長くなるからだ。ただし、パイプラインを深くして周波数を抑えると、クロック当たりのCPUの性能が落ちてしまう。だが、命令の並列性をマイクロアーキテクチャで上げるなら、パイプラインの深化の性能低下分を相殺できる。ステージ間にラッチ回路を挟むために、電力面では不利になるが、省電力機構を強化することで、ある程度は相殺できるだろう。

 もし、そうした設計を取るなら、クリティカルパスに使うトランジスタも、相対的に性能と電力を抑えることが可能になる。プレーナ型の場合はチャネル幅を抑えるが、FinFETの場合はトランジスタのフィンの数を減らすことができる。フィン数を減らしたなら、ダイナミックキャパシタンスを減少させたというSkylakeの説明とも合致する。

 もちろん、実際にはSkylakeがこうした設計を取っているかどうかはわからない。しかし、もしそうなら、特性ばらつきが大きくてもSkylakeの生産性は上がる。IPC(Instruction-per-Clock)を向上させつつパイプラインを深くすれば、性能を保ちつつスピードイールドを上げることが可能になる。

実際のFinFET 3Dトランジスタは、クリティカルな部分には複数のフィンを使っている
PDF版はこちら

Intelは14nmのしきい電圧ばらつきは減少したと発表

 もっとも、こうした推測と相反するデータもある。Intelは、昨年(2014年)のIEDM 2014の14nmプロセスの論文で、FinFETプロセスへの移行によって、しきい電圧のランダムばらつきは大幅に減少したと説明している。そもそも、プレーナ型が危機を迎えたのは、しきい電圧ばらつきなどが増大するためで、FinFETはそのばらつきを抑える効果が期待されていた。Intelの論文は、しきい電圧ばらつきについては、FinFETが予想通りの効果を挙げていることを示している。

しきい電圧のばらつき

 ただし、トランジスタの特性ばらつきには、しきい電圧のばらつきだけでなく、複数の成分がある。例えば、チャネルの移動度のばらつきが増大している可能性もある。FinFETでは、各種ばらつきの増大に影響するソースが増える傾向があるため、予想が難しいと言われる。実際、Samsungは2012年のCommon Platform Tech Forumで、FinFETではプレーナFETよりも、ばらつきが発生するソースが増えるために、ばらつきの制御が難しいと説明していた。フィンの幅や高さ、チャネル表面の結晶格子方向、寄生抵抗などのばらつきが重要となるとしていた。

プロセスに合わせてマイクロアーキテクチャを拡張する時代?

 ここまでは推測だが、重要なポイントは、そうした推測ができるほど、最新のプロセス技術は、やっかいになって来ていることだ。特性ばらつきだけでなく、メタルピッチ(配線間隔)が狭い配線層のリソグラフィ工程の製造スループットの低下とコスト増大、電力密度の増大によるダークシリコンエリアの増大。さまざまな難関に直面している。

 こうした現在のプロセス技術のもとのCPU設計では、マイクロアーキテクチャも、プロセス技術に合わせたものにしていく必要があるかも知れない。既に、ダークシリコン問題に対応して、CPUメーカーはいずれも統合するGPUコアの面積を増大させつつある。CPUコアやGPUコアの内部のマイクロアーキテクチャも、プロセスの特性に合わせて変化していってもおかしくはない。

 ここでポイントは、プロセッサのマイクロアーキテクチャの拡張の方向性だ。かつては、CPUやGPUは、純粋に性能を上げるために拡張されており、プロセス技術はその下で自動的に進化していくものだった。ところが、プロセス技術側での電力低減がうまくいかなくなってからは、CPUやGPUも電力当たりの性能を追求するようになった。そして、現在は、プロセスに合わせた生産性向上などのために、マイクロアーキテクチャが拡張されるといったフェイズに入ったのかも知れない。

 もっとも、プロセス技術側で革新的なブレイクスルーがなされると、全てリセットされることになる。そう考えると一時的なことかも知れないが、そうした憶測ができるほど、現在は、プロセス技術の進化が揺らいでいる。

Intel&ファウンドリプロセスロードマップ
PDF版はこちら

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