AMD復活とインテルの失策

BLOG

 AMD復活の背後にはインテルの“自責点”がある。1つは、単位面積当たりのトランジスタ数を増やす「微細化」でつまずいたこと。性能を上げる原資となるトランジスタ数とその動作周波数を思うように増やせなかった。もう1つは、CPUのマイクロアーキテクチャーの改良が遅れたことだ。
 まず微細化から説明しよう。微細化とは、配線幅や回路幅の狭さを示す、半導体の「製造プロセスルール」の更新が中心だ。
 インテルは当初、2020年現在で主力の14ナノメートル(以下nm)プロセスによる量産を2014年中に始める予定だった。しかし2014年は、モバイル向けに「Core m」というTDP 4.5Wの製品を少量出荷できた程度にとどまった。
 2015年に持ち越した14nm品の本格量産で投入した第5世代Coreプロセッサー(開発コード名:Broadwell)は、製造プロセスが22nmの前世代(同Haswell)より消費電力は下がったものの、最高動作周波数まで下がってしまう結果となった。同じ14nmで高速動作を狙った第6世代Coreプロセッサー(開発コード名:Skylake)がBroadwell投入の2カ月後に投入され、結局Broadwellは影が薄いまま市場から消えた。Skylakeも性能向上と消費電力減を両立させたわけではなく、消費電力は22nm世代より増えている。

製品改良のペースを落とす

 製造プロセスルール微細化のつまずきは、インテルが長らく製品開発の基本戦略として掲げてきた「Tick-Tock」と呼ぶポリシーの変更を強いた。Tickは微細化、Tockはアーキテクチャーの改良で、これを毎年のように繰り返すことで設計を段階的に進化させるというものだった。

世代コード名製造プロセスルール登場時期Tick-Tock
第1世代Nehalem45nm2008年11月Tock
 Broomfield/Clarkdale32nm/32nm+45nm2010年7月Tick
第2世代Sandy Bridge32nm2011年1月Tock+Tick
第3世代Ivy Bridge22nm2012年4月Tick
第4世代Haswell22nm2013年6月Tock
第5世代Broadwell14nm2015年6月Tick
第6世代Skylake14nm2015年8月Tock
第7世代Kaby Lake14nm+2017年1月Tock
第8世代Coffee Lake14nm++2017年10月Tock
 Kaby Lake Refresh14nm+2017年9月Tock
 Whiskey Lake14nm++2018年8月Tock
第9世代Cannon Lake10nm2018年5月Tick
 Coffee Lake Refresh14nm++2018年10月Tock
第10世代Ice Lake10nm+2019年5月Tock
 Comet Lake14nm++2019年9月Tock
第11世代Tiger Lake10nm++2020年中?Tock
 Rocket Lake14nm++2021年中?Tock
