笠原一輝のユビキタス情報局

64bit時代への第一歩となる「64bit版Windows XP」




 2月にサンフランシスコで開催されたIntel Developer Forum Springの目玉は、なんといってもIntelが64bit命令セット「EM64T」(Extended Memory 64 Technology)への対応を明らかにしたことだろう。

 事実上のAMD64互換と言えるEM64Tに将来のプロセッサで対応すると発表したことで、近い将来にすべてのx86互換プロセッサが、x64と総称されるAMD64/EM64T対応になることが明らかになったことで、ソフトウェア業界も含めてx64への移行が今後始まっていくことになる。

 その第一歩となるのが、今年の終わり頃にMicrosoftがリリースを予定しているx64対応の64bit版Windows XP“Windows XP x64 Edition Version 2003”だ。5月上旬に行なわれたWinHECでは、今年の2月からMicrosoftのWebサイトなどで“Windows XP 64-Bit Extended Systems”として配布が開始されたプレビューバージョンよりも新しいビルドのβ版が配布され、ほぼWindows XPと同じようなルック&フィールとなり、完成に近づいていることを来場者に印象づけた。

 今回のレポートでは、その64bit版Windows XPの現状などについて紹介していきたい。


●Lunaに対応するなど完成に近づいた印象のWinHEC版ビルド

Windows XP x64 Edition Version 2003のデスクトップ。ユーザーインターフェイスもProfessional版やHome Editionと同じくLunaベースとなっており、エンドユーザーにとって見慣れたデスクトップとなっている。ビルド番号は3790

 MicrosoftはWinHECの参加者に対してLonghornの最新プレビュー版などが配布されたが、その中には64bit版Windows XPも含まれていた。

 従来は、“Windows XP 64-Bit Edition For 64-Bit Extended Systems”と呼ばれていたが、今回から“Windows XP x64 Edition Version 2003”と呼ばれており、Windows XPの新しいバリエーションの1つという位置づけがより明確になった。

 x64と呼ばれるAMD64/EM64Tの64bit命令セットは、現行の32bit x86命令、いわゆるIA-32を拡張したもので、命令セットなどはIA-32を継承しながらポインタを64bitに拡張することで64bitのデータモデルを扱えるようにしたものだ。

 このため、従来のIA-32との互換性が高く、x64に対応しているCPUでは、IA-32の命令がそのまま実行できるという特徴を持っている。

 WinHECで配布されたWindows XP x64 Edition Version 2003は、ビルド番号は3790となっており、昨年Microsoftが開発者向けに配布した最初のプレビュー版のビルド“3754”などよりもバージョンアップされていることがわかる。

 昨年配布されていたプレビュー版では、Windows XPの特徴の1つであるユーザーインターフェイス「Luna」などにも対応しておらず、見た目はWindows 2000のようであった。ビルド3790ではきちんとLunaに対応し、インストール時の画面もWindows XPとほぼ同等の画面となり、このまま出荷されてもおかしくないレベルに仕上がってきていることが見て取れる。

 配布されたのは英語版のみだったが、WinHECでの発表によれば、今年末に予定されているリリース時には日本語版が用意され、さらに言語キットの形でドイツ語、スペイン語、韓国語、フランス語、スイス後、中国語が用意されることになる。

