5

I plan to run 32-bit Windows XP on a workstation with dual processors, based on Intel's Nehalem microarchitecture, and triple channel RAM. Even though XP is limited to 4 GB of RAM, my understanding is that it will function with more than 4 GB installed, but will only expose 4 GB (or slightly less).

My question is: Assuming that 6 GB of RAM is installed in six 1 GB modules, which physical 4 GB will Windows actually map into its address space?

In particular:

  • Will it use all six 1 GB modules, taking advantage of all memory channels? (My guess is yes, and that the mapping to individual modules within a group happens in hardware.)

  • Will it map 2 GB of address space to each of the two NUMA nodes (as each processor has it's own memory interface), or will one processor get fast access to 3 GB of RAM, while the other only has 1 GB?

Thanks!

2
  • I know you put windows-xp in the tag but would Windows 2003 Server in a "workstation" mode work for you giving you better memory access. License cost more that probably the killer
    – IrqJD
    Commented Dec 30, 2010 at 5:17
  • Unfortunately, I have hardware which lacks drivers for anything other than XP 32-bit, and will not work on 2003 Server (according to the manufacturer, I have actually not verified this myself). The extra licence cost would be a nuisance, but not a killer in my case. Commented Jan 9, 2011 at 12:32

1 Answer 1

2

My understanding is that the motherboard controller will handle mapping the virtual memory locations to the physical address of the RAM. As triple-channel memory works, and as most motherboard controllers work, both CPUs will work together to map the lower 4gb of RAM spaced equally along the first three RAM modules (filling up the first three sets of 3gb, working together first), with the last gigabyte spaced among the last three modules.

Without this implementation, there would be no "triple-channel" memory access, thus heavily degrading performance. Furthermore, this is why the implementation of memory is hardware based instead of software, so there should be no problems on your end.

It should be noted that the 4gb limit only exists due to the hard-coded limit of 32-bit memory addresses, but there is no reason for software to allow this limit to be extended. This limit has been selected for license issues, as well as driver incompatibility issues (thanks Josef Grahn). This concept is easier comprehended by understanding that your motherboard, as well as the system RAM, is just another system component. While you may be limited in your working-set RAM, you can actually access the extra 2gb, but not to allow programs to run.

Software exists to allow you to create a RAMdisk out of the RAM which is inaccessable to the operating system, in 32-bit environments. SuperSpeed has a program called RamDisk which will allow you to do this. Another option is the Vsuite Ramdisk software (they both slightly differ - see the features list to see which one meets your needs).

I'm not specifically advertising any software, but those are a few I've come across which allow you to utilize some of the RAM outside of the addressable range of a 32-bit operating system. While it's not nearly as good as having the OS directly access the RAM, having a RAM-based pagefile is much better than a hard-drive based one. If you don't want to use a pagefile, you can also use the extra RAM disk for swap-file intensive programs (e.g. image or video editing).

4
  • 1
    Thanks for a thorough response. With a completely transparent mapping from physical address space to memory modules, I would expect the kernel to use the lower 4 GB and, as you say, effectively use 3 GB from the first module triplet and 1 GB from the other. However, when the kernel is NUMA aware, this mapping cannot be completely transparent. So part of my question remains: Will the XP kernel, despite "knowing" that the physical address space is split evenly over two NUMA nodes, simply use the lowest physical 4 GB, or is it more clever in any way? Commented Feb 18, 2011 at 20:58
  • While the kernel is responsible for the software NUMA part, it isn't for the hardware. Since the XP kernel will only physically "see" the lower 4gb of RAM, this is the area where the NUMA commands will be invoked with. NUMA is only responsible for where in the memory map things are allocated, and since the XP kernel will only have a 4gb memory map (as described in my answer), and the location of this memory map is hardware dependent. Commented Feb 22, 2011 at 18:12
  • Ok, I'll accept your answer. A minor note: Knowing that the XP kernel is in fact PAE aware, I would have expected it to be able to "see" the entire physical RAM, and therefore at least theoretically be able to map any 4 GB into the virtual address space, while maintaining the 4 GB (license) limit. However, I later came across this great blog post by Mark Russinovich, stating that a 32-bit address limit was imposed in the kernel due to driver issues, limiting the usable physical address space to 4 GB despite PAE: blogs.technet.com/b/markrussinovich/archive/2008/07/21/… Commented Apr 16, 2011 at 13:48
  • "My understanding is that the motherboard controller will handle mapping the virtual memory locations to the physical address of the RAM." The data is actually in the page tables, which are maintained in RAM by the OS. The CPU's MMU accesses these (and caches them in the TLB, part of the CPU). There is a PTE for each defined virtual page number; the MMU uses their contents to translate virtual page numbers to physical. The memory controller (whether part of the chipset on the motherboard, or part of the CPU as in recent topologies) deals only with physical (RAM) addresses. Commented Jan 24, 2018 at 9:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .