Solaris 64 ビット 開発ガイド

第 1 章 64 ビットコンピューティング

アプリケーションが高機能かつ複雑になり、またデータセットのサイズが大きくなるにつれて、既存のアプリケーションが必要とするアドレス空間のサイズが大きくなっています。今日、32 ビットシステムの 4G バイトアドレス空間の限界を超えるアプリケーションもあります。その例として、次のようなものがあります。

このような大規模アプリケーションを効率的に実行したいという要求によって、64 ビットコンピューティングが開発されてきました。

4G バイト境界を超える

図 1–1 に、大容量の物理メモリーを持つコンピュータ上で実行されるアプリケーションの、典型的なパフォーマンスと問題サイズ (対象とする処理の大きさ) の関係を示します。非常に小さな問題サイズの場合には、プログラム全体がデータキャッシュ (D$) または外部キャッシュ (E$) 中に収まりますが、プログラムのデータ領域が大きくなってくると、32 ビットアプリケーションが利用できる 4G バイト仮想アドレス空間全体をプログラムが占有するようになります。

図 1–1 典型的なパフォーマンスと問題サイズ曲線

問題サイズの増加によるパフォーマンスの低下を示す折れ線グラフを示しています。

32 ビット仮想アドレスの限界を超えても、アプリケーションはより大きな問題サイズを取り扱うことができます。一般的には 32 ビット仮想アドレスの限界を超えると、一次メモリーと二次メモリー (たとえばディスク) に、アプリケーションデータセットを分割します。 ただし、ディスクドライブにデータを転送するのは、メモリーどうしの転送に比べて非常に長く時間がかかります。

今日では、多くのサーバーが 4 G バイト以上の物理メモリーを取り扱うことができます。高性能のデスクトップコンピュータも同様の傾向にあります。32 ビットプログラムは一度に 4 G バイト以上を直接アドレス指定することはできません。64 ビットアプリケーションでは、64 ビット仮想アドレス空間を使用して 18 エクサバイト (1 エクサバイトは約 10 の 18 乗バイト) まで直接アドレス指定することができます。こうして、サイズが大きな問題を一次メモリー内で直接取り扱うことができます。アプリケーションがマルチスレッド化されていてスケーラブルな場合は、プロセッサを追加してアプリケーションのスピードをさらに上げることができます。そのようなアプリケーションのパフォーマンスは、コンピュータ上の物理メモリーの量によってのみ制限されます。

以下のように、広範囲の種類のアプリケーションにとって、大きな問題を物理メモリー内で直接取り扱うことができるというのは、64 ビットマシンの主要な性能上の特長です。

「大きなアドレス空間」以外の利点

64 ビットアプリケーションを作成する理由として、次のことを挙げることができます。