Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am attempting to install more RAM on a Windows Vista 32bit machine which is using a X6DAL-XG motherboard and the RAM amount reported in the BIOS is 3GB+, but Windows is only reporting 2GB installed. The motherboard has 6 RAM bays which I have populated with various combinations of 4 1GB sticks, and 2 512mb sticks, but no matter how I configure them Windows doesn't see more than 2GB. I realize of course 32-bit Windows has a 3gb cap on memory, but that doesn't explain why it will only report 2GB when there are in fact (currently) 5GB installed. I should think I would be able to see at least 3GB.

According to the spec list for the motherboard the minimum RAM requirements are DDR333/266mhz installed in pairs. I have done this exactly, and the BIOS isn't reporting any problems at POST.

RAM Configuration (according to CPU-Z)

  • Slot #1: PQI MD6412ROE - 512mb PC2700 (166mhz)
  • Slot #2: PQI MD6412ROE - 512mb PC2700 (166mhz)
  • Slot #3: Kingston 128mx72D266C25 - 1024mb PC2100 (133mhz)
  • Slot #4: Kingston KVR266X72RC25/1024 - 1024mb PC2100 (133mhz)
  • Slot #5: Kingston 128mx72D266C25 - 1024mb PC2100 (133mhz)
  • Slot #6: Kingston KVR266X72RC25/1024 - 1024mb PC2100 (133mhz)

I'm not sure if memory specs above conflict with this statement in the motherboard manual or not:

Memory Support

The X6DAL-XG supports up to 12GB/24GB of registered ECC DDR333/266 (PC2700/PC2100) memory. The motherboard was designed to support 4GB (PC2100) modules in each slot, but only the 2GB modules have been tested. When using registered ECC DDR333 (PC2700) memory, installing four pieces of double-banked memory or six pieces of single-banked memory is supported.

So, am I doing something wrong with the RAM I have now, or is there some sort of compatibility problem which I am missing?

Thanks!


A Few More Details

  • CPU-Z report for the machine
  • I have run some additional tests with this issue in both Ubuntu and Windows Server 2008 and they are both reporting only 2gb as well.
  • I tried fiddling with the Memory Remap feature (Enable/Disable) in my motherboard's Northbridge configuration, but did not see any results.
  • In addition to the hardware above, I have one 256mb PCI Express video card and that's it for peripherals. I do not think memory mapped I/O is the issue here.
  • I have removed the 2 512mb sticks and I'm down to just the 4 1GB sticks
  • I have flashed the motherboard BIOS to the latest manufacturer revision

Another Update

I have managed to test this hardware configuration on a 64-bit copy of Ubuntu and the RAM is being fully detected at 4gb installed, but no matter the RAM configuration I am unable to find any 32-bit OS that will read more than 2gb. So the question remains: Why can a 64-bit OS see more than 2gb of RAM while a 32-bit OS installed on the same machine is capping out at 2gb?


After Thoughts

I greatly appreciate the input from everyone however, I still do not feel there has been a correct answer to this problem yet despite all of your efforts. I did learn, thanks to @Goyuix, that I have been using a 64-bit CPU and didn't even realize it and so now at least I have an acceptable work around.

Barring some unexpected turn of events it looks like the bounty is going to be auto-credited to @Mark Booth due to the bounty expiration, which I don't necessarily mind because his answer is good; it just isn't the solution to this particular problem. (Absolutely no offense intended Mark, I really appreciate your high quality answer!)

In any case, the discussion generated by this question has been extremely informative for me (and should act as a great reference material for future searchers). The original problem has been successfully mitigated through the use of a 64-bit OS, but it still has not been solved. Unfortunately (for me), I'll never be truly content until I can pinpoint the exact problem, so if at some point in the future someone manages to think of a solution that hasn't been mentioned, please, please do post it.

Thank you everyone.

share|improve this question
    
If you had Windows 7 available, I would absolutely love to see how this patch works: superuser.com/questions/67444/… –  Breakthrough Apr 8 '10 at 13:47
    
Also, what happens when you remove the two 512mb sticks? –  Breakthrough Apr 8 '10 at 13:52
    
@Breakthrough I tried removing the 512mb sticks but it didn't seem to make any difference. I've tried every possible same-model pairing combination possible with the 6 sticks of RAM I have available. –  Nathan Taylor Apr 9 '10 at 16:22
    
Check the system event log by running eventvwr.msc and looking for related messages. –  Mark Allen May 6 '10 at 19:16
    
@Mark It's not isolated to just Windows- occurs in Ubuntu as well. Event log doesn't have any indication of a hardware problem. –  Nathan Taylor May 7 '10 at 16:30
show 4 more comments

6 Answers 6

up vote 3 down vote accepted
+50

Since you mentioned in a comment that Server 2008 is only reporting 2 GB, then something is very wrong with your configuration.

  1. What does your BIOS report for installed RAM? Does it see 4 GB?
  2. According to the manual:
    • Memory Remap must be Enabled
    • Memory Mirroring must be Disabled
  3. How are your modules installed? The manual specifies that they have to be installed in pairs, and that the paired slots are adjacent to each other. According to your post, it looks like you don't have your paired ram installed into adjacent slots. Verify the physical installation of your modules against the motherboard manual/motherboard imprinting.
  4. Have you tried each pair of 1 GB modules individually?
    • If so, test each pair with Memtest86+ to ensure that each pair works correctly.
    • If each pair checks out, try changing the order they're installed in.
share|improve this answer
    
BIOS reports 4gb, so too does CPU-Z. Memory remap is enabled and mirroring disabled. I'll give it another shot, but as I recall pairing the RAM differently than it currently is caused the BIOS not to recognize it. I'll try memtest on the individual pairs and see what happens. –  Nathan Taylor May 7 '10 at 16:28
    
Any word on memtesting the individual pairs? –  afrazier May 12 '10 at 1:10
    
Uh how did this one get accepted? I didn't pick it which means the highest rated voted answer should take it, no? –  Nathan Taylor May 13 '10 at 22:16
    
"The highest voted answer created after the bounty started with at least 2 upvotes will be automatically accepted." (emphasis mine) That said, you still have a problem if 32-bit Server 2008 doesn't see all 4 GB. If this is a production server, it's something you really should sort out. –  afrazier May 14 '10 at 3:14
add comment

Considering the evidence given above, the two most likely things to consider are:

  • Memory mapped hardware is limiting the memory available to a 32bit operating system.

  • Windows is artificially limiting the memory available to the operating system.

Hardware limiting

With a 32bit OS, you have 4GB of address space. Any peripherals with memory mapped IO (IO ports, network cards, graphics cards, other motherboard or add-in cards) will take up a portion (usually quite small) of that address space. Any memory used for memory mapped IO cannot be used for main memory.

The worst hogs of memory mapped IO are graphics cards. If you have two graphics cards, each with 1GB or memory, 2GB of your address space will be used up, leaving you with only 2GB of main memory, however much physical memory you have installed.

