今回は、64bit版Windows OSのメリットについて列挙してみよう。
64bit版Windows OSを利用する最大のメリットは、4Gbytes以上の物理メモリを、(特別な仕掛けなしに)利用できるという点にある。最近のコンピュータでは4Gbytes以上の最大物理メモリをサポートしているものが多く、最初から4Gbytesかそれ以上のメモリを搭載したシステムも販売されている。またシステムの寿命を考えると、将来、強化するためにメモリを(空きスロットいっぱいまで)増設することもあるだろう。
だがシステムに4Gbytes以上の物理メモリを搭載しても、条件によってはそのすべてを利用できず、いくらか無駄になることがある。例えば8Gbytesのメモリを搭載しても、最大で4Gbytesしか利用できないといったことがある。利用できるメモリ・サイズが制限される要因にはいろいろなものがあるが、例えばOSの仕様上の制限、CPUの仕様上の制限、チップセットの仕様上の制限、システムの設計上の制限(メモリ・ソケット数など)がある。これらが組み合わさり、最も厳しい制限に合わせて利用可能な最大メモリ・サイズが決まる。以下、それらの制限についてみていこう。
Windows OSには、その目的や要求仕様などに合わせて、サポートできる最大メモリ・サイズが制限されている。32bit版のWindows OSの場合、クライアント向けは最大で4Gbytes、サーバ向けは4Gbytes(Standard Edition)から64Gbytes(Enterprise Edition)程度になっている。これに対して、最初から大容量のメモリをサポートすることを目的として開発されている64bit版Windows OSでは、8Gbytesとかそれ以上のメモリがサポートされている。
OSがサポートしている最大物理メモリはWindows OSのバージョンやエディション、Service Packなどによっても異なるが、例えば次のようになっている。完全なリストについてはTIPS「Windows OSでサポートされている最大物理メモリ・サイズは?」を参照していただきたい。
Windows OS名とそのエディション | 32bit版(x86) | 64bit版(x64) | |
---|---|---|---|
Windows XP | |||
Windows XP Professional | 4Gbytes | ― | |
Windows XP Professional x64 Edition | ― | 128Gbytes | |
Windows Vista | |||
Windows Vista Home Basic | 4Gbytes | 8Gbytes | |
Windows Vista Ultimate | 4Gbytes | 128Gbytes | |
Windows 7 | |||
Windows 7 Starter | 2Gbytes | ― | |
Windows 7 Home Premium | 4Gbytes | 16Gbytes | |
Windows 7 Professional | 4Gbytes | 192Gbytes | |
Windows 7 Ultimate | 4Gbytes | 192Gbytes | |
Windows Server 2003 | |||
Windows Server 2003 R2/SP1, Standard | 4Gbytes | 32Gbytes | |
Windows Server 2003 R2/SP1, Enterprise | 64Gbytes | 1Tbytes | |
Windows Server 2003 R2/SP1, Datacenter | 128Gbytes | 1Tbytes | |
Windows Server 2008 | |||
Windows Server 2008 Standard | 4Gbytes | 32Gbytes | |
Windows Server 2008 Enterprise | 64Gbytes | 2Tbytes | |
Windows Server 2008 Datacenter | 64Gbytes | 2Tbytes | |
Windows Server 2008 R2 | |||
Windows Server 2008 R2 Standard | ― | 32Gbytes | |
Windows Server 2008 R2 Enterprise | ― | 2Tbytes | |
Windows OSでサポートされている最大物理メモリ・サイズ(抜粋) CPUアーキテクチャやWindows OSのエディション、Service Packレベルなどによって、利用可能な最大物理メモリ・サイズは異なっている。サポートするメモリ・サイズが増えると内部的な管理用領域なども多く必要になるため、全体的な性能なども考慮して最大サイズが決められている。ここではx86アーキテクチャ(32bit OS)とx64アーキテクチャ(64bit OS)における制限をまとめている。これ以外にもItaniumアーキテクチャ(IA-64)向けの64bit版Windows OSもあるが、ここでは取り上げない。サイズ欄が「―」となっているものは、該当するエディションの製品がないことを表す(Windows Server 2008 R2以降のサーバOSは64bit版のみの提供となる)。より完全な表についてはTIPS「Windows OSでサポートされている最大物理メモリ・サイズは?」を参照していただきたい。 |
例えば32bit版のWindows Server 2003 R2/SP1, Enterprise Editionでは64Gbytesまでサポートされていることからも分かるように、32bit OSだからといって4Gbytesに制限されているわけではない。だがクライアント向けの32bit版Windows OSでは、過去との互換性やクライアント向けPCの仕様なども考慮したためか、このような仕様になっている。もともと4Gbytesまでしかサポートしていなかった古いドライバやアプリケーションなどを利用して、トラブルになることを避けるためであろう。
結局、クライアント向けWindows OSで4Gbytes以上のメモリを利用したければ、64bit版を利用する必要がある。
64bit版Windows OSを利用するためには、CPUが64bit命令セットをサポートしている必要があるが、64bit命令セットを備えるCPUがすべて4Gbytes以上のメモリをサポートしているわけではない。例えばIntel社のAtom 330というCPU(低消費電力のデュアル・コアx86アーキテクチャのCPU)では、最大でも4Gbytesの物理メモリしか利用できない(シングル・コアのAtom 230は8Gbytesまでサポート)。このようなCPUを使ったシステムでも64bit版Windows OSをインストールすることは可能だし、64bitアプリケーションを利用できるが、物理メモリは最大でも4Gbytesまでに制限される(後述する管理外メモリも利用できない)。
CPUやOSが4Gbytes以上の物理メモリをサポートしていても、システム(チップセット)におけるメモリの割り当てメカニズムの都合などにより、32bit版Windows OSを利用する限り、4Gbytesのメモリをすべて利用することができない。システムにもよるが、実際には3〜3.5Gbytesが32bit版Windows OSで利用できる物理メモリの限界となっている。これはPCIデバイスなどのために、アドレス空間の一部が予約されているためである。図にすると、次のようになる。
一番左端にあるのが実際のシステムのメモリ・マップであり、CPUから見た物理アドレス空間を表している。アドレス空間がいくつかに分かれており、メモリ領域以外にも、DOS互換領域やデバイスなどに割り当てられている。最下位の1MbytesはDOS互換用の領域であり、常にこの位置に置かれている。
アドレス=4Gbytesの直下にはPCIデバイスなどで利用するための領域が数百Mbytes予約されている。例えばシステムにグラフィックス・カードを装着すると、CPUからはこの領域を使ってカード上のグラフィックス・メモリへアクセスできる。このデバイス用領域は32bit版のOSやプログラムからでもアクセスできるように、必ずこの位置に確保されることになっているが、実際にどのアドレスから始まるのかはシステム依存である。3Gbytes〜3.5Gbytesのアドレス位置から始まっているシステムが多い。
このような事情があるため、OSから利用可能なメモリのアドレス空間は、この領域を境にして、4Gbytes以下の領域と4Gbytes以上の領域の2つに分かれている。例えばシステムに8Gbytesのメモリを搭載すると、まず4Gbytes以下の領域にマップされ、残りのメモリは4Gbytes以上の領域にマップされる。
さてこのようなアドレス空間を持つシステムに対してWindows OSをインストールすると、どうなるであろうか。結果はWindows OSの種類によって異なるが、クライアント向けの32bit版Windows OSでは4Gbytes以下の領域にあるアドレスしかアクセスできない。デバイスに予約されている領域を除外すると、利用可能なメモリは4Gbytesよりも少なく、最大でも3〜3.5Gbytes程度に制限される*1。
*1 管理外メモリを利用する
4Gbytesよりも上位にあるメモリ領域は32bit版Windows OSではアクセスできないため、「(OSの)管理外メモリ」などと呼ばれている。これを使ってRAMディスクを作成するといった活用方法もあるが(次の記事参照)、システムが休止状態になっても、管理外メモリは内容が保存されないなどの問題があるので、その利用には注意が必要である。またRAMディスクとして利用できるだけであり、64bit版Windows OSの代わりになるようなものでもない。
これに対して64bit版Windows OSを利用すれば、メモリ・マップの状態に関わらず、システムに搭載されたすべてのメモリを利用することができる。メモリ・マップ上ではメモリ領域が2つに分かれているが、CPUのページング機構を使ってメモリ配置を再構成するため、このような場合でも問題なくすべての実装メモリをOSから利用できる。
つまり、システムに搭載された4Gbytes以上のメモリをすべてWindows OSで利用したければ、64bit版のWindows OSが必須ということである。
また、メモリが4Gbytesしか搭載されていないシステムでもいくらかの管理外メモリが利用できることがあるが(デバイスがマップされた領域に重なっていた部分が管理外メモリとしてリマップされている。システムにもよるが、500Mbytes〜1Gbytes程度になる)、64bit版のWindows OSをインストールすれば、このような管理外メモリも通常のメモリと同様に扱うことができる。
ただし先ほどのAtom 330のように、もともと4Gbytesの物理アドレス空間しか持たないCPUやシステムには管理外メモリは存在しないので、最大でも3〜3.5Gbytesまでのメモリしか扱えない。このような場合でも64bit版のWindows OSをインストールして利用してもよいが、32bit版よりも多くのメモリが使えるという恩恵は受けられないことになる。それ以外のメリットがあるなら、64bit版のWindows OSをインストールして利用してもよいだろう。例えばWindows Server 2008 R2(これは64bit版しかない)や、64bit版のアプリケーションの評価などが考えられる。もっとも、このような安価なCPUはIntel-VTやAMD-Vといった仮想化支援機能も持っていないものが多いので、Hyper-Vのような仮想環境を使ってのテストはできないと思われる。
32bit版と64bit版のWindows OSでどのようにメモリが認識されるかを見ておこう。これは12Gbytesのメモリを搭載したシステムに、2種類のWindows OSをインストールした例である。32bit版のWindows OSでは最大でも4Gbytes(デバイスのための予約領域を除外すると、3Gbytes)しか利用できないのに対し、64bit版ではインストールされているメモリがすべて利用されている。
■32bit版Windows 7 Ultimateの例
■64bit版Windows 7 Ultimateの例
実際に利用可能なメモリ・サイズの詳細はタスク・マネージャでも確認できる。
■32bit版Windows 7 Ultimateの例
■64bit版Windows 7 Ultimateの例
Copyright© Digital Advantage Corp. All Rights Reserved.