- WebとPCのメモ帳
- 3GBの壁
- 3GBの壁についてのまとめ(前編)
3GBの壁についてのまとめ(前編)
- Entry Time
- 2007 11/28 00:33 (Wed)
- Category
- 3GBの壁
PCのメモリを4GB搭載(or増設)したのに、4GBフルに認識しない現象のまとめです。
ご注意
これは私が様々なWebsite、Blog、掲示板等をあくまで個人的に回って集めた情報なので、内容等を保証するものではありません。書いてある情報通りに行動して何かしらのトラブル等が起こったとしても、当方では責任はもてません。あくまで自己責任でお願いします。(でも間違っている部分があったら指摘してくださると幸いです。)
なお、記述してある内容は一般的な(x86アーキテクチャの)Windowsマシンを対象にしています。
一般的なPCはメモリを4GBフルに使うことはできない
現在メモリの値段はどんどん下がっており、ハードウェア(マザーボード)が許す限りのメモリを搭載することは、すでに非現実的な話ではありません。メモリはあればあるだけ快適になると一般的には考えられていますし、価格の低下はそれを十分許す状況を作っています。
しかしながら、それを阻害しているのは32bitOS(Windows)の4GBの壁です。32bitのOSはメモリを4GBまでしか扱えず、それ以上搭載してもOSから認識することはできません。(4GBに制限される理由は2の32乗が4GB[4,294,967,296Byte]なため。)最新のWindows Vistaでも32bit版のメモリサポートは4GBまでとなっています。
と、ここまでは大概どこにでも書いてある常識的なことです。これはWindowsの「仕様」にもきちんと4GBまでのサポートと書かれているので、例えば6GBメモリを積んですべてを認識しなくても当たり前となります。
実際に問題になるのは、仕様の限界である4GBを搭載しても実際のWindowsからは4GBと認識してくれないことです。当然4GBフルに認識しないだけではなく、実際に使用することもできません。ハードウェアの構成によりますが、基本的に認識される容量はは3GB前後に制限されます。
一般的にこれを「3GBの壁」と呼びます。
「3GBの壁」FAQ その1
ここから先は煩雑な文章を避けるためにFAQ形式でまとめていきます。
メモリを4GB装着したが、Windowsからは4GBより少なく認識される(3GB+α程度)
正常な挙動です。一般的に使用されている32bitのWindows(2000、XP、Vista)ではそうなります。
特殊なドライバやソフトを入れることによって、4GBフルに認識できるようになりますか?
現状ではそのような物は提供されていませんし、される予定もないようです。つまり不可能です。
Windows Vista SP1からは4GBと表示されるようになりますが、実際に使用することはできません。あくまで表示が4GBになるだけです。
これはハードウェアの問題ですか?ソフトウェア(OS)の問題ですか?
両方が問題の場合がありますが、主にOSの問題です。新しいミドルレンジ以上のデスクトップ自作PCを使っているなら、OS(Windows)の問題である可能性がかなり高いといえます。(詳しくは補足をご覧ください。)
OSで認識できるメモリ容量にPCごとで差があるのはなぜですか?
簡単にいってしまえば、PCに接続(搭載)されているデバイスが多ければ多いほど使用できる容量は減ります。自作マシンの場合は、構成がシンプルなマザーボードで拡張カードが少なければ使用できるメモリは増えます。
逆に多数のLANやIEEE1394やRAID、SLIなど構成がリッチになるほど、使用できるメモリは減ります。使用可能な容量は、環境によって2.7GB〜3.6GBぐらいの範囲で変動するようです。
4GBすべてを認識させるにはどうしたらいいですか?
ハードウェア(BIOS)が4GBをきちんと認識できているなら、64bit版のWindowsを使うのが一番確実です。具体的にはWindows XP Professional x64 EditionかWindows Vistaの64bit版です。VistaならHome BasicからUltimateまで64bit版が用意されています。
ただし、64bit版はハードウェア(CPU)が64bitに対応していないと使用できません。
また、現在のWindowsの主流はあくまで32bit版のため、同じWindowsでも64bitへのソフト・ハードの対応は決して良くありません。使っていたソフトが動かない、周辺機器のドライバが存在しない、Windowsが安定しないなど様々な問題が発生する可能性があります。一般的には、64bitへの移行はまだ時期尚早と考えられているといっていいでしょう。
32bitのWindowsで4GBを認識させる方法は本当にありませんか?
まったく存在しないわけではありません。下記の32bit Windowsは4GB以上のメモリをサポートしており、4GBフルに使用することが可能です。(その上でWindows上やBIOSの設定が必要になるでしょう。)
-
Windows 2000 Advanced Server
- 8GBまでサポート
-
Windows Server 2003 Enterprise Edition
- 32GBまでサポート
注意点は、同じOSでもエディションで使用できるメモリ量が違うところです。
一般的なWindows 2000や2000 Serverではメモリサポートが4GBまでです。また、Windows Server 2003でもStandard Editionでは同じように4GBまでしかサポートしていません。Windows Server 2003で確実に3GBの壁を突破したいなら、Enterprise Edition以上を選択する必要があります。詳しくはマイクロソフトのページのメモリ サポートと Windows オペレーティング システムを見てください。
ただこれらのOSはあくまでサーバ&企業向けであり、一般ユーザの入手性がよいとはいえません。値段も高く、そう簡単に導入できる類の物ではないでしょう。それに一般的なエディションではないため、ソフトやドライバの互換性の問題が発生する可能性もあります。
[追記]
Windows Server 2003 Standard Editionでも3GBの壁が打ち破れる(4GBすべてを認識できる)という情報もあります。技術的な情報は補足で書いていますが、現状では何ともいえません。 (4GB使えるという情報と使えないという情報量を比べた場合、圧倒的に後者の使えないという方が多い。)
現状ではあくまで4GB使うことができる「かも」しれない、という認識にしておいた方が無難だと思われます。「確実」に32bit Windowsで4GBをフルに使いたいなら、Enterprise Editionが間違いないでしょう。
ハードウェア(BIOS)上ですでに4GBと認識していません
そのハードウェア(マザーボード)が4GB以上のメモリに対応していない可能性があります。詳しくはPCやマザーボードの説明書で確認してください。
M/Bによっては全体の容量としては4GBのメモリをサポートしていても、メモリスロットが1GBのメモリまでにしか対応していないこともあります。また、BIOSの設定をデフォルトから変更して初めて4GB以上を認識できるものも存在するようです。
更新できるBIOSが提供されているなら、最新のものに更新してみるといいかもしれません。(もちろん、M/BのBIOSアップデートは自己責任でお願いします。)
OSを変更しない場合はどのような解決方法がありますか?
いずれにしても4GBをフルに使うことは不可能ですが、対応する方法は下記のものがあると思います。
3GBしか認識していないが、4GBのまま使用する
特にすることはないので楽です。
メモリの搭載量自体を3GBにする
今時のデュアルチャンネルシステムならば、1GB×2+512MB×2などの構成になるでしょう。ただし、場合によっては1GBメモリと512MBメモリの相性問題などが発生するかもしれません。
接続されているデバイスを減らす(or換える)
接続されているデバイスが多いほど認識するメモリが減少するので、不要な使っていないデバイスは外してしまいましょう。不要なオンボード機能をBIOSで無効にすることでも、認識するメモリを若干増やすことができるようです。
ビデオカードは、Nvidia製のGeforceが利用可能なメモリを多く減らすとの情報もあります。他社製のビデオカードに換えることによって、認識するメモリが増やせるかもしれません。
番外編
ここまで読んだが自分が使っているWindowsが32bitか64bitかわからない
99.99%ぐらいの確率で32bitのWindowsだと思われます。意図的に自分で64bit版を選択しない限りは、64bit版が入っていることはまずありません。また、64bit版のOSを使っている方はこんなところを読んではいないでしょう。
長くなりすぎたので技術的な話は後編で。
[追記 - 2007年 12/16]
後編の続きの補足を書きました。
[追記2]
アドレス空間がよくわからないという方は下記へ
あなたは混同していませんか? 複雑な「アドレス空間」のお話
- | Page Top |
- 3GBの壁についてのまとめ(後編) ≫






はてなアンテナに追加


