XP 4 GB limit to 32-bit OS?

brett05

867-5309
Joined:
Apr 28, 2009
Posts:
27,226
Liked Posts:
4,579
Location:
Hell
Question. I know 4 GB is the most you can do on a 32-bit system. How come XP shows 3.3 GB in use when there is 4 GB there, but if there was only 3 GB of ram, XP shows the full 3 GB?
 

Ares

CCS Hall of Fame
Donator
CCS Hall of Fame '19
Joined:
Aug 21, 2012
Posts:
42,492
Liked Posts:
35,203
Where are you looking at these values?

If you have 4GB installed you could use up 3.3GB and have 0.7 free gigs of RAM.

If you have 3GB installed then you could only use up all 3GB of RAM and would have 0 gigs free.
 

Dogstar

CCS Donator
Donator
Joined:
Aug 20, 2012
Posts:
2,415
Liked Posts:
1,155
Location:
NW Suburbs
My favorite teams
  1. Chicago Cubs
  1. Chicago Bears
  1. Chicago Blackhawks
  1. Northwestern Wildcats
  2. Wisconsin Badgers
4GB of memory is the maximum, but all your other hardware bites into that total. Essentially, your computer's BIOS is doing it's job by mapping the required resources to ensure that all of your shit will work before it turns control over to the OS. Think locations. Your 32-bit computer has 4.2 billion unique locations that it can access. If the BIOS didn't nerf down your memory's 4.2 billion locations you'd have 4GB of memory but no sound, video, network, etc.

There's more to it than that... but that's the simple explanation.
Google "3GB Barrier" and start hating Microsoft if you want the technical.
 
Last edited:

brett05

867-5309
Joined:
Apr 28, 2009
Posts:
27,226
Liked Posts:
4,579
Location:
Hell
Thanks but that's not what I'm saying

Xp says 3.3 w 4 gigs. Or with 3 gigs xp says 3 gigs.

Why since resources are used regardless on ram amt
 

Crystallas

Three if by air
Staff member
Donator
Joined:
Jun 25, 2010
Posts:
20,016
Liked Posts:
9,558
Location:
Next to the beef gristle mill
My favorite teams
  1. Chicago Bulls
32-bit NT has two workarounds. The one you're using for more than 2GB is Limited Address Aware. The one that boosts its max to 64gb is Physical Address Extension. But PAE on XP is pretty useless and often unstable because of the limited amount of programs that were compiled with PAE switches.

Limited Address Aware has no hard cap, and it's based on your hardware. You can theoretically run XP and have 6gb showing, however, no chipset that I know of allows more than 3.4gb to be shown.
 

Dogstar

CCS Donator
Donator
Joined:
Aug 20, 2012
Posts:
2,415
Liked Posts:
1,155
Location:
NW Suburbs
My favorite teams
  1. Chicago Cubs
  1. Chicago Bears
  1. Chicago Blackhawks
  1. Northwestern Wildcats
  2. Wisconsin Badgers
Thanks but that's not what I'm saying

Xp says 3.3 w 4 gigs. Or with 3 gigs xp says 3 gigs.

Why since resources are used regardless on ram amt


When your system boots up the BIOS says "Ok. 32-bit system. I have 4.2 billion locations available. Who needs?"

If you have 3GB of RAM installed, it asks for 3.15 billion. Still plenty of room for all the other hardware, so there's no need for the BIOS to truncate the memory. BIOS makes available/reports the full 3GB to the OS.

If you have 4GB of RAM installed, it asks for the full 4.2 billion locations. BIOS says, "Not going to happen dude. I got other things that need some of that location space." So, the BIOS whacks down your available memory to ensure everything else works. BIOS makes available/reports to the OS 4GB minus whatever it takes to address the rest of your hardware, which in your case happens to be 3.3GB.
 

X

When one letter is enough
Donator
CCS Hall of Fame '20
Joined:
May 12, 2010
Posts:
24,664
Liked Posts:
7,783
Where are you looking at these values?

If you have 4GB installed you could use up 3.3GB and have 0.7 free gigs of RAM.

If you have 3GB installed then you could only use up all 3GB of RAM and would have 0 gigs free.
I'd listen to this guy. He's an actual computer program!!!

ares.jpg


32-bit NT has two workarounds. The one you're using for more than 2GB is Limited Address Aware. The one that boosts its max to 64gb is Physical Address Extension. But PAE on XP is pretty useless and often unstable because of the limited amount of programs that were compiled with PAE switches.

Limited Address Aware has no hard cap, and it's based on your hardware. You can theoretically run XP and have 6gb showing, however, no chipset that I know of allows more than 3.4gb to be shown.

I'd for real listen to this guy.
 

Crystallas

Three if by air
Staff member
Donator
Joined:
Jun 25, 2010
Posts:
20,016
Liked Posts:
9,558
Location:
Next to the beef gristle mill
My favorite teams
  1. Chicago Bulls
I'd listen to this guy. He's an actual computer program!!!

ares.jpg




I'd for real listen to this guy.
[video=youtube;1eA3XCvrK90]http://www.youtube.com/watch?v=1eA3XCvrK90[/video]
 

brett05

867-5309
Joined:
Apr 28, 2009
Posts:
27,226
Liked Posts:
4,579
Location:
Hell
When your system boots up the BIOS says "Ok. 32-bit system. I have 4.2 billion locations available. Who needs?"

If you have 3GB of RAM installed, it asks for 3.15 billion. Still plenty of room for all the other hardware, so there's no need for the BIOS to truncate the memory. BIOS makes available/reports the full 3GB to the OS.

If you have 4GB of RAM installed, it asks for the full 4.2 billion locations. BIOS says, "Not going to happen dude. I got other things that need some of that location space." So, the BIOS whacks down your available memory to ensure everything else works. BIOS makes available/reports to the OS 4GB minus whatever it takes to address the rest of your hardware, which in your case happens to be 3.3GB.

OK, then my question would be, when there is only 3 GB of RAM, where is the BIOS getting addresses to address the other hardware like it "needs" when there is 4 GB of RAM?
 

Crystallas

Three if by air
Staff member
Donator
Joined:
Jun 25, 2010
Posts:
20,016
Liked Posts:
9,558
Location:
Next to the beef gristle mill
My favorite teams
  1. Chicago Bulls
The only hardware that can address a memory partition would have to be compatible with the chipset and bios. ie: Onboard video, lan controller, or bus'card' that uses shared memory.
 

brett05

867-5309
Joined:
Apr 28, 2009
Posts:
27,226
Liked Posts:
4,579
Location:
Hell
The only hardware that can address a memory partition would have to be compatible with the chipset and bios. ie: Onboard video, lan controller, or bus'card' that uses shared memory.

I agree, so why is it that only 3.3 is available when there is 4 Gigs, but the full three when only 3 Gigs is installed?
 

Crystallas

Three if by air
Staff member
Donator
Joined:
Jun 25, 2010
Posts:
20,016
Liked Posts:
9,558
Location:
Next to the beef gristle mill
My favorite teams
  1. Chicago Bulls
I agree, so why is it that only 3.3 is available when there is 4 Gigs, but the full three when only 3 Gigs is installed?

I explained why. 32bit has a 2GB limit. Only with the use of a memory extension, is more allowed in XP.

You see, back almost 10 years ago, when this became a concern, x87 came into play(which is the x86-64bit precursor that became AMD64, the first 64-bit standard for consumer Windows hardware). 64-bit from intel and amd solved these problems far better, and every OS developer realized how bad it would be to put band-aids on the fix, so pushing the limit to read the full 4GB(or whatever number higher than 3.25-3.4gb usable limit) was simply not wise, because it A.) Required a different memory standard for allocation, which would cost the industry trillions over time. B.) Next to no software could take advantage of the memory. and C.) Multi-Core and System on Chip was going to require nearly all of the core-programming focus, along with 'x64' over that time. Hardware today is so incredibly fast, but the software still is far from being able to take full advantage of all of the multi-threading capabilities, which is why an 8 year old computer still suites people just fine today.
 

Ares

CCS Hall of Fame
Donator
CCS Hall of Fame '19
Joined:
Aug 21, 2012
Posts:
42,492
Liked Posts:
35,203
I'd listen to this guy. He's an actual computer program!!!

ares.jpg




I'd for real listen to this guy.

Lol I am actually an IT Developer but that ain't my stuff you posted.

Crystallas has this one down pat, couldn't have explained it better.... brett ought to listen to him :-D
 

brett05

867-5309
Joined:
Apr 28, 2009
Posts:
27,226
Liked Posts:
4,579
Location:
Hell
I explained why. 32bit has a 2GB limit. Only with the use of a memory extension, is more allowed in XP.

