(前回から続く)PlayStationに話を移すと,1999年2月のISSCC(国際固体素子会議) 99で発表された「Emotion Engine」は,6年後,PowerPCコア×1+信号処理プロセッサSPE×7で構成された「Cell」(2005年2月のISSCC 2005で発表)へと進化した。Emotion Engineは動作周波数300MHzで6.2GFLOPSの浮動小数点演算性能を誇っていたが,Cellは,動作周波数3.2GHzで217.6GFLOPSの浮動小数点演算性能を達成した。マイクロプロセッサの性能の進化は平均して5年で10倍である。「Cell」の進化のスピードは,通常のマイクロプロセッサのそれをはるかに超えている。

 日経エレクトロニクスの2005年6月20日号に興味ある記事が掲載されていた。「Cellを創ったエンジニアたち(3) ベテラン技術者 最後の大仕事」である。

 SPE(当時の名称はAPU)の命令方式と命令セットをどうするかについて議論が紛糾した。1命令で様々な種類の演算を指定できるVLIW(Very Long Instruction Word:超長語)命令方式と,1命令で複数のデータを使った並列演算を実行できるSIMD(Single Instruction stream-Multiple Data-stream)命令方式のどちらかを選ぶかだった。結局行き詰まりを打破したのは,IBMのPeter Hofstee氏が発した「SIMDでいいよね」の一言だった。穏やかに問い掛けるようでいて,その眼光は有無を言わさぬ鋭さだったそうである。

 命令セットについては,ソニー・コンピュータエンタテインメント(SCE)が前世代の信号処理プロセッサVUでの経験を基に提示した200個程度の命令に対して,世界初のRISC型マイクロプロセッサ「IBM 801」の開発技術者の一人であったMarty Hopkins氏が「ともかくコンパイラが扱いやすい命令セットにすべき,そのためには200個の命令は多すぎる。私の試算によれば100個以下で足りるはずだ」と熱っぽく朗々と語ったそうだ。

 チップ内の多くのSPEと内部メモリーの結合方式でも議論が生じた。スイッチを切り替えて任意のSPEにメモリーを直結できるクロスバ・スイッチか,バケツリレー方式のようなリング状バスかである。今度は,SEC日本技術者たちの提案したリング状バスが勝利した。リング状バスは,性能が多少犠牲になるものの,高いスケーラビリティを提供できるからだ。

 「Cell」のゴールは1TFLOPSという途方もない超高性能であり,数個のSPEでは実現できない。VLIW命令方式や豊富な命令セット,クロスバ・スイッチは,6~8個のSPEの集積化には適していないが,捨てきれない技術であっただろう。VLIW命令方式は,一度味わったら抜け出せない麻薬のような魔力があるが,卓越したコンパイラ技術がなければ乗りこなせない。命令セットについても,必要と思われる命令を1つ2つと増やしていくと,考えが徐々に発散し,最後には,その自覚すらなくなってしまう。クロスバ・スイッチを採用すると,搭載するSPEの個数が変わるたびに設計変更が生じる。世界初のマイクロプロセッサ4004についてTed Hoffと議論していたころの自分を思い出し,「Cell」開発に参加した技術者たちの心の葛藤が理解できた。

 シングル命令セット型アーキテクチャのマイクロプロセッサは,低速で小容量メモリー向けに最適化されたCISC型命令セット・アーキテクチャである4ビット・マイクロプロセッサ4004から出発した。その後マイクロプロセッサは,新たな応用分野からの特異な要求を満たしつつ,8ビット,16ビット,32ビットと進化した。

 やがて,高速で大容量メモリー向けに最適化されたRISC型命令セット・アーキテクチャを搭載したマイクロプロセッサが登場した。マイクロプロセッサは64ビットへと進化しつつ,コンピュータから多種多様な性能向上技術を導入した。実装にSIMD方式を採用したマルチメディア命令や,応用に特化した命令,機能を集積化し,急激に発展した。

 さらなる性能向上を求め,命令の解読とスケジューリングなどをコンパイラ側で行って超長語命令を生成し,高動作周波数で命令を実行可能なVLIW型マイクロプロセッサが登場した。VLIW型命令セット・アーキテクチャは,マルチメディア・プロセッサやインテルのItaniumマイクロプロセッサに採用された。

 しかし,Itaniumが登場して6年たったが,次世代Itaniumが見えて来ない。全てが失敗したようである。最近になって製品に導入された性能向上技術の中で本物になりそうなのは,Simultaneous Multi-Threading技術やマルチCPUコア技術などである。

 過去35年間におけるマイクロプロセッサの開発とは,新規の応用分野からの特異な要求を満たすためのリスクの大きな創造的開発であった。次回はこの創造的開発について述べる。