既にコンピューターの核となるCPUはもちろん、Windows OSも64ビット化し、数年が経ちました。今後、64ビットOSが主流になるのは誰の目にも明らかでしょう。そこで、現在Windows XPを使用し、そろそろコンピューターのリプレースを考えている方に、64ビット版Windows OSの長所や短所を含めた64ビットの世界を紹介いたします。

64ビット環境のメリット

これまで64ビットの概念や具体例を紹介してきましたが、第三回となる本稿では64ビット環境の長所や短所を紹介しましょう。64ビットマイクロプロセッサを搭載したコンピューターを活かすには、64ビットに対応したOSが必要であることは前回述べたとおりですが、Windows 7では、エディションによって認識可能なメモリ容量が異なります。

図01はWindows 7の32ビット版および64ビット版の各エディションが認識できる物理メモリ容量ですが、一般的に使われているWindows 7 Home Premiumでも、32ビット版は4GB(ギガバイト)までなのに対して64ビット版は16GB。上位エディションとなるProfessionalやUltimateでは、192GBまで認識させることが可能です。さすがに筆者もこれだけの容量を搭載した一般向けコンピューターを見たことはありませんし、ハードウェア側(メモリコントローラ)の対応も必要ですが、少なくとも64ビット版Windows 7を選択した場合、「メモリが足りなくて動作が遅い」というトラブルに見舞われることは多くありません(図01)。

図01 Windows 7各エディション&バージョンのメモリ認識容量(Starter、Home BasicおよびEnterpriseはショップ販売されていませんが、参考のため掲載しています)

では、なぜメモリが必要かという点を考えてみましょう。そもそもOSはコンピューターに備え付けられた物理メモリ上にOSの核となるカーネルやコンポーネントを展開し、動作しています。例えば1GBの物理メモリを搭載したコンピューターでWindows 7を起動した場合は約600MB(メガバイト)を消費し、残りの400MBでWordやExcelといったアプリケーション用メモリとして消費しますが、フォトレタッチや動画編集といった"メモリ食い"のアプリケーションを起動する場合、数百MBでは足りません。

そこで登場するのが「ページファイル」の存在。Windows OSではローカルディスク上のファイルを仮想メモリとして使用する仕組みが備わっています。しかし、HDD(ハードディスクドライブ)に代表されるローカルディスクのアクセススピードを物理メモリと比べると比較にならないほど遅いためボトルネックが発生し、必然的にOS全体のパフォーマンスが低下、"遅くなる"のです(図02~03)。

図02 このように物理メモリが多い場合は、アプリケーションの起動もスムーズに行えます

図03 こちらは物理メモリを16GB搭載しているコンピューターのタスクマネージャー。システムキャッシュとして6GBほど確保されていますが、アプリケーション起動時は開放されます

このように64ビットコンピューター/OSによる環境の長所に、物理メモリの認識サイズがあげられますが、実は32ビットOSでも4GBまで認識できるテクニックがあるのをご存じでしょうか。Microsoftいわく4GT RAMチューニングと称する同テクニックは、仮想アドレス空間のユーザ空間とカーネル空間の割り振り量を変更することで、アプリケーションが使用できるメモリ容量を増やすというものです。

一般的にはPAE(Physical Address Extension:物理アドレス拡張)と呼ばれるメモリ管理技術を応用するテクニックですが、アプリケーション側でも4GT RAMチューニングに対応させる設定が必要ながらも、Windows OSではカーネルページプールや非ページプールなどが減少し、OS自体の安定性も欠落してしまうというトラブルが発生することも。そのため同社も32ビット版Windows Serverに限ったテクニックと紹介しています。

ちなみに32ビット版Windows VistaやWindows 7にも同様のオプションが用意されていますが、コンピューター側のメモリコントローラやBIOS設計などにより、正しく動作するか否かが左右されるため現実的ではありません。このように抜け道がない訳ではありませんが、素直に64ビット環境に移行した方が簡単なのです。

64ビット環境のデメリット

さて、64ビット環境の短所ですが、32ビットアプリケーションをそのまま実行できない点があげられるでしょう。現在64ビット版Windows OSをお使いの方は首をかしげるかも知れませんが、これは「WOW64(Windows-On-Windows 64:ワウ64)」という一種のエミュレータが動作しているからです。同機能は目新しいものではありません。32ビットOSだったWindows NTでも、16ビットアプリケーションを動かす仕組みとして「WOW32」を用意してきました。

WOW64はサブシステムとして64ビット版Windows 7に搭載し、ソフトウェアを開発する際に使用する命令や関数の集合体であるWin64APIから、Win32APIを呼び出して32ビットアプリケーションの実行を実現しています。そのため若干のオーバーヘッドが発生しますが、体感するほどの遅延は発生しませんので安心してください(図04)。

図04 WOW64の大まかな仕組み。このように32ビットアプリケーションはWOW64を介して実行されます

ただし、WOW64を介しても動作しないアプリケーションは存在します。低レベルシステムへのアクセスを必要とするソフトウェアや、構造的な問題で64ビット化されたバイナリファイルへのアクセスを必要とするソフトウェアは動作しません。これらのなかには周辺機器を動作させるためのデバイスドライバーも含まれます。

動作しないソフトウェアとして、カーネルレベルのアクセスを必要とするセキュリティ系ソフトウェアやシェル拡張ソフトウェアが含まれますが、現在では大半のソフトウェアが64ビットのサポートを表明しています。仮に手持ちのソフトウェアが64ビット版への対応表明を行っていない場合は、バージョンアップや同種のソフトウェアへ乗り換えるなどの手段を一考しましょう。なお、Internet ExplorerやWindows Media Playerのアドオンも従来の32ビット版の場合、64ビット版Internet Explorerや同Windows Media Playerでは動作しないので注意してください。

さて、三回にわたって64ビットマイクロプロセッサ/コンピューター/OSの概要を説明してきましたが、最後に現在使用しているソフトウェアが32ビット版なのか64ビット版なのか確認する方法を紹介しましょう。通常はWindows OS標準のタスクマネージャーを使用します。64ビット版Windows 7で同ソフトウェアの<プロセス>タブを開きますと、一部のプロセスに「32」という表記があることにお気づきでしょうか。64ビット版Windows 7のタスクマネージャーでは、32ビットのソフトウェアに対して「32」という表記が付き、64ビットのソフトウェアはそのまま表示される仕組みです(図05~06)。

図05 [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「taskmgr」と入力して<OK>ボタンをクリックします

図06 タスクマネージャーの<プロセス>タブを開きます。イメージ名の末尾に「*32」が付いていれば32ビットのソフトウェア。何もない場合は64ビットのソフトウェアとなります

なお、お使いのソフトウェアが32/64ビットなのかわかりやすく判断したい場合は、「Professional Explorer」などをお使いください。Windowsの専門家として名を博し、現在はMicrosoftの一員となったMark Russinovich(マーク・ルシノビッチ)氏作の同ソフトウェアは、実行中のプログラムを一目で確認できるツールとして有名です。表示カラムの設定で「Image Type 64 vs 32-bit」を有効にすることで、起動中のプログラムのビット数が表示されるようになりますので、詳しく確認したい方はお試しください(図07)。

図07 「Process Explorer」でも、起動中のお使いのソフトウェアが32ビットなのか64ビット版なのか確認できます

次回は64ビット版Windows 7の具体的な相違点や64ビット版ソフトウェアの選択方法などを詳しく解説します。

阿久津良和(Cactus