64bit版Windows OSでは従来のWin32というAPIのほかに、Win64という64bit対応のAPIセットを備えている。これを使うように作られたアプリケーションを一般に「64bitアプリケーション」という。64bitアプリケーションを使う最大の目的およびそのメリットは、広大なユーザー・メモリ空間のサポートによる、パフォーマンスの向上であろう。Win32ではユーザーのプロセス空間は最大でも2Gbytesしかないが(設定によっては3Gbytesまで拡大可能。詳細は次回解説する。この中にユーザーのコードやデータ、スタック、DLLなど、さまざまなものが詰め込まれる)、Win64ではユーザー空間は8Tbytes(Win32の場合の4000倍)にまで拡大されている。
一般的なオフィス・アプリケーションやユーティリティではこのような広大なユーザー・プロセス空間は必要ないだろうが(つまり32bit版でも十分だろうが)、データやファイルを大量に操作するアプリケーションでは2Gbytesでは不足することがある。Server OSの領域では、データベース・サーバやExchange Serverをはじめとして、すでに64bit版アプリケーションが広く普及している。クライアントPCであっても、マルチメディア・データの編集やグラフィックス・ソフトウェアなどで64bit版の利用が進んでいる。32bit版の場合は、メモリ上に格納できない分のデータをディスクに一時的に退避したり、必要に応じてロードしたりするなどの処理を行っていたが、64bit版のアプリケーションでは十分なメモリさえあればすべてオンメモリで保持、操作できるので、高速な処理が期待できるからだ。
以下は64bit版アプリケーションが提供されているAdobe Photoshop CS5 Extended(以下Photoshop CS5)の例である。Photoshop CS5では、オンメモリに格納できないほど大きなサイズの画像データはディスク上に一時的に保存して処理しているが、64bit版のPhotoshop CS5では、Windows OSの空きメモリ領域いっぱいまでワークエリアとして設定できる。8Gbytes程度のメモリを搭載していれば、現実的にはほとんどの作業をオンメモリで処理できるだろう。
■32bit版Adobe Photoshop CS5 Extendedの設定画面
■64bit版Adobe Photoshop CS5 Extendedの設定画面
32bit版と64bit版のPhotoshop CS5実行中のタスク・マネージャの画面を次に示す。どちらも同じサイズの画像データを編集しているところであるが、32bit版では最大3.4Gbytesのメモリまでしか使用していないのに対し、64bit版ではプロセスのサイズが9.4Gbytesにもなっている。
■32bit版Adobe Photoshop CS5 Extendedを実行中のタスク・サイズ
■64bit版Adobe Photoshop CS5 Extendedを実行中のタスク・サイズ
64bit版Windows OSではWin64 APIがOSカーネルのネイティブAPIとして提供されているため、システムの性能を最大限に引き出すためには、64bitアプリケーションを利用するのが望ましい。しかし64bit版Windows OSは互換性のために、従来の32bitアプリケーションのバイナリ・コードをそのまま実行するための仕組みも備えている(WOW64。詳細は次回解説)。その結果、ユーザーはアプリケーションが32bitであるか64bitであるかを意識することなく、そのまま利用できる。
ただし16bitアプリケーション(Win16アプリケーション)は利用できないとか、32bitと64bitのDLLの混在が許されない、32bit版デバイス・ドライバは利用できないなど、いくつか問題となる点もあるため、誰にでも無条件に64bit版Windows OSをすすめられるわけではない(詳細は次回解説)。
さて、64bit版Windows OSでは従来の32bitアプリケーションもサポートされているわけだが、64bitアプリケーションをまったく所有していない、もしくは使うつもりがないユーザーであっても、64bit版Windows OSを導入すると何か恩恵があるのだろうか?
この疑問に対する答えは簡単ではないが、純粋に技術的な視点からだけ見れば、32bitアプリケーションしか使わないユーザーであっても十分にメリットがある。64bit版Windows OSでは利用可能なメモリ・サイズが多くなるため(システムに搭載したメモリをすべて利用できる)、同時に実行できるプロセスの総数が増えるからだ。例えば1つ当たり512Mbytesのメモリを必要とするプログラムがあるとすると、4Gbytesのメモリを搭載した32bit版Windows OS上では単純計算で6つ実行できる(利用可能なユーザー・メモリを3Gbytesとした場合)。これが例えば8Gbytesのメモリを搭載した64bit版Windows OSであれば、利用可能なユーザー・メモリは7Gbytes以上あるはずなので、14プロセス以上を同時に実行できる。もっとメモリが多ければ、さらにこの差は広がるだろう。
64bitアプリケーションではないが、Virtual PCやHyper-Vなどの仮想実行環境もOSの64bit化による恩恵を受けるアプリケーションの典型例といえる。仮想マシンを利用する場合、1マシンにGbytes単位でメモリを割り当てることが少なくない。32bit版Windows OS環境において、例えば1Gbytesのメモリを割り当てた仮想マシンを実行する場合、同時に実行できるのはせいぜい2つぐらいまでだろう。だが64bit版Windows OSであれば、物理メモリの許す限り仮想マシンを同時に実行できる。物理メモリが8Gbytesあれば、同時に6つとか7つぐらいは実行できる。このように、大量にメモリを要求するアプリケーションをよく利用するなら、64bit版Windows OSの導入は検討に値するだろう。
64bit版Windows OSによる4つめのメリットは先ほどのものと重なるが、利用可能なメモリ・サイズが増加することによる、システム・キャッシュ・サイズの増加があげられる。物理メモリはOSやアプリケーションのプログラムやデータなどを置くために使われるが、未使用の部分(空きメモリ)はシステム・キャッシュなどとしても利用される。システム・キャッシュとは、一度使ったファイルを残しておき、後で必要となった場合にディスクからではなくメモリから読み出すための機能である。システムのパフォーマンスを向上させるためには、なるべく大きなキャッシュ・サイズを確保しておきたい。
だが、32bit版Windows OSでは3Gbytes程度のメモリしか利用できないため、キャッシュとして確保できるサイズは多くても2Gbytes程度だろう。これと比べると、64bit版Windows OSでは利用可能なメモリ・サイズが増加しているので、例えばシステムの起動直後ならばメモリ全体の7割とかそれ以上のシステム・キャッシュ・サイズを確保できる。これは大きなメリットといえる。
■32bit版Windowsにおけるシステム・キャッシュ・サイズ
■64bit版Windowsにおけるシステム・キャッシュ・サイズ
以上、今回は64bit版Windows OSのメリットについていくつか述べてきた。これ以外にも理由はあるだろうが、最終的には4Gbytesを超す大容量のメモリ(と64bit命令セット)を使いたいかどうか、64bitアプリケーションを持っているかどうか、によって決まるといえる。使い勝手についていえば、64bit版Windows OSにしたからといって特に従来との違いは感じられないだろう。むしろ、何も問題が起こらないことに拍子抜けしてしまうかもしれない。
とはいえ、これはすべてがうまくいった場合の話である。64bit版のデバイス・ドライバが提供されていない場合は、そのデバイスの使用をあきらめるか、なんらかの代替手段を講じるなどの対策が必要になる。また64bit環境では16bitアプリケーションはサポートされていないため、そのようなアプリケーションを持っている場合はトラブルになる可能性があるからだ。
次回はWin32アプリケーションの実行を可能にするWOW64や、内部から見た64bit版Windows OSなどについて取り上げる。
Copyright© Digital Advantage Corp. All Rights Reserved.