web-dev-qa-db-ja.com

Windowsで4 GBのRAMのうち約3.5 GBしか表示されないのはなぜですか?

最近、コンピュータのRAM= 4 GBにアップグレードしました。32ビットWindowsインストールでは、3574 MBのメモリしか表示されません。WindowsにRAMの全容量を使用させるにはどうすればよいですか?

89
ala

次のことはできません。

参照 おい、私の4ギガバイトのRAMはどこ?

メモリとデバイスを32ビットのアドレス範囲に収めたい場合:使用可能な4GBのアドレス空間のすべてをメモリに割り当てることはできません。
では、外出してPCに4GBのメモリを購入するとどうなるでしょうか。
メモリマップにIOの穴があります。 (現在、それは総アドレス空間の25%にすぎませんが、それでも大きな穴です。)したがって、メモリの下位3GBが利用可能になりますが、最後の1GBに問題があります。

唯一の実用的な解決策は、64ビットオペレーティングシステムをインストールすることです。 Windows Vista以降では、32ビットと64ビットのライセンスキーは交換可能です。 64ビットバージョンのオペレーティングシステム用のWindowsインストールメディアを入手できる場合は、元のライセンスキーを使用して再インストールできます。

71
VonC

まず、Windows XP(32ビット)は4 GBのみをサポートします。これはWindows XPだけに適用されるわけではありません。代わりに、 32ビットデスクトップWindows -PAEおよび32ビットLinuxシステムに適用されます。多くの32ビットWindows Serverエディションは、リンクされた記事に従って4GB以上をサポートしています。32ビットWindows XPを使用している場合、4 GBを超えることは決してありません。実際にインストールされています。

から3GB-not-4GB RAM problem (Microsoft MSDNブログ):

ずっと前に行われたアーキテクチャ上の決定により、4GBの物理的なRAMがインストールされている場合、Windowsは物理的な4GBの一部のRAM (インストールされているデバイス、マザーボードのチップセット、およびBIOSに応じて、2.75GBから3.5GBの範囲)。

この動作は、「メモリマップIO予約)によるものです。これらの予約は、物理アドレススペースをオーバーレイし、それらの物理アドレスをマスクして、作業メモリに使用できないようにします。これは、OSに依存しません。マシンで実行されています。

4GB(32ビットを介してアクセス可能な最高のアドレス)未満のアドレス空間の重要なチャンクは、システムハードウェアで使用するために予約されます。

  • BIOS – ACPIおよびレガシービデオサポートを含む
  • ブリッジなどを含むPCIバス.
  • PCI Expressサポートは、グラフィックカードにインストールされているメモリに応じて、少なくとも256MB、最大768MBを予約します。

これが意味することは、典型的なシステムでは、OSがアクセスできないハードウェアの使用のために予約されている4GB未満のアドレス空間が256MBから1GBの間である可能性があります。 Intelチップセットの仕様は、どのアドレス範囲がデフォルトで予約されるかを説明するのに非常に優れており、場合によっては1.5GBが常に予約されているため、Windowsにアクセスできないことを指摘しています。

ソースをチェックアウトすれば、より多くの情報があります。ただし、 の手順 に従っている場合は、インストールされている8 GB全体を利用できる可能性があります。

個人的な経験から言えば、これは新しい問題ではありません。 Vistaが最初にリリースされたときに4 GBの32ビットWindows Vistaシステムを構築した数年前に、この同じ問題に遭遇しました。これと同じトピックに関連するフォーラム投稿がオンラインで無数にありました。

また、Microsoft KB 929605もお読みください- Windows Vistaの[システム情報]ダイアログボックスで報告されるシステムメモリは、4 GBのRAMがインストールされている場合、予想よりも少なくなります

8
SgtOJ

古いマザーボードは4Gbの物理RAMしかサポートしていませんでしたが、最近のマザーボードはもっと多くをサポートしています。 Intel P4 CPUは常に4Gb以上をアドレス指定できます(物理アドレス拡張、またはPAEと呼ばれるものを使用することにより)

