Posted By: Kryptos | Feb 11th, 2007 @ 9:07 AM
page 1 of 3
Comments: 54 | Views: 169948
Kryptos
Kryptos
Backup People!

How do I get Windows Vista to see my 4Gb RAM?

Chadk
Chadk
excuse me - do you has a flavor?
Kryptos wrote:


How do I get Windows Vista to see my 4Gb RAM?


You running 32 or 64 bit?
CannotResolveSymbol
CannotResolveSymbol
{insert caption here}
Does your BIOS see the 4 GB of RAM?
BlackTiger
BlackTiger
If you stumbled and fell down, it doesn't mean yet, that you're going in the wrong direction.
Install 64bit Vista to access 4+ GB of RAM.


32bit version is limited, same as XP.
Could be a motherboard limitation. I have a 64-bit processor and for a while I had some spare RAM so I was able to boost it to 4GB. The motherboard could only use 3.5GB regardless if I was in 32-bit Windows XP or 64-bit Linux.

I remember hearing the reason being something along the lines of PCI address space cutting into the 4GB, but I may not be remembering correctly (it was a while ago).
PerfectPhase
PerfectPhase
"This is not war, this is pest control!" - Dalek to Cyberman
TimP wrote:
Could be a motherboard limitation. I have a 64-bit processor and for a while I had some spare RAM so I was able to boost it to 4GB. The motherboard could only use 3.5GB regardless if I was in 32-bit Windows XP or 64-bit Linux.

I remember hearing the reason being something along the lines of PCI address space cutting into the 4GB, but I may not be remembering correctly (it was a while ago).


As BlackTiger said the 32bit versions of XP and Vista are limited to 32Bit address space, this has to include space for all hardware mapped into the address space as well, so you will never see your full 4Gb of memory (I see 3.6Gb on my machine).  Win2k3 32bit works diffenet and can see the full 4Gb.
PetKnep
PetKnep
IE7 RTM'd yay!
PerfectPhase wrote:

TimP wrote: Could be a motherboard limitation. I have a 64-bit processor and for a while I had some spare RAM so I was able to boost it to 4GB. The motherboard could only use 3.5GB regardless if I was in 32-bit Windows XP or 64-bit Linux.

I remember hearing the reason being something along the lines of PCI address space cutting into the 4GB, but I may not be remembering correctly (it was a while ago).


As BlackTiger said the 32bit versions of XP and Vista are limited to 32Bit address space, this has to include space for all hardware mapped into the address space as well, so you will never see your full 4Gb of memory (I see 3.6Gb on my machine).  Win2k3 32bit works diffenet and can see the full 4Gb.


Maybe I'm wrong since I don't have any machines w/ 4GB+ of RAM, so take this with a grain of salt. You can use PAE on Vista to access more than 4GB of physical ram, you'll only get 4GB of virtual address space though.

http://msdn2.microsoft.com/en-us/library/ms791485.aspx

XP doesn't seem to support more than 4 GB of physical ram even with PAE. Vista and Win2k3 do.

Also, there's the 3GB switch to deal with. This search should hit every good blog post by Raymond Chen on the subject:
http://blogs.msdn.com/oldnewthing/search.aspx?q=3gb&p=1
RichardRudek
RichardRudek
So what do you expect for nothin'... :P
[Ch9 thread: 4GB RAM] - Basically, what PerfectPhase has said... Smiley

EDIT:
See also [Memory Support and Windows Operating Systems]

EDIT2:
D'oh... Vista... What PetKnep said... Smiley
PerfectPhase
PerfectPhase
"This is not war, this is pest control!" - Dalek to Cyberman

PetKnep wrote:

XP doesn't seem to support more than 4 GB of physical ram even with PAE. Vista and Win2k3 do.


You sure, I thought the limits broke down like this:

32bit versions - all 4gb

64bit home basic - 8gb
64bit home premium - 16gb
64bit other versions 128gb+

http://www.microsoft.com/windows/products/windowsvista/editions/64bit.mspx

PerfectPhase
PerfectPhase
"This is not war, this is pest control!" - Dalek to Cyberman
Kryptos wrote:
Sorry, am I missing something here. How do I switch on /3GB and PAE?


I wouldn't mess with the /3GB swtich, the app has to be writen to support it (header in the PE file needs to be set)

As regards PAE, turn on DEP or execute this:

bootcfg /raw "\pae" /A /ID 1

CCC
CCC
Intru Informatique
Guys, I am at a dead end here. This topic started with "Windows Vista Not Seeing My 4GB Ram" which is why I came here. I have Dell XPS 700 with 4GB ram installed on it. My computer only sees 2.5GB. I ordered 4 GB of new ram and replaced the current 4GB and still the same, different ram, same problem.

The Windows 64-bit link that was provided above says "All editions of Windows Vista 64-bit provide increased memory support beyond the standard 4 gigabytes (GB) available with 32-bit editions. Refer to the specific edition of Windows Vista 64-bit to determine maximum memory capacity."

This means that my 32-bit Ultimate supposed to show all 4GB without enabling PAE or DEP. My BIOS sees the 4GB, plus when I had Vista Beta, on this same machine, it worked with my 4GB ram, showed it in Windows and everything, without enabling anything. When the full version came out and I installed the Ultimate, it shows 2.5GB no matter what I did.

If anyone can help, please as I am puzzled.
CCC
CCC
Intru Informatique
Hello PerfectPhase. How do I execute this command bootcfg /raw "\pae" /A /ID 1 ? When I run it it says "ERROR: You are not authorized to modify contents of boot.ini" all though I am logged-in as the administrator. Thanks in advance.
The hardware in the machine will eat into the 32-bit address space.  This prevents Windows from "seeing" all the 4GB of memory because there isn't enough free address space.

I'm led to believe however that this memory will still be used by the system if not by applications.
CannotResolveSymbol
CannotResolveSymbol
{insert caption here}
CCC wrote:
Guys, I am at a dead end here. This topic started with "Windows Vista Not Seeing My 4GB Ram" which is why I came here. I have Dell XPS 700 with 4GB ram installed on it. My computer only sees 2.5GB. I ordered 4 GB of new ram and replaced the current 4GB and still the same, different ram, same problem.

The Windows 64-bit link that was provided above says "All editions of Windows Vista 64-bit provide increased memory support beyond the standard 4 gigabytes (GB) available with 32-bit editions. Refer to the specific edition of Windows Vista 64-bit to determine maximum memory capacity."

This means that my 32-bit Ultimate supposed to show all 4GB without enabling PAE or DEP. My BIOS sees the 4GB, plus when I had Vista Beta, on this same machine, it worked with my 4GB ram, showed it in Windows and everything, without enabling anything. When the full version came out and I installed the Ultimate, it shows 2.5GB no matter what I did.

If anyone can help, please as I am puzzled.


No, it's impossible to show all 4GB without enabling PAE.  See http://blogs.msdn.com/oldnewthing/archive/2006/08/14/699521.aspx for a good explanation of what's going on.

To run the command to turn on PAE, you'll have to run the command prompt elevated.
irascian
irascian
Irascible Ian
daSmirnov wrote:
The hardware in the machine will eat into the 32-bit address space.  This prevents Windows from "seeing" all the 4GB of memory because there isn't enough free address space.

I'm led to believe however that this memory will still be used by the system if not by applications.


Yes, but the values people see seem to be widely varying! 1.5GB seems a lot to lose. On my 4GB laptop Vista's telling me I have 3.25GB - I was wondering where the rest had gone, but at least I'm not in as bad a shape as the original poster.
CannotResolveSymbol
CannotResolveSymbol
{insert caption here}
irascian wrote:

daSmirnov wrote:The hardware in the machine will eat into the 32-bit address space.  This prevents Windows from "seeing" all the 4GB of memory because there isn't enough free address space.

I'm led to believe however that this memory will still be used by the system if not by applications.


Yes, but the values people see seem to be widely varying! 1.5GB seems a lot to lose. On my 4GB laptop Vista's telling me I have 3.25GB - I was wondering where the rest had gone, but at least I'm not in as bad a shape as the original poster.


I guess it depends on your hardware...  although 1.5 GB does seem large (unless you've got the world's largest BIOS or something).
RichardRudek
RichardRudek
So what do you expect for nothin'... :P
I did link the previous Ch9 thread which goes into details about this. But for those too lazy to check, it basically boils down to what devices you have in the system.

For example, here's a partial screen-shot of Device Manager showing the Resources by Type, on one of my systems:



If you look at the item selected and then use your calculator, you'll see that the PCI resources are listed as possibly occupying the address range 7F80 0000 through to FFEF FFFF. ie Addresses starting from 2,139,095,040 through to 4,293,918,719.

So depending upon what is installed, the device could set itself up anywhere within that range. Whether or not you can move where it lives will depend upon the device's design and it's cooperation with ACPI and Windows. Or at least, that's how I understand it.

I have a new Dell w/ 4GB of RAM + e6700 duo... same issue.  Windows Vista Ulimate reports 3GB of RAM on the System Info (welcome) screen.

This page - well hidden in Microsoft.com - explains it:

http://msdn2.microsoft.com/en-us/library/aa906211.aspx


"increaseuserva Megabytes

Specifies the amount of memory, in megabytes, for user-mode virtual address space. This variable can have any value between 2048 (2 GB) and 3072 (3 GB) megabytes in decimal notation. Windows uses the remaining address space (4 GB minus the specified amount) as its kernel-mode address space. "


In other words - the system can only use 3GB MAX of application space (what the system info screen reports).   The other 1GB is used by the KERNEL for drivers, etc.


Microsoft & Dell need to do a much better job of explaining this to people or there are going to be a lot of disgruntled customers out there, Especially after RAM prices come down and make 4GB more affordable.

- LC
Cyber Sprocket Labs
http://www.cybersprocket.com/
HumanCompiler
HumanCompiler
Compiling humans...and code
irascian wrote:

daSmirnov wrote: The hardware in the machine will eat into the 32-bit address space.  This prevents Windows from "seeing" all the 4GB of memory because there isn't enough free address space.

I'm led to believe however that this memory will still be used by the system if not by applications.


Yes, but the values people see seem to be widely varying! 1.5GB seems a lot to lose. On my 4GB laptop Vista's telling me I have 3.25GB - I was wondering where the rest had gone, but at least I'm not in as bad a shape as the original poster.


Yup, my 4GB HP running Vista shows 3335 MB.

Regardless, the thing still flies!
DCMonkey
DCMonkey
Monkey see, monkey do, monkey will destroy you!

I'm having flashbacks to the days of optimizing the Upper Memory Area.

Also, do PCI-E video cards map their entire memory into the 4GB address space or just a smaller portion? If they do then a 2x512MB SLI setup could eat up that 1GB by itself.

 

 

CannotResolveSymbol
CannotResolveSymbol
{insert caption here}
DCMonkey wrote:


I'm having flashbacks to the days of optimizing the Upper Memory Area.

Also, do PCI-E video cards map their entire memory into the 4GB address space or just a smaller portion? If they do then a 2x512MB SLI setup could eat up that 1GB by itself.



Yes:

Image Hosted by ImageShack.us

Plus, that's not the only location where it uses memory.  It also uses 128 KiB lower in the address space, and 64 KiB higher in the address space.  Those are both nothing compared to the 128 MiB, though.

TristanK
TristanK
Dozy TristanK
Cyber Sprocket Labs wrote:


I have a new Dell w/ 4GB of RAM + e6700 duo... same issue.  Windows Vista Ulimate reports 3GB of RAM on the System Info (welcome) screen.

This page - well hidden in Microsoft.com - explains it:

http://msdn2.microsoft.com/en-us/library/aa906211.aspx


"increaseuserva Megabytes

Specifies the amount of memory, in megabytes, for user-mode virtual address space. This variable can have any value between 2048 (2 GB) and 3072 (3 GB) megabytes in decimal notation. Windows uses the remaining address space (4 GB minus the specified amount) as its kernel-mode address space. "


In other words - the system can only use 3GB MAX of application space (what the system info screen reports).   The other 1GB is used by the KERNEL for drivers, etc.


Microsoft & Dell need to do a much better job of explaining this to people or there are going to be a lot of disgruntled customers out there, Especially after RAM prices come down and make 4GB more affordable.

- LC
Cyber Sprocket Labs
http://www.cybersprocket.com/


NO! That's not what it says!

UserVA is USER VA, not SYSTEM VA. The setting describes the user-mode address setup, not the RAM capacity of the system as a whole. What you're calling "Application Space" is a per-application limit, not a global limit for the whole system.

Any 32 bit process on Windows 32 bit OS' cannot use more than 3GB RAM. UserVA is used to incrementally shift the division between user and kernel space, rather than just /3GB-ing all 3GB in at once.

And that's a per-process limit - if you run ten processes, each process can try to commit up to (userVA limit) apiece.


CCC: unfortunately I can't tell you why the hole is 1.5GB big on that particular system, but I can tell you that UserVA and /3GB will have no (positive) impact on the situation.

PAE on the other hand might, but I just don't know. Try enabling it.

http://msdn2.microsoft.com/en-us/library/ms791508.aspx
On Windows Vista and Windows Server "Longhorn", use the PAE element in BCDEdit with a value of ForceDisable.

Useless anecdote: It's reasonably common for servers to report 3.6GB with certain chipsets; perhaps 2x 768MB video cards (is your system a top'o'the line SLI job with twin 8800s by any chance?) use 1.5GB of memory mapping...



page 1 of 3
Comments: 54 | Views: 169948
Microsoft Communities