Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My desktop PC has 4GB of RAM but because I have Win XP 32 bit it shows only 3.2 GB. My new Qosmio laptop has also 4GB of RAM and also Win XP 32 bit. However, it shows only 2.98 GB or RAM.

The system has nVidia video card with 3GB or fast RAM. Not shared with the main memory. Direct X diagnostic tool shows only 1GB or video RAM.

Why? How to make my laptop to use 3.2 GB instead of 2.9?

There may be a solution to make a 32bits OS to really work with more than 4GB or RAM:

share|improve this question
up vote 3 down vote accepted

The 4.10⁹ addresses aren't reserved for system RAM only. There are other devices which need them. The biggest culprit is the video card RAM, but other things can use up address space as well. This is why the available RAM differs between computers. Probably your VC in the laptop uses 512 MB RAM, and the one in your desktop PC has a whole gigabyte.

The only way to get 300 MB more is to downgrade your hardware. Another video card would probably bring the highest gain. But before paying for new hardware, you should consider whether you need that RAM. Today, there aren't many applications which can use such amounts. So just monitor your RAM usage and if you don't fill it up often, stay the way you are. Especially as you're on XP, which doesn't use empty RAM as a cache to pre-load frequently used programs.

Edit: explanation why this answer is right when the video card doesn't share memory with the mainboard

Good external link, so you know I am not making it up: link

My own explanation. I kept it very easy, just to be sure you understand it even if you don't have much prior knowledge about how RAM works:

Let's try to use an analogy. You're a librarian, and use numbers to keep track of your books. Your labels only have place for 4 digits. Then you can only keep track of 9999 books. The only way to keep track of more books is to move to a 5-digit-label, but let's say that for some reason, it is very expensive to do that (e.g. you have a hand-held scanner for recognizing the numbers and it only can scan a small label). Now, if you only have an adult section, the limit there is 9999. But if you have a children's section, the books there need the labels too. If you tried to label them as "a" and "c", you could only label 999 books per section as the symbol uses up a digit-place on your small label. So instead, you just decide that books above a certain number are children's, and the remainder are for adults.

Now imagine that you get a large donation at once. After that, you have 12 000 adult books and 3 000 children books. You cannot move to a 5-digit-label soon. If you want to have adult books only, you could label 9999 of them. But if you want to have books for children too, and label 2000 books for children, you can only label 7999 adult books. As you cannot lend books if you cannot keep track of them, you can only put 7999 adult books in use. And the amount of how much books you can put in use depends on the amount of children's books, because both use up labels. The books are all physically there, just everything above the 9999th is unusable.

The same is happening in your computer. You are not labelling books, but memory bits. And your "label" in a 32-bit-system can only count from 0 to 2³²-1, which is 4 GB. So you can only use 4 GB memory total in your system. If there was a way to use this address space for your system memory only, you could use all 4 GB. But when you want to use 1 GB out of your 3 GB video memory, you can address 1 GB less of system memory, so only 3 GB. I understand that you actually have 7 GB of memory in chips (4 on the mainboard, 3 on the video card), but the 4 GB limit applies to the sum of all memory on the system, it doesn't count separately for the video card memory and separately for the system memory.

So your options are to 1. use a 64-bit-OS. The license costs money, and if your processor only supports 32 bit, you'll have to change the processor, and with it, probably the mainboard, too. So this option is very expensive, and probably some games won't run anymore. 2. Use another video card with less memory, preferably 512MB. Costs money and performance. 3. Do nothing.

share|improve this answer
The video card has its own RAM. 3GB of RAM to be more precise! Yes, its a kick ass nVidia :) – SolarWind Jul 21 '10 at 21:31
I know it has its own RAM. But when you're on a 32 bit system, Windows can only see 4 GB of memory total, regardless if that memory is on a video card, or on your mainboard, or somewhere else. So now you have 4GB RAM, 3 GB video memory, and some on-board memory on other chips, like firmware and such. Windows is seeing a total of 4 GB of these 7+ GB. I don't know how it decides how much addresses to allocate to video memory and how much to system memory, but while your card and your mobo don't share physical memory, they share the limited address space for that memory, so you get neither full. – rumtscho Jul 21 '10 at 21:49
@Altar Can you post exact model of your video card? – AndrejaKo Jul 21 '10 at 22:04
@rumtscho - you don't understand. The RAM is not shared between the video card and mainboard. @AndrejaKo - nVidia GTS 360M – SolarWind Jul 22 '10 at 0:30
@Altar: Unfortunately, rumtscho is correct--32-bit Windows only knows how to address 4 GB of RAM. The fact that the video card has its own discrete RAM is good for performance, but it does not get around the 4 GB limitation. The address space is used for both memory-mapped hardware (such as your video card) and working memory (i.e., the 3.2 or 2.98 GB of usable RAM reported by Windows). – rob Jul 22 '10 at 7:56

There's a good chance that there will be no way. Simply BIOS uses some memory addresses as its own. Check out shadowing options in BIOS if you have any and disable them. Here's a link explaining shadowing:

share|improve this answer
My BIOS is pretty rudimentary. There is no option to disable shadowing. – SolarWind Jul 21 '10 at 21:18
PS: That feature cannot waste over 200 MB of RAM. – SolarWind Jul 21 '10 at 21:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .