3GB RAM Installed and Detected by BIOS, Windows Vista 32bit Only Sees 2GB

9

1

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.

Nathan Taylor

Posted 2010-04-07T16:40:14.963

Reputation: 653

If you had Windows 7 available, I would absolutely love to see how this patch works: http://superuser.com/questions/67444/is-there-way-to-enable-4gb-ram-in-32-bit-windows-os/95311#95311

– Breakthrough – 2010-04-08T13:47:47.420

Also, what happens when you remove the two 512mb sticks? – Breakthrough – 2010-04-08T13:52:19.363

@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 – 2010-04-09T16:22:17.197

Check the system event log by running eventvwr.msc and looking for related messages. – Mark Allen – 2010-05-06T19:16:36.510

@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 – 2010-05-07T16:30:42.370

since you are only seeing 2GB with 32-bit systems, and seeing all 4GB with 64-bit systems, I would suggest going with Mark Booth's answer below and trying to figure out what other memory mapped IO you have installed. I know you said you only have a 256MB video card - but have you tried removing/disabled other things? What about integrated video on the motherboard (even with a card installed, it might still be 'active')? As for Windows being "limited to 3GB" - my 32-bit install reports 3.5GB of my system memory (512MB card) – HorusKol – 2010-05-13T05:06:11.507

@HorusKol As I've indicated in this question in a couple of places, the machine has no other peripherals besides the 256mb video card and the integrated sound card. There is no integrated video and nothing else is attached to the board. I really, really doubt it's a Memory Mapped I/O problem- and if it is then something is definitely wrong because I have nothing installed that should cause that 1gb discrepancy. – Nathan Taylor – 2010-05-13T17:01:10.213

by my reckoning, it's a 2GB discrepancy, but that's neither here nor there. One question - if you are getting all 4GB reported on the 64-bit OS, why are you still trying to run 32-bit? – HorusKol – 2010-05-14T06:46:46.310

@HorusKol I am going to be upgrading to 64-bit next week, but I'd still really like to know why it's behaving this way. – Nathan Taylor – 2010-05-14T08:31:26.013

Answers

3

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.

afrazier

Posted 2010-04-07T16:40:14.963

Reputation: 21 316

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 – 2010-05-07T16:28:05.093

Any word on memtesting the individual pairs? – afrazier – 2010-05-12T01:10:29.570

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 – 2010-05-13T22:16:22.670

"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 – 2010-05-14T03:14:04.750

9

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.

Mark Booth

Posted 2010-04-07T16:40:14.963

Reputation: 2 324

1I 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 – 2010-04-09T16:23:15.040

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 – 2010-05-06T22:23:43.380

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 – 2010-05-11T03:39:47.463

since you do see all RAM on the 64-bit OS, I would suggest this answer is very relevant – HorusKol – 2010-05-13T05:07:13.800

@Mark I currently have Memory Mirroring and Sparing set to the default of "Disabled". – Nathan Taylor – 2010-05-13T17:08:16.747

@Nathan, Could I suggest setting it to enabled, rebooting to see if it changes anything in either the BIOS or windows, then changing it back. Sometimes just changing it and later chamnging it back can fix a problem. Especially if the BIOS has been updated at some point without setting the BIOS back to their defaults and re-setting things to the settings you want afterwards. – Mark Booth – 2010-05-18T22:15:48.580

@Mark Unfortunately, this does not work as I have tried that a few times now. – Nathan Taylor – 2010-05-25T01:36:50.497

@Nathan, sorry to hear that, but glad you have found a work-around. I wouldn't go back to a 32bit host OS again, having 12GB of ram just makes running multiple VM's very smooth. – Mark Booth – 2010-05-25T23:32:40.267

@Mark I agree. I certainly don't plan to go back, I'm just insanely curious what the problem was. – Nathan Taylor – 2010-05-28T17:37:14.240

2

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

Goyuix

Posted 2010-04-07T16:40:14.963

Reputation: 6 021

The system is currently running a single 7800GTX (256mb), so I don't suspect that's the source of the problem – Nathan Taylor – 2010-04-09T16:02:30.003

@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 – 2010-04-11T03:14:26.623

@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 – 2010-04-21T15:03:59.323

@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 – 2010-04-22T13:34:32.750

As I mentioned in another comment, the only large addressability component would be the 256mb video card. Other than that there's nothing in the system that should be consuming RAM. – Nathan Taylor – 2010-04-23T02:18:10.597

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 – 2010-04-23T16:05:05.707

@Goyuix I've further tested this issue in both Ubuntu and Windows Server 2008 and they are both reporting 2GB as well. Like I said before, it seems very unlikely that this is a memory mapped IO issue because the only peripheral I have is a single 256mb video card. – Nathan Taylor – 2010-05-06T18:34:04.307

@Nathan did you try a 64 bit OS? If the 64-bit OS sees all 4 GB, this is almost certainly due to a bug/setting in your BIOS. – Goyuix – 2010-05-07T14:25:27.823

@Goyuix The system does not have a 64-bit chipset. – Nathan Taylor – 2010-05-07T16:28:50.457

@Nathan: It's not the chipset that needs to support 64-bit, but the CPU. And your CPU does support it (EM64T is Intel's x86-64 support). It's worth a shot to see what 64-bit Windows thinks. – afrazier – 2010-05-07T17:34:17.477

@Nathan The X6DAL-XG most certainly supports 64-Bit, as should every Xeon CPU you can put in there. Please report back once you have tried a 64-bit OS as it will help further diagnose the issue If you can't get a 64-bit OS to run on the hardware, then you probably have much bigger problems than 2GB of RAM vanishing. – Goyuix – 2010-05-07T23:23:12.213

@Goyuix Perhaps I'm mistaken but don't I need a 64-bit processor to run a 64-bit OS? – Nathan Taylor – 2010-05-08T15:14:21.903

@Nathan according to the CPU-Z report you listed above, you have a Xeon based on the "Nocona" core - which in in fact a 64 bit capable CPU. – Goyuix – 2010-05-08T18:40:20.613

@Goyuix.. Damn, is it? I didn't build or buy any of these parts; had I realized that from the start I wouldn't have even bothered with a 32-bit installation. – Nathan Taylor – 2010-05-09T14:15:12.230

@Nathan Taylor: 64-bits might not be the solution. See also my answer. – harrymc – 2010-05-10T10:28:41.697

1

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.

harrymc

Posted 2010-04-07T16:40:14.963

Reputation: 306 093

1Although 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 – 2010-05-10T16:28:04.703

@Nathan Taylor: But did you use 4 identical sticks? – harrymc – 2010-05-11T12:11:12.813

No, just the 4 sticks you see above. – Nathan Taylor – 2010-05-11T13:30:29.763

@Nathan Taylor: That's what I meant - using 4 sticks of the same type. – harrymc – 2010-05-11T14:47:28.203

It is using 4 Kingston- 2 KVR, 2 128mx- as it has been for some time now.. – Nathan Taylor – 2010-05-11T15:10:06.457

0

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.

th3dude

Posted 2010-04-07T16:40:14.963

Reputation: 9 189

0

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.

user36436

Posted 2010-04-07T16:40:14.963

Reputation:

I looked around in the BIOS and also the manual, but I don't see any options resembling this. – Nathan Taylor – 2010-05-07T16:34:11.147