第27回 RISCの敗因、CISCの勝因頭脳放談

一時はプロセッサ市場を大きく変えると思われていたRISC。しかし、最近ではすっかり影が薄くなってしまった。なぜRISCは、CISCに敗れたのか。

» 2002年08月16日 05時00分 公開
「頭脳放談」のインデックス

連載目次

Computer Architecture A Quantitative Approach, Second Edition Computer Architecture A Quantitative Approach, Second Edition
著者:John L Hennessy/David A Patterson
出版社:Morgan Kaufmann
ISBN:1558603727
プロセッサ・アーキテクチャを解説した伝説的な教科書。初版は1990年、Second Editionは1995年、Third Editionは2002年にそれぞれ出版されている。なお、日経BP社から初版を翻訳した「コンピュータ・アーキテクチャ(ISBN:4-8222-7152-8)」が出版されている。

 長いこと半導体業界で仕事をしていると、たまに新人や若いエンジニアに何かを教えなければならない、といった局面がある。マイコンのアーキテクチャがらみのときは、取りあえず「Computer Architecture A Quantitative Approach」を読んでいるかどうか聞くことにしている。そこで、「読んでいない」といった答えが返ってくるようだと、「読んでないのはモグリだ」などといって読むように勧めている。ただ勧める際には、「この本はコンピューティングの世界でMIPSやSPARCといったRISCプロセッサがx86系プロセッサに代表される古いCISCプロセッサを駆逐する」という教義に基づいて書かれているが、現実はそうなっていない、という点を忘れず付け加えている。

 Hewlett-PackardのPA-RISCやAlphaを採用したコンピュータ製品群は、Itaniumプロセッサ・ファミリ(IPF)へと統合される予定だし、Sun MicrosystemsもIPFのサポートを開始するのではないかとウワサされている。しかし、一時はこれらのRISCプロセッサが、x86系プロセッサを始めとするCISCプロセッサに取って代わる、と目されていたのだ。今回は、あれほど光を放った「RISC」がなぜ「CISC」に敗れることになったのか、なぜ「RISCが勝つ」という教義が挫折したのかを語りたい。

RISC登場の背景

 まず、なぜRISCが勝つという教義が成立したのかを振り返ってみたい。当時のCISCはどんどんと複雑な命令をハードウェアに取り込んでいた。これは、そのころにCISCの問題点として認識されていたセマンティック・ギャップ*1を埋める作業でもあった。その進化は高機能化といえた反面、どんどんと複雑化する命令は、実行時に複数のクロックを使うようになり、パイプラインを乱すような複雑な制御と長いクリティカル・パス*2をしばしば生じさせ、高速化とは矛盾するような方向性でもあったのだ。

*1 semantic gap:語義の隔たり。ここでは、プログラミング言語とそれを実行するプロセッサとの間の命令の隔たりという意味。当時、プログラミング言語はどんどんと高級化し、自然言語に近付いていくと考えられていた。そのため、プログラミング言語とプロセッサの命令とは大きくかけ離れてしまい、その隔たりがプログラミングを困難にするのではないかと思われていた。
*2 ここでいうクリティカル・パス(critical path)とは、回路の内部で最も時間がかかる処理のこと。一般的に、クリティカル・パスが長くなるほどクロック周波数も下げる必要があり、プロセッサの性能向上におけるボトルネックとなる。


 それに対するアンチテーゼというべくRISCは登場した。「セマンティック・ギャップを埋めるのは、ハードウェアでなくコンパイラだ」と割り切ったところから彼らはスタートしたのである。単純な命令を高速に動かすことにこそ、真の高性能はもたらされる、と見抜いたところに基本がある。高速化を容易にするために、単純でパイプラインを乱さない命令セット、解読しやすい固定長の命令コード、高速にアクセスできる多数のレジスタ、パイプラインの流れをストール(中断)させないための遅延分岐など、当時のCISCにはなかった概念を、RISCは次々と導入した。そして一度はCISCから性能面での主導権を奪ったのである。

 当時のRISC陣営側のプレゼンテーション資料などを見ると、CISCもRISCも年々右肩あがりで進歩するが、その傾きがRISCとCISCでは異なり、CISC側はどんなに追いかけてもRISCとは差が開くばかり、という予想になっていた。少なくともRISC陣営の提示する技術要素のどの点をとって議論しても、CISCのやり方よりRISCの方が合理的だった。「CISC側の敗北は理論的に不可避」と思われた状況だったのである。そういう状況下で、RISCというよりもすべてのプロセッサのアーキテクチャ上のトレード・オフを教えるために、前述の本は書かれた。それゆえ、「マイクロプロセッサを設計しています」などという以上は、「読んでないとモグリ」と言われるほど流布したわけである。

 だが、CISCの代表ともいえるx86系プロセッサが、Pentium 4などという名で健在である一方、SPARCやMIPSはもちろん、PowerPCも、こと動作クロックに関しては後塵を拝している。それどころか、CISCであるPentium系と静かに普及しつつあるEPIC(あるいはVLIWというべきか)のItanium 2との隙間で押しつぶされそうになっている。まさにRISCは、青息吐息の状態だ。まじめに「Computer Architecture A Quantitative Approach」を読んで設計していたら、EPICならいざ知らず、CISCに追い詰められるようなことはなかったはずなのに……。

A Quantitative Approachはなぜハズれたのか?

 では、RISC側の敗因を分析してみよう。一般的にRISC陣営は前述のようにキャッシュも含めたプロセッサ・パイプラインを高速化することに注力した。その方針はまったくもって正しいし、最初は確かに大成功であった。しかし、しばらく成長した後、徐々にRISCは問題に直面するようになったのである。最初は「簡単な命令=高速化しやすい」といえたのが、高速化のために大規模な回路、例えばスーパースカラー化や大規模な階層記憶(キャッシュ)などが必須となり、大規模な設計チームが必要になってからは、RISCだからといって高速化しやすいとはいえなくなってしまった。それでも多少はやりやすい面も残っていたが、それ以外の要素が大きくなるにつれて、RISC教義の意義は薄れてしまった。

 また、最初は無視できた既存コードとの互換性といった厄介な問題も、商売を続けるにつれて背負い込むようになった。本来は簡単な命令しかなかったはずのRISCが、過去のプロセッサとの互換性を維持したり、新しい機能を追加したりする過程で、どんどんと複雑になってしまったのだ。

 そして、高速なキャッシュ・システムの設計や、大量に集積できる回路技術、高速な設計を可能にする高価な設計ツール、貪欲にお金を吸い込む高度なプロセス技術など、先に進むためには非常に多くのリソース(設計者や開発費用など)がかかるようになってきた。しかし、リソースがかかるからといって、高速化競争の速度が衰えたかというとそんなことはない。結局、大規模な設計にリソースをつぎ込めないプロセッサから脱落を余儀なくされることになったのだ。

 プロセッサの開発過程において、どれだけのリソースをどの時期につぎ込むべきか、という点は、さすがに前述の教科書では取り上げられていない。例えば、一方を最新のプロセスで作り、他方を数世代前のプロセスで作ったとしたら、前者にアーキテクチャ上の問題があったとしても、性能にしろ価格にしろ後者より圧倒的に有利である。当然ながら教科書は、公平な条件下で技術的要素のトレード・オフを論じていたわけだが、現実世界では極めて偏りのある「ハンデ戦」で争われていたのだ。

CISCの勝因は競争にある?

 このようなリソース競争になったというのは、実はCISC側からの反発だったという見方もできる。自らの世界に安住していたCISC陣営にとって、突然ワークステーションという新市場とともに参入してきたRISC陣営は、「騎馬民族が突然現れた」というくらいの衝撃的なできごとであっただろう。そしてRISCから流布された「CISCはRISCを追い越せない」という教義に愕然としたはずだ。あわててRISCに対抗手段を講じ始めたものの、最初はRISCに追いつけそうな雰囲気は全然なかった。「CISCはなくなる」と誰もが思い、実際に消滅していったCISCプロセッサも数多くあった。

 しかし、CISC陣営、というよりその代表としてのx86アーキテクチャ同士での競争が、その窮地を救うことになる。それは、当時勃発したIntel対互換プロセッサ陣営のx86戦争と、同時並行的に起こったPCの販売競争である。ビジネス面から法律面までありとあらゆる手段が飛び交ったこれらの争いによって、結局のところプロセッサでは高速性が、PCでは価格が焦点となったのである。競争のために、x86系プロセッサ・ベンダ各社はRISC側の技術も次々と取り入れて、高速化にひた走った。また、PCベンダは必死の価格競争を行った。当然、ここでもリソース競争が起こり、弱体な互換プロセッサ・ベンダは淘汰されていくことになった。ところが、もともとx86系プロセッサはPCという有望な市場を持っており、またこの時期に価格競争でPCの価格が低下したことなどにより、PC市場が急速に拡大したことが幸いした。IntelやAMDは、拡大中の市場から得た収益により、十分なリソースをつぎ込むことができたので、競争に勝ち残ることができた。いまのx86系プロセッサは、CISCの命令セットを残した上で、SIMD命令などを追加してさらに複雑化しているが、それでも内部アーキテクチャ的にはCISCよりRISC的な要素の方が多くなっている。実は現時点ではCISCもRISCも内部的には似た者同士になってしまったのである。

RISCの未来

 結局、CISC(正確にいえばx86系プロセッサ)は急速に高速化し、いまやその動作クロックは3GHzのレンジにまで達しようとしている。一方、RISC陣営は、ワークステーション市場の成長がそれほどでもなかったために、つぎ込むリソースの割に見返りが少なく、それなりの進歩は続けたもののx86系プロセッサに比べた開発ペースが遅く、速度面での優位を保てなくなってきてしまった。昔、Sun Microsystemsのワークステーション(SPARCstation)は、そのころのPCとは段違いの性能で、エンジニアリング分野で普及したが、いまやエンジニアリング用の既存設計資産(ソフトウェアや設計ノウハウなど)が残っているから使われているようなものだ。単純なコスト性能比なら、PCにLinuxを組み合わせたシステムの方が格段に優れているかもしれない。そのためか大手CAEツール・ベンダも、PC+Linuxに対応した新製品を投入するようになってきている。

 また、AppleもPC側が8088のころには68000、PC側が486の時代にPowerPCと、常にPC側から一歩先んじた性能のプロセッサを使ってきたのに、いつのまにかPC側に追い抜かれて、いまや動作クロック比で2倍以上の開きがでてしまっている。カッコがいいのはデザインばかりである。

 とはいえ、RISCが全滅というわけでもない。それどころか組み込み用途では、いまやRISC全盛の時代である。ここまでの話はリソースがものをいう「コンピューティング」の世界のことで、「組み込み」世界のRISC陣営にはARMのような勝ち組もいる。ここでは単純な「高速化=リソース競争」とはまた違った競争原理が働いているのである。こちらの方が「Computer Architecture A Quantitative Approach」の理論をいまだに生かせる世界のように思えてならない。

筆者紹介

Massa POP Izumida

日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部を経て、現在は某半導体メーカーでRISCプロセッサを中心とした開発を行っている。


「頭脳放談」のインデックス

頭脳放談

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。