Windows XP 32bit and 4Gb Ram

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

RebateMonger

Elite Member
Dec 24, 2005
11,586
0
0
Originally posted by: Nothinman
When I get a new machine it'll probably have 3-4G of memory in it just because it's so cheap. Whether games use it or not it'll be used by the OS and other running processes.
"640K should be enough for anybody."
Bill Gates, 1981
 

kobymu

Senior member
Mar 21, 2005
576
0
0
Originally posted by: RebateMonger
"640K should be enough for anybody."
Bill Gates, 1981
This is really stating to annoy me.

Last week, when I was at a friend (not computer savvy), he asked me if he should buy more memory for his computer, the computer I recommended on, with 1GB, less then a year ago. Apparently a mediocre powerpoint presentation, a few outlook windows and 2-3 firefox windows make him hit VM, A LOT!!

Back in the day, programmers where considering memory restraints before they even started to write the code. Looking at the software that existed at the original IBM PC (first generation came with only 16KB), apple II (48KB) and commodore 64, you can actually get where that "640K should be enough" came from. ALL these machines where able to run spreadsheets (one of the killer application at the time), NOT A SMALL FEAT!

As of lately I'm really starting to reappreciate old-school programmers, with their 'ancient', 'obsolete' and 'inflexible' programming standards and attitude.

 

DarphB

Platinum Member
Apr 12, 2004
2,392
0
0
This has been driving me crazy too..
I run test Virtual Servers, and thats why the 4gb of Ram..
I dont mind running Windows 2003 Server, but it has some application issues that have been working around.
It has more overhead than xp also...


 

jlbenedict

Banned
Jul 10, 2005
3,724
0
0
Originally posted by: DarphB
This has been driving me crazy too..
I run test Virtual Servers, and thats why the 4gb of Ram..
I dont mind running Windows 2003 Server, but it has some application issues that have been working around.
It has more overhead than xp also...


I don't care what everyone keeps quoting.. I have yet to see Windows XP (32-bit) use and see 4GB of ram. If someone could post a screenshot, then I'd greatly appreciate someone to prove me wrong.
I have 4GB of ram also, and a PAE compatible system, but yet Windows XP only sees about 3.25GB. The bios sees everything fine.. Vista Beta 2 (32-bit) sees 4GB just fine.. Suse 10.1.. no problems


 

DarphB

Platinum Member
Apr 12, 2004
2,392
0
0
Are you saying in Taskman or System Info you see 3.25?
If its taskman be thankful. I only get 2.0gb.
In system info I get 4gb...
 

DarphB

Platinum Member
Apr 12, 2004
2,392
0
0
A friend suggested I try a Windows XP Pre Sp2 install.. I am going to try that this week. I will let you know the outcome
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
wiki actually got that part right (in a very confusing way), here is something that explains it a little better.

No, it didn't. The part that yurimxpxman pasted from the wiki is completely wrong. And that article isn't related to what the wiki was talking about at all, the article talks about addresses being reserved for motherboard resources and the wiki's talking about the standard kernel/userland VM split.

Actually the part where it says "Some operating systems reserve portions of process address space for OS use, effectively reducing the total address space available for mapping memory for user programs. For instance, Windows XP DLLs and userland OS components are mapped into each process's address space," is sort of correct. Windows does reserve 2G or 1G of the available 4G for the kernel (OS use) thus reducing the available address space for userland processes and shared libraries and such are mapped into multiple processess address spaces, but they're two totally different and unrelated things.

leaving only 2 to 3.8 GB (depending on the settings) address space available,

This is really wrong, the reason there's only 2G or 3G available is because the kernel reserves 2G or 1G of virtual addresses for itself on bootup depending on whether you booted with /3G or not. The mapping of any shared libraries, mmap'd files, etc use addresses inside of the address space that's left after the kernel reservation. And on top of that I really doubt it's 3.8G when you do a /3G boot because that would only leave 200M worth of addresses for the kernel and that would most likely cause the really big kernel drivers (i.e. nvidia) to fail in odd and spectacular ways.

This restriction is not present in 64-bit Windows.

It is still there, it's just that there address space is so much larger on a 64-bit system that no one will be hitting those limits for a very long time.
 

DarphB

Platinum Member
Apr 12, 2004
2,392
0
0
Well, I couldnt take it anymore..
I just got done loading Winxp Pro X64..

WOOOOT all 4gb available....

 

networkman

Lifer
Apr 23, 2000
10,436
1
0
My Dell 470 workstation at work only shows 3.25 Gig available too(4 Gig installed). I remembered reading that there would be issues addressing all 4 Gig with XP Pro(32bit), but I wasn't terribly worried about it as I've never bumped up against the limit yet. :)

 

kobymu

Senior member
Mar 21, 2005
576
0
0
Originally posted by: Nothinman
wiki actually got that part right (in a very confusing way), here is something that explains it a little better.

No, it didn't. The part that yurimxpxman pasted from the wiki is completely wrong. And that article isn't related to what the wiki was talking about at all, the article talks about addresses being reserved for motherboard resources and the wiki's talking about the standard kernel/userland VM split.
That?s why i said "in a very confusing way".

From wiki:
A common misconception is that 64-bit architectures are no better than 32-bit architectures unless the computer has **more** than 4 GB of memory. This is not entirely true:
  • Some operating systems reserve portions of process address space for OS use, effectively reducing the total address space available for mapping memory for user programs. For instance, Windows XP DLLs and userland OS components are mapped into each process's address space, leaving only 2 to 3.8 GB (depending on the settings) address space available, even if the computer has 4 GB of RAM. This restriction is not present in 64-bit Windows.

From the link i posted:
On a system with 4GB of system memory installed, it is not possible to use all of the installed memory due to system address space being allocated for other system critical functions...
...
Readers also pointed out that if I use 64-bit Windows, I can map the system resource memory to another location so that the physical memory will be available for applications

So -
This restriction is not present in 64-bit Windows.

It is still there, it's just that there address space is so much larger on a 64-bit system that no one will be hitting those limits for a very long time.
- that part is wrong.

edit ------------
Originally posted by: kobymu
Originally posted by: Nothinman
It has nothing to do with 64-bit vs 32-bit, unless I'm reading it wrong the part of the wiki you posted is completely wrong.
wiki actually got that part right (in a very confusing way), here is something that explains it a little better.
When I said "that part right", what i should have said is that the only part that wiki got right was the fact that the a 64-bit OS can utilize all of the 4GB physical ram.

Whatever additional limitation, if exist in the first place, within a 32-bit OS (all the talk about virtual address, process, /3GB switch, userland, and so on), it has nothing to do with the limitation that are imposed on a 32-bit OS by the hardware architecture.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
When I said "that part right", what i should have said is that the only part that wiki got right was the fact that the a 64-bit OS can utilize all of the 4GB physical ram.

A 32-bit system that does PAE can use it too AFAIK.
 

kobymu

Senior member
Mar 21, 2005
576
0
0
Originally posted by: stash
/PAE allows the addressing of more than 4GB of physical memory. It is not needed for 4GB or less.

That's what I used to think, but here's a post from raymondc that shows why PAE can be used on a system with 4GB of RAM.

http://blogs.msdn.com/oldnewthing/comments/699521.aspx
And if you read some of the comments, you will get why using the /PAE switch should be after some evaluation and not just as a quick fix, more details here:

http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx
http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx

Now that we got that out of the way, there is a much better reason to use the /PAE switch in systems with less then 4GB of ram with winXP (32bit):

http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2mempr.mspx
Beginning with Windows XP Service Pack 2, the 32-bit version of Windows utilizes the no-execute page-protection (NX) processor feature as defined by AMD or the Execute Disable bit feature as defined by Intel. In order to use these processor features, the processor must be running in Physical Address Extension (PAE) mode. The 64-bit versions of Windows XP uses the NX processor feature on 64-bit extensions and certain values of the access rights page table entry (PTE) field on IPF processors.
But, from the same document:
note: PAE is only required on systems with processors that support hardware-enforced DEP.
PAE mode enables processors to address greater than 4 gigabytes (GB) of memory
Confused? Maybe this will help:
PAE mode is a requirement for leveraging the NX processor feature. Therefore, system designers and firmware engineers should be aware that even though the system?s chipset and firmware may not have been designed to support more than 4GB of physical RAM, the system may be running in PAE mode.
 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
