1カ月集中講座
2014年最新CPUの成り立ちを知る 第1回
~コンシューマ向けCPUはどうしてこうなった?
(2014/6/5 06:00)
4月の1カ月集中講座でGPUのアーキテクチャ変遷を簡単に紹介させていただいたが、実はCPUの方がもっと劇的に変化している。単純に言えば、求められる要求がここ数年で激変してしまい、これに合わせてアーキテクチャの急速な交代が始まっている。これは単に内部構造だけの話ではなく、命令セットそのものの交代も含む大掛かりな話である。
そこで、こうした事情を(またしても)後藤氏の記事を派手に引用させていただきつつ、簡潔にまとめてみたいと思う。1回目と2回目はコンシューマ市場とサーバー市場のCPUに関する現状をまとめ、後半2回で現状に沿ったCPU設計について解説していきたい。今回はまず、コンシューマ(一般消費者)向けCPUの現状だ。
コンシューマ向けCPUの性能競争時代
コンシューマ向けCPUと言えば、スマートフォンやタブレットが普及するまでの期間はPCが主流であり、x86プロセッサがその中心にあった。デスクトップやノートPCといったフォームファクタ(≒消費電力枠)に違いはあるが、基本的な狙いは「どれだけ処理性能を高くできるか」であり、その主流であるx86プロセッサもこれに沿って進化してきた。簡単にまとめれば、
- 命令セットの拡充
- 8080→8086→80286→80386→x64
- MMX→SSE→SSE2→SSE3→SSSE3→SSE4.1→SSE4.2→AVX→AVX2
- パイプライン化によるIPC改善
- 386→486
- スーパースカラの搭載によるIPC改善
- 486→P5
- アウト・オブ・オーダーの搭載によるスーパースカラの効率改善
- P5→P6
- スーパースカラの規模拡大
- Core→Core 2
- Ivy Bridge→Haswell
- パイプライン/ハイパーパイプライン化による動作周波数の向上
- P5→P4(NetBurst)
- マルチスレッド化による性能の改善
- P4(NetBurst)→P4(NetBurst) with Hyper-Threading
- Core 2→Core i
- マルチコア化による性能の改善
- P4(NetBurst)→Pentium D
- Core 2 Duo→Core 2 Quadなど
といったあたりである。
ちなみにパイプライン化が「P5→P4」となっているのは間違いではない。市場での登場順で言えばP5→P6→P4(NetBurst)となるが、Intelでアーキテクトを務めたRobert P. Colwellの著書「THE PENTIUM CHRONICLES」によれば、P6の開発中にすでにP4の開発も始まっていたという。よって、P6もP4も基本的にはP5の後継という位置付けである。先にP6が出て、次にP4が出た結果としてP6→P4という形になったが、もしP6が「Athlon」との性能競争に勝ち、加えてもう少し性能が伸びていたとしたら、P4の出番が本当にあったのかどうかは興味のあるところだ。
話を元に戻すと、こうしたさまざまな手法で性能を改善しようと試みたわけだが、IPCの改善は基本的にポラックの法則(PC Watchでの初出は“Intelから新しいルール「ポラックの法則」が登場”と思われる)が制約になるので、トランジスタ数によほど余裕がない限り、そうそうIPCを上げにくい。
そこで動作周波数を上げる方向に振ったものの、今度は消費電力の急増という問題に直面したのはPrescottコアのPentium 4の時である。Intelはやや先走りすぎたにしても、基本的にそうそう動作周波数が上げられるものではないという話である。そこで次なる手としてマルチスレッディングやマルチコア化によるトータルの性能改善という方向に進んだが、今度はアムダールの法則が立ちふさがることになる。この当たりの課題については、下記記事を参照されたい。
この結果として、ヘテロジニアス(異種混合)構成が脚光を浴びることになる。これはCPU単体での性能改善には限界があるので、異なるアーキテクチャを組み合わせるのが望ましいという判断である。
元々PC以外のマーケットでは、専用アクセラレータやFPGA、DSPなど、さまざまなものをCPUコアと組み合わせるアプローチを古くから採っており、PC向けもこれに倣った形だ。ここでGPUコアが有力候補として躍り出て、CPU+GPUという形での性能強化に向けて現在各社が競っている状況は読者諸兄もご存じの通りだろう。
上記の記事は2008年末のものだが、2014年の現在もここから大きく進んでいるとは言えない。ハードウェアはともかくソフトウェア(特にアプリケーションの対応)にはどうしても時間がかかるためである。逆にハードウェアに関して言えば、AMDは「Kaveri」でHSAの第1段階の目標であるCPU/GPUの統合メモリ(Unified Memory)化とキャッシュ・コヒーレンシを(一部制限はあるとは言え)実現しており、これにソフトウェアが追い着くのを待つだけである。
ここまでの話はまだ分かりやすいが、こうした進化と並行して、もう1つ新しい動きが2008年頃から始まっている。
まずきっかけとなったのはネットブック/ネットトップである。IntelがAtomを低価格なデスクトップやノートPCに投入した狙いは後藤氏のこちらの記事で解説されている通りで、Intel(や、これに追従したAMD)の思惑は、立ち上がりつつあるスマートフォン市場への牽制以上の効果は、この当時は期待していなかった。というのは、このネットブック/ネットトップ向けプロセッサの興隆により、利益率の高いメインストリーム向けの製品が奪われたら売り上げ、利益の両方で損失が大きいからだ。
結果から言えば、このネットブック/ネットトップのトレンドは長続きせず、2009年には早くも失速の兆しを見せた。ここからは筆者の見解であるが、この2008~2009年は、まだアプリケーションの実行はクライアント側の性能が大きく響いていた。OSもそうだし、メールやOfficeスイートなどは全てクライアントサイドで処理されており、サーバーサイドで処理されるのはWebブラウジングだけといっても過言ではない程度に、まだネットワーク化は進んでいなかった。こうなると、ネットブック/ネットトップの低い性能は、そのままアプリケーション性能の低さに直結することになる。
いくら安く入手できても性能が低いという「安かろう悪かろう」は、そうそう支持され続けるものではない。これは初代の「Chromebook」がやはり普及しなかったこととも重なる。当時のWebアプリケーションは、まだPCで動いていたアプリケーションを全て代替できるほどには高機能ではなかった。例を挙げると、年末年始の年賀状作成を行なうのに、当時のChromebookではサポートされているプリンタが非常に限定されていたほか、アプリケーションがOOo(OpenOffice.org)しかないなど、事実上使い物にならなかった。一方、ネットブック/ネットトップは年賀状作成ソフトそのものは動くものの、メモリ不足やストレージ不足などで、OSとソフトを入れたらフォントが入らなかったり、肝心のソフトが物凄く「もっさり」していたりなど、これまた使い勝手が極端に悪かった。結局のところ、ネットブック/ネットトップが廃れたのは、メインのPCの代替にならなかったからだと思う。
コンシューマ向けCPUへの要求が変化
このシナリオが崩れなければ、この後もIntelやAMDは万々歳だったわけだが、これは割とあっさり崩れる。それはスマートフォン/タブレットの急速な興隆と、これに伴うクラウドベースのWebアプリケーションの猛烈な進化だ。
このことについて細かく説明する必要はないだろう。例えば筆者は普段、取材にノートPCを持ち歩かない。ICレコーダーとカメラ、それにメモ帳とスマートフォンだけで済む。メールやWebを閲覧してのちょっとした確認や、SNSへのアクセスなどはスマートフォンだけで完結するからだ。たまに資料を見せながらインタビューをするようなケースでは「Nexus 10」を持参するが、それで十分だ。もちろんその場で原稿を書くとなればPCも必要になるが、そうした用途が必要になる人は(業種にもよるだろうが)そう多くはない。
また、そのPCに求められる性能も、グンと下がった。これは主にAndroidやiOSの普及により、サーバーサイドで処理を行なうアプリケーションが急速に増えるとともにその質を高めていったことに起因する。実際Windows自身がもうそういう方向に進んでおり、Office Onlineなどその最たるものである。
こうなってくると、大多数のユーザーにとっては、もはや高性能なCPUは必要なくなりつつある。実際1.33GHzのAtom Zシリーズを搭載したレノボ・ジャパンの「Miix 2 8」が高い評判を得ている現状では、「とりあえずメールとWebとSNSと艦これができればいいよ」というユーザーに、HaswellベースのCore i7を押し付けるための理由付けはかなり難しい。むしろ、低価格であることや低消費電力であることの方がずっと重要になってくる。
こうした状況では、CPUに求められる要求もかなり変わってくる。車に例えると、これまでは12気筒エンジンをメインに据え、低燃費への要求に対しては、例えば8,000rpmで回るエンジンを2,000rpmに抑えるといった形で応えていた。トルクはあるので2,000rpmでも満足に走るし、燃費も抑えられるが、元々は8,000rpmで回るように設計されたものなので、2,000rpmに抑えることは明らかに過剰な強度があり、重量も無駄にかさむ。
ではエンジンブロックの厚みを削ればいいのか、と言うとピストンもコンロッドも含めたエンジン全体に強度を持たせているので、これらを全て削ったら今度はバランスが崩れてしまう。それならば初めから低燃費を狙った小さなエンジンを新設計した方が、エンジンの大きさも抑えられる(CPUで言えばダイサイズが減る)。これは、回りまわって車全体のサイズ小型化やフレームの重量軽減に繋がり、さらに省燃費化が進むことになる。つまり、12気筒エンジンを省エネ化したものではなく、最初から省エネ向けに設計された2~3気筒のエンジンが求められているのが、現在のコンシューマ向けPC市場の実情である。
もっと厄介なことに、サーバーベースにアプリケーションが移行したことで、x86系CPUが持っていた「バイナリ互換性」というメリットが急速に薄れつつある。Webアプリケーションでは、クライアント側のCPUがARMかx86かは無関係で、単純にWebブラウザが正しく動き、プラグインが利用できればいい。Adobe Flashは、この分野でx86の牙城を守る重要なプラグインになってしまったが、逆に言えばFlashさえ使わなければ、バイナリの互換性はほとんど問われないことになる。
またアプリケーションでも、「Office for iPad」も登場したことで、いよいよ垣根が低くなってきた。むしろ最近はARMベースのAndroid向けに、NDKを使ったアプリケーションが増えてきたことで、「BlueStacks」のようなソリューションが出てくる始末だ。つまりx86が本当に有利とはもはや言いにくい状況になりつつある。こうした状況に向けて、IntelがAtom系列の高性能化&低価格化を急速に推し進めた(下記記事参照)のは、ある意味必然と言っていいだろう。
逆にARMは、スマートフォン/タブレットで、新しいコンシューマ向けのエコシステム確立に成功した。そこで同社としてはこの市場をさらに広げていきたいことになる。ただ同社は、同時にサーバー分野にも足掛かりを得たいと目論んでおり、これを同時に進めるのは無理がある。「Cortex-A12」が後から投入されたのは、同社としてもギリギリの決断だったと思うが、このあたりの事情については、2回目以降で細かく説明することにしたいと思う。
このように、コンシューマ向けCPUの覇権争いは、ここ数年ですっかり様変わりしてしまった。これによるメリットをもっとも享受したのは実はAMDではないかと思う。Bulldozer系列を使ってのピーク性能競争でIntelにはっきり敗れ、このままでは市場を失いかねなかった同社だが、Bobcat系列コアの存在と、省電力/低コストコアへのシフトという2つの要素により、再びシェア争いに参加できる位置に戻ってくることができたからだ。このあたりも別の回で触れたいと思う。
さて、次回はサーバー市場のCPUに関する現状をまとめてみたい。