だが順調だったのは2013年あたりまでで、インテルは2016年にTick-Tock戦略の見直しを表明する

 Tick-Tockという表現を捨て、Process→Architecture→Optimizationの3ステージになった、というのだが要するにTick→Tock→Tockになった形だ。
 2016年に10nmプロセスが量産に入れれば新たなTickが投入できるはずだったが、10nmが初めて量産に入ったのは2018年のことだ。しかもこの2018年の10nmは成功したとは言いがたく、2019年の10nm+プロセスを利用したIceLakeでさえいろいろ問題があるレベルといえる。高性能化は回路の大規模化を招くのが一般的。CPUの性能向上の元手となるトランジスタが増えない以上、マイクロアーキテクチャーの大改造は困難だ。
 そうなると10nm世代を待たずにできる小改造を繰り返すしかない。こうして2017年に投入されたのが、Skylakeにわずかな改良を加えるとともに、若干の動作周波数向上をもたらす14nm+プロセスを組み合わせた第7世代Coreプロセッサー(開発コード名:Kaby Lake)である。
 対するAMDは2017年、ついに新アーキテクチャー「Zen」コアベースの「Ryzen」を投入してきた。Ryzenはハイエンド品で8コア/16スレッドの構成になっており、4コア/8スレッドのKaby Lakeでは太刀打ちできなかった。米インテルは2017年10月に、14nm++プロセスを利用したコア数が6の第8世代Coreプロセッサー(開発コード名:Coffee Lake)の投入で対抗する。
 翌2018年、インテルは10nmプロセスで製造された第9世代Coreプロセッサー(開発コード名:Cannon Lake)が登場する。ところが実際にこのプロセッサーを搭載したPCを組み立ててみると、14nmプロセスよりも最高動作周波数が下がる上に、GPUを無効化せざるを得なかった。インテルはGPU無効化の理由を明かしていないが、製造の歩留まりが悪く欠陥品が多かったか、消費電力が急増してしまうためか、あるいはその両方だろう。
 結果、当初予定の4コア/8スレッドのCPU+GPUというダイ構成は、2コア/4スレッドでGPU無しという形になった。「Core i3-8121U」として発表はしたものの、これを搭載したインテルの小型PC「NUC(NUC8I3CYSM)」は、GPUとしてAMDのRadeon 540を搭載するという、インテルにとっては屈辱的ともいえる構成で登場した。

8コア品で製造リソース不足に

 性能的に14nmプロセスで製造されたKabyLakeやWhiskey LakeにおよばなかったCannon Lakeは、このCore i3-8121Uのみにとどめられ、代わりにKaby Lakeを14nm++でやや高速化したWhiskey Lakeをモバイル向けに投入する形になった。一方でデスクトップ向けには、Ryzen 7に対抗すべく8コアの製品を投入する。これが2018年10月に発表された、Coffee Lake Refreshである。
 こうした10nmプロセス移行でのつまずきが、インテルの14nmプロセスの深刻な供給不足を招くことになった。理由は簡単である。微細化無しに多コアのCPUを増やせば、1枚のシリコンウエハーから作れるプロセッサーの数は減る。
 4コアのKaby Lakeのダイ(CPUのシリコン片)サイズは126平方ミリメートル(mm)で、1枚のウエハーから500個ほど取れる。これが6コアのCoffee Lakeでは152平方mmで410個ほど、8コアのCoffee Lake Refreshでは178平方mmで340個まで減る。つまりウエハーの生産量を5割ほど引き上げないと、プロセッサーの出荷数を維持できない。
 数%台の増産なら生産調整で対処可能だが、50%増となると製造設備を増設する必要が出てくる。当然、急場には間に合わない。需給バランスが崩れ、顧客が望む8コアの高速動作品は引き続き供給が足りず、4~6コアで動作周波数がやや低めの製品が潤沢に市場にあふれることになった。
 そもそもインテルのオリジナルプランでは、14nmにはあまり投資せずにコア数の多い製品を10nmで製造する予定だった。それでも2018年末に「14nmの製造ラインに10億ドルを追加投資して供給能力を高める」ことを発表し、2019年後半に入ると出荷数量不足は多少緩和された。
 2019年後半から品質をもう一度引き上げる努力を続けており、一定の成果は出ているようだ。しかしまだ14nm品を十分に供給できる状況になっておらず、一部製品の供給不足が2020年まで続く見通しを2019年11月に明らかにしている。