●すでに出荷開始されているIPF版のWindows XP 64-Bit Edition Version 2003

 Microsoftは64bit版Windowsに、x64版のみならず、IntelのIA-64向けバージョンも用意している。Windows XP 64-Bit Edition Version 2003と呼ばれるこのバージョンは、Itaniumが動作するシステムで利用できる(Itanium Processor Family向けということで、IPF版などと呼ばれる。こちらはすでにOEMメーカー向けに出荷が3月より開始されており、現在は英語版のみの提供となっているが、今年の末には日本語版も提供される予定)。

 x64版との大きな違いは、プロセッサがIA-64、すなわちIntelのItanium、Itanium 2に対応するという点と、ユーザーインターフェイスがWindows 2000と同じ、つまりLunaではないという点だ。このことからも、Windows XP 64-Bit Edition Version 2003が、エンドユーザー向けではなく、ワークステーションユーザーなど限られた環境で利用されることを前提に作られていることが見て取れる。

 もっとも個人ユーザーでItanium 2を搭載したシステムにWindows XP 64-Bit Edition Version 2003をインストールして利用する人はいないと思うが……。

 IPF版ではIA-64の命令セットに対応した64bitバイナリのみを実行できる。もちろんx64版のAMD64/EM64Tの命令セットで作られた64bitバイナリは実行できない。IA-32の命令セットに関しては実行することが可能だが、IA-64のIA-32互換機能は、どちらかと言えばSCSIカードのBIOSプログラムを実行する際の互換性などに配慮したもので、IA-32のバイナリを高速に実行することを意識したものではない。従って、IA-32のプログラムを実行させることは可能だが、実用になるかと言えば、厳しいというのが実際のところだ。

 やはりIPF版のメリットは、IA-64専用のプログラムを利用してこそ発揮されると言えるだろう。IA-64のメリットは、4GBを越えるリニアな実メモリ空間のサポートと、高い浮動小数点演算の性能だ。この点に関しては、OpteronやそしてこれからEM64TがサポートされるXeonに比べてアドバンテージと言え、マルチプロセッサ環境を利用したデータセンターや大規模な科学シミュレーションのような使い方で大きなメリットがある。

 実際、Microsoftでも、Windows Server 2003において、大規模データベースサーバー向けで8ウェイ以上の構成(〜64ウェイ)をサポートするWindows Server 2003 Datacenter EditionはItanium版のみが提供されていて、x64版は予定されていないことを見てもそうした位置づけがされていることが見て取れる。

 Itaniumを搭載したシステムは、以前は大手OEMメーカーだけが出荷している状況だったが、現在ではチャネル市場にもIntelのマザーボード、シャシー、CPUを組み合わせて出荷されており、今回もそうしたチャネル向けシステムの1つを入手してWindows XP 64-Bit Edition Version 2003をインストールしてみた。

 今回テストした2Uのサーバー向けシステムは、チップセットにIntel E8870を搭載しているIntelのSR870BH2で、MadisonコアのItanium 2が2つ搭載されていた。以前は、数百万円という価格がついていたItanium 2のシステムも、こうしたチャネル向けの構成では80万円を下回るところもでてきており、ある程度の規模のサーバー環境であれば実際にXeonを搭載したシステムと競合する例もでてきているという。

IPF版Windows XP 64-Bit Edition Version 2003のデスクトップ。ワークステーション用途を意識してか、エンドユーザー向けUIであるLunaの機能は省略されており、すっきりとしたデスクトップとなっている IPF版Windows XP 64-Bit Edition Version 2003のシステムプロパティ
テストに利用したItanium 2を搭載した2Uサーバー。今回はItanium 2搭載ワークステーションが用意できなかったので、こちらで代用した。このシステムはIntel E8870チップセットを搭載したIntelのSR870BH2と呼ばれるチャネル向けのシャシーで、MadisonコアのItanium 2 1.4GHzが2つ搭載されている 64bit Windowsのロードマップ。大規模データベース向けのDatacenter EditionはItanium版のみが提供される予定となっている

●WoW64で32bit互換を実現する64bitWindows

Windows XP x64 Edition Version 2003のアーキテクチャ。カーネルモードは完全に64bit化されており、デバイスドライバは64bit版ドライバが必要になる

 今回紹介しているWindows XP x64 Edition Version 2003、Windows XP 64-Bit Edition Version 2003に限らず、サーバー版となるWindows Server 2003の64bit版などを含めて64bit版のWindowsは、いずれもWoW(Windows On Windows)64と呼ばれる仕組みで32bit互換を実現している。

 64bitWindowsでは、32bitのアプリケーションがOSカーネルを呼び出す場合、必ずWoW64をコールする仕組みになっている。WoW64は、32bitアプリケーションからみれば、32bitのWindows OSと見え、32bitのアプリケーションは32bitのWindowsカーネルをコールしているように動作することが可能になる。

 Windowsカーネルから見れば、64bitネイティブのアプリケーションも、WoW64も1つのユーザーモードのプログラムとして見える仕組みになっており、これにより32bitのアプリケーションと64bitのアプリケーションをシームレスに動作させることが可能になっている。

 ただし、32bitのアプリケーションと64bitのアプリケーションはそれぞれ異なるスレッドとして動作するため、1つのプログラムの中に32bitのコードと64bitのコードを混在させることはできない。あくまでアプリケーションは32bitか64bitかのどちらかで記述されていなければならないのだ。なお、WoW64では16bitのWindowsアプリケーションやDOSアプリケーションを実行することはできない。

 なお、x64版、IPF版という2つの64bit Windowsの互換性だが、前述のようにバイナリレベルでの互換性はない。x64向けの64bitバイナリはWindows XP x64 Edition Version 2003でしか実行できないし、IPF向けの64bitバイナリはWindows XP 64-Bit Edition Version 2003でしか実行することができない。

 しかし、Microsoftは2つの64bitに対してソースコード互換という戦略をとっており、2つの64bit命令セットで、ソースコードのレベルではある程度の互換性が実現可能であると説明している。

 そうしたコードを書くことで、最終的にコンパイルの段階でx64向け、IPF向けと指定し、1つのソースコードから2つのバイナリをはき出すことが可能になるという。従って、今後64bit環境において、プログラマレベルでは、2つのバイナリを作成するのは比較的容易と言えるだろう。

 ただし、実際にはバイナリを作ったら終わりではなく、デバッグや互換性検証などの作業も必要となるので、すべてのソフトウェアベンダが両方の64bit向けにバイナリを作るかと言えば、それは難しいだろう。実際にはコンシューマ向けにはx64だけ、サーバー/ワークステーション環境では両方のバイナリを、ということになると考えられるだろう。

