米国のMPUベンチャーTransmeta(トランスメタ)が創る「Crusoe(クルーソー)」は、これまでのx86互換MPUとは根本的に違ったものだ。MPUそれ自体は、x86命令をハードウェアではデコードすることができない。x86命令を直接デコードできるAthlonやK6とは、全く異なる。しかし、エミュレーションソフトウェアがx86命令を実行時にCrusoeの命令に変換(トランスレート)することで、全てのx86命令を実行できるようにする。
エミュレーションでx86を実行しようというアプローチは、これまでにも数え切れないほどあった。しかし、Transmetaが違うのは、初めからx86のエミュレーションを前提として設計、MPUとエミュレーションソフトを密接に連携させて設計したことだ。Transmetaでは、MPUコアを「Morph Host(モーフホスト)」と呼び、トランスレートするエミュレーティングソフトを「Code Morphing Software(コードモーフィングソフト)」と呼ぶ。この2つの組み合わせでMPUになるというのがTransmetaのアーキテクチャのポイントだ。
従来のx86エミュレーションのアプローチが失敗したのは、ソフトウェアエミュレーションがどうしてもパフォーマンスで見劣りしたからだ。そのため、Transmetaではエミュレーション性能を向上させるために、様々な工夫をしたようだ。そもそも、Transmetaのコードモーフィングソフトは、OSの上で走るわけではない。OSの下の、MPUに密着したレイヤとして動く。また、MPUコアであるモーフホストは、エミュレーションを高速に行なうための支援機能をハードウェアで備える。いったん変換したコードは、システムメモリ上の「Translation Buffer」にキャッシングされ、再利用される。
また、Transmetaはこのアーキテクチャの最初のインプリメンテーションであるCrusoeの命令セットに、「VLIW(Very Long Instruction Word:超長命令語)」アーキテクチャを選ぶようだ。VLIWでは、複数のオペレーションをひとつの超長語命令に入れ込んで並列実行する。複雑なハードウェアスケジューリング機構をほとんど持たないために、CrusoeのMPUコア自体は非常にシンプルになると思われる。Transmetaでは同社のアーキテクチャのインプリメンテーションは、Pentium Proの1/4程度のゲート数で実現できるとしている。
こうして見ると、Crusoeはx86プロセッサをハードウェアとソフトウェアに分割し、スケジューリングなどの処理はソフトウェアに移して、ハードウェアをシンプルにしたMPUだと言うこともできる。
●トーバルス氏で知られるTransmeta
Transmetaは、これまでその正体がほとんど知られていない謎の企業だった。これまで、製品の詳細やアーキテクチャの詳細は明らかにされていない。
Transmetaの名前がもっとも知られているのは、おそらくLinuxコミュニティでだろう。それは、Linuxの生みの親であるライナス・トーバルス氏が在籍しているからだ。実際、Crusoeのスケジュールが発表されたのも、COMDEX Fall '99のトーバルス氏のキーノートスピーチの中でだった。
しかし、'95年に設立されたこのベンチャーには、トーバルス氏だけでなく、MPU業界のベテランも何人か加わっている。まず、創業者でCEOのDavid Ditzel氏は、元Sun Microsystemsのリサーチディレクタで、プロセッサアーキテクトだ。また、元CyrixのマーケティングディレクターであるJim Chapman氏がマーケティングを担当している。DOSエミュレータのメーカーだったHunter SystemsのColin Hunter氏も共同創業者として加わっている。アーキテクトには元MIPSのスタッフが多いとウワサされている。また、Microsoftの共同創業者のポール・アレン氏が資金面でバックアップしていることも知られている。
●Transmetaと似たようなアプローチが次々に
ユニークなTransmetaのアプローチだが、VLIWコアとエミュレータという組み合わせで、既存のプロセッサのコードを実行しようという方法論は、じつは最近の潮流のひとつだ。
例えば、IntelとHewlett Packard(HP)によるIA-64プロセッサ「Itanium(Merced)」は、HPのプロセッサ「PA-RISC」のコードを同様にトランスレーションソフトがオンザフライで変換して実行する。
また、プロセッサの基礎研究で有名なIBMのT.J. Watson研究所では、コード名「DAISY(Dynamically Architected Instruction Set from Yorktown)」と呼ばれるVLIWプロセッサのアーキテクチャを研究しているが、これもトランスレーションソフトがPowerPCのコードも変換して実行するという。この構想は、T.J. Watson研究所のホームページ「DAISY」に詳しい情報が載っている。
もうひとつある。ロシアのMPUアーキテクトBoris Babaian氏の会社Elbrus Internationalでは、Itaniumを上回るパフォーマンスの「E2K」プロセッサを開発しているが、これもトランスレーションソフトを使ってx86のコードを変換して実行する。このMPUも、VLIWライクな長命令語アプローチを取るようだ。同社の「E2K」のページに概要がある。
編集部注:E2KのページはIE5では開けないことがある
●Transmetaとロシアの接点
この最後のE2Kは、“ロシア”という点と“Itanium”を上回るという点が唐突に感じられるかもしれない。しかし、Babaian氏の経歴を見ると、これは何も不思議ではない。Babaian氏はロシアのクレイと呼ばれる天才アーキテクトで、MPU業界では世界的に知られているのだ。彼は、旧ソ連時代に、ソ連政府や軍向けに独自設計CPUのスーパーコンピューターを開発した。ソ連は西側と比べると半導体技術が遅れていたのだが、Babaian氏は西側よりも少ないトランジスタ数で性能の非常に高いCPUを設計して名を馳せたという。ソ連が、西側に互して宇宙開発や兵器開発を行なえたのは、Babaian氏がいたからだと言われるくらいだ。
ソ連崩壊後のBabaian氏は、開発を進めることができなくなり、西側企業に支援を求めていた。それを受けて、Sun MicrosystemsなどがBabaian氏と協力関係を結んだ。そして、SunでBabaian氏と協力する、モスクワの研究開発センターのプロジェクトを推進していたのが、どうやらTransmetaを率いているDavid Ditzel氏らしいのだ。'92年当時のニュースを見ると、Sunのモスクワ研究所計画についてコメントしているのは、たいていDitzel氏だ。そして、今もBabaian氏のElbrusのホームページには、協力企業名としてTransmetaの名前がある。
Babaian氏のアイデアが背後にあるとしたら、TransmetaのCrusoeは侮れない相手になるかもしれない。
□関連記事
【11月17日】Linuxの生みの親、ライナス・トーバルス氏基調講演レポート
http://pc.watch.impress.co.jp/docs/article/991117/comdex08.htm
('99年11月19日)
[Reported by 後藤 弘茂]