Akiba2GO!

【最新パーツ性能チェック(Vol.31)】64bit対応Pentium 4とWindows XP Professional x64 Edition RC1で64bitのパフォーマンスを探る!


2005年3月30日

 11月18日から秋葉原に、64bit(EM64T)対応のPentium 4、「Pentium 4 with EM64T」の単体販売が始まっている。さらに1月27日からは、マイクロソフトが昨年3月から配布している64bit版のWindows XP、「Windows XP Professional x64 Edition」が、製品版にかなり近い“RC1”にバージョンアップ、実用性がぐんと高まった。そこで今回は、ちらほら登場してきた64bitアプリケーションの性能評価を軸に、64bitCPU&64bitOSのパフォーマンスを探っていく。

パッケージ
秋葉原で単体で流通するようになったEM64T対応Pentium 4のパッケージ。白黒写真じゃありません、箱が白黒なのです(その証拠に周波数とFSBは青地)

64bit対応Pentium 4とは?

 この製品は、インテルのホームページでは“サーバ/ワークステーション用CPU”のところに、“3.20F、3.40F、3.60F”としてリストアップされているものだ(もっとも秋葉原には3.8GHz版も流通している)。64bit拡張アーキテクチャ“EM64T”に対応している点を別にすると、CPUとしてはLGA775対応の普通の“Prescott”コアのPentium 4。FSBは800MHz、2次キャッシュは1MBのタイプだ。
 今回入手したPentium 4-3.60FGHzは、CPUIDを見る限り、“D0”コア(“J”タイプになる前)のようだ。“E0”ステップで追加された省電力機構“C1Enhanced”や“エグゼキュート・ディスエーブル・ビット”には対応していない。
 使ってみるにあたって1つ問題なのは、対応チップセットが“E7221”と“i925X”だけとなっている点だ。“E7221”はシングルプロセッサのワークステーション用で、PCI Expressはx8しかサポートしていない。個人で使うには事実上選択肢は“i925X”に絞られる。ただ、今回手元にあった“i925XE”マザーや“i915G”マザーに装着してみたところ、問題なく64bitOSも動作してしまった。手元にLGA775マザーがあるなら、最初からCPUと“i925X”マザーをセットで買わなくても、まずCPUだけ買って動作チェックしてみる価値はありそうだ(当然、保証外になるが)。

箱左側のアップ
箱左側のアップ。“Extended Memory 64 Technology”とある。周波数3.6GHz、FSB800MHz、2次キャッシュ1MBというのはPentium 4-560相当
CPU本体
CPU本体。LGA775のみでの提供となる
cpuz
CPUIDが“F34”というのは、“D0”コアの“Prescott”を示す。そのためCPU名はPentium 4-560と認識されている。中央に、“x86-64サポート”とあるのに注目(x86-64はAMD64の旧名)
Sandra
Sandraで見たCPUスペックの詳細。確かにEM64Tに対応している。“D0”コアなので、“エグゼキュート・ディスエーブル・ビット”や“Thermal Monitor 2”には対応していないことがわかる


Windows XP Professional x64 Editionとは

 さて、1月27日からマイクロソフトのウェブサイトから、360日期間限定の「Windows XP Professional x64 Edition」の配布が始まった。“カスタマ プレビュー プログラム(CPP)”のページにアクセスし、ダウンロードページに飛び、住所氏名メールアドレスなどを答えると、ダウンロード用のURLとインストール時のキーがメールで送られてくる。1月27日公開のRC1(ビルド1289)の時点では、日本のマイクロソフトからアクセスすると日本語版のインストールディスクのISOファイルが落ちてくるようになっていた。ISOファイルをCDに焼き、CDからブートすればインストールを始められる(CPUがAMD64/EM64Tに対応していない場合は最初に拒絶される)。

 64bit版Windows XPのプレビュープログラムは昨年3月から行なわれているが、AMD64のみを対象にしたもので、ドライバのサポートも少なく、DirectXが入っていないため3D3アプリケーションがほとんど全滅、また、Windows XP名物の“Luna”インターフェイスは組み込まれていないため、見た目も地味でWindows XPらしくなかった。RC1ではこの3点がクリアされたために、見た目、実用度ともに格段にアップしている。
 なお、この春にも登場が予想される製品版は、価格的には現行の「Windows XP Professional」と同じになるという。つまり、「Windows XP Professional」の上位バージョンではなく、64bit版の「Windows XP Professional」という位置付けだ。また、Windows XP Homeについては64bit版の予定はないという。

 システムのプロパティでは、“Windows XP Professional x64 Edition, Version 2003, Service Pack 1”と表示されるが、実際には“Windowsセキュリティセンター”や“エグゼキュート・ディスエーブル・ビット”にも対応したSP2相当の内容だ。それどころか、“i915/925”マザーでは、OSをインストールしただけでシステムドライバがひと通り組み込まれたり(32bitXPでは通常INFファイルのインストールが必要)、他にも、32bitバージョンでは自動認識されないRealtek製チップのギガビットイーサネットが64bitバージョンなら自動認識されるなど、標準添付のドライバは64bitのほうが多いと感じさせる部分もある。

