「PC EXPO 2000」で搭載ノートPCが出展されたTransmetaのx86互換CPU「Crusoe(クルーソ)」。今回は、CrusoeファミリのうちノートPC市場向けの高性能CPU「TM5400」がいよいよ登場した。早ければCrusoe TM5400搭載ノートPCが年内に登場する見込みだ。
ノートPC市場でのCrusoe TM5400の強みは、低消費電力によるバッテリ長時間駆動と薄型ノートPCの設計が容易になることだ。これは、高クロック化とともに消費電力と発熱量が増えつつあるx86系モバイルCPUに悩まされているノートPCメーカーにとっては福音だ。
特にPCメーカーにとって魅力なのは、放熱量の少ないCrusoe TM5400ならファンレスで設計でき、シビアな熱設計をしなくてすむことだ。Intel CPUは、放熱量が多くなったため、薄型ノートPCでもファンはほぼ必須となってしまっている。そのため、薄型ノートPCでは、ファンの位置や冷却機構の設計が設計者を悩ます大きな問題となっている。ところが、Crusoe TM5400を使うと、こうした熱設計にかける膨大な労力がほとんど必要なくなるため、薄型ノートPC開発のハードルがぐっと低くなるというわけだ。
また、低消費電力のCrusoe TM5400に合わせて周辺デバイスも低消費電力化すると、ノートPC全体の消費電力を大きく下げることができる。Transmetaが言う8時間バッテリ駆動も、デバイスの構成によっては夢ではない。
つまり、Crusoe TM5400は、バッテリ駆動時間の長い薄型ノートPCが比較的容易に開発できる魅力的なチップというわけだ。では、Crusoe TM5400がなぜモバイルに適しているのか、その仕組みを振り返ってみよう。
編集部注:図版をクリックすると、拡大した図版が別ウィンドウで表示されます。本文とあわせてご覧ください。
●Crusoe TM5400の基本アーキテクチャ図
だが、CMSは、OSの上で動作する多くのエミュレータとは異なる高いレベルのx86互換性を実現できる。CMSが、OSやBIOSの下、CPUに密着したレイヤとして機能するからだ。「電源を入れると、まずCrusoe自身のリセットベクタが走り、専用インターフェイスに接続されたフラッシュ(1MB)からCMSがロードされる。そして、CMSをメモリに展開してx86 CPUになると、今度はx86のリセットベクタがスタート、メモリ番地ffff0~fffffを見にいく。そこからあとは普通のBIOSが動くので、BIOSやOSから見れば完全なx86互換CPUに見える」(Transmeta日本代表、和田信氏)という。Crusoe上で動くプログラムの中で、Crusoeのネイティブ命令で書かれたプログラムはCMSだけだ。
●コードモーフィングの仕組み
最後にCMSのスケジューラが残ったatom間の依存性をチェック、並列に実行できるatomをグループ化して「molecule(分子)」と呼ばれるVLIW命令にパック化する。moleculeは128ビット長または64ビット長で、atoms(原子)を最大4個含む。CrusoeのVLIWコアは、このmoleculeをインオーダー(命令の順番に従って)で実行ユニットに対して発行する。
Transmetaが、CPUコアにVLIWアーキテクチャを採用したことは、x86コードの変換効率を高める役に立っている。VLIWでは、1つの長い命令語の中に整数演算や浮動小数点演算、メモリアクセスといった複数のオペレーションをパックして、各オペレーションを並列に実行できるからだ。そのため、x86命令を変換する際に、複数のx86命令やその命令に含まれる複数のオペレーションをひとつの命令語の中にパックすることが可能になる。例えば、図の例では4個のx86命令が2個のVLIW命令に変換されている。ソフトウェアでのエミュレーションを前提とするなら、VLIWコアは非常にロジカルな選択だ。
ただし、atomを最適にスケジューリングしてmoleculeにパック化するには処理に時間がかかる。そのため、Crusoeでは最初はほとんど最適化しないでコード変換だけを行ない、同じコードブロックが何度も使われる場合に最適化しているようだ。
●CMSのキャッシュアーキテクチャ
Transmetaによると、一般的なアプリケーションでは、同じコードが何度もリピートされて使われることが多いため、キャッシュで大幅に性能をアップできるという。とくに、効果があるのはDVD再生やMP3再生などだ。逆を言えば、大型のアプリケーションでは、キャッシュからはみ出すため性能が落ちることになる。
●LongRunによる省電力効果
この超低消費電力のカギは、「LongRun」と呼ぶ同社独自の省電力テクノロジだ。LongRunは、動作中にCPUの電圧とクロックを切り替える技術で、原理的にはIntelの「SpeedStep」テクノロジと同じだ。SpeedStepとの違いは、SpeedStepが2つの電圧とクロックの組み合わせを切り替えるだけなのに対して、LongRunではCPUにかかる負荷に応じて電圧とクロックを小刻みに変えること。つまり、必要以上の電圧とクロックをカットすることで、大幅な省電力を実現する。
TM5400では、電圧を1.65Vから1.1Vまでダイナミックに切り替える。消費電力は電圧の二乗×クロックに比例するため、電圧を切り替える効果は大きい。グラフのように、最も低速な200MHz/1.1V時の消費電力は、フルパワーである700MHz/1.65V時の13%になる。
●LongRunの実際の動作
具体的には、CMSがイベントをチェックして、安全なタイミングでDeepSleepモードに入り、まずクロックだけを切り替える。図にあるように、この切り替えにかかる時間はわずか20μ秒以下だ。クロック切り替えが終わると、CMSはx86コードの実行を再開する、そしてx86コードを実行しながら、今度は電圧を段階的に切り替える。1.3V以上では1ステップで50mVづつ、1.3V以下では1ステップで25mVづつ切り替える。1ステップは20μ秒以下で行ない、クロックと電圧を切り替えるのにかかる時間は最大で300μ秒(1.6Vから1.1Vに変える場合)以内となる。
つまり、電圧とクロックの両方の切り替えが完了するにはやや時間がかかるが、x86コードの実行はCMSが切り替えに入ってから20μ秒で復活するため、ブランクは最小ですむというわけだ。こうしたアプローチにより、Crusoeでは、小刻みなクロックと電圧の切り替えを、安全かつパフォーマンスを落とさずに実現している。
(2000年6月29日)
[Reported by 後藤 弘茂]