2008年12月18日 08時00分 UPDATE
特集/連載

組み込み向け半導体最新動向:PowerPCプロセッサAppleと別れたPowerPCの次なるパートナー探し

PowerPCといえば、Appleの「Macintosh」を連想する人も多いだろう。AppleがIntelチップへの移行を表明してから早3年。今回はPowerPCの変遷とその現状を紹介する。

[大原雄介]

 自社のパーソナルコンピュータ「Macintosh」にPowerPCプロセッサを採用していた米Apple Computer(現Apple)は、2005年の開発者向けのイベントにおいて、CPUをPowerPCからIntelx86系へと順次切り替えることを発表し、その後次々と製品を市場に投入した。現在、PowerPC系プロセッサは任天堂の「Wii」、ソニーの「プレイステーション3」(以下、PS3)、Microsoftの「Xbox 360」などの家庭用ゲーム機に採用されている。

 今回は、PowerPCを取り上げる。優れたアーキテクチャを持っているが、そのビジネスモデルや標準化の動きには幾つか問題点があるといえる。

PowerPCの起源「IBM 801」プロセッサ

 PowerPCは、米IBMと米Motorola(※)、Apple Computerの共同開発によって1991年に誕生した。その大本はIBMの「POWER(Performance Optimization With Enhanced RISC)」プロセッサであり、さらにさかのぼると世界最初の量産RISCプロセッサといわれる「IBM 801」までたどり着く。

※Motorolaの半導体部門は2004年に分離独立し、Freescale Semiconductor(以下、Freescale)となった。

 IBM 801はもともと研究用に開発され、研究プロジェクトの一環としてCPUコアを製造したところ良い性能が出たため、実際にIBMのメインフレームの一部に利用されたいきさつがある。この点は、前回の「世界で最も多く出荷されたRISCプロセッサMIPSのサバイバル戦略」で紹介したMIPSに近いといえる。

 このIBM 801をベースとして、後に「RS/6000」として知られるメインフレーム向けにIBMが開発したプロセッサが、「POWER1」である。AppleはそれまでMotorolaの68000系プロセッサを使ってMacintoshを製造していたが、より高い性能が必要と判断して新しい組み込み向けプロセッサの開発を決定。こうして3社が連携して開発を進め、POWER1のサブセットとしてPowerPCの初代となる「PowerPC 601」(PPC601)が誕生した。

組み込み系、最強のアーキテクチャ

 PowerPCのアーキテクチャは、POWER1の特徴を非常に色濃く引き継いでいる。メインフレーム向けCPUであるPOWER1は、当初から2wayのスーパースカラー方式を採用し、整数演算ユニット3基のほかに、FPU(浮動少数点演算)やFXU(固定小数点演算)などの実行ユニットを持ち、当時としてはかなりぜいたくな構成だった。仮想記憶は52ビット長が用意され、当初から64ビットOSの利用が考慮されていた。また、マルチCPUを統合することを想定し、マルチCPUに周辺回路を組み合せたモジュール形式で製品化された。

 POWER1が開発された1990年といえば、Intelの32ビットプロセッサ「Intel i486DX」が発売された翌年で、Motorolaは68000系列としては初めてFPUを搭載した「Motorola 68040」を出したばかりだった。POWER1のアーキテクチャは非常に先進的だったといえる。

 PowerPC 601では、POWER1のアーキテクチャをそのまま持ち込むにはオーバースペックなので大幅に機能が削られた。まずマルチCPU機能が削られ、パイプラインも短縮されてスーパースカラー方式も省かれた。外付けは可能だったがL2キャッシュも削減。その分、ダイサイズが縮小されて、0.6マイクロメートルプロセス、121平方ミリメートルのワンチップ構成になった(POWER1は複数のチップから構成され、1.0マイクロメートルプロセスを使った場合のダイサイズの合計は1284平方ミリメートルである)。

 ただし、32個の汎用レジスタと32個の浮動小数点レジスタを持つことや、命令体系を容易にスーパースカラー化できる点などは継承している。PowerPCのアーキテクチャは、組み込み向けCPUとしては非常に優れているといえる。