I (we?) need some clarification. Feel free to answer with "we don't know" but I'm really confused.

How does the 4G Remap option in some ASUS BIOSes fit into all of this?

Can, in any possible way, a 32-bit operating system collectively give applications four gigabytes of physical memory? With PAE? With Remap? With /3G?
Can each application only use two gigabytes of virtual memory?
The AMD64 processors can really "only" address 40 bits of physical memory? Is the same true with the EM64T processors? The reason I ask: cpuinfo: address sizes : 40 bits physical, 48 bits virtual
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
How does the 4G Remap option in some ASUS BIOSes fit into all of this?

It remaps the motherboard resources above the 4G mark so that you can access all of your memory.

Can, in any possible way, a 32-bit operating system collectively give applications four gigabytes of physical memory? With PAE? With Remap? With /3G?

Yes if you can configure the OS to do 4/4 split of kernel and userland VM, but that'll kill performance as you'll have to flush the pagetables everytime you go in and out of the kernel.

Can each application only use two gigabytes of virtual memory?

On Windows, yes. On Linux the default split is 3/1 but it's possible to change that with a kernel recompile.

The AMD64 processors can really "only" address 40 bits of physical memory? Is the same true with the EM64T processors? The reason I ask: cpuinfo: address sizes : 40 bits physical, 48 bits virtual.

I believe so, it should say somewhere on Intel's site.
 

DarphB

Platinum Member
Apr 12, 2004
2,392
0
0
Well, I am back from the 64Bit world. And I have given up on it!

Toooooo many apps just wouldnt work. Fairuse cant see Codecs, dvdcopy cant see the dvdrom, nero 7 hosed up big time, and many others..


So I think at this point, I am loading 32bit, and will deal with only getting 2 of my 4gb until I can find a way to get more..

 

Vikroda

Senior member
Apr 9, 2003
501
0
0
I'm also having a problem with WinXP seeing only 2GB of the 4GB installed. A different machine at work shows 3.5GB in task manager but the IT people configured that so I don't know what they did to allow Windows to see more RAM. A google search came up with this article, but that didn't help.
 

DarphB

Platinum Member
Apr 12, 2004
2,392
0
0
Well, a Major update..
After giving up a long time ago.. I decided to give SuperMicro a call (The MFG) of my mainboard.
They had no idea. Other than the classic it just wont work. OR it could be a add on card issue.
Well, I got a OLD FireGL 1000 from Karaktu and installed it today.
Well, its I still cannot believe it. It was my ATI x850
With the FireGL installed, I have 3.6Gb of Ram.
Install the x850 and I have 2Gb.

Not sure if this is an ATI issue or not.. I am getting a 6800GT and will test with that later this week and keep you all up todate...


 

skriefal

Golden Member
Apr 10, 2000
1,418
3
81
Thanks for the update. I'm certainly curious to see what results you'll get with the Nvidia card.
 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
Originally posted by: DarphB
Well, a Major update..
After giving up a long time ago.. I decided to give SuperMicro a call (The MFG) of my mainboard.
They had no idea. Other than the classic it just wont work. OR it could be a add on card issue.
Well, I got a OLD FireGL 1000 from Karaktu and installed it today.
Well, its I still cannot believe it. It was my ATI x850
With the FireGL installed, I have 3.6Gb of Ram.
Install the x850 and I have 2Gb.

Not sure if this is an ATI issue or not.. I am getting a 6800GT and will test with that later this week and keep you all up todate...

The FireGL 1000 uses less resources/virtual address space (it has 8MB of VRAM). You'll probably get similar results with the 6800GT as with the X850. I'm not sure though because you should still have more than 2GB with one card. I thought it was only when you used SLI that you had <=2.3GB?