10nmでの増産も望み薄

 一方、10nmへの移行も順調とは言えない。インテルは10nmプロセスルールを改良した「10nm+」を使った第10世代Coreプロセッサー(開発コード名:Ice Lake)を2019年5月に発表したが、動作周波数が上がらないという状況は相変わらずだった。現状はモバイル向け製品のみを提供中だ。
 モバイル向けであってもCPUパワーが必要な用途にはCoffee Lake Refreshを小改良した「Comet Lake(開発コード名)」を併売している始末である。このComet Lakeは、2020年にデスクトップ向けの10コア品を提供する予定だった。ただ予想外に消費電力が大きくなり、当面は8コアまでで10コア製品はしばらくは出荷量が絞られる見通しだ。
 インテルは10nm+をさらに改良した10nm++プロセスで製造するTiger Lakeを2020年中に投入するとしている。今のところはこれもモバイル向けのみになりそうで、デスクトップは引き続き14nm++を使った「Rocke Lake(開発コード名)」を2021年に投入するとしている。
 14nm++ルールが2021年まで延命するという意味では、インテルはもう10nm世代を半分放棄しているようなものだ。2021年に立ち上がる予定の7nmに命運が懸かっている。2021年に7nm、2022年に7nm+、2023年に7nm++がそれぞれ提供されるというのがインテルの2019年におけるロードマップであるが、7nm世代で10nm世代と同様の混乱を招かない保証はどこにもない。

アーキテクチャー改良で遅れ

 インテルのもう一つの自責点とは、アーキテクチャー改良の遅れである。微細化でつまずくと改良の「元手」となるトランジスタ数を増やしにくくなるのだから仕方がない。
 現在のCoreのベースというか基礎になるのは、インテルが1995年に発表したPentium ProことP6にさかのぼる。P6のアーキテクチャーは、分類としてはスーパースカラー(Super Scalar)/アウト・オブ・オーダー(Out-of-Order)の構造になっており、1サイクルで最大3命令(簡単な命令2つ+複雑な命令1つ)を解釈(3命令Decode:デコード)、解釈後の命令を同時に最大5つ処理可能(5命令Issue:イシュー)、というものであった。
 これに拡張命令の「SSE」を追加したのがPentium II/IIIで、Pentium IIIを徹底的に省電力化したのがPentium Mである。Pentium Mは「MicroOps Fusion」と呼ばれる命令処理の効率化機構も含まれている。「Core Duo(開発コード名:Yonah)」「Core 2 Duo(同Conroe)」がこれに続く。Conroe世代でデコードは4命令/サイクル(簡単な命令3つ+複雑な命令1つ)、イシューは6命令に強化され、SSEはSSE2/3/4.1が順次実装されていった。
 Core 2の後を受けて2008年に投入された初代Core iシリーズ(開発コード名:Nehalem)も、基本的な構造はCore 2と同じ。メモリーコントローラーの統合やハイパースレッディングの搭載、意味的にはL0キャッシュに相当する小さな命令キューを追加した程度である。
 2011年に登場したSandy Bridgeでも基本構成はCore 2と変わらない。拡張命令「AVX」のサポートで1サイクル当たりの処理量が倍になったため、メモリーからCPUに命令を送り込むLoad/Storeユニットを倍の性能になるように強化しているくらいなものだ。

