Welcome to AddressOf.com Sign in | Join | Help

Windows Vista "supports" 4GB of memory. Sure it does...

Grrrr... this one I didn't really see coming.  I figured, "Hey, I'm running Windows Vista Ultimate; which loves memory... I'll get more memory and it'll be happier."  So I ordered 4 1GB high performance RAM (which using the motherboard automatic detection settings yields a 5.6 Windows Experience Index) and replaced the 4 512MB sticks that were there.  After starting up Vista and looking in the Sidebar area in which I have a gadget that lets me know how much memory is being utilized... it said I only had 2813MB total.  What?!?!?!

Of course I rebooted the machine, went into the bios and turned on memory checking... man is it ever slow watching 4GB of memory being tested.  Anyway, sure enough, all was good from a motherboard/bios point of view.  Started Vista back up.  Still only 2813MB.  Launched CPU-ID and it saw I had 4 sticks totaling to 4GB.  Hmmmm... time to do some searching.

As it turns out, EM64T didn't mean what I thought it meant.  So spelled out, EM64T stands for Extended Memory 64 Technology.  I thought that it was just some mechanism that Intel came up with to handle 32-bit computing to access memory in the 64-bit range.  This technology was introduced back in the Pentium 4 HT processor days.  As it turns out, EM64T really means that the process is a 64-bit processor.  Great marketing guys... sheesh.  So here's the problem that I'm currently facing and the why I'm only being able to access 2.75GB of my 4GB of memory.

The 32-bit processors only allows for access about 4GB of total computer address space.  So in a 512MB-2GB computer, you would have full access to the memory and there'd still be another 2GB of address space to hold device locations.  Here is a little piece to the total 64-bit puzzle that no-one seems to be telling anyone about.  In that 4GB of address space, your video card memory is partitioned.  Meaning if you have a 256MB video card, 256MB is consumed in the 4GB of total addressable space that a 32-bit processor can utilize.  Here's the problem; what if you have a video card that has 512MB, 640MB, 768MB?  Yup, that will be mapped to the 4GB of addressable space.  So if you had a 768MB NVidia 8800 card and 4GB of RAM, you'd lose 768MB of that 4GB of memory immediately to the device making it non-accessible "memory" for the OS.  And it doesn't stop there, all of your other devices that need to be communicated with (you know, anything with a driver) consumes part of this address space.  So in my current 4GB worth of RAM system, 1.25GB worth of addressable space is consumed by devices.  And it gets worse.

Let's say you are one of those insane gamers (not that I've ever been accused of being such) and have bought into the whole SLi architecture.  You run out and pick yourself up two of the 768MB 8800 video cards... guess what?

You would lose another 768MB of memory.  Yes, this means that you would have a MAXIMUM limit of 2GB... EVER in the 32-bit world.  It doesn't matter if you bought more memory, it can't be used since your devices are consuming half of the maximum addressable space that a 32-bit process can access.  Which brings me to another point...

WHY DOES WINDOWS VISTA SAY IT CAN SUPPORT 4GB OF MEMORY!?!?!?!?

OK, technically it can support it... but what a line of crap.  Under no condition could I find could you really have 4GB of addressable memory in Windows Vista 32-bit.  No matter what, some of that memory (which appears to be at least 512MB) is mapped to devices.  Grrrrrrr.....

So I supposed I'll have to start looking at the possibility of moving to 64-bit sooner than I originally anticipated... ah the fun I expect to endure. ;-)

Wish me luck!

Published Saturday, May 12, 2007 1:29 AM by CorySmith
Filed under:

Comments

# 4GB RAM in Windows « Pirillovision

Wednesday, May 23, 2007 10:10 PM by 4GB RAM in Windows « Pirillovision

# Vista 32b & 4GB of memory

Monday, May 28, 2007 3:46 AM by My view of life

Am luat de bună gluma *** că Vista pe 32b știe să adreseze 4GB de memorie. Până m-am documentat mai bine.

# re: Windows Vista "supports" 4GB of memory. Sure it does...

Wednesday, June 27, 2007 5:06 AM by Aqid
Windows addresses a maximum of 3,37GB at my server, this was due to DEP (Data Executing Prevention) who uses up a few of the 4GB adressable adresses. To expand the adresses you can make advantage of PAE (Physical Address Extension). With PEA windows "supports" up to 8GB of RAM. At windows 2k3 server this option goes on by default at insering for 4GB ram. This allows windows to make use of ALL the 4096MB's. What doesnt change is the kernel mode. Windows has a built-in maximum of 2GB for kernel mode. By using the /3GB switch the kernel mode even gets decreased to 1GB. Even with PAE and 8GB of memory the kernel mode doesnt use more then 2GB (or 1GB with the /3GB switch on). This is why a Windows terminal server has a maximum of a couple of hundered users, even if it could use 32GB of ram, since the kernel mode wont use more then 2GB. Only sollution to this problem is using x64. For your problem, just turn on PAE and its solved. You can turn on PAE by using the /PAE switch at boot.ini, you can also turn of DEP to decrease the amount of used memory mappings, but it will still use a few.

# re: Windows Vista "supports" 4GB of memory. Sure it does...

Thursday, August 16, 2007 11:30 AM by Trevor S
Was just about to order 4Gb of DDR2-6400 when i read this so it looks like it will only be 2Gb ram and quad-core 3Ghz, all because i have a 8800GTX and loads of Devices, THANKS for saving me money/time.

# re: Windows Vista "supports" 4GB of memory. Sure it does...

Thursday, October 4, 2007 2:12 PM by Rob
Great notes. How does 32bit Win 2003 enterprise server support 32GB of memory?

# re: Windows Vista "supports" 4GB of memory. Sure it does...

Friday, November 2, 2007 6:08 PM by some dude
No matter how much RAM you have installed 32 bit vista/XP can actually only use 2GB's of it. Now servers are another story.

# re: Windows Vista "supports" 4GB of memory. Sure it does...

Thursday, November 8, 2007 3:20 AM by Boo
Vista 32bit can use at maximum 3GB. But you have to set it that way. Enabling the /3GB mode in Windows Vista. A Windows Vista no longer uses the BOOT.INI file, so there is a different method for setting the "3GB" switch which enables to use 3GB of RAM for applications in 32-bit Windows. If you want to make accessible 3GB RAM for your CAD applications in Windows Vista, use the BCDedit.exe tool (Boot Configuration Data Editor). The 3GB RAM mode can be enabled by the command: bcdedit /set IncreaseUserVa 3072 and disabled by the command: bcdedit /deletevalue IncreaseUserVa Run this command from a command window with Administrator priviledge - i.e. (in the Start menu) type CMD and press Ctrl+Shift+Enter, or select "Command Prompt" (Accessories), right-click on it and choose "Run as Administrator". Restart your PC after this change.
Anonymous comments are disabled