This is a screen shot of a Vista PC with 4GB of RAM installed and only 3454MB is showing. Allowing for some RAM being used for the Video Display still does not explain what has happened to the rest.
The Screenshot itself provides a hint why this is happening: The System Type is a 32 Bit Operating System. In any 32Bit Operating System, the virtual address space is limited to the size of a 32 Bit value:
2 raised to 32 (2^32) = 4,292,967,296 and converting to the actual value divide by (1024 x1024) = 4096MB.
As far a 32 Bit Vista and XP are concerned, 4096 Megabytes is the limit.
Addressing more than 4GB of memory is possible, but it takes a serious hardware modification to the CPU and the applications have to be specifically coded to take advantage of these modifications.
We are limited to 4096 megabytes of virtual address space on a 32Bit operating system, but, exactly where did the other 642 megabytes of the memory go? The Windows memory manager is limited to a 4GB physical address space. Most of that address space is filled with RAM, but not all of it.
MEMORY-MAPPED Devices, such as your Video Card, will use some of that physical address space, as will the BIOS ROMS. After all the non-memory devices have had their say, there will be less than 4GB of address space available for RAM below the 4GB physical address boundary.
To address 4GB of memory you need 32Bits of address bus. This gives us a problem, you need things like graphics cards and hard disks to be accessible to the computer in order for it to be able to use them. If you want to fit memory and devices into a 32Bit address range, not all of the available 4GB of address space can be given over to memory.
For a long time this wasn't a problem, because there was a whole 4GB of address space, so devices typically lurk up in the top 1GB of physical address space, leaving the bottom 3GB for memory. And 3GB should be enough for anyone, Right?
The following diagram from Intel illustrates the memory map:
What is the solution?
64 Bit Operating System.
2^64 = 18,446,744,073,709,551,616 / (1024 x 1024) / 8 = 2 exabytes (Giga, Tera, Peta, EXA).
The user-mode virtual address space in a 64 Bit Operating System is 8 Terabytes.
Don't waste your money of 4GB or RAM. You won't be able to use it all. Buy 3GB instead. Every motherboard will happily accept 2x1GB and 2x512MB DIMMs. UNLESS - you have a dual channel mother board. In that case the four memory modules have to be the same.
So you would purchase two matched sets of 1GB sticks for a total of 4GB. Read my article on RAM (Dual Channel).
- This page last updated on 2 Sep 2017