Out of the 4Gb some of the memory is used by the kernel and the rest by user processes. By default windows (at least used to) allocate memory mappings to kernel above the 2Gb and User below the 2Gb so that if you had a lot of memory then you only got to see 2Gb of it. Then they changed it a bit and went to 3Gb User 1Gb kernel and I lost track of what happened after that. When you have 4Gb the kernel including graphics card will sit at the top of the RAM space and the user memory starts at the bottom. I don't know exactly when the two collide but I believe that there can be a hole which is totally wasted as nobody can use it. However that kernel memory with graphics card is being used even though you cant use it in your programs - i.e. if you had less memory not to waste the hole then the kernel would burn more of what would have been user memory. The graphics card uses a lot of memory because it buffers stuff like large textures in RAM before sending it up to the card or has page lock tables sat there. It does this because by reserving a large window space of physical addresses, it can DMA the data instead of wasting the CPU time sending it. So that texture in your game is in your user space to start with until the game thinks it needs to go up to the card then the texture is transferred by the game in chunks into this kernel memory and then the process is started to send it to take it to the card which is slow across a PCIe bus. The DMA engine starts feeding it to the card and the CPU carries on so not having to wait around.
So assuming that stability is assured, having 4Gb is better than 2Gb. But if memory was very expensive then you would be more cost efficient to get just 3Gb.
Oh and just to add, you need a 64 bit CPU to run a 64 bit OS too. Athlon64, PentiumD, Core2 etc all fine - older ones not so fine !
So assuming that stability is assured, having 4Gb is better than 2Gb. But if memory was very expensive then you would be more cost efficient to get just 3Gb.
Oh and just to add, you need a 64 bit CPU to run a 64 bit OS too. Athlon64, PentiumD, Core2 etc all fine - older ones not so fine !