4 GB の RAM が搭載されている場合、Windows Vista の [システム情報] ダイアログ ボックスで報告されるシステム メモリが予想より小さい

現象
コンピュータに 4 GB のランダム アクセス メモリ (RAM) が搭載されている場合、Windows Vista の [システム情報] ダイアログ ボックスで報告されるシステム メモリが予想より小さくなります。

たとえば、4 GB (4,096 MB) のメモリが搭載されているコンピュータの [システム情報] ダイアログ ボックスで、システム メモリが 3,120 MB であると報告されることがあります。

: システム メモリの容量を表示するには、以下のいずれかの手順を実行します。
  • [スタート] ボタンをクリックし、[検索の開始] ボックスにシステムと入力し、[プログラム] ボックスの一覧の [システム情報] をクリックします。
  • コントロール パネルの [システム] をダブルクリックします。
  • [スタート] ボタンをクリックし、[コンピュータ] を右クリックし、[プロパティ] をクリックします。
  • Windows Vista の [ウェルカム センター] ウィンドウで [詳細を表示します] をクリックします。
: Windows Vista Service Pack 1 (SP1) では、ユーザー インターフェイス (UI) のコンポーネントでメモリが報告される方法が変更されています。たとえば、Windows Vista SP1 UI の一部のコンポーネントでは、合計で 4 GB 以上の物理メモリがコンピュータに搭載されている場合に報告されます。

Windows Vista Service Pack 1 でメモリが報告される方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
946003 Windows Vista SP1 では、システムに 4 GB のメモリが搭載されている場合、システム メモリ (RAM) が 4 GB と報告される
原因
この現象は、特定のハードウェアおよびソフトウェアの要因による、正常な結果です。

標準的なコンピュータのさまざまなデバイスでは、メモリマップ アクセスを使用する必要があります。これは、メモリマップ I/O (MMIO) と呼ばれます。32 ビットのオペレーティング システムではこの MMIO 領域を使用するため、最初の 4 GB のアドレス空間の中にこの MMIO 領域が存在する必要があります。

たとえば、256 MB のメモリを内蔵したビデオ カードがある場合、そのメモリは、最初の 4 GB のアドレス空間内にマップされる必要があります。4 GB のシステム メモリが既に搭載されている場合、そのアドレス空間の一部がグラフィック メモリのマッピングによって予約されます。グラフィック メモリのマッピングによりシステム メモリの一部が上書きされます。この状況により、オペレーティング システムで利用可能なシステム メモリの総容量が減少します。

利用可能なシステム メモリの減少量は、コンピュータにインストールされているデバイスによって異なります。ただし、ドライバの互換性の問題を回避するため、32 ビット版の Windows Vista で利用可能なメモリの合計は、3.12 GB に制限されています。発生する可能性のあるドライバの互換性の問題については、「詳細」を参照してください。

コンピュータにインストールされているデバイスの数が多い場合、利用可能なメモリは、3 GB 以下に減少することがあります。ただし、32 ビット版の Windows Vista で利用可能なメモリの最大値は、通常 3.12 GB です。
回避策
4 GB のメモリが搭載されているコンピュータ上の Windows Vista で 4 GB のメモリをすべて使用するには、コンピュータが以下の要件を満たしている必要があります。
  • チップ セットが少なくとも 8 GB のアドレス空間をサポートしている必要があります。この要件を満たすチップ セットには以下のものがあります。
    • Intel 975X
    • Intel P965
    • Socket 775 上の Intel 955X
    • Socket F、Socket 940、Socket 939、または Socket AM2 を使用する AMD プロセッサをサポートするチップ セット (CPU にメモリ コントローラがある AMD ソケットと CPU の組み合わせを含む)
  • CPU が x64 命令セットをサポートしている必要があります。AMD64 CPU および Intel EM64T CPU はこの命令セットをサポートしています。
  • BIOS がメモリの再マップの機能をサポートしている必要があります。メモリの再マップの機能により、Peripheral Component Interconnect (PCI) 構成領域で以前上書きされたシステム メモリのセグメントを 4 GB のアドレス ラインに再マップできます。この機能は、コンピュータの BIOS 構成ユーティリティで有効にする必要があります。使用しているコンピュータの製品マニュアルで、この機能を有効にする方法についての説明を参照してください。消費者志向の多くのコンピュータでは、メモリの再マップの機能がサポートされていない可能性があります。マニュアル、または BIOS 構成ユーティリティでは、この機能について基準となる標準的な用語を使用していません。このため、メモリの再マップの機能を有効にする設定があるかどうかを確認するために、さまざまな BIOS の構成設定の説明を読むことが必要な場合があります。
  • x64 (64 ビット) 版の Windows Vista を使用している必要があります。
コンピュータの製造元に問い合わせて、使用しているコンピュータがこれらの要件を満たしているかどうかを確認してください。

