トランスメタ
トランスメタ・コーポレーション
トランスメタ・コーポレーション(Transmeta Corporation)は、かつて存在したアメリカのベンチャー企業。当初は低消費電力を特徴とするVLIW型のコードモーフィングマイクロプロセッサを開発していたが、その後は低消費電力集積回路の知的財産権のライセンス提供を主な事業とした。1995年、デビット・ディツェル、Bob Cmelik、Colin Hunter、Ed Kelly、Doug Laird、Malcolm Wing、Greg Zyner によって設立された。2009年1月、トランスメタは米国の未上場のビデオプロセッサメーカーであるNovaforaに買収され、2009年8月に完全に営業を停止した。
トランスメタはふたつのx86互換CPUアーキテクチャ、CrusoeとEfficeonを生み出している。これらは低消費電力と発熱特性の良さを武器として、ノートパソコン、ブレードサーバ、タブレットPC、高静粛性のデスクトップパソコンなどに使われたことがある。
1995年、トランスメタはひっそりと創業した。密かにスタッフを集めようとしたが、ネット上では様々な憶測が飛び交った。憶測の源泉の1つが同社のそっけないウェブページである。1999年11月12日、HTML内に次のような暗号めいたコメントが現れた。
そう、ここには秘密のメッセージがある。以下がそれだ:
トランスメタは世界に何かをデモンストレートするまで、計画については沈黙を通すことをポリシーとしてきた。
2000年1月19日、トランスメタは Crusoe プロセッサができることを発表し実演しようとしている。
同時に詳細な全貌がこのウェブページにアップされ、インターネット上で誰でも見られるようになる。
Crusoe はモバイル・アプリケーションのためのクールなハードウェアとソフトウェアになるだろう。
Crusoe は普通とは違う。それが1月になってこのウェブサイト全体を見る前にあなたがたに知らせたかったことだ。1月になれば全文を入手でき、すぐに実際の詳細にアクセスできるようになるだろう。
公式発表までその野望を隠すことはほぼ成功した。それまでの期間、2000以上の秘密保持契約が結ばれている。
創業後数年間、トランスメタが何をする会社なのかはほとんど知られていなかった。公式サイトは1997年中ごろにできたが、約2年半の間は単に "This web page is not yet here."(ウェブページはまだありません)とだけ書かれていた。徐々に明かされる情報によれば、トランスメタはVLIWベースの設計でx86のコードを独自のコードに変換するつもりらしいということが示唆された。
2000年1月19日、予定通り Crusoe の発表が行われた。株式公開初日、21ドルだった株価は急騰して50.26ドルまで上がり、その日の終値は46ドルで落ち着いた。これは2004年のGoogleのIPOで記録が塗り替えられるまで、インターネット・バブル期の最大のハイテク株のIPOだった。
トランスメタはそのマイクロプロセッサ技術を極めて革新的で先進的なものとして低消費電力市場に売り込んできた。彼らはx86市場で電力面でも性能面でも一番となることを目標としていた。しかし最初のCrusoeは、計画に比べて性能がかなり不十分だった。しかも市場はCrusoeの開発の間にも進んでいた。インテルとAMDはどんどん性能を向上させ、低消費電力化にも取り組み始めていた。したがって、最初のCrusoeはすぐに市場の片隅、あまり数の見込めない小型の低消費電力市場に追いやられてしまったのである。
2002年7月、トランスメタは初の人員削減を行い、従業員数を40%削減した。
トランスメタは、数々の業界有名人(リーナス・トーバルズやデイブ・テイラー (プログラマ))を雇っていた。リーナス・トーバルズは、トランスメタで働くことになる旨を、1996年10月16日に投稿している。当初会社の目的は秘密だったが、そのような有名人を雇っていることから、業界では陰謀論まで含めた様々な噂が飛び交い、それが格好の宣伝になっていた。
その後、リーナス・トーバルズはLinuxカーネルの開発に専念するため、2003年6月にトランスメタを辞めた。
大々的な宣伝を行ったため、トランスメタは雑誌 Upside 編集部から「シリコンバレーで最も重要な会社」と評されたことがある。チップ製造業者だったころ一度も黒字になったことがないという事実はあまり報告されていなかった。2002年には1億1400万ドルの赤字で、2003年には8800万ドルの赤字、2004年には1億700万ドルの赤字だった。
事態を改善すべく急いで再設計する必要が生じ、2004年、Efficeonプロセッサが出てくる。Efficeonは、同一動作周波数のCrusoeの2倍の性能と言われていたが、他社と比較すると満足のいく性能ではなかった。しかもチップ上の回路の複雑さのため、チップのサイズが大きくなって電力消費を増加させることになってしまい、中心としていた市場でも支持を失っていった。
2005年1月、トランスメタはチップ製造業者から知的財産ライセンス企業へと方向転換を図る戦略を発表した。つまり、チップを売るのではなく技術を他のチップメーカーに売るということである。同年2月AMDがトランスメタを買収しようとしているとの予測が流れた。同年3月トランスメタは68人を解雇し、208人が退職したことを発表した。残った従業員の半数は LongRun2 という電力消費を低減させる技術をソニーの製品に組み込む仕事をしている。ソニーはトランスメタの技術ライセンスを受けた主要な企業である。
2005年5月31日、トランスメタは香港の Culture.com への資産の売却と技術ライセンスの提供を発表した。Culturecomは、倉頡輸入法を考案して現代中国コンピュータ業界の基礎を築いたともいわれている朱邦復の会社である。しかし、アメリカ合衆国商務省から技術輸出ライセンスを取得する手続きに手間取り、2006年2月9日、トランスメタは Culture.com と交わしていた契約を破棄することで合意したと発表した。
2005年8月10日、トランスメタは初めて四半期決算で黒字になったと発表。2006年3月20日、GameSpotはトランスメタがマイクロソフトのとあるプロジェクトに参加していると報じた。その後これはマイクロソフトのMicrosoft FlexGo計画(プリペイド式携帯電話のPC版を作る計画)で、AMDブランドでのセキュアなプラットフォームを開発する仕事であることが判明した。
2007年2月7日、トランスメタは技術サービス部門を廃止し、75人の従業員を解雇した。今後、ハードウェアを開発・販売することはなく、知的財産のライセンス提供に注力するとしていた。その後間もなく、AMDは同社の低消費電力技術の特許を利用する目的でトランスメタに750万ドル出資している。
2008年8月8日、トランスメタは2500万ドルでNVIDIAに LongRun技術と低消費電力技術のライセンスを提供したと発表。
2006年10月11日、トランスメタはインテルを特許権の侵害で訴えたことを発表した。同社は裁判所に対して特許侵害しているインテル製品の販売差し止めと損害賠償を求めた。特許侵害しているとされた製品は、Pentium III、Pentium 4、Pentium M、Core、Core 2 などである。
2007年10月24日、トランスメタは係争中の特許侵害について、インテルが1億5000万ドルと今後5年間にわたり毎年2000万ドルを支払うことで和解に合意したと発表
。
2008年9月24日、インテルと技術ライセンスの供与および和解金9150万ドル受け取りの前倒しで合意し、投資銀行Piper Jaffrayをアドバイザーに身売り売却先を探している事を発表した。
2008年11月18日、トランスメタはビデオプロセッサを手掛けるNovaforaによる買収に最終合意し、買収額2億5560万ドルはトランスメタの清算に使われた。2009年1月28日、Novaforaはトランスメタ買収完了を発表した。同日、インテレクチュアル・ベンチャーズ がかつてのトランスメタが開発し保有していた特許をすべて取得した。2009年7月、財政難などを理由に Novafora が倒産した。
トランスメタのプロセッサはイン・オーダー方式のVLIWコアである。x86コードを実行するため、ソフトウェアベースの命令トランスレータがヒューリスティックによるホットスポット推定を使いつつ、x86のコード列を実行時にコンパイルまたはエミュレートする。1990年代の類似の技術としては、SolarisおよびLinuxでのWabi、AlphaでのFX!32、Itaniumでの IA-32 Execution Layer、オープンソースのDAISY、PowerPCでの Mac 68Kエミュレータなどがあったが、トランスメタが達成しようとしているのはブートからマルチメディア命令まで全てのx86命令を遜色ない性能で実行するというかなりハードルの高いものだった。
トランスメタはこの技術を「コードモーフィング」と称した。
コードモーフィングは、一般的なコンパイラの最後の最適化パスによく似ている。次のような32ビットのx86コードを例に説明する。
addl %eax,(%esp) // load data from stack, add to %eax
addl %ebx,(%esp) // ditto, for %ebx
movl %esi,(%ebp) // load %esi from memory
subl %ecx,5      // subtract 5 from %ecx register
まずこれを単純に本来の命令に変換する。
ld %r30,[%esp]       // load from stack, into temporary
add.c %eax,%eax,%r30 // add to %eax, set condition codes.
ld %r31,[%esp]
add.c %ebx,%ebx,%r31
ld %esi,[%ebp]
sub.c %ecx,%ecx,5
そして、最適化によって共通式と不要な条件コード操作を除去し、可能ならばループ展開などの最適化を施す。
ld %r30,[%esp]     // load from stack only once
add %eax,%eax,%r30
add %ebx,%ebx,%r30 // reuse data loaded earlier
ld %esi,[%ebp]
sub.c %ecx,%ecx,5  // only this last condition code needed
最後に個々の命令 ("atoms") をグループ化しVLIWのオペコード ("molecules") を構成する。
ld %r30,[%esp];  sub.c %ecx,%ecx,5
ld %esi,[%ebp];  add %eax,%eax,%r30;  add %ebx,%ebx,%r30
この2つのVLIWオペコードは2クロックサイクルで実行される。x86プロセッサではハードウェアでの最適化を行わないため、このコードの実行にもっと長い時間がかかる。
トランスメタは次のような利点を挙げている。
インテルやAMDがx86命令セットを拡張しても、ソフトウェアのアップグレードをするだけで追随する製品を出荷できる。
性能や消費電力を市場ニーズに合わせてソフトウェアで調整できる。
ソフトウェアによるワークアラウンドを使うことで、ハードウェアの設計時および製造時の欠陥を修正することが比較的容易に可能となる。
x86アーキテクチャの33年におよぶ互換性問題を気にすることなく、コアの機能や電力消費量低減に集中することができた。
他のアーキテクチャのエミュレートも可能で、同時に複数のアーキテクチャをエミュレートできる可能性もある。Crusoe 発表時、トランスメタはx86と同時にpicoJavaもエミュレートしてみせている。
Crusoeリリース前、この技術を使ってPowerPCとx86のハイブリッドプロセッサを開発しようとしていると噂されていた。しかし、実際にはx86の低消費電力市場にのみ集中することになった。
ハードウェアを修正せずに製品をアップグレードするという能力は、2002年に実際に示された。タブレットPC Compaq TC1000 の搭載するCrusoeをフィールドアップグレードしたのである(ファームウェアのダウンロード)。また、2004年にはEfficeon製品でのNXビットおよびSSE3サポートでも、この能力が利用されている。フィールドアップグレードはシステムベンダーから見れば余計なサポートコストであり、品質保証にも余計な支出が生じるため、あまり歓迎されなかった。
Crusoeはトランスメタの最初のマイクロプロセッサ・ファミリである。
実際の性能と消費電力が計画に比べて劣っていたため、トランスメタには多くの批判が寄せられ、信頼を失う結果となった。電力消費量はインテルやAMDより良かったが、実際のバッテリー寿命はそれほどのびなかった。性能が低かった原因は、コードモーフィングソフトウェア (CMS) とキャッシュアーキテクチャがベンチマークで評価され、実アプリケーションでは評価されていなかったためである。ベンチマークは一般に小さい範囲で繰り返しコードを実行する性質がある。CMSのオーバヘッドが実アプリケーションの性能低下の主たる要因と見られている。単純なVLIWコアのアーキテクチャは、計算主体のアプリケーションには向いていなかった。また、サウスブリッジとのインタフェースの帯域幅が小さく、グラフィックスやI/O主体のアプリケーションも高速とはいえなかった。x86との完全互換性を謳っていたが、一部の標準ベンチマークを実行することができず、互換性にも疑問が生じた。
Efficeonは第二世代のプロセッサで、256ビットのVLIW設計である。Crusoe(128ビットVLIWアーキテクチャ)と同様、高性能で低消費電力・低発熱であることを強調していた。
2004年の1.6GHz版Efficeon(90nmプロセス)は、2008年にインテルがリリースした1.6GHz Intel Atom(45nmプロセス)と性能および電力消費の面で同等である。Efficeonにはノースブリッジが統合されているが、Atomは外部ノースブリッジチップを必要とする(このため、Atomの電力消費量はノースブリッジも含めて考える必要がある)。
原理的には、CMSが解釈しやすいようにx86コードを最適化したり、VLIWアーキテクチャのコードをコンパイラで直接生成することも可能なはずである。しかし2003年、リーナス・トーバルズは非現実的であるとしてそれらの選択肢を退け、次のように書いている。
Crusoeのネイティブコードは、たとえ文書が入手可能でも、汎用OSにはあまり向いていない。メモリ保護の概念が全くなく、コードアクセスのためのMMUもないため、カーネルモジュールのようなものは単に動かないだろう。
CPU全体が実行時翻訳のために設計されているので、それが不可能なスタティックなコンパイラがよりよいネイティブコードを生成できるとは考えられず、ネイティブモードにしても必ず性能向上するとはいえない。
その後2004年にクリーンルーム方式のリバースエンジニアリングでトランスメタのVLIWアーキテクチャの詳細と命令セットが一部明らかになった。それによると、LinuxなどのOSを移植することを妨げる根本的な制限があることが示唆されている。
その中でトランスメタの特許技術とそれ以前にIBMなどが特許化している類似技術を比較しており、一部の請求項は詳細な精査に耐えられない可能性を示唆している。
コードモーフィングソフトウェアと連携して Efficeon はインテル Pentium 4 プロセッサの機能セットをほぼ反映し、AMD Opteron プロセッサのように統合メモリコントローラ、HyperTransport I/Oバス、NXビットまたはPAEモードの無実行x86拡張をサポートしている。NXビットはCMSバージョン6.0.4から利用可能になった。
Efficeonの計算性能は Intel Pentium M のようなモバイル向けCPUに比べると低いが、それらの性能比較が公表されることは少なかった。
Efficeonには783ピンと592ピンのBGA (Ball grid array)がある。消費電力は低く(1GHzで3W、1.5GHzで7W)、発熱量も小さい。
Efficeonの第一世代 TM8600 は、TSMCが130nmプロセスで製造し、最高1.1GHzで動作した。第二世代の TM8800 と TM8820 は富士通が90nmプロセスで製造し、1GHzから1.7GHzで動作した。
Efficeonは、2つのALU、2つのロード/ストア/加算ユニット、2つの実行ユニット、2つの浮動小数点数/MMX/SSE/SSE2ユニット、1つの分岐予測ユニット、1つのエイリアス・ユニット、1つの制御ユニットからなっていた。VLIWとしては、256ビットのVLIW命令をサイクル毎に実行できる。VLIW命令を "molecule" と呼び、その中に "atom" と呼ばれる32ビットの命令が8個入っている。
一次命令キャッシュは128KB、一次データキャッシュは64KBで、二次キャッシュは1KBか2MBである。キャッシュは全て内蔵されている。
さらにEfficeonのCMS(コードモーフィングソフトウェア)は主記憶の一部(通常32MB)をキャッシュとして使用し、x86命令を実行時に翻訳する。
EfficeonはCrusoeの問題点に対処し、Crusoeに比べて実アプリケーション性能を約2倍にした。チップのダイサイズは、プロセス技術が同じであれば Pentium 4 や Pentium M に比べてずっと小さい。90nmプロセスのEfficeonのダイサイズは68nmm2で、90nmプロセスの Pentium 4 のダイサイズは112nmm2であり(どちらも二次キャッシュは1MB)、60%の大きさになっている。
発熱量を考慮した特定領域をターゲットとしているにも関わらず、消費電力を度外視してx86マイクロプロセッサの全領域と性能比較されることが多かった。例えば、Pentium M (Banias) や モバイルAthlon XP と比べて性能が劣っているという評価がある。