インストールしたところ
Pentium 4-3.60FGHzでWindows XP Professional x64 Editionをインストールしたところ。x64 Editionというものが正式名になった
“i915”マザー+Pentium 4-3.60FGH
“i915”マザーにPentium 4-3.60FGHzを装着したうえでx64 Editionをインストールしたところ。915のシステムドライバが自動で組み込まれた

64bit Windowsは速いのか?

 さて、以下ではいよいよWindows XP Professional x64 Edition上でのアプリの性能を検証していくわけだが、その前に、何を計測すべきかを整理しておこう。

 まず現実問題、Windows XP Professional x64 Edition専用に書かれた64bitアプリケーションはごくごく少ないため、当面は32bitアプリケーションを使う必要がある。したがって、32bitアプリケーションの速度は大きな問題である。

 AMD64/EM64Tアーキテクチャでは、完全に従来の32bitCPUと互換になる“レガシーモード”と、64bitのネイティブモード(“ロングモード”)がある。よくできているのは、ロングモード下においても、64bitCPU用に作られたネイティブアプリケーション(64bitアプリケーション)だけでなく、従来の、32bitCPU用に作られたアプリケーションも、速度の低下なく動かすことができる点だ。既存のアプリケーションはそのまま快適に使いつつ、64bitアプリケーションを順次導入していける。

 ただこれは、純粋にCPUとプログラム、という視点から見た場合の話。Windows上では、アプリケーションはメモリの確保、ファイルの読み書き、画面表示などのためにWindowsの機能を呼び出す必要がある。しかし、Windows XP Professional x64 Editionは当然、64bitモードで動く64bitコードで書かれており、アプリケーションからの機能の呼び出し方法も異なる。これでは従来の32bitアプリケーションはそのままでは動けないため、Windows XP Professional x64 Editionは、“WoW64(Windows on Windows 64)”という一種のエミュレーションレイヤーを設け、32bitアプリケーションのAPIコールを64bitに変換するようになっている。
 したがって、Windows XP Professional x64 Edition上で32bitのアプリケーションを動かす場合には、このAPI変換のオーバーヘッドが入る分の性能低下が見込まれる。しかし、呼び出されたWindowsの機能そのものは64bitコードで書かれているため、むしろ高速化される。結果として、どっちが速いのか微妙なところだ。

 一方、Windows XP Professional x64 Edition用に書かれた64bitアプリケーションは、仮にソースコードが32bitのものと同じであっても、原則、速くなる要因がある。というのは、AMD64/EM64Tアーキテクチャでは、CPU内部の汎用レジスタとSSEレジスタを8つ、それぞれ増やしているからだ。これは、64bitのネイティブモードでだけ、利用可能になっている。
 レジスタが多ければ、従来なら1次キャッシュに待避せざるを得ないデータを、レジスタ内に保持しておくことができる。スピードで言えば1次キャッシュもかなり速いが、アクセスは1クロックにつき2つまでなのに対し、レジスタは制限がない。ラフな言い方をすれば、64bitモードでは、1次キャッシュよりさらに高速な、0次キャッシュとでもいうべきものが利用可能になる、ということだ。

 以上のことから、2つの点を検証する。
 まず、32bitOS上で32bitアプリケーションを走らせる場合に比べ、64bitOS上で32bitアプリケーションを走らせるのは速いのか遅いのか。
 次に、64bitOS上で、32bitアプリケーションと、その64bit版とを走らせた場合、どれくらい性能がアップするのか。



3D性能はやや落ち気味? エンコードは変わらず

 今回のテストCPUはPentium 4-3.60FGHzなので、比較対象として、Pentium 4-560、Pentium 4-570Jを用意した。Pentium 4-560、Pentium 4-570は32bitのみの対応なので32bitのWindows XP Professionalで、Pentium 4-3.60FGHzはWindows XP Professional x64 Editionで動かした。動作環境はすべて共通で、マザーボードは“i925XE”チップセットのインテル製「D925XECV2」、メモリはDDR2-533-1GB(デュアルチャネル)、ビデオカードはPCI ExpressのRADEON X700Pro搭載カード(VRAM256MB)を使用した。
 Pentium 4-560JとPentium 4-3.60FGHzは、EM64T対応かどうかを除けばほぼ同じなので、性能は同じであるべきものだ。そこで差が出ていれば、それはOS環境の違いにもとづくものということになる。

 グラフ1〜6の結果はすべて32bitのベンチマークテストによるものだが、Windows Media Video、3DMark 2001など、多くのテストでPentium 4-3.60FGHzとPentium 4-560がほぼタイスコアになっている。確かに、32bitアプリケーションが“ほとんど性能劣化なく”64bitOS上で動くことをうかがわせる。ただ、明らかな差が出ているものもいくつかある。3DMark 05では、明らかにPentium 4-3.60FGHzのスコアが振るわない一方、FinalFantasyでは逆にPentium 4-3.60FGHzがクロックで200MHzまさるPentium 4-570Jより高いスコアを出している。またPCMark 04のCPUスコアもかなり良い。

