2010-04-21 96 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节点之间的内存数量将不平衡。

相关问题