アプリケーションが高機能かつ複雑になり、またデータセットのサイズが大きくなるにつれて、既存のアプリケーションが必要とするアドレス空間のサイズが大きくなっています。今日、32 ビットシステムの 4G バイトアドレス空間の限界を超えるアプリケーションもあります。たとえば、さまざまなデータベースアプリケーション、特にデータの取り出しを行うデータベースアプリケーション、 Web キャッシュ、 Web 検索エンジン、CAD/CAE のシミュレーションおよびモデリングツールの構成要素、および科学技術計算などがあります。このような大規模アプリケーションを効率的に実行したいという要求によって、64 ビットコンピューティングが開発されてきました。
図 1-1 に、大容量の物理メモリーを持つコンピュータ上で実行されるアプリケーションの、典型的なパフォーマンスと問題サイズ
(対象とする処理の大きさ) の関係を表す曲線を示します。非常に小さな問題サイズの場合には、プログラム全体がデータキャッシュ (D$
)
または外部キャッシュ (E$
) 中に収まりますが、プログラムのデータ領域が大きくなってくると、32 ビットアプリケーションが利用できる
4G バイト仮想アドレス空間全体をプログラムが占有するようになります。
32 ビット仮想アドレスの限界を超えても、一般的には一次メモリーと二次メモリー (たとえばディスク) に、アプリケーションデータセットを分割することによって、アプリケーションはより大きな問題サイズを取り扱うことができます。ただし、ディスクドライブにデータを転送するのは、メモリーどうしの転送に比べて数桁以上も長く時間がかかります。
今日では、多くのサーバーが 4 G バイト以上の物理メモリーを取り扱うことができます。高性能のデスクトップコンピュータも同様の傾向にあります。32 ビットプログラムは 1 度に 4 G バイト以上を直接アドレス指定することはできません。64 ビットアプリケーションでは、64 ビット仮想アドレス空間を使用して 18 E (エクサ) バイトまで直接アドレス指定することができます。こうして、サイズが大きな問題を一次メモリー内で直接取り扱うことができます。アプリケーションがマルチスレッド化されていてスケーラブルな場合は、プロセッサを追加してアプリケーションのスピードをさらに上げることができます。そのようなアプリケーションのパフォーマンスは、コンピュータ上の物理メモリーの量によってのみ制限されます。
以下のように、広範囲の種類のアプリケーションにとって、大きな問題を物理メモリー内で直接取り扱うことができるというのは、64 ビットマシンの主要な性能上の特長です。
データベースの大部分を一次メモリー内に置くことができる。
大規模な CAD/CAE モデルとシミュレーションを一次メモリー内に格納できる。
大規模な科学技術計算の問題を一次メモリー内に格納できる。
Web キャッシュはメモリー内により多くを記憶できるので、その結果呼び出しにかかる時間を短縮できる。
64 ビットアプリケーションを作成する理由として、次のことを挙げることができます。
64 ビットプロセッサのより広いデータパスを使用して、64 ビット整数の演算を実行し、パフォーマンスを向上させる必要がある。
システムインターフェースに使用される基本的データ型が大きくなったので、いくつかのシステムインタフェースが拡張されたり制約が解消された。