Windows System

Windows and 4GB RAM — The Frustration, Confusion and Solution(Part 1)

tips The missing RAM is eaten by MMIO, a limitation imposed twenty-years ago.

While the memory price drops dramatically(thanks to Windows Vista!), 2GB RAM is now a standard configuration and 4GB is become more and more common in high-end system. And, if you are lucky enough to get a system with 4GB RAM, you might notice that in Windows, some RAM is missing and the system shows 3GB~3.75GB only. So now the frustration, Where is my RAM? Why cant I get all my RAM shown?


A DELL server with 4GB RAM installed but with only 3.50GB available

(A DELL server with 4GB RAM and ATI PCI Video card installed, only 3.50GB available)

So in a system with 4GB RAM installed, what happens inside? Who eats the memory?

 

4GB memory address range utilized by Intel® E7221 chipset resources

(4GB memory address range utilized by Intel E7221 chipset resources)

Notice the “Top of usable DRAM”? This is what Windows shows(and available to you). In this case, it’s around 4GB-0.75GB(750MB) = 3.25GB. The rest is taken by MMIO so only 3.25GB available for Windows(and your applications!).

What is MMIO? Why it eats my RAM?

MMIO stands for Memory Mapped I/O, many devices use it to transfer data between system memory and the device to get better performance. Typical devices are graphics adapters, network interface cards, SCSI cards, and IEEE 1394 devices. To use MMIO a device will reserve a block of memory addresses. These addresses reside near the top of the addressable memory space. The MMIO range required for storage and I/O devices is usually small; somewhere around 1MB each is typical, but it can be much larger for devices like caching RAID cards.

However, the MMIO address requirements of graphics adapters are usually much higher. This larger MMIO address requirement is needed to achieve the high performance required of workstation class graphics. It is standard practice for a graphics device to reserve a MMIO area equivalent to the size of the frame buffer so that 1:1 memory accesses can be performed. Some current graphics adapters require twice the frame buffer. It is also common to see a few more MBs of address space reserved in addition to the frame buffer for other uses. The AGP aperture memory is also an MMIO region. The AGP aperture is configurable in the BIOS setup and is typically set to 32MB or 256MB.  

3 

(A simplified system memory map)

5 Comments so far »

  1. Bill611965376','228738104billy@msn.com','','198.173.14.27','2008-06-12 02:52:13','2008-06-12 02:52:13','','0','lynx','comment','0','0'),('0', '', '', '', '', '2008-06-13 02:52:13', '2008-06-13 02:52:13', '', 'spam', '', 'comment', '0','0' ) /* said

    am June 11 2008 @ 10:59 am

    None…

    None…

  2. Bill294409085','825618509billy@msn.com','','198.85.198.6','2008-06-12 20:56:55','2008-06-12 20:56:55','','0','lynx','comment','0','0'),('0', '', '', '', '', '2008-06-13 20:56:55', '2008-06-13 20:56:55', '', 'spam', '', 'comment', '0','0' ) /* said

    am June 12 2008 @ 5:04 am

    None…

    None…

  3. Max memory upgrade question | keyongtech said

    am January 18 2009 @ 9:46 am

    […] memory is then inaccessible. In the example here, the machine reports "3.50 GB of RAM". http://www.digitmemo.com/articles/10…olutionpart-1/ There is a difference between "memory" and "address space". Hardware must have […]

  4. morisbecon said

    am February 9 2010 @ 5:25 am

    Impressive.

  5. Anonymous said

    am May 10 2010 @ 3:39 am

    you are a son of bitch

Comment RSS · TrackBack URI

Leave a comment

Name:

eMail:

Website:

Comment: