Only 3072 MB of memory usable on Win 7 64 bit. HELP

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

LuigiVN

Distinguished
May 9, 2010
150
0
18,690
Hi guys.

Today I noticed that my system is only using 3072mb of RAM, I have 4 GB in my system and they used to work pretty nice until now, before all 4 were usable, now Im missing 1. I thought this was because ram remap feature was diabled on the bios (BTW here's my board : Biostar G31 M7 TE). So I enabled it and rebooted my system. Turns out it's still the same... I tried also enabling the memory hole to 15-16 mb (the only setting appart from diables) same results. Can anyone help me please? I think this is decreasing my PC's performance...

edit: what seems to be doing this is the ''pci mmio allocation'' I googled this and didn't found a really explanatory definition... can someone help me with this so it doesn't takes ram from me? =(

 
I don't know... Ive checked with every solution everyone has said here Ans the problem is still there. I'm not some novice who doesnt knowthe difference between 32 and 64 bit OS. I did the basic Troubleshooting before posting...
 

It is true that if you have to use more than 3.25 GiB RAM your BIOS has to support it and you have to use a 64-bit operating system. However, most reasonably recent computers support it and the Windows license 7 key is 32/64-bit agnostic, so you may install the version of your choice with your original OS key.

In general, noobs should never know that there is such a thing as "flashing the BIOS", since the consquences can be dramatical.

About your 4 GB RAM seen as 3072 MB RAM, start msconfig and check "use original startup options".
 
Today I noticed that my system is only using 3072mb of RAM

Define "using" for me: Are you saying Windows can only see ~3GB of RAM, or Windows is only using that much? The first points to a system configuration problem, the second simply points to a lack of understanding how Windows handles memory management.

I see a lot of people suggesting a lot of things without first actually diagnosing the problem...
 

most BIOS will at least support 4GB of RAM for years now.
maybe a few proprietary system might still limit the capabilities but not retail boards from newegg and such.
so if you have a board that doesn't allow it then odds are it's time to upgrade.
as for the windows license 7 key, I don't know and do not have to worry about that.

and P.S.
I spell checked you post in mine, read mine and then yours.
 
PCI MMIO allocation: 4096 MB to 3072 MB

Based on this, my bess guess is that the IO Addresses of the PCI Bus are being mapped to the upper area of the Address Space, which is the proper Win32 behavior. This should not be happening on Win64, so it looks like the addresses where the PCI bus is being assiged is overlapping the upper half of your memory, cutting down what is avaliable for the OS to use.

A quick google search of the PCI MMIO behavior turns up a LOT of results, I'm reading through them now, and will respond ASAP on a possible fix.
 
Looks like its a msconfig issue:

http://www.pcmech.com/forum/computer-hardware/215326-windows-memory-issues.html

Max Memory was set to 3000 MB in msconfig > boot > advanced

Probably need to modify that to read 4GB in your case. I would definatly check what MAXMEM is set to in any case...

Some other related posts:
https://vip.asus.com/forum/view.aspx?id=20101129213600075&board_id=1&model=P7P55D&page=1&SLanguage=en-us

http://forums.overclockers.co.uk/showthread.php?p=15346899

Still looking for more posts on the topic, but it seems fairly common...
 
http://www.vistaforums.com/total-memory-available-only-3-3gb-4gb-physical-memory-under-windows-7-64-bit-t60625.html

This is a BIOS setting . It can be called any of several different things,
but look for a setting to re-map or offset memory in the BIOS and change it
to enable the offset. The issue is that peripheral cards and functionality
need memory addresses and normally these are mapped into the range between
3-4 GB since 32-bit OS's needed the addresses for these cards to be below
the 4GB point. With a 64-bit OS, this 4GB limitation is no longer an issue,
and the memory addresses can be above 4GB, but the BIOS needs to know that
and make the change.

Make sure memory remapping is enabled.

http://www.evga.com/forums/tm.aspx?m=1025804&mpage=1&print=true

Ok, here are 3 things. The 1st is a possible BIOS work around. The 2nd is a Windows hidden setting. The 3rd is an explaination of what causes Windows 32 bit to be limited to max of 4 GB, but cannot even use all of that...; some of the first 2 settings (fixes) above help alleviate this problem.
1. In BIOS under Frequency/Voltage / Memory Config set as below:
Memory Low Gap: [Auto]
Memory Remap Feature: [Enabled]
PCI MMIO Allocation: 4GB To 2048 MB
Memory Hole: [Disabled]
DRAM Margin Ranks: [Disabled]

2. In the start/search box or the Run command type " msconfig.exe --- under Tab Boot, click on advanced, then on the right hand side the memory setting is probably incorrect. What I and others have done is uncheck the box (rather than correct the value). Now all memory should be available.

3. Ok, the memory issue detail from Item 1. It is not the x86 chips that have the problem as they are able to address upto 64 GB, but it is the OS / motherboard Architecture of PCIe that causes the issue. You've got memory and devices taking the same memory address space, and the devices win. Remapping the devices moves them way out of the way of the memory, so you don't have the problem. What happens is the MS Windows 7 32bit must use the upper memory space for devices so it cut off memory before 4 GB.
See this link for detail explanation (pay attention to the last section on windows). http://en.wikipedia.org/wiki/3_GB_barrier

The consensus seems to be to enable memory remapping in the BIOS, and uncheck the MAXMEM field in msconfig -> boot.ini -> Advanced.
 
^^ Basically, without memory remapping, the PCI IO Addresses are overlapping the upper 1GB or so of memory addresses, making them invisible to the OS. Memory Remapping (should) assign those overlapping memory addresses to new unique addresses, making them visible to the OS.

Only other thing that could be a factor is the MAXMEM field, which should be unchecked [NOT ZERO!], allowing the OS to use however much RAM is installed.


One of these days, after hell freezes over and I finish my audio guide, I'm going to write a guide on how windows memory management works under the hood...
 
For those who want more info:

http://en.wikipedia.org/wiki/3_GB_barrier

Modern personal computers are built around a set of standards that depend on, among other things, the characteristics of the original PCI bus. The original PCI bus supported 32-bit physical addresses and 32-bit wide data transfers. PCI (and PCI Express, and AGP) devices present at least some, if not all, of their host control interfaces via a set of memory-mapped I/O locations (MMIO). The address space in which these MMIO locations appear is the same address space as that used by RAM, and while RAM can exist and be addressable above the 4 GB point, these MMIO locations decoded by I/O devices cannot be. They are limited by PCI bus specifications to addresses of 0xFFFFFFFF (232-1) and below. With 4 GB or more of RAM installed, and with RAM occupying a contiguous range of addresses starting at 0, some of the MMIO locations will overlap with RAM addresses.

The BIOS and chipset are responsible for detecting these address conflicts and disabling access to the RAM at those locations.[9] Due to the way bus address ranges are determined on the PCI bus, this disabling is often at a relatively large granularity, resulting in relatively large amounts of RAM being disabled.[10]

Basically, the PCI bus addresses can NOT be placed above the 4GB address, and thus must be within the 4GB range. As a result, there will be memory conflicts when 4GB of RAM is installed.

x86 chipsets that support more than 4 GB of RAM typically also support memory remapping (referred to in some BIOS setup screens as "memory hole remapping"). In this scheme, the BIOS detects the memory address conflict and in effect relocates the interfering RAM so that it may be addressed by the processor at a new physical address that does not conflict with MMIO. On the Intel side, this support once was limited to server chipsets; however, newer desktop chipsets like the Intel 955X and 965 and later support it as well. On the AMD side, the AMD K8 and later processors' built-in memory controller supported it from the beginning.

Memory Remapping detects teh conflict, and move the conflicting RAM addresses above the 4GB limit, removing the conflict and making all the RAM addressable by the OS.
 
I had the same problem due to an optimizer (The PowerBooster) tweaking my startup options.

Let me repeat it: just start msconfig, click as told, click apply and reboot. Problem fixed.

And indeed, memory remapping has to be activated in order to use all 4 GB RAM.