I recently upgraded my old desktop and came across with this interesting issue. This would be useful for many of us since most of us are still using 32 bit operating systems. Just take this article as an early warning.
Upgrade configuration:
- Intel Core 2 Duo 2.66GHz, 1066FSB, 3MB L2, E7300 (arround Rs. 14,000/=)
- 2GB x 2 RAM (Dual Channel, 800MHz) (arround Rs. 3800/= x 2)
- Intel DG31PR Motherboard (arround Rs. 7500/=)
This issue I had was having 4GB of memory. Well, I've reached the maximum addressable memory limit of 32 bit systems, right? So I should be able to use all 4GB as memory. But unfortunately, that was not the case. All I have is 3.2GB of memory on 32 bit Windows XP and 32 bit Ubuntu 8.10.
So where did my memory go?
Theoretically, the 32 bit systems are limited to 4GB of addressable memory. The problem is you can't allocate all those 4GB address space to RAM alone. Many other devices connected to the mother board (including the memory in video card) are mapped to the same 4GB address space. So there should be an address range dedicated to address those devices. So you are left with only 3.2GB of RAM address space.
According to what I've read from the internet, you have to use a 64 bit OS (I'm planning to put Vista 64 bit on my one) to utilize the full RAM address space. There's another facility called "Physical Address Extension (PAE)" provided by the motherboard to allow applications to address more than 4GB of memory on 32 bit systems. But I'm not clear about what it does and it seems to have it's own issues with device drivers.
Things to keep in mind
Maybe I have spent too much on RAM! Anyway having 3GB RAM this way is better than having 2GB and 1GB RAM sticks since dual channel gives you performance advantage. It won't be a problem at all if you are going to use a 64 bit OS (that's what I'm going to do). If that didn't work due to any reason I'll have to be stuck with a 32 bit OS and 3.2GB of RAM. Anyway that also should be enough for most current games.
more on this later...
..
Update
As Gayan has pointed out, 64 bit OS alone cannot support more than 4GB. The motherboard should have a feature called "Memory Remapping" to map device memory addresses above 4GB (see first comment). It appears my motherboard doesn't support that feature. So 3.2GB is more of a hardware limitation for me.
Update 2
I tried adding /PAE switch to XP 32 bit. It still showed me 3.2GB of RAM. Maybe in the background it's using all 4GB or whatever. Anyway, Vista 64 bit SP1 seems to have fixed the problem. It showed me 4GB RAM after I installed it. I hope this would be the end of my problem.

Update 3
This is how it is shown in Windows 7 RC 32bit. Avoids user confusion and easilly understandable.
This is how it is shown in Windows 7 RC 32bit. Avoids user confusion and easilly understandable.
