我计划根据Intel的Nehalem Microharchitonecution和Triple Channel RAM在使用双处理器的工作站上运行32位Windows XP。即使XP仅限于4 GB的RAM,我的理解是,它将在安装4 GB以上的功能中发挥作用,但只会暴露4 GB(或稍微少少)。

我的问题是:假设将6 GB的RAM安装在六个1 GB模块中,那么Windows实际上将映射到其地址空间?

尤其:

  • 它会利用所有内存频道使用所有六个1 GB模块吗? (我的猜测是肯定的,并且对组中的单个模块的映射发生在硬件中。)

  • 它会将2 GB的地址空间映射到两个NUMA节点中的每个节点(因为每个处理器都有其自己的内存接口),还是一个处理器可以快速访问3 GB的RAM,而另一个处理器只有1 GB?

谢谢!

有帮助吗?

解决方案

这个问题在 超级用户. 。因为这里没有其他答复,所以我要回答自己的问题,以便可以轻松找到相关信息。

自从问这个问题以来,我也遇到了 这篇博客文章 由Mark Russinovich解释了Windows XP内核如何处理内存。

总而言之,似乎发生的事情是,即使它意识到了内核,也将所有物理内存地址截断为32位,仅表示最低 身体的 将使用4 GB RAM。反过来,这是由硬件映射到内存模块的,对应于第一个模块的整个三元组(总计3 GB),第二个三重态的三分之一(分布在其所有三个模块上 - 总共1 GB) 。

因此,将利用所有内存通道,但是在NUMA节点之间不会平衡内存的量。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top