Windows XPの物理モジュールへのメモリアドレスのマッピング
-
30-09-2019 - |
質問
IntelのNehalem MicroarchitectureとTriple Channel RAMに基づいて、デュアルプロセッサを備えたワークステーションで32ビットWindows XPを実行する予定です。 XPは4 GBのRAMに制限されていますが、私の理解では、4 GB以上がインストールされて機能しますが、4 GB(またはわずかに少ない)しか露出しません。
私の質問は、6 GBのRAMが6つの1 GBモジュールにインストールされていると仮定して、どの物理4 GBが実際にアドレス空間にマッピングされますか?
特に:
すべてのメモリチャネルを利用して、6つの1 GBすべてのモジュールを使用しますか? (私の推測はイエスであり、グループ内の個々のモジュールへのマッピングがハードウェアで発生することです。)
2 GBのアドレススペースを2つのNUMAノードのそれぞれにマッピングしますか(各プロセッサに独自のメモリインターフェイスがあるため)、または1つのプロセッサが3 GBのRAMに迅速にアクセスできますが、もう1つは1 GBしかありませんか?
ありがとう!
解決
この質問はで回答されました スーパーユーザー. 。ここには他の回答がないので、関連する情報を簡単に見つけることができるように、私自身の質問に答えています。
質問が尋ねられて以来、私も出会った このブログ投稿 Mark Russinovichによると、Windows XPカーネルがメモリを処理する方法を説明します。
結論として、何が起こるかは、カーネルがPAEを認識しているにもかかわらず、すべての物理メモリアドレスを32ビットに切り捨て、最低のもののみを意味すると思われます。 物理的 4 GBのRAMが使用されます。これは、ハードウェアからメモリモジュールによってマッピングされ、最初のモジュールトリプレット全体(合計3 GB)と2番目のトリプレットの3分の1(3つのモジュールすべてに広がる - 合計1 GB)に対応します。 。
したがって、すべてのメモリチャネルが悪用されますが、メモリの量はnumaノード間でバランスが取れません。