●32bitアプリケーションがシームレスに利用できる64bit Windows

 64bit Windowsの特徴は、なんといっても従来のWin32に対応した32bit Windowsアプリケーションをそのまま利用できることだ。実際に、x64版のWindows XP x64 Edition Version 2003、IPF版のWindows XP 64-Bit Edition Version 2003のいずれにおいても、Win32の32bitアプリケーションを利用することができた。

 画面は、両方の製品でTMPGEnc Version 2.52を実行させている画面だが、いずれもきちんとエンコードできている。実行速度については、32bitコードをネイティブの速度では実行できないIPF版のWindows XP 64-Bit Edition Version 2003とは比べるべくもない。

 このほかにも、Windows XP x64 Edition Version 2003には、WordやExcelなどを導入してみたが、もちろん問題なく動作したほか、昨年のプレビュー版では画面描画がおかしかった3DMark03のような3Dベンチマークアプリケーションに関しても問題なく動作した。画面描画も正常で、完成度があがってきていることが見て取れる。

 また、試しにWinDVD Version 4をインストールしてみたが、これは動作しなかった。ただし、DVDのフィルターとしては利用できるようで、WinDVDをインストールすることでWindows Media Player 9を利用してDVDが再生できた。

Windows XP x64 Edition Version 2003で、Win32アプリケーションのTMPGEnc Version 2.52を実行している画面 Windows XP 64-Bit Edition Version 2003でWin32アプリケーションのTMPGEnc Version 2.52を実行している画面。32bitがネイティブでは実行できないItanium 2では、32bitでの処理能力はx64のプロセッサに比べて高くない WinDVD4はなぜかDVDディスクを認識してくれなかったが、付属のWindows Media Player9ではWinDVDのフィルターを利用してDVD再生が可能だった

●Webブラウザのプラグインやデバイスドライバの64bit化が課題

 x64版Windows XP x64 Edition Version 2003とIPF版Windows XP 64-Bit Editionをしばらく使ってみたが、いくつか気が付いたことがある。1つは、Webブラウザのプラグインの問題だ。64bit Windows XPには、2つのInternet Explorerが付属している。1つは64bit版で、もう1つが32bit版だ。最初のうちは64bit版があるなら32bit版はいらないじゃないか、なんであるんだろう? と思っていたのだが、しばらく使っているうちに理由がわかった。

左側のIEが64bit版、右側のIEが32bit版となる。32bit版のIEにはフラッシュプレーヤーがインストールできたが、64bit版のIEにはインストールできなかった

 というのも、64bitのIEには、64bitコードのプラグインが必要になるのだ。現時点では64bitのプラグインはほとんど存在しておらず、64bitのIEでフラッシュを必要とするようなWebサイトに接続すると、フラッシュのコンテンツを表示できない。そうした場合には、32bitのIEを利用して閲覧する必要がある。これは、Windows XP 64-Bit Editionの1つの乗り越えるべき壁と言えるだろう。

 32bit版のIEを使えばこうした問題は発生せず、実用上は問題ないが、せっかく64bit版があるのに使わないというのは惜しい。

 もう1つの問題は、デバイスドライバの64bitへの対応だ。64bitWindows XPではWoW64によりユーザーモードで動作する32bitアプリケーションをそのまま利用できる。しかし、カーネルモードで動作するデバイスドライバに関しては32bitドライバを利用できず、64bitドライバが必要になる。

 64bitドライバの現在の状況は、AMDのWebサイトで公開されており、すでにある程度のデバイスドライバが揃ってきていることがわかる。

 例えば、ビデオカードのドライバに関しては、ATI、NVIDIAの2大ベンダのいずれもが公開している。32bit版に比べると若干バージョンが古いものだが、実用上は問題ないだろう。

 サウンドカードに関してはCreative LabsのSound Blaster AudigyシリーズやRealtekのAC'97コーデックなどのドライバが公開されている。

 といっても、現時点でドライバがあるのは代表的な製品だけで、すべてのデバイスに関してデバイスドライバがそろっている状況ではないのも事実。これらのドライバがOSのリリースまでにどの程度揃うかも、64bit Windows XPの課題と言える。

 こればかりは、鶏と卵の関係であり、対応CPUとOSが出揃わない限り、ハードウェアベンダはなかなかドライバを開発してくれない。このため、AMDがAthlon 64ですでに64bitをサポートしていることは、ハードウェアベンダに64bitドライバを開発することを促進する意味で重要だ。

 そう考えると、Intelの幹部が「64bitのOSやソフトウェアが準備できていないから、今の時点では64bit CPUを導入する必要はない」と主張していたことには、本当にそうなのか? と疑問符をつけたくなるが、どうだろうか。

