米Transmeta社が「米Intel社のPentium Mに匹敵」とする同社製CPU「Efficeon」。その言葉が本当かどうか,2004年1月に登場したシャープのEfficeon搭載機で検証した。全体的にはやや見劣りするものの,複数のテストにおいてPentium Mと同等以上の結果を示した。Pentium Mに引けを取らない性能と価格の安さを武器に,モバイルノート市場の一角を占める可能性を秘めている。

写真●Mebius MURAMASA(PC-MM2-5NE)
1GHz動作のEfficeon TM8600を搭載するシャープの薄型・軽量ノートパソコン
表●テスト対象機の主な仕様
図1●Efficeonの基本演算性能
英SiSoftware社のベンチマーク・ソフト「Sandra 2003」を使い整数演算(Dhrystone),浮動小数点演算およびストリーミングSIMD 拡張命令2の処理性能(Whetstone)を計測した。比較対象として1GHz動作の超低電圧版Pentium M(ソニー「PCG-TR2/B」),900MHz動作の超低電圧版Pentium M(ソニー「PCG-TR1/B」)の結果を併記した。
図2●Efficeonのキャッシュ・メモリー・アクセス速度
x86命令をソフトウェアで変換するEfficeonは,命令用の1次キャッシュ容量の128Kバイトを境に大きくアクセス速度が4分の1程度にまで落ちている。測定機は図1と同じ。
図3●実アプリケーション使用時の処理性能
米BAPCoのベンチマーク・テスト「SYSmark 2002」における「Office Productivity」テストおよび「Internet Content Creation」テストの値。測定機は図1と同じ。
図4●同一プログラムを繰り返して実行した際の処理性能
東京大学金田研究室の「Superπ」による104万桁の円周率計算プログラムの反復にかかる時間を測定。初回実行時間を1とした相対速度を記した。
図5●実使用想定時のバッテリ駆動時間
米BAPCoのバッテリ・ベンチマーク・ソフト「MobileMark 2002」のテスト結果。MobileMark 2002はユーザーの無操作状態をシミュレートするベンチマーク・ソフト。測定機は図1と同じ。
 2000年秋に登場した米Transmeta社のノートパソコン向けCPU「Crusoe」は,低消費電力を売りに一世を風靡した。低消費電力を実現できたのは,回路構成の簡略化に負うところが大きい。Transmetaはx86命令の変換をハードウェアではなく「コード・モーフィング・ソフトウェア(CMS)」に任せることで回路を簡略化。Crusoeを低消費電力で安価なCPUに仕立てた。

 もちろん,x86命令を解釈して独自命令に変換するオーバーヘッドは,米Intel社や米Advanced Micro Devices社(AMD)のx86互換CPUのようにハードウェアとして組み込んだ方が小さい。Crusoeは動作周波数が1GHzに達した今でもCMSによるx86命令の変換のオーバーヘッドを克服できていない。

 そこでTransmetaはx86命令の変換機能の一部を回路として組み込んだ。これにより最短1クロックでx86命令を変換できるようになったという。最適化の処理数も増やした。新しいCMSは繰り返し実行されるx86命令群に対して,不要なコードを取り除く最適化を施す。Crusoeでは数十命令だった最適化の範囲を,Efficeonで最大100命令の範囲に広げた。

 ただし動的な最適化は使い方によっては逆効果になる。静的にコードを生成するのならば,プログラム開発時に最適化するので,時間をかけて質の良いコードを生成できる。しかし動的に変換すると,最適化にかかる時間がそのままオーバーヘッドとなる。どこまで最適化するかもCMSが動的に決定している。

整数演算ピーク値でPentium Mを抜く

 TransmetaがEfficeonに施した改良の効果はどの程度出ているのか。シャープのEfficeon搭載機「Mebius MURAMASA(PC-MM2-5NE)」で検証した(写真[拡大表示])。1GHz動作の超低電圧版Pentium M(ソニー「PCG-TR2/B」),900MHz動作の超低電圧版Pentium M(ソニー「PCG-TR1/B」)を比較対象としてベンチマーク・テストを実行した([拡大表示])。900MHz/1GHz動作の超低電圧版Pentium Mは,Transmeta社が「Efficeonと同等の性能」としているCPUだ。計測したのは,(1)整数および浮動小数点の演算性能,(2)キャッシュ・メモリーのアクセス性能,(3)実アプリケーションの処理性能,(4)同一プログラムを繰り返し実行した際の処理速度の変動,(5)バッテリ駆動時間の計5テストである。

 (1)の演算性能の計測には,英SiSoftware社のベンチマーク・ソフト「Sandra 2004」を使い整数演算(Dhrystone),浮動小数点演算およびストリーミングSIMD 拡張命令2の処理性能(Whetstone)を計測した(図1[拡大表示])。DhrystoneおよびWhetstoneは,同じ計算を繰り返すベンチマーク・ソフトである。同一のx86命令群を繰り返した際に機能するEfficeonの最適化の効果が出るはずだ。

 テスト結果は,1GHz動作のEfficeonが900MHzおよび1GHz動作のPentium Mを約5%上回る結果となった。Pentium Mの前身となったPentium IIIの同一周波数版に対して,ほとんどのベンチマーク・テストで後塵を拝したCrusoeとは比べものにならない値だ。

 続く浮動小数点演算性能のテストでは,900MHz動作のPentium Mを下回った。FPU命令実行時で72%,SSE2(Streaming SIMD Extensions 2)命令発行時で92%のスコアである。

キャッシュ増で変換効率の悪化を抑制

 Efficeonは命令用1次キャッシュの容量をCrusoeの64Kバイトの2倍となる128Kバイトと倍に増やした。一方データ用の1次キャッシュはCrusoeと同じ64Kバイト。CMSによる変換効率が性能の鍵を握るEfficeonにとっては,データアクセスのキャッシュミスよりも命令変換時のキャッシュミスがCPU全体の処理性能に与える影響が大きいからだ。

 Efficeonのキャッシュ増量の効果を見るために,キャッシュ・メモリーのアクセス速度をSandra 2004の「Cache&Memory Benchmark」で計測した(図2[拡大表示])。データサイズを2Kバイトから倍に増やしていくことで,キャッシュ容量とメモリー・アクセス性能の相関を見た。

 テスト結果を見ると,Pentium Mは1次キャッシュ容量の32Kバイトと2次キャッシュ容量の1Mバイトを境にアクセス速度がほぼ半減している。これに対しx86命令をCMSで変換するEfficeonは,命令用の1次キャッシュ容量の128Kバイトを境に大きくアクセス速度が4分の1程度にまで落ちている。128Kバイト超のデータの結果を見ると,Efficeonは2次キャッシュのアクセス性能がPentium Mの半分以下と奮わない。この傾向はプログラム・サイズの大きなアプリケーションの実行速度に影響を与えるだろう。

巨大アプリの実行では苦戦

 (1)の基本演算性能の計測と,(2)のメモリー・アクセス性能の計測の結果では,EfficeonはPentium Mとほぼ互角の結果を出している。しかしオフィス・スイートやWebブラウザといった実アプリケーションでは,プログラム・サイズが大きいためEfficeonのx86命令の変換効率が悪化するはずだ。そこで実アプリケーション使用時の処理性能として,米BAPCoのベンチマーク・テスト「SYSmark 2002」における「Office Productivity」テストおよび「Internet Content Creation」テストを実行した。

 まず,Office Productivityテストでは,Pentium M(1GHz)搭載のソニー「バイオノートTR」の75%の結果に留まった(図3[拡大表示])。Office Productivityテストの内容は,Microsoft Officeによる文書作成。WordやExcel,PowerPointといったビジネス・アプリケーションを複数起動して,切り替えながら実行する。Efficeonにとっては不得意な処理内容だ。x86命令を動的に変換する基本アーキテクチャの弱点がそのまま結果に表れた格好だ。

 一方,Internet Content CreationテストではEfficeonが健闘を見せた。1GHz動作のPentium Mには及ばないものの,900MHz動作のPentium Mのテスト結果をスコアで1ポイント上回った。同テストは,画像処理や動画のエンコードなど,同じ処理を繰り返す作業の割合が高い。このためEfficeonのx86命令変換効率の悪化が抑えられたのだろう。

最適化のばらつきはCrusoeより減少

 次にEfficeonの動的最適化の効果を見るため,同じプログラムの実行を繰り返した。東京大学金田研究室の「Superπ」による104万桁の円周率計算プログラムを使い,反復にかかる時間を1回から19回まで測定。初回実行時間を1とした相対速度を記した。

 結果はEfficeonとPentium Mで同様の傾向を示した(図4[拡大表示])。変動の傾向が両者で似ていることから,CMS以外の要因で処理速度が変動しているようだ。Efficeonのx86命令に対する最適化機能によって,繰り返しのたびに処理速度が上がるという特徴は確認できなかった。

 試しに「FMV-BIBLO LOOX S(S73A)」を使い,Crusoeの結果も計測した。Crusoeの方が処理速度にばらつきが多い。最適化によるオーバーヘッドが影響していると考えられる。

性能を上げつつ低消費電力は維持

 性能面でEfficeonはPentium Mとほぼ互角に近い結果を示した。しかしその対価としてそもそもの売りであった低消費電力が失われては意味がない。

 そこで最後に(5)のバッテリ駆動時間を計測した。使用したのは米BAPCoのバッテリ・ベンチマーク・ソフト「MobileMark 2002」である。

 MobileMark 2002によるバッテリ駆動時間は,Efficeon(1GHz)搭載機のPC-MM2-5NEが2時間24分,Pentium M(900MHz)搭載機のPCG-TR1/Bが5時間2分,Pentium M(1GHz)搭載機のPCG-TR2/Bが4時間42分だった(図5[拡大表示])。PC-MM2-5NEのバッテリ駆動時間がPentium M搭載の両機より短いのは,バッテリ容量が1800mAhと少ないからだ。PCG-TR1/BおよびPCG-TR2/Bの両機は4300mAhと2.4倍の大容量バッテリを搭載している。バッテリ駆動時間は約2倍にしか伸びていない。他の要素もあるので一概には言えないが,Efficeon搭載機のバッテリの容量に対する駆動時間はPentium M搭載機と同等以上と見ていい。

(高橋 秀和)