Why isn't my computer seeing more than 3 or 4GB of RAM?
Increasingly I'm running into these sort of questions in technical communities, to the point where its happening several times a day. Questions like:
"I've 4GB of RAM, but Windows only shows 3GB" and "My PC's got 8GB of RAM but it only shows 3.1GB" etc
This stems from the fact that a 32-bit computer (sometimes referred to as x86) only supports a 4GB (2^32) address space. So why doesn't 4GB of RAM show up? Because the computer also needs to address other hardware in the computer like the CPU, motherboard, graphics card etc these all need addresses so the computer can access them.
It's time for one of my dodgy analogies, and for the 5 year old artist inside me to break out.

This is what the address space on a 32-bit computer with say 2GB of RAM "looks" like using my dodgy street/house analogy. The first row of houses are the first 1GB of addresses, and so on.
Say the red house is where the CPU lives, the sound card lives in the yellow house, and the graphics card in say the orange house, these are all occupying addresses within the 4GB limit. The green houses are all filled with RAM. And there are some empty houses shown in white.
So what happens if we try sticking another 2GB of RAM in the system to bring the total RAM to 4GB?

Uhh ohh... All of the houses are full up, and we've got some RAM left over. This RAM is unaddressable, and as such the system has no address by which to communicate with it, and it goes unused.
This is why people's computers are only seeing about 3GB of RAM (that number varies due to different hardware, some needs more address space, some needs less). Despite the address space being 32-bit, the rest of the hardware needs its addresses and so the extra RAM is pushed out of the address space.
The solution
There is no easy solution, if you want your computer to use more than around 3GB of RAM. You have one option.
Ensure your hardware is 64-bit compatible, and use 64-bit Windows.
The mainstream version of 64-bit systems were mainly developed by AMD (dubbed AMD64, x86-64, often shortened to just x64), which debuted in their Athlon 64 chips. Intel later adopted the same technology in their own chips, for the last couple of years almost all CPUs sold are capable of running in both 32-bit and 64-bit modes. In 2005 Microsoft released versions of Windows XP and Windows Server 2003 that had been rewritten to support these 64-bit CPUs, and along with the 32-bit versions of Windows Vista and Windows Server 2008 Microsoft also ship 64-bit versions.
64-bit has a significantly larger address space, 2^64 is 18,446,744,073,709,551,616 bytes, that's about 16 exabytes. About 17 billion GB of address space, using the analogy it looks like this:

Our street/house analogy breaks down here, and there's no way I can draw all the houses, but you can see the left over 1GB of RAM now gets an address.
Recent changes, and putting 64-bit to work
Microsoft made some changes in Windows Vista SP1 so that the system properties will display the installed RAM, instead of the usable RAM. This no doubt came at the request of computer manufacturers who were getting too many calls to their help desks about this issue. Instead of doing the obvious thing - which is using Windows Vista x64 when selling computers with 4GB or more RAM, they'd rather cover the problem up, it's not like the 64-bit version is anymore expensive to buy off Microsoft than 32-bit.
You can still check what RAM is usable by opening the Task Manager and looking at physical memory under the performance tab.
It is only a matter of time until computer manufacturers have to get their act together on this - in a couple of years when you can buy computers with 8GB of RAM they won't be able to get away with 5GB going unused and they'll have to start moving 64-bit versions of Windows in large quantities.
Using 64-bit versions of Windows does have its trade offs, the hardware needs to support 64-bit by supplying 64-bit compatible drivers, and some motherboards need an option to be changed in the BIOS to support 64-bit. There are also some software compatibility changes, although Windows XP/Vista x64 is compatible with 32-bit software, applications that dig in deep to the system like anti-virus will probably need to be replaced, in addition 16-bit applications from the DOS/Windows 3 era are no longer compatible.
A few interests tidbits
A 1 exabyte hard drive would cost somewhere in the region of $200 million to manufacture. I don't know how big it would be - but it would be pretty huge.
All the words spoken by every human through history would weigh in at about 5 exabytes.
Yes, a 16EB address space is pretty big, and we won't need to move to 128-bit for address space reasons anytime soon (and yes in 30 years I'll probably regret saying that).
|
|
10 comments
Too bad x64 turns your computer into a bad area.. with all those shitty apartments and stuff all close together, just so the RAM that are in poverty have a place to stay.
My motherboard, BIOS, and 64-Bit Dual Core 2 processor supports 4 gigabytes of RAM at 800 MHZ. Yet if I try to use the fourth slot, Windows Vista Ultimate 64 refuses to boot-up, even though the RAM is recognized!
3.1 gig *is* the current addressable max for Windows Vista 64 too, I'm afraid. .... But I'm so glad that you're one of the MVP's who have the answer, because Intel has no idea what's going on (or they're too afraid to tell customers). LOL.
Thank you Paul! :-)
The first issue won't be due to Windows, that will be a hardware issue, it simply fails when the RAM comes under load. Many motherboards cannot fill all slots at full speed, your manual would probably say something like the max speed for all RAM slots is 667Mhz or something similar.
3.1GB also *isn't* the limit for 64-bit Windows. If you're not seeing more on your particular setup then there is probably an option on the motherboard to enable 64-bit addressing.
Thanks for the clarification. .... My Intel BIOS *is* reading the 4 gigabyte memory when I put it in, but Windows Vista 64 Ultimate SP-1 refuses to boot-up with 4 gig and all 4 slots filled. Even Windows Vista sees the 4 gig (when installed) during the "Memory Diagnostics Test," which passes in 2, 3, and 4 gig.
Intel is now recommending a BIOS upgrade to it's most recent version for my board (June 2008), which seems to deal with a related memory issue, but not this exact one.
Also, Intel is telling me about a Microsoft Patch (KB929777), which may also deal with this issue (but again it doesn't exactly match my issue). The patch is from January 2007. Shouldn't I have received that as part of the Vista 64 SP-1 update?
But it sounds like they're guessing, because the last line they wrote is, "Finally, if possible, we recommend using a different OS (Windows Vista 32 or Windows XP) to check if the issue occurs there as well. LOL.
Thanks for your help! :-)
Elliot
Thanks again for your help. :-)
I have the Dell XPS M1530 Laptop with 64-bit Hardware, 4GB of RAM, but it came with a 32-bit version of Vista.
It did not come with the 64-bit version of Vista, just the 32-bit re-installation disk.
Can you upgrade from 32-bit to 64-bit and if not, why?
Also, would it be worth it, as I use Photoshop?
Thanks. :)
Under XP Sp2/3, the OS wouldn't even recognize all 4GB installed on my system. Under Vista HP, at least, it does show the whole 4GB. (In any event, the Intel motherboard, an i975x for a Quad Core QX6700 "Extreme", only accepts RAM sticks in pairs.)
MSFT has a very good KB base article of its own that provides essentially all of this information--without, however, the neat little visual metaphor.
Thanks for the graphic illustration. Not everyone *learns* well from text-only methods and I'm sure this is a big help to them.
Under XP Sp2/3, the OS wouldn't even recognize all 4GB installed on my system. Under Vista HP, at least, it does show the whole 4GB. (In any event, the Intel motherboard, an i975x for a Quad Core QX6700 "Extreme", only accepts RAM sticks in pairs.)
MSFT has a very good KB base article of its own that provides essentially all of this information--without, however, the neat little visual metaphor.
It can be found here: http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.windows.vista.hardware_devices&tid=1854ee00-d5a8-4a2d-bbfb-367beba77499&mid=3f01de92-cf7d-4d56-89c0-d0dba64210e4&cat=&lang=&cr=&sloc=&p=3
Thanks!
Is it REALLY possible to run 64-bit Windows on my machine? I've also seen claims that this capability will allow the machine to run 64-bit applications.
This doesn't make much sense to me. If a 32-bit chip could run a 64-bit OS, why build separate CPUs? It would seem far cheaper, mfgr-ing-wise to build one chip and simply label them differently (somewhat analogous to the way car-makers use "name badge engineering"; e.g. Toyota Corolla & Chevy Prism, both roll off the same assembly-line in Long Beach w/ superficial appurtances and logos being the only diff).
So IF my assumption is right and my machine CAN'T run either 64-bit progs or an OS, WHAT is the point of the 64EMT capability?
A couple of clarifications I'd venture to add though:
As much as companies are "covering up" the 32bit memory ceiling problem rather than switching to 64bit is for a good reason. 64bit Vista (even with SP1) has some fairly major issues with popular software such as Itunes and Creative's MP3 software. I think technical support desks are much happier telling people why they can't see their full amount of RAM than doing any "real" trouble shooting.
Secondly, in answer to Mike's comment, EMT64 is Intel's equivilent 64bit technology to AMDs X64. Your system will most definately be 64bit capable.
And finally just for kicks, though the limit of memory under a 64bit system is in the exabytes, it is limited in Vista x64 and most other operating systems to 16 Gigabytes (For Home Premium, Ultimate is uncapped as far as I'm aware). I imagine this virtual limit will go up as time moves on, but for now we're stuck with virtual limits.








5th June 2008 13:49:11, 839 words, 3620 views