●いよいよ実チップが登場したTM8000
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シリーズで得たノウハウを活かした改良を加えた 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のターゲットスペック】
目標とする平均IPCは5+命令/サイクル。TM8000はVLIWの本来の強みを活かし、同クロックで今のCrusoeの2倍の性能を達成することが、ターゲットなのだ。
●8命令発行の仕組み VLIWアーキテクチャでは、1つの長い命令語の中に整数演算や浮動小数点演算、メモリアクセスといった複数の命令をパックする。それぞれの命令は、パック化の時点で並列に実行可能にしておくため、CPUコア自体にはスケジューリング機能が必要ない。命令を順番に実行するインオーダー型の比較的単純なCPUコアで済む。通常、VLIWでは静的コンパイルが主流だが、Crusoeでは動的コンパイルで、x86命令をリアルタイムに変換する。
現在のCrusoeの場合、まずCPUのソフトレイヤであるコードモーフィングソフトウェア(CMS)が、x86命令をRISCライクな単純命令「atom」(32bit固定長)に分解する。その後、その単純命令のうち並列に実行できる組み合わせを128bitのVLIW命令「molecule」にパックしている。下の図のようになっている。
それに対して、TM8000の場合、このVLIW命令moleculeが256bit長になる。そのため、最大8命令をパック&同時発行できるようになる(コードエクスパンションを防ぐために64/128bit命令長もサポートする可能性は高い)。
【TM5xxxの命令】
【TM8000の命令】
TM5xxxシリーズの場合、4命令発行に対して、実行ユニットは5つ備える。整数演算ユニット(ALU)が2個、ロード/ストアユニット1個、ブランチユニット1個、浮動小数点演算/マルチメディアユニット1個だ。実行ユニットが5個というのは、先端x86 CPUの中では最弱で、CMSがいくら効率よくスケジューリングしようとしても、リソースの不足でできない。また、浮動小数点演算ユニット自体の性能もそれほど高くはなかった。
【TM5xxxシリーズの場合】
では、TM8000ではどうなるのか。VLIW命令moleculeの中でのatomの命令スロットは8つに増える。となると、実行ユニットは8個以上備えることができる。Transmetaの創業者で同社のCTOを務めるデビッド・ディッツェル(David Ditzel)氏は「実行ユニットは8個以内」という。そうすると、論理的に考えてTM8000の実行ユニットは8個ということになる。
【TM8000シリーズの場合】
問題は、この8実行ユニットの中身ということになる。デモから推測する限り、TM8000は整数演算も、浮動小数点演算/マルチメディア系演算も、どちらも強化されているように見える。次回は、このあたりを中心に考察してみたい。
□関連記事
(2002年11月22日) [Reported by 後藤 弘茂]
【PC Watchホームページ】
|
|