PowerPCの系譜

 ここからはPowerPCの系譜をたどっていこう。まずはPowerPC 601を改良した「PowerPC 603」がリリースされ、さらに演算ユニットを大幅に強化した「PowerPC 604」がリリースされる。

 このPowerPC 604をベースに、64ビット拡張を施したのが「PowerPC 620」である。しかし、当時はまだMac OSが32ビットの範囲で動作していたので、64ビットを利用する必要があったわけではない。これはMac OS以外への応用を考慮したものだった。PowerPC 603やPowerPC 604、PowerPC 604の製造プロセスを微細化した「PowerPC 604e」などは、ワークステーションへの実装が考慮されていた。

 その後、PowerPCを搭載したPCの共通ハードウェア規格「PReP(PowerPC Reference Platform)」が1994年に策定され、IBM AIXやOS/2、Windows NTなどへの移植が一部行われる。この方針に沿ったものがPowerPC 620で、AIXではPowerPC 620に対応した64ビット版の開発が行われた。しかし、PowerPC 620の進ちょくがかなり遅れてしまい、シリコンは製造されたが搭載製品は出ずに終わった。

 ただ、PowerPC 604/620の開発に使われた技術はそのままPowerPC 750に引き継がれており、まったく無駄になったというわけではない。IBMはPowerPC 604eを搭載したワークステーションを出荷している。また、PowerPC 620の改良型「PowerPC 630」の計画は中断され、シリコンの製造も行われなかった。このテクノロジは「POWER3」としてPOWER系列に引き継がれている。

Appleとの蜜月関係と別離

 その後、IBMとMotorola(Freescale)が交互に製品を製造し、それが順にAppleに採用されるという良好な関係が築かれていた。

 初代のPowerPC 601やPowerPC 603、PowerPC 604/604e/620などは基本的にIBMによって製造されたが、PowerPC 603コアを微細化・省電力化した「PowerPC 603e」はMotorolaによって製造された。これは「G2」コアと呼ばれ、その省電力性が買われてPowerBookなどに採用された。

 その一方、デスクトップ向けにはIBMが開発した「PowerPC 750」が投入され、こちらは「G3」コアとしてデスクトップやノートPC向けにも利用される。このG3コアと互換性を持ち、さらに性能を引き上げたのがMotorola製造の「PowerPC 7400」ファミリーで「G4」コアと称される。

 また、IBMはPOWER4プロセッサをベースに、再び64ビット拡張がなされたPowerPCコアを「PowerPC 970」として投入する。これは「G5」コアと称され、特にハイエンド製品などで利用された。

 しかし、このG5を最後にAppleは製品展開を全面的にIntelベースのCPUに切り替えてしまう。このためIBMとFreescaleは、Macintoshに代わる新しい用途を探す必要があったが、両社はここから対照的な動きを取ることになる。

2種類のラインアップを持つ「Freescale」

 Freescaleは、早くからG2/G4コアをベースに組み込み市場向けの製品を展開していた。PowerPC G2は「e300」、PowerPC G4は「e600」という名前でCPUコアだけを分離し、同社の持つ周辺回路を組み合せたSoC(System on a Chip)として販売されている。また、ネットワーク向けにe300/e600コアを利用した製品「PowerQUICC」を出荷しており、エンジンコントロールを中心に自動車業界にもe300コアをベースにした製品が多数出荷されている。

 そのほか、Freescaleはローエンド向けにe300との互換性を持つ「e200」というフルシンセサイザブル(全回路が合成可能)なCPUコアを設計している。この製品は同社のSoCのコアとして利用でき、2007年からはIPextremeと契約して、IPコア(Intellectual Property Core)の外販も開始した。

 同社はさらに、性能がほぼe600コアに相当するというまったく新しいコア「e500」を開発した。その拡張版「e500mc」が2008年に発表されており、同社はSoC向けCPUのIPコア充実に余念がない。興味深いのは、e200/e500とは別に引き続きe300/e600コアの製造も行っていることで、結果として同程度の性能を持つ2種類のラインアップが重複する形になっている。

photo PowerPCプロセッサの系譜《クリックで拡大》

HPC分野でも利用する「IBM」

 IBMでは、PowerPC 600系列以降のメインストリームとはまったく別に、組み込み向けに「PowerPC 400」シリーズというラインアップを提供している。

 1994年に最初の製品となるPowerPC 403がリリースされているが、動作周波数は20〜80MHzでキャッシュも持たず(この動作周波数であればキャッシュは不要)、またMMUはオプションで追加できるという、非常にシンプルなものであった。その後、1996年には「PowerPC401」、1998年には「PowerPC 405」が市場投入された。

 PowerPC 405は、現在でもSoCのコアとして広く利用されている。PowerPC 405にはAPU(Auxiliary Processing Unit)と呼ばれる、命令拡張を後から行うための仕組みが用意された。これによりSoCで独自命令を組み込み、それをCPUで処理させることも可能になる。このAPUの仕組みは続く「PowerPC 440」でも継承された。

 PowerPC 440は、PowerPC 405をベースにしてパイプラインを増やしたモデルで、組み込み向けだけでなくHPC向けとしても利用されている。PowerPC 440を搭載したHPC向け製品としては、IBMの「Blue Gene/L」が挙げられる。

 Blue Gene/Lは、PowerPC 440をベースにデュアルFPUを搭載したコア2基と共有L3キャッシュを集約したノードで構成される。このマシンは2005年に、65536ノード構成で280.6TFlopsというLinpack Benchmarkの世界記録を達成した。

 Blue Gene/Lの後継製品である「Blue Gene/P」はPowerPC 450コアをベースとしており、PowerPCのアーキテクチャはHPC分野でも広く利用されている。ちなみにPowerPC 450の性能は「ほぼPowerPC 440と同じ」とされているが、詳細は未公開のままである(2008年12月時点)。2006年には、PowerPC 440の後継となる「PowerPC 460」が投入された。PowerPC 440との違いはマルチコアへの対応とDSPを搭載したことである。

 IBMは2004年、PowerPC 400ファミリーの知的所有権と関連資産をアメリカの半導体メーカーであるAMCC(Applied Micro Circuits Corporation)に売却した。しかし、引き続きIBMでは400ファミリーをSoCのコアとして利用できることになっており、PowerPC 400シリーズのほとんどはIBMのプロセスを利用したハードコアである。

 AMCCは結果として、買収した製品の製造のためにIBMをファウンダリとして利用することになる。ちなみにPowerPC 405/440/460についてはフルシンセサイザブルのソフトコアも用意されており、IBMおよびSynopsysから入手可能になっている。

photo PowerPC 400ファミリーの系譜

2つの問題点と今後の戦略

 ここまでPowerPCの系譜を振り返ってきたが、PowerPCは2つの大きな問題を抱えている。

乱立する標準規格

 その1つは、プラットフォームの標準化がなかなか進まないことだ。製品の種類がこれだけ多いと、何らかの標準化がなければ互換性を保つのは難しい。しかし、実際にはメモリ管理手法やFPU、SIMD演算命令などについてほとんど統一されていない。標準化活動はこれまでにも何度か試みられているが、複数の標準規格が存在している。

 最初の標準規格「PowerPC Classic 1.0」は、PowerPCの製造が開始された1991年に定められ、アプリケーション命令、仮想環境、OS環境がそれぞれ「Book 1」「Book 2」「Book 3」としてまとめられた。その後「PowerPC Classic 1.10」に改定され、1999年には64ビット命令などを追加して「PowerPC Book E」としてまとめられた。

 しかし、これとは別の標準規格も登場する。IBMは2003年にPowerPC Classic 1.10を引き継ぐ形で「PowerPC 2.02 Book 1/Book 2/Book 3」を制定し、その一部が「PowerPC Book E 1.0」に継承されることになる。このBook Eはその後1.9(非公開)へと続く。

 その後、IBMとFreescaleを中核とする標準化団体「Power.org」が設立され、あらためてPowerPCの標準化を行い、2006年に「PowerISA 2.03」をリリースした。以後順調に仕様追加が行われ、最新の「PowerISA 2.06」は2008年内にリリースされる予定だ。

 しかし、すべてのPowerPCがPowerISAに準拠しているわけではない。例えばFreescaleの場合、e200/e500コアはPowerISA 2.03準拠だが、e300/e600はPowerPC Classic(または、それを継承するPowerPC BookE)準拠となっている。Freescaleは旧来製品との互換性を保つため、e300/e600の製品ラインをe200/500に全面的に置き換えるつもりはないという。

 IBMの場合も同様で、PowerPC 405以降はPowerISA 2.03準拠となっているが、PowerPC 750や970はPowerPC 2.02準拠である。このためOSのインプリメントはどのPowerPCの標準に準拠させるかで変わってしまうことになり、結果としてプラットフォームの標準化が進んでいない。

photo PowerPCの標準規格

IBMとFreescaleの独占状態

 PowerPCプラットフォームのもう1つの問題は、CPUコアを提供するベンダーが事実上、IBMとFreescaleの2社しか存在しないことだ。AMCCは独自コア「Titan」の開発を行っており、当初の計画では2007年中にサンプルを出荷する予定だった。しかし、既に1年近くスケジュールが遅延している。現時点では、AMCCはIBMの400シリーズコアを販売しているだけにすぎない。

 また、独立系ファブレスベンダーであるP.A.Semiが「PA6T/PA7T」というコアをサンプル出荷していたが、同社は2008年4月にAppleに買収されてしまった。このAppleによる買収はPowerPCコアを製造したかったわけではなく、同社の優秀なエンジニアが欲しかったからであるともいわれている。その結果、P.A.SemiはPower.orgから脱退し、PA6T/PA7Tは正式に市場投入される前に消えてしまう。

 PowerPCにおけるビジネスモデルは現状、IBM、Freescale、AMCCのいずれかのSoCやディスクリートを購入してアプリケーションを開発するという形式しかない。これは、x86系プロセッサに限りなく近いモデルとなっている(x86系については次回以降取り上げる予定)。

 IBMの400シリーズとFreescaleのe200はソフトコアとして購入できるので、独自のSoCを作って販売する方法もあるが、現時点でのPower.orgにはこうしたビジネスを積極的に行っていく計画はない。もちろんP.A.Semiを見習って、自前でPowerISA互換CPUを新規に開発するという道もあるが、かなり難易度が高いといえよう。また、x86と比べるとプラットフォーム普及の度合いが低く、開発コストの低減や開発者の確保という観点でも現実性に乏しいといえる。

ゲーム機が握るPowerPCの今後

 Macintoshに代わるPowerPCの新しい用途は、前述したゲーム機端末(PS3、Xbox 360、Wii)である。どの製品もPowerPCベースのカスタムチップを用いている。まず、Wiiに使われている「Broadway」は、PowerPC 750(厳密には90ナノメートル SOIで製造された「PowerPC 750CL」)をベースとしたものであり、Xboxの「PX」、PS3の「Cell」はどちらもPowerPC 970をベースにしている。

 PowerPCの将来のカギを握るのは間違いなくこの分野での需要であるが、その見通しは必ずしも明るいとはいえない。よく「現世代のゲーム機端末がすべてPowerPCベースだから、開発者は結構多い」という発言を耳にするが、残念ながらこれは実情にそぐわないといえる。

 欧米などのゲームベンダーを見ると、Xbox 360とPS3、PCという3つの異なるプラットフォームをすべてサポートするタイトルが増えつつあるからだ(Wiiについては後述する)。この3つはまったく異なるアーキテクチャであり、個別に作り込むと開発コストが非常に掛かってしまう。このためゲームベンダーでは、3つのプラットフォームをサポートする共通のミドルウェアを用意して、この上に実際のゲームを載せるような実装方式の採用が増えている。つまりゲーム開発者の大半は、PowerPCかどうかを考慮しないで作業しているわけで、PowerPCに携わっている人間が多いとはいえないのだ。

 Wiiも同様にミドルウェア上でゲームを開発しており、PowerPCであることを意識するケースは少ない。ハードウェアとしてのPowerPCの出荷量は少なくないが、これが開発者の増加にそのままつながらないのだ。この点はゲーム機という特殊なプラットフォームであることと無縁ではあるまい。

 Power.orgではこのことを十分理解しているようで、開発コスト低減に役立つソフトウェア資産の充実や、開発者コミュニティーの設立などに活動の力点を置いている。その活動がどの程度まで効果を上げられるかが、今後のPowerPCの普及に影響を及ぼすことになるだろう。

この記事を読んだ人にお薦めのホワイトペーパー

この記事を読んだ人にお薦めの関連記事