You see, back almost 10 years ago, when this became a concern, x87 came into play(which is the x86-64bit precursor that became AMD64, the first 64-bit standard for consumer Windows hardware). 64-bit from intel and amd solved these problems far better, and every OS developer realized how bad it would be to put band-aids on the fix, so pushing the limit to read the full 4GB(or whatever number higher than 3.25-3.4gb usable limit) was simply not wise, because it A.) Required a different memory standard for allocation, which would cost the industry trillions over time. B.) Next to no software could take advantage of the memory. and C.) Multi-Core and System on Chip was going to require nearly all of the core-programming focus, along with 'x64' over that time. Hardware today is so incredibly fast, but the software still is far from being able to take full advantage of all of the multi-threading capabilities, which is why an 8 year old computer still suites people just fine today.

Crys,
Of course I am very appreciative for the help, but your answer isn't making sense at all to me (which of course can be me).

I am not finding anything but links after links of XP 32 bit allowing and using 4 GB of RAM max, not 2 GB. I really am not questioning that the BIOS shows 4 GB, but the OS shows something less. I have always accepted that. What I want to know is why if 3 GB of RAM is in the machine XP doesn't show something like 2.4 GB of use. Wouldn't the resources be the same if all that was different is the amount of physical memory?
 

Crystallas

Three if by air
Staff member
Donator
Joined:
Jun 25, 2010
Posts:
20,016
Liked Posts:
9,558
Location:
Next to the beef gristle mill
My favorite teams
  1. Chicago Bulls
Crys,
Of course I am very appreciative for the help, but your answer isn't making sense at all to me (which of course can be me).

I am not finding anything but links after links of XP 32 bit allowing and using 4 GB of RAM max, not 2 GB. I really am not questioning that the BIOS shows 4 GB, but the OS shows something less. I have always accepted that. What I want to know is why if 3 GB of RAM is in the machine XP doesn't show something like 2.4 GB of use. Wouldn't the resources be the same if all that was different is the amount of physical memory?

To be honest, people are lazy. Consumers can't go and buy exactly the usable limit, so instead they say 4gb(because if you buy one 2gb stick, one 1gb stick, and 1 512mb stick, it would likely cost a little more and you also wouldn't have a) matched memory modules and/or b) they would have to explain that you give up paralleling to do so(dual, quad-data rates).
 

brett05

867-5309
Joined:
Apr 28, 2009
Posts:
27,226
Liked Posts:
4,579
Location:
Hell
True. But why doesn't it show 2.3 for 3
 

Dogstar

CCS Donator
Donator
Joined:
Aug 20, 2012
Posts:
2,415
Liked Posts:
1,155
Location:
NW Suburbs
My favorite teams
  1. Chicago Cubs
  1. Chicago Bears
  1. Chicago Blackhawks
  1. Northwestern Wildcats
  2. Wisconsin Badgers
I explained why. 32bit has a 2GB limit. Only with the use of a memory extension, is more allowed in XP.

WindowsXP can address 4GB of memory, but it can only allocate 2GB per process. The MCE that explained it to me told me the number that you see in the OS is the application memory that is available, minus what is reserved by XP's kernel.

(Technically 32-bit XP can handle 6GB, but two of it is non-reported paging file memory)
 

Crystallas

Three if by air
Staff member
Donator
Joined:
Jun 25, 2010
Posts:
20,016
Liked Posts:
9,558
Location:
Next to the beef gristle mill
My favorite teams
  1. Chicago Bulls
True. But why doesn't it show 2.3 for 3

WindowsXP can address 4GB of memory, but it can only allocate 2GB per process. The MCE that explained it to me told me the number that you see in the OS is the application memory that is available, minus what is reserved by XP's kernel.

(Technically 32-bit XP can handle 6GB, but two of it is non-reported paging file memory)


32-bit NT has two workarounds. The one you're using for more than 2GB is Limited Address Aware. The one that boosts its max to 64gb is Physical Address Extension. But PAE on XP is pretty useless and often unstable because of the limited amount of programs that were compiled with PAE switches.

Limited Address Aware has no hard cap, and it's based on your hardware. You can theoretically run XP and have 6gb showing, however, no chipset that I know of allows more than 3.4gb to be shown.


:D

And 3gb is within the limits of Limited Address Aware, hence the usable limit, so it shows as 3gb. The same if you had 4 slots, and installed 2gb, 1gb, and 128mb. It would show it, because it is within the cap of the "workaround". Unless you have PAE as your workaround, then that is a new set of variables(which does not work well under Windows XP), but works fantastic under linux. :smug:

And BTW, PAE under XP(or any supported OS for that matter under 32-bit) allows 64gb.
 

Top