Win 7 x64 4GB(3.25 Usable)

German Muscle

Supreme [H]ardness
Joined
Aug 2, 2005
Messages
6,943
win7wtf.jpg
 
Why is it not using the full 4GB....
Most likely it is an issue with mapping memory to address space. Main memory is only one of the things that requires address space. Therefore in a machine with 4GB of ram some stuff will either not be mapped at all or will be mapped at an address above 2^32.

Some motherboards simply cannot map anything to addresses over 2^32. Others can do so but need to be explicitly instructed to. Go into your bios and look for a setting like "ramap memory" or "maximise memory below 4G" or something along those lines and if you find one try changing it.

Does the mobo have built in video? If so, part of the RAM is likely allocated to the onboard video.
If it was a small discrepancy I would agree with you but IMO this discrepancy sounds too big for that.
 
3.25gb is usable for 32bit apps upper ram is for 64bit and the OS. Apps don't see the ram remember
 
3.25gb is usable for 32bit apps upper ram is for 64bit and the OS. Apps don't see the ram remember

32-bit applications are limited to 4gb of address space, but that address space can be anywhere in the RAM.

You should only get that '(X.XX GB usable)' line in the System window on 64-bit Windows if something (typically onboard video) is using memory. I have 8GB and I don't have the X.XX GB usable line.
 
What motherboard?

My P5B-E came out when there wasn't a mainstream x64 OS (XP x64 only) and it had a memory remapping toggle in the BIOS settings. When I upgraded to 4GB before going from XP to Vista x64 SP1 one way would show the typical 3.25GB in the BIOS and the other setting would show 4.0GB in the BIOS.

The catch was that in XP x86 the setting which would show 4.0GB in the BIOS would only allow me to use 2.0GB in XP (and 4.0GB in Vista) The setting which showed 3.25GB in the BIOS allowed 3.25GB in both XP and Vista.

Report here your motherboard and chipset, look in your BIOS for a memory mapping setting.
 
Why is it not using the full 4GB....

It is actually using the full 4GB; I really wish people would understand this. What you mean to ask is why is the PCI hole not remapped. On some motherboards you do not have to make the option to enabled the remapping of the PCI hole, it is done automatically. On others you do have to enable this option.

As Surly73 advised report the motherboard you have and it can most likely be resolved easily after that. Unless you have mapped memory that cannot be remapped, but I do not think that this is the case as one pointed out about integrated graphics. Note that you have 770MB mapped to hardware.
 
Mine isn't like that at all. Granted I'm on an AMD x6 system with 12GB of ram i'm still on Win7 x64.

asdf.jpg
 
Also wanted to add its running the latest Bios update and i dont recall there being anything about memory mapping in there.
 
Well, I looked at Asus for info on your mobo.

One thing stands out: http://support.asus.com/faq/detail.aspx?SLanguage=en&p=1&m=P5N-D&s=22&hashedid=yQYfAtkxxZMjR79G&os=&no=D06D6034-D5C9-49C4-5E1B-CF724DB5C000

They don't seem to say that the 4GB limitation applies only to 32-bit OSes, but with the crappy translation they usually have you never know if that's intentional or not. They say "most chipsets" have this limitation. May be this is an nForce limitation.

The memory spec for the board is "4xDIMM max 8GB", surely they wouldn't tell you that you could install 8GB but "chipset limitations" only allow 3.25GB to be used. Are they that lame?

I checked your owner's manual, the BIOS first page should have "installed" memory and "usable memory" stated there - what do these say?

There's an option under advanced for "SLI-Ready Memory" - is this enabled?

Do you have nForce chipset drivers all properly installed?

Have you paid attention to all of the memory installation instructions on page 2-14? Here it seems to confirm that x64 OSes shouldn't be limited to <4GB:
- You may install varying memory sizes in Channel A and Channel B. The system maps the total size of the lower-sized channel for the dual-channel configuration. Any excess memory from the higher-sized channel is then mapped for single-channel operation

- Always install DIMMs with the same CAS latency. For optimum compatibility, it is recommended that you obtain memory modeuls from the same vendor.

- Due to chipset resource allocation, the system may detect less than 8GB system memory when you installed four 2GB DDR2 memory modules.

- If you install four 1GB memory modules, the system may detect less than 3GB of total memory because of address space allocation for other critical functions. This limitation applies to Windows Vista 32-bit/Windows XP 32-bit version operating system since it does not support PAE mode.

- If you install Windows Vista 32-bit/Windows XP 32-bit version operating system, we recommend that you install less than 3GB of total memory.

Notes on memory limitations
- Due to chipset limitation, this motherboard can only support up to 8GB on the operating systems listed below. You may install a maximum of 2GB DIMMs on each slot [ Windows XP Pro x64, Windows Vista x64 Edition ]

So - what's with the special comment about losing memory only in a 4x1GB scenario instead of also a 2x2GB scenario? I find that interesting, along with the mention of PAE. Are you running 4x1GB?

EDIT: Also http://support.microsoft.com/kb/978610. There is a "maximum memory" in msconfig which could have become set somehow.
 
Well, I looked at Asus for info on your mobo.

One thing stands out: http://support.asus.com/faq/detail.aspx?SLanguage=en&p=1&m=P5N-D&s=22&hashedid=yQYfAtkxxZMjR79G&os=&no=D06D6034-D5C9-49C4-5E1B-CF724DB5C000

They don't seem to say that the 4GB limitation applies only to 32-bit OSes, but with the crappy translation they usually have you never know if that's intentional or not. They say "most chipsets" have this limitation. May be this is an nForce limitation.

The memory spec for the board is "4xDIMM max 8GB", surely they wouldn't tell you that you could install 8GB but "chipset limitations" only allow 3.25GB to be used. Are they that lame?

I checked your owner's manual, the BIOS first page should have "installed" memory and "usable memory" stated there - what do these say?

There's an option under advanced for "SLI-Ready Memory" - is this enabled?

Do you have nForce chipset drivers all properly installed?

Have you paid attention to all of the memory installation instructions on page 2-14? Here it seems to confirm that x64 OSes shouldn't be limited to <4GB:


So - what's with the special comment about losing memory only in a 4x1GB scenario instead of also a 2x2GB scenario? I find that interesting, along with the mention of PAE. Are you running 4x1GB?

EDIT: Also http://support.microsoft.com/kb/978610. There is a "maximum memory" in msconfig which could have become set somehow.

Installed is 4096MB, Useable is 4095MB

There is no SLI Ready Memory in the Advanced Tab.

These are the same exact memory modules. Its 2x2GB

The MSFT knowledge book article fixed it.
 
But it isn't using all of his ram. ram is not address space.

Oh really? LOL, you have no idea how ignorant and asinine your statements is. RAM is nothing but address spaces, and yes he is using all his RAM. You mean usable system memory; this is the difference.

This is a motherboard that will set the bits automatically to enable the remapping of the PCI Hole, as most are now.
 
Mind posting a link to that article?
http://support.microsoft.com/kb/978610
Oh really? LOL, you have no idea how ignorant and asinine your statements is. RAM is nothing but address spaces, and yes he is using all his RAM. You mean usable system memory; this is the difference.

This is a motherboard that will set the bits automatically to enable the remapping of the PCI Hole, as most are now.

Actually the system wasnt using all of my memory. Just because the memory is installed doesnt mean its used. Stop trying to be a dick and arguing over the little shit.
 
Oh really? LOL, you have no idea how ignorant and asinine your statements is. RAM is nothing but address spaces, and yes he is using all his RAM. You mean usable system memory; this is the difference.

This is a motherboard that will set the bits automatically to enable the remapping of the PCI Hole, as most are now.

Address space is just an empty space initially. A bunch of address lines going out from the CPU. The address space is populated with RAM and MMIO.

His problem was a shortage of address space (the maximum memory setting in Windows). He only had 4GB address space. That is not enough for both RAM and MMIO.

Some RAM is remapped above 4GB - hence the need of a larger than 4GB address space to actuallly use 4GB RAM.

He was using 4GB address space - a combination of MMIO and RAM (less than 4GB RAM).
 
the board is a Asus P5N-D(nForce 750i), no on board video. Using a GTX460.

This is an issue with the memory controller built into NVIDIA chipsets. They do not map the memory hole correctly. There should be a BIOS option called "Memory remapping" or something to that effect. Additionally you want the latest chipset drivers and all the Microsoft fixes pertaining to this. There is one that I believe addressed this problem back in the day.
 
This is an issue with the memory controller built into NVIDIA chipsets. They do not map the memory hole correctly. There should be a BIOS option called "Memory remapping" or something to that effect. Additionally you want the latest chipset drivers and all the Microsoft fixes pertaining to this. There is one that I believe addressed this problem back in the day.

There is no such thing in the bios. It is the latest release. All the drivers are the latest off the Asus site as well.

Its fixed now however. Ive also noticed there is literally no overclocking options on this board. I wanted to push it hard but its no big deal as this is just to hold me over till X79
 
There is no such thing in the bios. It is the latest release. All the drivers are the latest off the Asus site as well.

Its fixed now however. Ive also noticed there is literally no overclocking options on this board. I wanted to push it hard but its no big deal as this is just to hold me over till X79

The drivers off ASUS' site may not be the newest ones. They might be, but I doubt it. I'd go straight to the source for drivers. As for the overclocking, you should have a few options for overclocking. No it won't be quite as in-depth as the 680i SLI and 780i SLI boards, but it shouldn't be all that bad either.
 
So - what's with the special comment about losing memory only in a 4x1GB scenario instead of also a 2x2GB scenario? I find that interesting, along with the mention of PAE. Are you running 4x1GB?

Simple, it looks like a bug in the chipset that set max memory to 4 or 8GB and subtracts PCI IO map from there...

If you are using 32bit OS you get stuck with the reduced ram

X64 can move the IO map to the top of it's memory address range so it is not affected (but this reqires a chipset that can support this).

When we reach the point where you can install the max memory for a x64 os, we will see the same issues all over again (PCI IO map taken from physical address space)
 
Oh really? LOL, you have no idea how ignorant and asinine your statements is. RAM is nothing but address spaces, and yes he is using all his RAM. You mean usable system memory; this is the difference.

This is a motherboard that will set the bits automatically to enable the remapping of the PCI Hole, as most are now.

funny that you should call him ignorant......

RAM = Random Access Memory aka Physical Memory installed in the machine

Address space is what is available to the processor or OS for example 32bit windows without PAE have an Address Space of 4GBytes where as Windos 7 Ultimate has an address space of 192GBytes. Address space is by default is always made up of RAM, ROM and Virtual Memory on a PC as used today (even UEFI ones)
 
Ignorance is abundant in these posts. First off, you were using all your memory! What the people here are not understanding-besides me not being a dick- is the very fact that your I/O and memory ranges contain the very areas to communicate and the data to be moved in/out from RAM. These reserved addresses cannot be used by anything else or you would obviously have a conflict. To say that you are not using 0XFFFFFFFF is completely asinine because you are. Nothing dickly about it kids. It is a complete issue with comprehension, and Ritalin will not help you to understand this unless you take the time to educate yourself about this subject matter.

So, we must then analyze the semantics here "of memory that is not in use." It is obviously an incorrect statement to say that memory is not in use, because it obviously is. How else is the CPU going to communicate at 03B0-03BB; a RAM allocated I/O address that is mapped and reserved for this device? Oh, but your system cannot use it you say! That is the system, people!!!!!!!! What is left after all mappings of RAM that is used for I/O and memory ranges can then be used by the system to allocate for other usages such as kernel, programs, et al.

BTW, it does not go from the CPU, it goes from memory controller to memory. It always has, and it always will till it differs. The CPU, as of now, is dependent on a controller till it is not anymore. Matter of fact the CPU requests, and is fed the information. It does not get it.

What a lot of you little young fucks do not realize is that the PCI hole still exists and will always exist. Once we fill 64bits with physical installations of RAM, we will need to move it "up" again. There will always be a hole because it is USED by the system to communicate with system hardware. Your RAM=system.

Ask yourself this simple question: If it is not in "use" then why is it in "use" (reserved) for hardware? Jesus, man, it does not take a CS degree to figure this one out.

So, do not call me a dick for your misunderstandings.

YOU RAM IS NOTHING BUT ADDRESS SPACE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Jesus, the ignorance.

Go ahead, open device manager or even look at German Muscle's original post with pic and prove that I am wrong............Please I really suggest! Make yourself a fool!

BTW it is not a chipset bug, The BIOS it what willset the bits for remapping the PCI hole. Even the KB article points this out!!!!

Address space is what is available to the processor or OS for example 32bit windows without PAE have an Address Space of 4GBytes where as Windos 7 Ultimate has an address space of 192GBytes. Address space is by default is always made up of RAM, ROM and Virtual Memory on a PC as used today (even UEFI ones)

Dude, you are so wrong and ignorant. Please, do a little research before making posts. Because you contradict yourself!!!!!
 
^ lol you still don't get it do you

but that's OK we don't need to explain it to you because obviously it is a waste of time on our part


Address space is NOT Radom Access Memory. Address space is the total amount of memory that the processor or OS can see and that includes the ROM and RAM and VIRTUAL MEMORY

Address space for OS such as Windows includes ROM, RAM, Virtual Memory, and IO space which may or may not be contained in ram (I guess you forgot in your haste to realise that virtual memory typically sits on a hard drive, right? You know one of those mechanical or flash storage devices)

