Windows – Why does installing NVidia 9600GT graphics card, take 1GB of RAM away from Windows

32-bit64-bitgraphics cardmemorywindows

I've changed graphics cards in my PC and now Windows 7 (32bit) is reporting that I have a whole gigabyte less physical RAM in my PC. Why is this?

Firstly, the machine has 4GB of physical RAM. The old card was an ATI 2600XT with 256MB and the new card is an NVidia 9600GT with 512MB.

With the ATI card windows sees 3326MB.
With the NVidia card, windows sees 2558MB.

I realise that due to address space restrictions I will not see all 4GB with 32bit windows, but why is there such a massive loss of RAM when simply changing cards (bearing in mind BOTH cards have their own RAM and borrow no main memory like some built on chipsets do). Would using 64 bit windows solve this?

Best Answer

Because it (probably) has 1GB of video memory, which has to be taken out of the 32 bit Vista 4GB address space.

32 bit Windows has to share 4GB between physical memory and all of the memory mapped devices installed in the system. That's why you typically only have access to a bit more than 3GB of memory even with a lesser graphics card.

If you move to 64-bit Windows, the address space is much larger so you won't run into that issue and will get your full installed RAM. One downside though is that programs will actually use more memory, mostly because the size of pointers is larger.

EDIT:

It doesn't matter that the card has it's own memory. You still need address space for it's memory to be mapped into. I just noticed in the post that it's a 512MB card not a 1GB card, so there may be something else at work beyond the delta of 256MB that you will lose from the address space for the increase in card memory.