3DMark 2001
3DMark 2001の結果。クロック通り
3DMark 05
3DMark 05の結果。3.6Fがふるわない
Unreal Tournament 2003
Unreal Tournament 2003の結果。これも3.6Fが苦戦
Final Fantasy XI ver.2
Final Fantasy XI ver.2。これはなぜか3.6Fが大幅リード
PCMark 04
PCMark 04。3.6Fが優勢。ただ、570Jには及ばず
Windows Media Encoder
Windows Media Encoder。棒が短いほうが高速。単位は秒。ほぼクロック通り

 Windows XP Professional x64 Editionでは、32bitのアプリケーションは動くが、32bitのWindows XP用のドライバは利用できない。そのため、今回はATIが公開する32bit用、64bit用それぞれ最新のバージョンのドライバを入れたが、両者のバージョンが一致していない(32bitのほうが新しい)。3DMark 05のスコアの差はここに由来する可能性もある。FinalFantasyやPCMarkで好結果が出ているのは、64bitで書かれたOS本体の機能を使う部分が比較的多い、ということだろうか。いずれにしても、32bitから64bitのオーバーヘッド分だけ常に遅い、というわけでもないのは、64bit化を考えている人にはうれしい結果だろう。


驚くべき64bitアプリの速度!もう32bitには戻れない!?

 さて、注目は7〜10のテスト結果だ。これらは、同一アプリケーションの32bit版と64bit版とで性能を比較したものだ。まずは純CPU性能のチェックとしてSandra 2005だが、同クロック/同コアのPentium 4-560Jに比べ、Pentium 4-3.60FGHzはCPU演算(整数)が16%、マルチメディア(浮動小数点)では実に27%も高速化している。もちろん、実クロック3.8GHzの570Jも上回るスコアだ。一方で、昔ながらの浮動小数点(x87)は逆に3%のマイナスとなっているほか、SSE2による浮動小数点(倍精度)、マルチメディア(16bitデータ×8のSIMD)は5〜7%の伸びとなっている。
 浮動小数点(x87)の性能が低めなのは気がかりだが、SSE以降、浮動小数点のSIMD演算がサポートされているから、特別な関数を使いたい場合を除きx87を使わなければならないケースは減っており、これはあまり問題にならないだろう。むしろ、使用頻度の高い通常演算における整数、マルチメディアにおける浮動小数点が大幅な伸びを見せていることのほうが重要だ。これらはともに、レジスタ増の恩恵を受けているものと考えられる。
 基本性能がこれだけ伸びていれば、アプリケーションの性能も伸びて当然だ。期待に違わず、Panorama Factory(複数の画像を連結して1枚の大きな画像を作るソフト。デジカメを持って自分のまわりをぐるっと一周するだけで、結構インパクトのある絵を作ってくれる)とVirtualDub(フリーのビデオ編集・加工ソフト)は、32bit版に加え、β版ながら64bitバージョンが公開されているので、性能を比べてみたところ、ともにPentium 4-560(32bit)に比べ、Pentium 4-3.60FGHz(64bit)は30%前後も高速に処理が完了した。これは実際にさわっていてはっきりわかるような差だ。

Sandra CPU
Sandra CPU。整数演算が16%高速化
Sandra マルチメディア
Sandra マルチメディア。浮動小数点が25%も高速に!
VirtualDub
VirtualDubで画像のリサイズと圧縮。短い方が高速。単位は秒。570Jを寄せ付けない圧倒的な速度を実現!
Panorama Factory
Panorama Factoryで6枚のデジカメ画像を連結。短い方が高速。単位は秒。これも劇的な高速化が得られた

 同じクロックのCPUで、仮にあらゆるアプリケーションがこれほどの性能向上を見せるのであれば、32bitのCPU、32bitのOSを使い続ける理由はない。CPU性能の伸びが鈍った、と言われたここ1〜2年だが、2005年は思いもよらぬ場所から大きなスピードアップのボーナスがもたらされることになりそうだ。


●2月28日発売のアスキープラス2005年4月号では、Windows XP x64 Editionの詳細レポートと、各社64bitCPUの性能を徹底検証する特集記事を用意しています。こちらもぜひごらんください。

【関連記事】

(アスキープラス編集部 野口岳郎)




[通常ページに戻る]
ASCII24 http://ascii24.com/
Copyright (C)2000-2008 ASCII Corporation. All rights reserved.