2010-04-21 156 views
0

我計劃在基於英特爾Nehalem微體系結構和雙通道RAM的雙處理器工作站上運行32位Windows XP。儘管XP限於4 GB的內存,但我的理解是,它可以在安裝超過4 GB的情況下運行,但只會暴露4 GB(或稍微更少)。將內存地址映射到Windows XP中的物理模塊

我的問題是:假設在六個1 GB模塊中安裝了6 GB的RAM,Windows將實際映射到其地址空間中的物理4 GB?

特別是:

  • 它將使用所有六個1 GB模塊,把所有內存通道的優勢在哪裏? (我的猜測是肯定的,並且映射到組中的單個模塊發生在硬件中。)

  • 它是否會將2 GB的地址空間映射到兩個NUMA節點中的每一個節點(因爲每個處理器都有自己的存儲器接口),還是一個處理器可以快速訪問3 GB的RAM,而另一個只有1 GB?

謝謝!

+0

對於serverfault(serverfault.com)或超級用戶(superuser.com)可能更多的問題 – Patrick 2010-04-21 15:08:00

+0

感謝您的建議!我將在superuser.com上發佈此信息。不過,我認爲我會讓它保持在這裏,因爲這個問題是從編程和優化的角度出發的,對其他程序員來說可能很有趣。 – 2010-04-21 17:14:38

+0

如果啓用PAE,則可尋址超過4 GB的內存。較高的內存可能會稍微慢一點,單個進程仍然不能使用超過4 GB的內存。 – osgx 2011-02-18 16:28:01

回答

0

此問題的答案在SuperUser。由於這裏沒有其他答案,我正在回答我自己的問題,以便可以輕鬆找到相關信息。

由於問題被問到,我也遇到了Mark Russinovich的this blog post,解釋了Windows XP內核如何處理內存。

總之,看起來會發生什麼情況是內核,即使它是PAE知道的,會將所有物理內存地址截斷爲32位,這意味着將僅使用最低4 GB的RAM。這又由硬件映射到內存模塊,並且對應於整個第一模塊三元組(總共3GB)和第三三分之一(分佈在所有三個模塊 - 總共1GB) 。

因此,所有內存通道都會被利用,但NUMA節點之間的內存數量將不平衡。

相關問題