: コンピュータに搭載されている物理 RAM がチップ セットでサポートされているアドレス空間と同じ場合、オペレーティング システムで利用可能なシステム メモリの合計は、搭載されている物理 RAM よりも常に小さくなります。たとえば、コンピュータに 8 GB のアドレス空間をサポートする Intel 975X チップ セットが搭載されているとします。8 GB の RAM を搭載すると、PCI 構成の要件により、オペレーティング システムで利用可能なシステム メモリが減少します。この場合、PCI 構成の要件により減少するオペレーティング システムで利用可能なメモリの容量は、およそ 200 MB ~ 1 GB になります。減少量は、構成により異なります。
詳細

PAE モードに起因するドライバの互換性の問題

データ実行防止 (DEP) に関連するドライバの互換性の問題は、通常、物理アドレス拡張 (PAE) モードに起因する互換性の問題です。

: PAE は、ハードウェア DEP をサポートするプロセッサを搭載しているコンピュータでのみ必要です。

DEP が原因で、コード生成を実行するドライバ、または他の技法を使用してリアル タイムで実行可能コードを生成するドライバで互換性の問題が発生する可能性があります。これらの問題が発生するドライバの多くは修正されました。DEP は、64 ビット版の Windows 上のドライバでは常にオンになっているため、通常はこれらのドライバで互換性の問題が発生していました。ただし、すべてのドライバが更新され、PAE モードに起因する互換性の問題が修正されているという保証はありません。しかし、これらの技法を使用するドライバはほとんどありません。通常、DEP のみが原因でドライバの互換性の問題が発生することはありません。

ドライバの互換性の主要な問題は、32 ビット コンピュータで PAE モードを実行したときに発生する可能性があります。PAE モードにより、プロセッサで 4 GB を超えるメモリを使用できます。PAE メモリ ページング スキーマと非 PAE メモリ ページング スキーマの主な違いは、PAE モードでは追加のレベルのページングが必要な点です。PAE モードでは、2 つのレベルのページングではなく、3 つのレベルのページングが必要です。

PAE モードが有効になっている場合、デバイスで 64 ビット アドレス指定を実行できないことがあるため、一部のドライバが読み込まれないことがあります。または、PAE モードで 4 GB を超えるメモリが必要であることを前提としてドライバが開発されることがあります。このようなドライバは、PAE モードでは常に 64 ビットのアドレスを受け取るが、ドライバまたはデバイスでそのアドレスを解釈できないと想定して開発されています。

他にも PAE モードで読み込むことができるドライバもありますが、システム ページ テーブル エントリ (PTE) が直接変更されるためにシステムが不安定になります。これらのドライバは、32 ビットの PTE を想定していますが、PAE モードでは、64 ビットの PTE を受け取ります。

ドライバで発生する最も一般的な PAE の互換性の問題には、DMA (Direct Memory Access) 転送とマップ レジスタの割り当てがあります。DMA をサポートするデバイス (通常 32 ビットのアダプタ) の多くは、64 ビットの物理アドレス指定を実行できません。これらのデバイスが 32 ビット モードで実行されると、デバイスはすべての物理アドレス空間を指定できます。PAE モードでは、データを 4 GB を超える物理アドレスに格納できます。この状況で、これらの制約を持つデバイスが機能するようにするために、Microsoft Windows 2000 Server 以降のバージョンの Windows では DMA トランザクションのダブル バッファリングが提供されています。Windows 2000 Server 以降のバージョンの Windows では、マップ レジスタで指定される 32 ビット アドレスを提供することにより、これを実現します。デバイスは、32 ビット アドレスに対して DMA トランザクションを実行できます。カーネルはドライバに対して提供される 64 ビット アドレスにメモリをコピーします。PAE モードを無効にしてコンピュータを実行すると、32 ビット デバイスのドライバで、システム メモリをマップ レジスタに割り当てる必要がありません。これは、すべてのデバイスおよびドライバが 32 ビット アドレス空間に含まれるため、ダブル バッファリングが必要ないということを示しています。64 ビットのプロセッサベースのコンピュータ上で 32 ビット デバイスのドライバをテストした結果、テストしたクライアントの DMA が有効なドライバでは、通常無制限のマップ レジスタが想定されていることが証明されました。

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
プロパティ

文書番号:929605 - 最終更新日: 07/09/2011 01:42:00 - リビジョン: 3.1

Windows Vista Business, Windows Vista Enterprise, Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter, Windows Vista Ultimate, Windows Vista Enterprise 64-bit edition, Windows Vista Home Basic 64-bit edition, Windows Vista Home Premium 64-bit edition, Windows Vista Ultimate 64-bit edition, Windows Vista Business 64-bit edition

  • kbtshoot kbprb KB929605
フィードバック