web-dev-qa-db-ja.com

Windowsの物理モジュールへのメモリアドレスのマッピングXP

32ビットWindows XPは、IntelのNehalemマイクロアーキテクチャに基づくデュアルプロセッサとトリプルチャネルRAMを搭載したワークステーションで実行する予定です。ただし、XPは制限されていますが、 4 GBのRAMまで、私の理解では、4 GBを超えるインストールで機能しますが、公開されるのは4 GB(またはそれよりわずかに少ない)のみです。

私の質問は次のとおりです。6GBのRAMが6つの1GBモジュールにインストールされているとすると、Windowsは実際にどの物理4GBをアドレス空間にマップしますか?

特に:

  • すべてのメモリチャネルを利用して、6つの1 GBモジュールすべてを使用しますか? (私の推測ではそうです。グループ内の個々のモジュールへのマッピングはハードウェアで行われます。)

  • 2 GBのアドレス空間を2つのNUMAノードのそれぞれにマップしますか(各プロセッサには独自のメモリインターフェイスがあるため)、または一方のプロセッサは3 GBのRAMに高速アクセスし、もう一方のプロセッサは1 GBしかありませんか?

ありがとう!

5
Josef Grahn

私の理解では、マザーボードコントローラは、仮想メモリの場所をRAMの物理アドレスにマッピングする処理を行います。トリプルチャネルメモリが機能し、ほとんどのマザーボードコントローラが機能するように、両方のCPUが連携して、RAM最初の3つに沿って等間隔に配置されたRAM =モジュール(3GBの最初の3セットを埋め、最初に連携)、最後のギガバイトは最後の3つのモジュールの間に配置されます。

この実装がなければ、「トリプルチャネル」メモリアクセスがないため、パフォーマンスが大幅に低下します。さらに、これがメモリの実装がソフトウェアではなくハードウェアベースである理由です。したがって、問題は発生しないはずです。

4GBの制限は、32ビットメモリアドレスのハードコードされた制限のためにのみ存在することに注意してください。ただし、ソフトウェアがこの制限を拡張できるようにする理由はありません。この制限は、ライセンスの問題、および ドライバーの非互換性の問題 (Josef Grahnに感謝)のために選択されています。この概念は、マザーボードとシステムRAMが単なる別のシステムコンポーネントであることを理解することで、より簡単に理解できます。ワーキングセットRAMに制限がある場合でも、実際には追加の2 GBにアクセスできますが、プログラムの実行は許可されません。

32ビット環境でオペレーティングシステムにアクセスできないRAMからRAMdiskを作成できるようにするソフトウェアが存在します。 SuperSpeed にはRamDiskというプログラムがあります。別のオプションは Vsuite Ramdisk ソフトウェアです(どちらもわずかに異なります-どちらがニーズに合っているかを確認するには、機能リストを参照してください)。

私は特にソフトウェアを宣伝していませんが、32ビットオペレーティングシステムのアドレス可能な範囲外でRAMの一部を利用できるようにする、私が遭遇したいくつかのソフトウェアです。 OSがRAMに直接アクセスするほど良くはありませんが、RAMベースのページファイルを使用する方がハードドライブベースのページファイルよりもはるかに優れています。ページファイルを使用したくない場合は、extra =を使用することもできます。 RAMスワップファイルを多用するプログラム(画像やビデオの編集など)用のディスク。

2
Breakthrough