Web教材一覧ハードウェアとソフトウェア

32ビットOSと64ビットOS


32ビット/64ビット

32ビット/64ビットというとき、ハードウエアとOSの二つの意味があります。
 ハードウエアでの64ビットCPUとは、CPUのレジスタ、アドレスバス、データバスなどが64ビットだということです。64ビットOSとは、64ビットCPUを前提に設計されたOSのことです。
 64ビットCPUは、32ビットOSでも動作する互換性機能をもっているので、32ビットOSを搭載することができます。しかし、32ビットCPUに64ビットOSを搭載することはできません。

64ビットOSへの流れ

現在のOSは64ビットが主流ですが、32ビットのOSも残っています。特に以前から使ってきた周辺機器やソフトウェアには32ビットOSを対象に作成されたものもあり、64ビットOSでは正常に動作しないことがあります。
 それでは困るので、多くのOSでは、64ビット版と32ビット版を提供して、利用者が選択できるようにしていますし、64ビット版ではデフォルトで32ビットのエミュレーション機能を組み込んであり、限定的ですが、32ビットの機器やソフトウェアが動作します。

しかし、OSの内部に影響する周辺機器のデバイスドライバやアンチウイルスソフトなどは、エミュレートが困難なことがあります。それに関係する機器やソフトウェアは使えなくなります。機器やソフトウェアによっては、ベンダが64ビット対応のデバイスドライバやバージョンを提供しているので、それらをインストールして使うことができます。

最大アドレスと最大容量

CPUがメモリ(内部記憶装置)に記憶されているデータを読み込み加工することで処理が行われます。メモリのどこのデータかを示すのが、CPUのレジスタでのアドレス(番地)です。32ビットOSでは、アドレスを32ビットで扱うので、232個のアドレスを表現でき、1つのアドレスに対して1バイトを割り振っているので、アドレスで示せるメモリ容量は約4GBになります。それ以上の容量のメモリを搭載しても4GBしか利用できません(実際には3GB程度)。
 それに対して、64ビットOSでは、264≒16EB(16x10TB)という無限に近い値になり、メモリ容量の制限はなくなります。
 HDDの容量も同様です。HDDでは1アドレスが1セクタに対応し、通常のHDDでは1セクタが512バイトですから、32ビットOSでは≒2TB、64ビットOSでは理論的には16x512EBになります。
 しかし、実際にはファイル管理システムやマザーボードなどを対応させる必要があり、現実には、64ビットOSでも最大メモリ容量は2TB、最大HDD容量は16TB程度になっています。

メモリ消費量の増加

64ビットOSでは、ポインタサイズの増大と、他のデータ型のサイズ増大、境界整列のためのパディングなどにより、同じプログラムであっても必要とするメモリ量は増加します(30%程度?)。そのため、64ビットOSにするときは、メモリを増強しておくことが望まれます。

処理速度への影響

処理速度は、「どちらともいえない」のが一般的な評価です。ソフトウェアの特徴により、速くなったり遅くなったりする実測例があるそうです。
むしろ、64ビットOSにすることにより、メモリ容量を大きくできるので、ヘビー状況では、仮想記憶装置とのスワッピング頻度が少なくなり、スループットが短くなる効果の方が大きいようです。