Haswellで命令の同時実行数を強化

 基本構造に手が入ったのは2013年に投入されたHaswellからである。最大の違いはイシューを7命令に拡張したことで、これが実効性能を引き上げた。イシューを7に増やすことで、CPUの1サイクル当たりに実行できる命令数(IPC:Instructions per Cycle)に直結する発行命令数が上がった。
 IPCはCore 2の世代から3命令に迫り、Sandy Bridge世代で3命令を超えた。IPCはHaswellでは4命令に近づき、Skylake世代ではほぼ4命令に達した。
 2019年に投入されたIce Lakeでは、発行命令数がついに10命令/サイクルと10の大台に乗った。デコーダーは引き続き5命令/サイクルながら、L0キャッシュからは6命令/サイクルで命令をロードできる。これらの構成で、IPCは5命令を狙える構成になっている。
 これまで見てきたように、世代ごとに細かく改良を重ねてきたインテルの命令セット/マイクロアーキテクチャーであるが、逆に言えば抜本的な作り直しはされておらず、これに起因する問題点もいろいろ出てきた。
 まず一つ目は、P6世代の非対称構造を現在まで引きずっていることだ。このため回路規模を最適化できず、AMDによる追撃の余地を残してしまった。事実、初代RyzenとSkylakeのCPUコア+L2キャッシュの回路面積を比較すると、Ryzenの方が小さい。
 非対称構造とは、処理の一部に機能制限を設けてトランジスタ数を抑える設計を指す。初代Pentium Proは0.5μmプロセスでの製造であり、利用できるトランジスタの数に制限があった。このため、例えばデコーダーは本来ならば同構造の回路を3つ並べれば効率が上がるにもかかわらず、複雑な命令を解釈する「Complex Decoder」は1つにとどめ、残り2つは構造が簡単な「Simple Decoder」に限ったことでトランジスタ数を減らしている。
 またLoad/Storeユニットは、Load Address/Store Address/Store Dataと役割を分けているが、これも技術的にはLoad/Storeをまとめて処理するもっとすっきりした実装で効率化できる。整数演算ユニット(INT)とベクター演算ユニット(VEC)が同じポート(Port 0/1/5)を共有しているが、これはPentium IIIでSSEを追加する際に既存のポートを使いまわす実装を選んだ名残だ。この辺り、AMDは整数演算とベクター演算で別の発行ポートを用意するという、よりスムーズな実装を選んでいる。
 確かにPentium Proの時代はトランジスタ数の制限からベターな方法であった。ただその後、急速にプロセスの微細化が進んだ結果、利用できるトランジスタの数が飛躍的に増えた。本来であれば、どこかのタイミングでこうした非対称構造は置き換えるべきであった。しかし王者たるインテルにとっては採り得ない選択肢でもあった。それぞれの世代に最適化したソフトウエア資産を守るためだ。
 デコーダーの構造やLoad/Store命令の構造を置き換えると、従来アーキテクチャーを前提に最適化してしまったソフトウエアはむしろ遅くなるケースがしばしばみられる。これを避けるためには、既存のアーキテクチャーを引き継ぎながら細かく拡張していくしかない。PC向けCPUでトップの座を維持しながら、まったく新規のアーキテクチャーを投入するのは非常に勇気が要る施策だ。結局、屋上屋を架けるように、アーキテクチャーの改修を進めることになった。

脆弱性問題が追い打ち

 脆弱性問題も追い打ちをかけた。2018年頭に保護されるべき領域のデータを読み取れてしまう「Spectre/Meltdown」問題が発覚。その後も続々と亜種あるいは新規の脆弱性が発見され続けているが、この影響を受けているのはほとんどがインテルのプロセッサで、AMDや英Armその他のプロセッサの影響は軽微である。
 インテルとAMD/Armの違いは、ここ20年間の研究成果を取り入れた脆弱性対策を設計段階で施せるか否かだ。先に挙げたように、インテルは根本的な対処を取りづらい。AMDのZenのように、アーキテクチャーを0から作り直すことに近いからだ。
 この状況に輪を掛けたのは、インテル前CEOのブライアン・クルザニッチ(Brian Krzanich)氏である。同氏は2013年5月にインテルのCEOに就任するが、その施策の一つがイスラエルの設計チームの解体である。
 もともとKrzanich氏は、オレゴンの製造拠点と設計チームを率いており、CEO昇格に当たってはイスラエルの製造拠点と製造チームを率いていたデビッド・パルムッター(David Perlmutter)氏とその座を争って勝ち取った形だ。Perlmutter氏が2013年10月に辞任すると、イスラエルの設計チームを骨抜きにした。
 企業における権力闘争という観点ではこの動向は理解できるのだが、Pentium M~Core 2までの設計を担当したチームを事実上解体してしまったことで、当時のインテルはアーキテクチャーを根底から作りなおすのに必要な開発リソースを失ってしまった。もしイスラエルチームを残していれば、抜本的な解決を伴う新アーキテクチャーを投入できたのかもしれない。
出典:https://active.nikkeibp.co.jp/atcl/act/19/00155/031900002/?ST=act-pc