Microstoftは、オペレーティングシステムのすべての32ビットバージョンの「クライアント」バージョンで4 Gbを超える物理アドレススペースをサポートしないという「マーケティングの決定」を行いました。 32ビットサーバーのバージョンはもっと多くをサポートできることに注意してください-32ビット「エンタープライズエディション」では最大128Gbを信じます)-これがまったく同じハードウェア上の「適切な」32ビットOS(Linuxなど)が常にすべてにアクセスできる理由です物理RAM。

(付記-32ビットWin7ユーザーはこの「愚かな」制限にうんざりして、カーネルを「ハッキング」して完全な物理的なRAMへのアクセスを許可しました。言うまでもなく、これはライセンスに違反し、米国では実際に違法(DCMA)

Windows XP 32ビットは、ドライバーが使用するlo 4Gbアドレス空間の一部を「予約」します。物理RAMを4Gbを超えて(PAEを使用して)「アドレス指定」できない理由はありませんが、Windowsの当時の多くの古いドライバーXP Proは失敗し、 「BSOD」エラーが発生します(最新のドライバーはPAEを正しく使用します。理論的には、2Gbグラフィックカードをサポートする場合でも、合計で約32Mbを超える「lo」スペースページ(「ウィンドウ」として)が必要になる理由はありません( 2GBは「こんにちは」スペース、つまり4GBマークより上にあります)

XP SP2では、MSは、BSODを排除するためにドライバー用に「予約」されたアドレススペースの量をほぼ3倍にし、それ以来ずっと(MSはドライバーを「デバッグ」したくない==それら代わりに64ビットOSを販売したい)。実際のハードウェアは、この「予約済み」スペースにほとんど影響を与えません。

つまり、4Gb以上の物理RAMがある場合、XP Pro sp2 +で表示されるのは約3.25Gbです。残りは、さまざまなRAMディスクドライバを使用してアクセスできます( MSはもちろん)= XP Proで「不可視アドレススペース」または「高4GBスペース」を使用するものを探します)。「仮想」の一部として「欠落」.75Gbを使用しますメモリはあなたのシステムをスピードアップすることができます...

/ 3Gスイッチを使用すると、32ビットアプリケーションが32ビットOSで最大3Gbにアクセスできるようになります(.exeヘッダーにLargeAddressAwareフラグが設定されている場合-この場合、64ビットOSでは最大4Gbにアクセスできます)。 XPでは、/ USERVAも指定して、OSがRAMから「押し出される」のを停止する必要があります:-)

3
steve b

32ビットWindows XPを使用している場合、それは不可能です。追加のRAMを利用するのに十分なアドレス空間がないため

4 GB以上のRAMをサポートしているため、64ビットバージョンのWindowsにアップグレードするのが最善の解決策です。

3
Shaharyar

他の人が言ったように、それは不可能です。

説明:

各メモリにはアドレスがあります。オペレーティングシステムはアドレスの長さを指定します。古いオペレーティングシステムの場合、アドレスの長さは32ビットであり、2 ^ 32(4 294 967 296)のアドレスしか使用できません。さて、その数を見ると、オペレーティングシステムは4 GBをサポートしているように見えるかもしれませんが、内部メモリを持つ他のすべてのハードウェア(最も重要なのは、ビデオカードのビデオRAM)もそのアドレススペースにマップされます。

それは、1,200,000の6桁の電話番号を配布しようとしているようなものです。

3
drby

完全な4GBを使用する場合、唯一のオプションは64ビットオペレーティングシステムにアップグレードすることです。

  • Windox XP 64
  • Windows Vista 64
  • Linux
  • Max OS/X(OK、そのために新しいPCが必要になることもあります)

通常のWindows XPは32ビットのみであり、これによりメモリが最大3.5GBに制限されます。このトピックの詳細については、VonCが投稿したリンクを確認してください。

0
FrankS

統合グラフィックスを使用している場合は、それを下げることができます。これは、システムがシステムRAMのより多くのアドレスを指定できることを意味します。

しかし、最善の解決策は明らかにx64 OSを入手することです。

とにかくあまりにも理由はありません。ほとんどのプログラムはx64で動作し、XP/Vista/7はx86エミュレーションレイヤーを備えています。 可能性があるが問題であるというその単なるドライバ。

0
Blam