This is not a problem on a machine with a 64bit OS, since those 2GB can be mapped well away from your main memory, but on a 32bit OS, you are limited to 4GB in total (without using tricks that Microsoft have disabled in their non server 32bit OS's).

Artifical limiting

The other option is that some hardware or software set a restriction on the amount of memory available to Windows when it was isnstalled and that artificial limit is still in place, even after installing more memory.

I've never done this under Vista, but under XP you would run msconfig and look at the "Advanced Options" on the "BOOT.INI" tab. If the "/MAXMEM" was set, then XP was ignoring all memory above this.

Searching the web, it looks like you use bcdedit under Vista. A nice description of how to use it can be found here. However, as always, be sure you understand what you are doing before messing with these things.

Other possibilities, specific to server/workstation systems

Looking through the X6DAL-XG manual, I wonder if the "Memory Mirroring and Sparing" is enabled in the Bios:

Select Enabled to enable Memory RAS (-Mirroring and Sparing) to allow the system to create a mirror copy of data written to the memory for data security. The options are Disabled and Enabled.

I would guess that in memory mirroring mode, only 4 banks are used, which would explain why removing the 512MB Dimms made no difference to the memory visible to Windows.

share|improve this answer
1  
I am currently running a GeForce 7800GTX with 256mb of video memory on that system, so I don't suspect it would be biting into the physical memory very much. –  Nathan Taylor Apr 9 '10 at 16:23
    
This is a great answer, but so far as I can tell neither of these are the problem I am experiencing based on the hardware configuration and the fact that the problem extends to other operating systems as well. –  Nathan Taylor May 6 '10 at 22:23
    
Based on my discovery that the RAM is fully detected on a 64-bit OS I think it is safe to say this answer is not relevant. Thank you all the same though! –  Nathan Taylor May 11 '10 at 3:39
    
since you do see all RAM on the 64-bit OS, I would suggest this answer is very relevant –  HorusKol May 13 '10 at 5:07
    
@Mark I currently have Memory Mirroring and Sparing set to the default of "Disabled". –  Nathan Taylor May 13 '10 at 17:08
show 4 more comments

While not solving your problem outright, it may help in diagnosing it - Have you tried running a linux live cd like Ubuntu? Ideally you should try booting both a 32bit and 64bit version - the 64bit should see the extra RAM without issue, and if it only sees two then you almost definitely have a hardware related problem. If the 32 bit linux also only sees 2GB of RAM, then as stated by Mark Booth you probably have memory mapped I/O taking up the rest.

Video cards tend to be the worst offenders in eating up available RAM, you don't happen to have two 1GB cards installed do you?

Memory Remapping

Many modern BIOS will have an option to remap the memory space to avoid MMIO issues - though this only works for 64-bit operating systems or PAE enabled systems. Check your BIOS for this setting.

http://support.microsoft.com/kb/929605

share|improve this answer
    
The system is currently running a single 7800GTX (256mb), so I don't suspect that's the source of the problem –  Nathan Taylor Apr 9 '10 at 16:02
    
@Nathan - did you try either of the linux flavors? Also note: No matter how much RAM you have installed and visible, a single process will never be able to use more than 2GB under a 32-bit desktop Windows OS. Where are you seeing the 2GB reported? The BIOS? The system properties? What happens if you pull the two 512MB sticks? –  Goyuix Apr 11 '10 at 3:14
    
@Goyuix I was under the impression that Windows 32-bit could address up to 3gb, even if it will only allocate 2gb to processes. The BIOS is reporting 4GB of RAM while the operating system only reports 2GB. I haven't tried linux, however I have tried change the sticks around including removing the 512mb DIMMs. –  Nathan Taylor Apr 21 '10 at 15:03
    
@Nathan in theory Win32 can address all 4 GB of memory, the problem is that the x86 architecture uses memory mapped I/O for many devices - typically the biggest offender is video cards due to their large memory sizes. A 512 MB card will reduce the max total addressable RAM to 3.5 GB. Put two 1 GB video cards in a computer, and Win32 can't even see more than 2 GB of RAM total. Other devices uses memory mapped I/O as well, though typically their address range is at most a few megabytes and goes largely unnoticed. –  Goyuix Apr 22 '10 at 13:34
1  
@Nathan: It's not just the video card. The system chipset, add-in and integrated devices, and BIOS configuration all come into play, because so many things use MMIO. Also, 32-bit Windows clients can only use memory addresses up to 4 GiB. Server 2003 Std 32-bit can address up to 4 GiB of RAM, no matter what addresses are in use. Enterprise & DataCenter can address much, much more. The whole "32-bit Windows 4 GiB limit" is a licencing limitation, nothing more. The amount of virtual address space available to an individual process is a completely separate issue. –  afrazier Apr 23 '10 at 16:05
show 10 more comments

If all operating systems are reporting 2GB, then the problem is probably with the motherboard.

I don't like the fact that you're using two different memory cards, even though they're installed in pairs.
I would suggest using only one kind of memory card.

According to ramshopping.com, only the KVR cards are recommended for your motherboard.
I would try to take out the two other cards, and see if the machine still boots with 2GB.
If yes, I would replace the two non-working cards by cards identical to the ones that work.

share|improve this answer
1  
Although this is a possibility, I do not believe it to to be the problem because I have tried 4 different types of RAM that were all 1gb sticks and of all of them, the 4 I have installed now are the only 4 which were fully detected by the BIOS. –  Nathan Taylor May 10 '10 at 16:28
    
@Nathan Taylor: But did you use 4 identical sticks? –  harrymc May 11 '10 at 12:11
    
No, just the 4 sticks you see above. –  Nathan Taylor May 11 '10 at 13:30
    
@Nathan Taylor: That's what I meant - using 4 sticks of the same type. –  harrymc May 11 '10 at 14:47
    
It is using 4 Kingston- 2 KVR, 2 128mx- as it has been for some time now.. –  Nathan Taylor May 11 '10 at 15:10
add comment

I don't know if this will fix the problem, but it doesn't seem like you are pairing your RAM modules correctly. According to the specs page, the pairs should be slotted next to each other as per the blue and black side by side pairs.

Your setup that you listed above doesn't seem to be following this. It's possible that this is throwing of the OS trying to read the dual channels.

share|improve this answer
add comment

You should check your BIOS. Many have a feature called "OS Install Mode" or some similiar name that limits the amount of RAM your operating system can see. This was required because some operating system installers would fail if too much memory was available. Turning this off should resolve.

share|improve this answer
    
I looked around in the BIOS and also the manual, but I don't see any options resembling this. –  Nathan Taylor May 7 '10 at 16:34
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.