●x64でリードするAMD、それを追うIntelという構図

 現時点ではコンシューマ向けの64bitアプリケーションがほとんど存在していないため、残念ながら64bitアプリケーションの効果というのを計測することができない。それに関しては、実際にアプリケーションが出揃うリリース時までおあずけというところだが、ある程度効果を予想することができる。

 多くの関係者が口をそろえて指摘するのは、エンコード時の性能向上だ。というのも、メモリ上に大量のデータをロードして処理を行なうエンコードのような処理では、64bitのメリットがでてくるからだ。

 日本市場においては、このことは非常に大きな意味を持ってくるだろう。というのは、日本ではコンシューマ向けデスクトップPCの性能=エンコード性能と言ってよいほど、PCの性能にしめるエンコード性能の位置づけは高い。

 Windows XP 64-Bit Editionに64bit化されたエンコードソフト、という組み合わせは、エンドユーザーに対して新しい選択肢を提案できる可能性が高い。例えば、TMPGEncの64bit版などが登場するのであれば、ユーザーにとってWindows XP 64-Bit Editionを導入する大きな動機になるのではないだろうか。価格が現在のWindows XP Professionalとあまりかけ離れていなければ、の話ではあるが。

 気になる販売方法だが、現在のところMicrosoftはWindows XP x64 Edition Version 2003をどのように販売していくのかに関しては明らかにしていない。

 参考になるのは、IPF版のWindows XP 64-Bit Editionだろう。Windows XP 64-Bit Editionは、パッケージ版は販売されておらず、OEM版のみの提供となっている。実際には、Itaniumを搭載したクライアントPCというのが小売店では販売されていないため、OEM版Windows XP 64-Bit Editionというのが販売された例は聞いたことがないが、Itaniumを搭載したホワイトボックスサーバー向けにはWindows Server 2003のOEM版をバンドル販売している例があることを考えると、Windows XP x64 Edition Version 2003もOEM版として販売される可能性は高いのではないだろうか。

 x64(AMD64/EM64T)のインストールベースが今年末でもIA-32に比べるとまだまだ圧倒的に少ないことを考えると、ボックス版をリリースする可能性は少ない。しかし、OEM版などの形でエンドユーザーに提供される可能性は高い。

 x64版Windows XP x64 Edition Version 2003がリリースされることは、AMDにとって追い風になるだろう。シェアという意味ではインパクトは小さいかもしれないが、前述のようにWindows XP x64 Edition Version 2003においてエンコード性能が本当に高ければ、ハイエンドユーザーが雪崩を打つように64bitへ移行する可能性は十分考えられる。

 現在IntelはOEMメーカーに対し、PrescottにおけるEM64TのイネーブルはMicrosoftのバリデーション待ちであると説明している。第4四半期にPentium 4 720として出荷される予定のL2キャッシュ2MB版Prescott“Prescott 2M”では、EM64Tがサポートされることがすでに通知されている。

 また、Intelは現在OEMメーカーに対して、今年の第3四半期にEステップと呼ばれる新しいPrescottを出荷開始すると説明している。Eステップではハードウェアによるウィルス防御の仕組みである「NX」、SpeedStepのような省電力機能をデスクトップPCでも実現する「Enhanced Halt State」(C1E)という新機能がサポートされる。

 このステップあたりでメインストリーム向けPrescottとなる5xxシリーズでも、EM64Tがイネーブルにされるというのは十分あり得るストーリーではないだろうか。

 どちらにせよ、予定通り行けば今年の終わりにはx64に対応したWindows XP x64 Edition Version 2003が市場に登場することになる可能性は高く、自作PCユーザーは自分の“ロードマップ”にこの予定を書き加えておくといいのではないだろうか。


□WinHECレポートリンク集
http://pc.watch.impress.co.jp/docs/2004/link/winhecs.htm
□IDF Spring 2004レポートリンク
http://pc.watch.impress.co.jp/docs/2004/link/idfs.htm

バックナンバー

(2004年5月28日)

[Reported by 笠原一輝]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2004 Impress Corporation All rights reserved.