I guessed you missed this in Surly73's post

- Due to chipset resource allocation, the system may detect less than 8GB system memory when you installed four 2GB DDR2 memory modules

certaintly looks like a bug to me considering that Intel Chipsets that support memory remapping do not suffer from this same limitation.....lol

So tell me since you claim address space is RAM, what happens if you put 2GB of RAM into a machine? Oh, that's right, the remaining address space becomes virtual memory......oh silly me........by your assertation the OS would be limited to 2GB and that is it because after all you stated that Address space is nothing but RAM....lol

btw the OP is using all of the address space available to him, not all of his ram lol Windows is even telling him as much
 
Last edited:
No, you do not get it; You can look it up and see that you do not get it. Address space is flat; monolithic. It is mapped out and labeled. Has been for a long long time. Will always be so. It is simple. Usable memory that which can be allocated by the system for a processes and such is not contiguous and is within the address space of the installed system memory.

Lets use 32bits. 0x000000000 to 0xFFFFFFFF; 4GB's. Do you really think that in there somewhere they stop using the label address space? No, obviously not. Because that is the address space! From the bottom 0 bytes to the very top and end of 32bit addressing 4GB's. Within this address space, upper and lower, is memory mapped I/O, which is write protected and is being USED as I said before. These segments did not suddenly become unused! It is being used by your ACPI BIOS, video adapter, PCI, PCIe, et al. That which is not write protected and free segments is usable by the system. Very simple. You cannot disprove that, and if you try you are nothing but being foolish.

You keep on posting "Address space is the total amount of memory that the processor or OS can see and that includes the ROM and RAM and VIRTUAL MEMORY." You really do not understand this statement do you? BTW, ROM is not included unless it is shadowed into extended memory, but these days you talk directly to the hardware and has/can been/be configured for use since NT and on up with Windows OS's, including 95. It used to be included in the BIOS for compatibility, but note how you never see shadowing in the BIOS options anymore. And the fact that you never have to configure and reclaim to use those segments anymore. Shadowed ROM will even have the same address in RAM as it has in ROM and write protected, obviously. Note, how this is a perfect example of what I am explaining to you that you cannot seem to understand. Virtual memory is more of a parallel universe. Same mappings, just has reference to real points of address spaces to create contiguous spaces even. Memory that is not there does not magically become virtual; it may be used virtually though. It is still mapped to 0xFFFFFFFFF (4GB's) even if only 2GB of system memory is installed using a 32bit address bus and supporting operating system (even 64bit). You cannot seem to understand this is the only part that you say correctly: "Address space is the total amount of memory that the processor or OS can see..... "

You really need to stop and look at what you are saying and doing. You do not even know what Tag RAM is, and obviously do not know what you are talking about. You cannot even look at the usage of RAM in resource monitor and see that HE IS USING ALL HIS RAM AND ALL HIS ADDRESS SPACES. LOL, man when the light goes off you really are going to feel stupid.
 
Seen this happen on an Arrandale system before. No clue why it can even happen to a laptop that is stock configured with 4GB of RAM, and has a nVidia GPU, to boot.
 
