I have 3gb RAM, but XP only showing 2Gb?

Page 3 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.



I really wish people would read before posting


For The Second Time In This Exact Same Thread:



In a computer all bytes in the memory system need a unique name. This is called an address. For example, if you have 2 GB of main memory, then there are 2147483648 bytes of RAM in your machine, each of which require an address for the operating system to communicate to it. To give these all an address you need 31 bits to do it. Now, if/when you have 32 bits, you can name 4 GB (2 bytes to the 32nd power = 4GB).

This is why the total addressable space available in a 32 bit OS is 4GB – the OS runs out of addresses and cannot communicate/locate any more bytes of memory because of that.

You may think ”Hey, 4GB of address space… 4GB of RAM… What’s the problem” The problem is that memory isn’t the only thing needing an address. If you install a total of 4GB worth of RAM, the system will detect/use/display less than 4GB of total memory because of address space allocation for other critical functions, such as:

- System BIOS (including motherboard, add-on cards, etc..)
- Motherboards resources
- Memory mapped I/O
- Configuration for AGP/PCI-Ex/PCI
- Other memory allocations for PCI devices

Different onboard devices and different add-on cards (devices) will result of different total memory size. e.g. more PCI cards installed will require more memory resources, resulting of less memory free for other uses.


This limitation applies to most chipsets & Windows XP/Vista 32-bit version operating systems. Again, this is a limitation of the Operating System not having enough address space to allocate to the system *and* the RAM. Not allocating address space to devices renders them inoperable. Not allocating addresses to RAM simply results in the unaddressed section not being used in an otherwise fully functional computer. Therefore the OS designers assign RAM last.

We can have long debates about mathematical fundamentals and discussions about why the original Windows designers couldn't allocate the full theoretical max of 36 bits of address space so that users today would be able to use more resource. But at the end of the day, the designers and engineers 'Didn't Then'. So we 'Can't Now'.


If you install a Windows operating system, and if more than 3GB memory is required for your system, then the below conditions must be met:
 

Then can't I disable it? My 4850 already has 512 MB of RAM.
Also, can't I disable pagefile and Virtual Memory?
I have 3.2 GB of RAM and I use only about 500-800 MB at idle. When I open about 150 Firefox windows, it still uses only about 2 GB of RAM.
 


I'm giving you the short answer, you already have a complete answer from Scotteq. 32-bit operating systems support 4GB of MEMORY ADDRESS SPACE, which includes the 512MB of your graphics card and a few other devices that have their own cache. You can't disable the 512MB on your 4850.
 




You can't disable them because they're critical to the functioning of your computer. If you were able to disable the address space set aside for Video I/O, then you Would Have No Video. It would not work. At All. Because you disabled it. Same for communications, same for devices, same for your computer's Bios... All of these are absolutely critical to the normal functioning of your PC. If you found a way to disable it, then it wouldn't work.

Pagefile has zero impact on address space. It's merely the means by which your computer sets aside data it doesn't need at the moment so it can do something else.

Virtual Memory refers to a technique where your applications "see" a continuous block of memory, whereas in the background that data can be elsewhere - (fragmented, in the page file, on the hard drive, etc...) Virtual Memory has no impact on address space.


Look - I am (not really, but roll with me for a sec...) very sorry you don't like this little fact of personal computing reality. But there's only so much space, and a lot of other things besides your RAM that need it in order for your computer to function properly. We've told you the answer several times now: If you must use that much RAM, then you need a 64 bit OS.


It's a guess, but what you may not be understanding is that your applications/games/whatever will still run.
 
So, if I move to a 1GB graphics card, would I have only 2.7GB of RAM?

And why do 64-bit OSes have only 128GB address space? Shouldn't it be 2^64 bytes?
 


It depends on how the 1GB is arranged: If it's a dual-GPU card, it's two 512MB sets that are mapped the same. If it's a single GPU card, it really is 1024MB
 



Regarding address space in 64 bit OS's: The 64/128 limit is artificially set by Microsoft and can be increased if/as needed, simply by resizing the table used for Addressing. The theoretical limit is 16 Exabytes.
 


Correct. M$ did that to make it easier for them to sell new versions of windows as needed, as there is zero difficulty in allowing the full 16 exabytes over just 128GB.
 


How do you get that number? 2^64 is the theoretical limit of the virtual address space, not the physical.
 


That's not quite true... I have a dual boot system with 4GB RAM installed... XP reports 3.25GB available to the system. I seem to remember that either SP2 or SP3 is required for 32bit XP to see any more than 2GB...
 
The 2GB limit is the limit put in place for programs outside the system itself for use. By default, 2GB is set aside for the system, and 2GB is set aside for the user(s). While the /3GB switch can override that behavior, it has been known to cause issues.

As a general rule (since most GFX cards use 512MB address space), a 32-bit OS will see 3.25GB RAM, +- 512MB depending on setup.
 



Correct: 2^64 = 16 Exabytes I was not referring to the physical limits, as those vary according to your hardware.

 


I was talking about the paging process (where you go from the virtual to the physical address space). Just like you cannot use 2^32 to describe the maximum for a 32bit OS. So the page table structure determines how many bits you have.
 
And I was talking about the limit for the size of the address table. I understand you can get around that by implementing a PAE~like arrangement. Though with 64 bits to play with I don't see where that would be necessary any time in the near (and not so near) future.


{edit} Or were you referring to the physical limit on a Microprocessor!?!? i.e. how microprocessors may be stuck with a 40 or 48 bit address bus!?!?

Seems like we're changing topics back and forth, and have lost sight of the original question...
 
The current page table implementation doesn't scale to full 64 bits (only to 52 as I recall it). That is what I am talking about.

Generally, 2^32 and 2^64 only referes to the virtual address space. So when the talk is about how much physical ram a processor (current and later revisions) can potentially address, you need to dig deeper.
 
Ah :)


The original question was the usual "Why can't my 32 bit computer address my 4GB of RAM", with a side dose of "since it doesn't why can't I turn off the Pagefile, Virtual Memory, and Video RAM to get full use of my DIMMS..." We were trying to explain in English why that's a bad idea - (...because the first two have no effect on your addressable memory and because doing that results in an inoperable PC...) - to an individual who didn't seem to like the answer very much.
 
my bios let me suspend my onboredvideo and automaticly reverts if i dont have pci-e installed so thats how i freed up ram
my bios let me suspend my onboredvideo and automaticly reverts if i dont have pci-e installed so thats how i freed up ram
 


Scott was refering to the other guy who wanted to free up the 512MB his graphics CARD was taking away from the 4GB total mapping area.
 
So, if you have 2 512MB cards in CF, you can't utilize 1GB, but only 512MB? Then why do they call it 4870x2 2GB? Can it use only 1GB?

Oh, I had an 8600GT 1GB before and it still showed 3.2GB as it does now. Guess no one can fully understand windows.
 




...because in CF/SLI, data for each individual card has to be mapped to the other(s) for coordination purposes. An X2 card (and I have a 4870X2) is basically CF in one slot, hence the need to replicate data. Also, not every MB of video ram is memory mapped anyhow. That varies with the implementation and drivers.


And yes, if/when you install a dedicated GPU on a formerly integrated mobo, it's a very good idea to disable the onboard graphics, unless you have a specific need (extra displays) to not do that.
 

Wrong. For a single GPU, the entire memory region is mapped For SLI/CF, the amount of RAM on one card (since the RAM is mirrored) is mapped. (Hence, a 2GB 4870X2 takes up 1GB address space). It does depend on drivers though; my old 9800GX2 eats the full GB...
 


No it does not. Feel free to check it with msinfo32 (memory map).