All 32-bit client versions of Windows (not just Vista/XP) have a 4GB address space. That's the theoretical upper limit beyond which you can not go.
But you can't use the entire 4GB of address space. Even though you have a 4GB address space, you can only use *around* 3.1GB of RAM. That's because some of that space is used by hardware and is not available to the operating system and applications. The amount you can use varies, depending on what hardware you have installed, but can range from as little as 2GB to as much as 3.5GB. It's usually around 3.1GB.
Note that the hardware is using the address *space*, not the actual RAM itself. The rest of the RAM goes unused because there is no address space to map it too.
For further reference, please follow the URLs below:
Microsoft - http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?pg=3&p=1&tid=d171ef81-c231-4f43-be6a-518f45ef8599&dg=microsoft.public.windowsxp.general&cat=en_US_d02fc761-3f6b-402c-82f6-ba1a8875c1a7&lang=en&cr=&sloc=en-us
Tom's Hardware - http://www.tomshardware.com/forum/234421-30-showing-12gb-windows
Thank you, have a nice day!
Intel Go Green, Save The Environment!