Last edited:
Shikami post: The address space is mapped to RAM and other stuff (like this hasn't been stated several times already in this thread) - BUT LOOK, IT MEANS HE CAN USE ALL OF HIS RAM!!!

I think YOU need to step back and take a deeper look into your post to see how self-contradictory it is, and try to edit it out before someone quotes it for posterity.

Again, this is not being understood and there is no contradiction. Prove me wrong that the RAM was not being used by a peripheral and therefore not being used at all by the system. Prove me wrong that the address space is not there already. Mapped out as a point of reference to a section of memory installed or not. Please, look at Device Manager on a Windows 32bit OS that has only 2GB installed (less or even more), and explain to me why the upper segments are not being used, mapped out etc.

Shall I use Wiki?: "In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity." How about here, here and here: http://www.webopedia.com/TERM/S/segmented_address_space.html
http://www.webopedia.com/TERM/L/logical.html
http://www.webopedia.com/TERM/A/address_space.html

EDIT: Apprantly, Jeremyshaw, you must have found out about the correctness of the argument at hand because you have edited your post.
 
Last edited by a moderator:
I think I have a better way to explain this. You have address space that can be limited by particular factors. This it seems we all know. What is not known is how the limit is both physical and logical. Which is pertaining to the processor, the core logic (chipset), motherboard, and operating system.

As Wiki states here about physical and virtual for x86-64:
Larger physical address space: The original implementation of the AMD64 architecture implemented 40-bit physical addresses and so could address up to 1 TB (240 bytes) of RAM.[1](p4) Current implementations of the AMD64 architecture (starting from AMD 10h microarchitecture) extend this to 48-bit physical addresses[9] and therefore can address up to 256 TB of RAM. The architecture permits extending this to 52 bits in the future[1](p24)[10] (limited by the page table entry format);[1](p131) this would allow addressing of up to 4 PB of RAM. For comparison, x86 processors are limited to 64 GB of RAM in Physical Address Extension (PAE) mode,[11] or 4 GB of RAM without PAE mode.[1](p4)

Larger virtual address space: The AMD64 architecture defines a 64-bit virtual address format, of which the low-order 48 bits are used in current implementations.[1](p130) This allows up to 256 TB (248 bytes) of virtual address space. The architecture definition allows this limit to be raised in future implementations to the full 64 bits,[1](p115) extending the virtual address space to 16 EB (264 bytes). This is compared to just 4 GB (232 bytes) for the x86.[8] This means that very large files can be operated on by mapping the entire file into the process' address space (which is often much faster than working with file read/write calls), rather than having to map regions of the file into and out of the address space.

As you can see here alone the address space is mapped out already as by X bits set for addressing. As for support for the core logic, mainly in the latter days, the memory controller can only address so much physically, but is not logically limited, as you can see.

Motherboard installations can be limited to various amount, as anyone knows. During socket 7 days you may only be able to install 64MB or 128MB. Being physically limited but not logically, again. To note, what many of you do not know is Tag RAM. This RAM is mappings of cache to memory, and depending on the Tag RAM installed you may only be able to cache a particular amount RAM and at a particular way such as write-back or write-through. All Tag RAM in integrated into the processors now and have been able to cache 4GB's and beyond for a while.

Lastly, the operating system. As noted by some even though physically we can have an address space of X bytes we can be limited even by the operating system logically.

When the RAM is installed the physical portion is mapped accordingly. Is handled physically and logically; segmented and giving the proper address spacing that is already mapped because it is the address space physically, not logically.
 
BTW, it does not go from the CPU, it goes from memory controller to memory.

You are a funny guy. If the address space (in this context) was defined as the space between the memory controller and your ram - then how can an address point to something not in ram?
 
You are a funny guy. If the address space (in this context) was defined as the space between the memory controller and your ram - then how can an address point to something not in ram?

You are not understanding the function of the MMU (from Wiki): A memory management unit (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware component responsible for handling accesses to memory requested by the CPU. Its functions include translation of virtual addresses to physical addresses (i.e., virtual memory management), memory protection, cache control, bus arbitration and in simpler computer architectures (especially 8-bit systems) bank switching.

What you quote me on is the fact that I state that the processor (CPU) does not access memory it is fed. I was correcting an ignorant stament previously posted. The MMU does the access "feeding." It can point to something not in RAM (physically) by easily translated to where it is virtually (logically). Because contrary to much thinking here it actually goes backwards.

Are there anymore questions?
 
Are there anymore questions?

You should ask yourself that.

Or try and think on an older cpu where the memory controller is not embedded inside it. What name will you give the address lines coming out from it?
 
Or try and think on an older cpu where the memory controller is not embedded inside it. What name will you give the address lines coming out from it?

You answered your question already: Address lines. It is shown in the diagram on the Wiki page for MMU.
 
This is a waste of time.

Only a waste if you do not learn. Here this may help you: [ame="http://en.wikipedia.org/wiki/Page_table"]Page table - Wikipedia, the free encyclopedia@@AMEPARAM@@/wiki/File:Mergefrom.svg" class="image"><img alt="Mergefrom.svg" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/Mergefrom.svg/50px-Mergefrom.svg.png"@@AMEPARAM@@commons/thumb/0/0f/Mergefrom.svg/50px-Mergefrom.svg.png[/ame]
 
Try and understand that the CPU and MMU as such has nothing to do with the memory controller. The memory controller is the link between your DRAM and the rest of the computer.

As said, picture an older cpu - that will make it easier for you. The memory controller in the northbridge is what determines what type of ram you can use, not the cpu.

And now you begin to talk about page tables.Irrelevant.
 
Simple, it looks like a bug in the chipset that set max memory to 4 or 8GB and subtracts PCI IO map from there...

I understand the 4GB address limit on 32-bit OSs quite well, but the comments in the referenced doc are different than that, implying that there's some difference between 4GB as 2x2 or 4x1 when there shouldn't be. Later comments contradicted the initial statements implying, but not directly stating, that there would be no issues as long as a 64-bit OS was used.
 
Back
Top