このページの本文へ

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

2005年03月30日 23時15分更新

文● アスキープラス編集部 野口岳郎

  • この記事をはてなブックマークに追加
  • 本文印刷

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のほうが多いと感じさせる部分もある。

インストールしたところ “i915”マザー+Pentium 4-3.60FGH
Pentium 4-3.60FGHzでWindows XP Professional x64 Editionをインストールしたところ。x64 Editionというものが正式名になった“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版とを走らせた場合、どれくらい性能がアップするのか。

カテゴリートップへ

注目ニュース

ASCII倶楽部

ASCII.jpメール アキバマガジン

クルマ情報byASCII

ピックアップ