後藤弘茂のWeekly海外ニュース

BaniasキラーとTransmetaが宣言する次世代Crusoe「TM8000」




●いよいよ実チップが登場したTM8000

Transmetaの創始者でCTOのデビッド・ディッツエル氏
 「TM8000は、Transmetaにとって2年振りの新世代CPUだ。内部を256bit(現行のCrusoeは128bit)化して、性能アップと低消費電力化を実現する。Baniasキラーとなるだろう」。

 Transmetaの創業者で同社のCTOを務めるデビッド・ディッツェル(David Ditzel)氏は次世代Crusoe「TM8000(ASTRO:アストロ)」をこう表現する。

 COMDEXに合わせてTransmetaは、TM8000のファーストシリコンでのデモをクローズドに実施した。同社は以前から、年末までにTM8000の顧客向けサンプル出荷を行なうと言っており、今回のデモで、約束を果たすメドが立ってきた。またデモでは、モバイルPentium 4-M 1.80GHzとの簡単な比較を行ない、ハイパフォーマンスをアピールした。

 デモは、PowerPointを起動して6MBのファイルをオープンするものと、Wordで32ページのドキュメントをオープンするという、ごくシンプルなもの。いずれも、1GHzクラスのTM8000が、1.80GHzのPentium 4-Mを圧倒した。また、DVDのソフトウェア再生のデモも行なった。このデモでは、DVD再生中にTM8000がほとんどアイドルに近い状態で動作しているところをみせた。

 もちろん、これだけでは実際のユーザー環境での性能を測ることはできないが、TM8000が約束通りCrusoeの最大の弱点だったパフォーマンスを改善することは確かだ。


●これまでの経験をベースに完全に一新されたアーキテクチャ

 TM8000が優れているのは3つの理由からだ。

(1)初代のTM5xxxシリーズで得たノウハウを活かした改良を加えた
(2)CPUコアのアーキテクチャを拡張、8イシュー(命令発行)のVLIWコアに切り替えた
(3)完全に新しいコードモーフィングソフトウェア(CMS:リアルタイムコンパイラ+αのソフトウェアレイヤ)を開発した

 Transmetaが取った、x86命令をダイナミックコンパイラで変換、VLIW(Very Long Instruction Word:超長命令語)型のCPUコアで実行するというスタイルは、これまで量産CPUで取られたことがないアーキテクチャだった。そのため、開発は試行錯誤で、最初のTM5xxxシリーズでは、十分アーキテクチャの強みを活かすことができなかった。それに対して、TM8000は、TM5xxxシリーズで得た経験を活かして設計したため、パフォーマンスを伸ばすことができたという。

 今のところ、どういった部分を改良したのかはまだわかっていない。しかし、これはCPU設計ではよくある話で納得はできる。例えば、IntelのVLIW系アーキテクチャ「IA-64」では、最初のItanium(Merced:マーセド)は期待を下回る性能だったが、2代目のItanium 2(McKinley:マッキンリ)では性能は2倍に上がっている。

 TM8000の性能を引き上げる原動力は、8命令発行への拡張だ。現在のTM5xxxシリーズは、VLIWといっても4命令発行で、平均のIPC(1サイクルで実行できる命令数:instruction per cycle)の平均は2.x命令に過ぎない。これは、ほぼ現在のスーパースカラ型x86系CPUと同じレベルで、じつはVLIWアーキテクチャの強みを何も活かしていない。VLIWでは、命令レベルの並列化(Instruction-Level Parallelism:ILP)を行なうことで、従来のスーパースカラ型CPUよりも高いIPCを達成できることが強みだからだ。

 スーパースカラでは、平均3 IPCが限界と言われるのに対して、VLIWでは5~6 IPCが限界と言われる。つまり、同クロックで2倍の性能を達成できる可能性を持つわけだ。同クロックで2倍の性能を達成できれば、リアルタイムコンパイルのオーバーヘッドを相殺できる可能性がある。TM5xxxの4命令発行では高いIPCは望めないが、VLIWの並列化を2倍にしたTM8000では理論限界に近いIPCを達成できる可能性がある。

 じつは、Transmetaは、2年前にTM8000のプランを明かしたことがある。当時、Transmetaの上席副社長(Sales & Marketing)だったジェームス・チャップマン(James N. Chapman)氏は、TM8000のターゲットスペックを次のように説明していた。

【TM8000のターゲットスペック】
同時実行命令数(最大) 8命令/サイクル
同時実行命令数(典型) 5+命令/サイクル
平均消費電力(典型値) 0.5W
TDP(最大値) 3~6.5W
ダイサイズ 90mm2以下
プロセス技術 0.13μm
クロック 1GHz~?

 目標とする平均IPCは5+命令/サイクル。TM8000はVLIWの本来の強みを活かし、同クロックで今のCrusoeの2倍の性能を達成することが、ターゲットなのだ。


●8命令発行の仕組み

 VLIWアーキテクチャでは、1つの長い命令語の中に整数演算や浮動小数点演算、メモリアクセスといった複数の命令をパックする。それぞれの命令は、パック化の時点で並列に実行可能にしておくため、CPUコア自体にはスケジューリング機能が必要ない。命令を順番に実行するインオーダー型の比較的単純なCPUコアで済む。通常、VLIWでは静的コンパイルが主流だが、Crusoeでは動的コンパイルで、x86命令をリアルタイムに変換する。

 現在のCrusoeの場合、まずCPUのソフトレイヤであるコードモーフィングソフトウェア(CMS)が、x86命令をRISCライクな単純命令「atom」(32bit固定長)に分解する。その後、その単純命令のうち並列に実行できる組み合わせを128bitのVLIW命令「molecule」にパックしている。下の図のようになっている。

Crusoeのコードモーフィングの仕組み
※別ウィンドウで開きます

 CrusoeのCPUコアはVLIWであるため、x86命令を変換する際に、複数のx86命令やその命令に含まれる複数のオペレーションをひとつの命令語の中にパックすることが可能になる。そのため、VLIWの並列度が十分に高ければ、効率よく複数のx86命令を1サイクルで実行できるようになる。ただし、今までのCrusoe TM5xxxでは、VLIWが128bit長だったため、atomを最大4個しか並列化できなかった。

 それに対して、TM8000の場合、このVLIW命令moleculeが256bit長になる。そのため、最大8命令をパック&同時発行できるようになる(コードエクスパンションを防ぐために64/128bit命令長もサポートする可能性は高い)。

【TM5xxxの命令】
32bit32bit32bit32bit
←    128bit    →

【TM8000の命令】
32bit32bit32bit32bit32bit32bit32bit32bit
←           256bit           →

 TM5xxxシリーズの場合、4命令発行に対して、実行ユニットは5つ備える。整数演算ユニット(ALU)が2個、ロード/ストアユニット1個、ブランチユニット1個、浮動小数点演算/マルチメディアユニット1個だ。実行ユニットが5個というのは、先端x86 CPUの中では最弱で、CMSがいくら効率よくスケジューリングしようとしても、リソースの不足でできない。また、浮動小数点演算ユニット自体の性能もそれほど高くはなかった。

【TM5xxxシリーズの場合】
32bit32bit32bit32bit
ディスパッチャ
ALUALUBranchL/SFPU

 では、TM8000ではどうなるのか。VLIW命令moleculeの中でのatomの命令スロットは8つに増える。となると、実行ユニットは8個以上備えることができる。Transmetaの創業者で同社のCTOを務めるデビッド・ディッツェル(David Ditzel)氏は「実行ユニットは8個以内」という。そうすると、論理的に考えてTM8000の実行ユニットは8個ということになる。

【TM8000シリーズの場合】
32bit32bit32bit32bit32bit32bit32bit32bit
ディスパッチャ
ExcExcExcExcExcExcExcExc

 問題は、この8実行ユニットの中身ということになる。デモから推測する限り、TM8000は整数演算も、浮動小数点演算/マルチメディア系演算も、どちらも強化されているように見える。次回は、このあたりを中心に考察してみたい。

□関連記事
【11月20日】帰ってきたTransmeta
~256bitのコードネーム“ASTRO”ことTM8000を公開
http://pc.watch.impress.co.jp/docs/2002/1120/comdex05.htm

バックナンバー

(2002年11月22日)

[Reported by 後藤 弘茂]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2002 Impress Corporation All rights reserved.