Does Windows XP Pro have a 3GB limit on RAM ?

K

Ken Blake, MVP

Ken Blake, MVP added these comments in the current discussion du
jour ...


Are you using 1,000 or 1,024 bytes/KB? If the former, than I show
3.14GB. If the latter, I show about 2.98GB. "Three" seems like
such a nice round number, I just use that.


"Three" is close enough, especially since it varies for different
computers.


So, I wasted over $200 on that 4th gig of RAM I installed?


I'm afraid so.

I'm
not disputing you, I am just shaking my head from lack of
understanding. Let me try this: IF, big "if", a program could be
written to get at the upper gig somehow, then, yes, I would have
the entire $850 worth of memory I paid for. But, since standard
32-bit XP cannot, I "lose" it effectly. Is /that/ correct?

Yes.



See above for clarification on 3.14 gig.


I didn't buy 64-bit XP even though it was available because my
assessment, rightly or wrongly, was that it was extremely buggy,


I have no experience with it personally, but I haven't heard that.

unstable,


Same thing. I haven't heard that either. I know a few people running
it, all without problems.

lacking in drivers to really take advantage of the
increased address space,



Drivers are often lacking, and that's the big issue with both 64-bit
XP and 64-bit Vista. But the drivers issue isn't that you won't
"really [be able to] take advantage of the increased address space,"
but rather that if the drivers aren't available for a particular piece
of hardware, you can't use that hardware. 64-bit Windows (whether XP
or Vista) is new enough that you may not be able to get drivers for
all your hardware.

AND most importantly, none of my older
apps would be able to use it anyway. Is this right or wrong?



Well, I'm not sure what you mean by that. Your apps older will be able
to use 64-bit Windows, but 32-bit apps with a 64-bit operating system
will not give you any improvement in performance. For 64-bit Windows
to improve things, you need 64-bit apps, and there are very few of
those available yet.

However if the apps you use can make effective use of more than that
3GB of RAM, and you have that much RAM, then even 32-bit apps can show
improvement by using the extra memory. For most people, it would be
rare though, that they could make effective use of over 3GB.
 
H

HEMI-Powered

Ken Blake, MVP added these comments in the current discussion du
jour ...

Dang! Wish I'd have talked to you first! I'd be over $200 richer.
Sigh! Thanks, Ken.
Ken Blake, MVP added these comments in the current discussion
du jour ...


Are you using 1,000 or 1,024 bytes/KB? If the former, than I
show 3.14GB. If the latter, I show about 2.98GB. "Three"
seems like such a nice round number, I just use that.


"Three" is close enough, especially since it varies for
different computers.


So, I wasted over $200 on that 4th gig of RAM I installed?


I'm afraid so.

I'm
not disputing you, I am just shaking my head from lack of
understanding. Let me try this: IF, big "if", a program could
be written to get at the upper gig somehow, then, yes, I
would have the entire $850 worth of memory I paid for. But,
since standard 32-bit XP cannot, I "lose" it effectly. Is
/that/ correct?

Yes.



See above for clarification on 3.14 gig.


I didn't buy 64-bit XP even though it was available because
my assessment, rightly or wrongly, was that it was extremely
buggy,


I have no experience with it personally, but I haven't heard
that.

unstable,


Same thing. I haven't heard that either. I know a few people
running it, all without problems.

lacking in drivers to really take advantage of the increased
address space,



Drivers are often lacking, and that's the big issue with both
64-bit XP and 64-bit Vista. But the drivers issue isn't that
you won't "really [be able to] take advantage of the increased
address space," but rather that if the drivers aren't
available for a particular piece of hardware, you can't use
that hardware. 64-bit Windows (whether XP or Vista) is new
enough that you may not be able to get drivers for all your
hardware.

AND most importantly, none of my older apps would be able to
use it anyway. Is this right or wrong?



Well, I'm not sure what you mean by that. Your apps older will
be able to use 64-bit Windows, but 32-bit apps with a 64-bit
operating system will not give you any improvement in
performance. For 64-bit Windows to improve things, you need
64-bit apps, and there are very few of those available yet.

However if the apps you use can make effective use of more
than that 3GB of RAM, and you have that much RAM, then even
32-bit apps can show improvement by using the extra memory.
For most people, it would be rare though, that they could make
effective use of over 3GB.
 
K

Ken Blake, MVP

Ken Blake, MVP added these comments in the current discussion du
jour ...

Dang! Wish I'd have talked to you first! I'd be over $200 richer.
Sigh! Thanks, Ken.


You're welcome. Sorry you didn't check first.



Ken Blake, MVP added these comments in the current discussion
du jour ...

So, then the real limit is 3 gig of USABLE RAM,

Yes. Actually usually a little more.

Are you using 1,000 or 1,024 bytes/KB? If the former, than I
show 3.14GB. If the latter, I show about 2.98GB. "Three"
seems like such a nice round number, I just use that.


"Three" is close enough, especially since it varies for
different computers.


so if I had bought
only 3 gig instead of 4, what would taskmanager show,
3.1GB or 2.1GB?

Neither. If you had 3GB, it would show 3GB.

So, I wasted over $200 on that 4th gig of RAM I installed?


I'm afraid so.

I'm
not disputing you, I am just shaking my head from lack of
understanding. Let me try this: IF, big "if", a program could
be written to get at the upper gig somehow, then, yes, I
would have the entire $850 worth of memory I paid for. But,
since standard 32-bit XP cannot, I "lose" it effectly. Is
/that/ correct?

Yes.


Sorry, I understand clearly the difference between usable
RAM and address space, which is simply defined by the bit
length, but I still do not understand how much RAM would
be usable to me had I bought less than 4. If you could
clarify it simply, I would appreciate knowing. Thank you.

*All* the RAM you have is usable to you, up to a maximum of
*around* 3.1GB (again, depending on your hardware).
Anything more than that is not usable.

See above for clarification on 3.14 gig.

This 3.1GB or so limit is on 32-bit Windows. If you were
running 64-bit Windows, it would go away.

I didn't buy 64-bit XP even though it was available because
my assessment, rightly or wrongly, was that it was extremely
buggy,


I have no experience with it personally, but I haven't heard
that.

unstable,


Same thing. I haven't heard that either. I know a few people
running it, all without problems.

lacking in drivers to really take advantage of the increased
address space,



Drivers are often lacking, and that's the big issue with both
64-bit XP and 64-bit Vista. But the drivers issue isn't that
you won't "really [be able to] take advantage of the increased
address space," but rather that if the drivers aren't
available for a particular piece of hardware, you can't use
that hardware. 64-bit Windows (whether XP or Vista) is new
enough that you may not be able to get drivers for all your
hardware.

AND most importantly, none of my older apps would be able to
use it anyway. Is this right or wrong?



Well, I'm not sure what you mean by that. Your apps older will
be able to use 64-bit Windows, but 32-bit apps with a 64-bit
operating system will not give you any improvement in
performance. For 64-bit Windows to improve things, you need
64-bit apps, and there are very few of those available yet.

However if the apps you use can make effective use of more
than that 3GB of RAM, and you have that much RAM, then even
32-bit apps can show improvement by using the extra memory.
For most people, it would be rare though, that they could make
effective use of over 3GB.
 
S

Swifty

How much it can use is around 3GB, but depends on what devices are
installed. It's normally a little more than 3GB.

I'm not sure if we're agreeing or disagreeing :)

Just in case the OP has an affected Lenovo system (or one with
comparable hardware from another supplier, the memory module is an
industry standard one):

There is absolutely no difference in these cases between a system with
3Gb installed memory and 4Gb installed memory. Except in your bank
balance and the amount of energy you waste. The memory management
hardware does not allow the top two address bits to be 11, so there is
no way for it to reach real memory above 3Gb.

This has nothing to do with Windows; it is a hardware limitation
affecting Linux as well, or anything else you care to boot. I work for
IBM, and this discussion has been raging for months inside IBM.

The bottom line is that you have to check the hardware specifications of
the system concerned to see if it supports more than 3Gb or real memory.
These are sometime worded rather obscurely.
 
J

John John

Swifty said:
I'm not sure if we're agreeing or disagreeing :)

Just in case the OP has an affected Lenovo system (or one with
comparable hardware from another supplier, the memory module is an
industry standard one):

There is absolutely no difference in these cases between a system with
3Gb installed memory and 4Gb installed memory. Except in your bank
balance and the amount of energy you waste. The memory management
hardware does not allow the top two address bits to be 11, so there is
no way for it to reach real memory above 3Gb.

This has nothing to do with Windows; it is a hardware limitation
affecting Linux as well, or anything else you care to boot.

Whoa! Hold on here for a minute or two. What you are saying there is
not exactly true. To fully see 4GB's of installed RAM two conditions
must be met:

1- The hardware architecture must allow memory to be mapped in area's
above 4GB. 64-bit hardware and Intel's PAE permits memory mapping above
4GB area.

2- You need to use a 64-bit Operating System or a 32-bit one that is
actually PAE aware so that it is able to address memory above the 4GB level.

As usual, Microsoft have been dragging their feet with this. Although
not fully acceptable, that this issue be present in Windows XP 32-bit
might be somewhat understandable. That it be present in any Vista
version is completely unacceptable! Your assertion that Linux is
affected by this issue is not completely true. Linux is light years
ahead of Microsoft on this issue. If your Linux kernel cannot fully see
all the installed RAM you use a 64-bit or a PAE kernel. That the
Windows XP kernel cannot fully use PAE and map above the 4GB area is a
bit of a shame. That the Vista kernel cannot do it is an ongoing joke!
As witnessed by the posts in these groups, and in many other places
around the internet, the age of motherboard with 4GB's of installed RAM
is here now, it's time Microsoft took its head out of the sand!

For the benefit of those who don't understand why they can't see all the
installed RAM this explanation from Tyan sum's it up nicely:

The problem that you are seeing is based on an older architecture design
for memory addressing. All the systems architecture up to this point
were based on a maximum of 4GB of total memory. Nobody really thought,
when this standard was designed, that this amount of memory would
actually be in use. The problem that has happened is that you have PCI
devices that require memory address ranges so that they can properly
execute their commands. These address ranges were mapped in the upper
sections of this maximum amount. Since nobody thought you would be
using up to 4GB these address ranges started around the last 500MB of
the memory ranges. This range is called the T.O.M. or Top of Memory
range. This is the point in the bios where it places on hold the amount
of memory that is required by the various PCI devices that are found on
the motherboard. Thus when you have PCI cards or AGP cards installed on
your motherboard these devices hold on to memory for their own use and
take away from the maximum amount of memory that is available for other
tasks. This amount of memory can vary from a little as 200MB all the
way to 1GB of memory (or even more in select cases). It just depends on
the PCI devices you have and the amount of PCI (including AGP) that you
have installed all at once.

There is really no way to get around this basic design limitation. The
only way to get around these type of issues is to use certain new
designs that have brand new architectures (i.e 64-bit designs) that
allow memory to be mapped in area's above 4GB. The brand new Intel Xeon
designs and the AMD Opteron designs are built around 64-bit technology.
This is only ½ of the equation that you would need to find success.
You would also need to use an OS that is actually PAE or PAE aware so
that it is able to address memory above the 4GB level. To find out
about PAE you can search Microsofts website for PAE (Physical Address
Extensions) and it will explain this concept and what OS's actually are
capable of providing this benefit. Windows 2000 and Windows 2003 would
fit both of these criteria. Windows XP on the hand would not allow this
type of ability.

Microsoft has addressed this type of issue in the following Microsoft
Article (291988)
http://support.microsoft.com/default.aspx?scid=kb;en-us;291988

[end quote]

DDR FAQs # 6 Why do I not see all 4GB of memory...
http://www.tyan.com/archive/support/html/memory_faq.html

John
 
P

Paul Randall

ship said:
Hi

Is it true that WindowsXP Pro has a 3GB limit on addressable RAM
space?

We have a user who regularly uses spreadsheets of 1.5 to 2+GB in size
(on the hard disk).
- How much RAM should we give her?
- i.e. Is there any point in giving her over 3GB ?


Ship

Shiperton Henethe2

If you have access to WXP 32-bit systems with various amounts of RAM, try
this:
Open device manager and in the View menu, choose 'View Resources by Type' on
each of them. I think you will find that PCI memory starts at the end of
physical RAM on systems with less than 3GB, and starts somewhere around 3GB
with systems with greater than 3GB of physical RAMs, and that the end of the
memory map is never greater than 4 GB (hex FFFFFFFF).

On my 1GB system, here is my memory map:
Memory Usage Summary:
[000A0000 - 000BFFFF] PCI bus
[000A0000 - 000BFFFF] VIA CPU to AGP Controller
[000A0000 - 000BFFFF] NVIDIA RIVA TNT2 Model 64/Model 64 Pro (Microsoft
Corporation)
[000C0000 - 000DFFFF] PCI bus
[40000000 - FFDFFFFF] PCI bus
[D9C00000 - DDCFFFFF] VIA CPU to AGP Controller
[DA000000 - DBFFFFFF] NVIDIA RIVA TNT2 Model 64/Model 64 Pro (Microsoft
Corporation)
[DDE00000 - DFEFFFFF] VIA CPU to AGP Controller
[DE000000 - DEFFFFFF] NVIDIA RIVA TNT2 Model 64/Model 64 Pro (Microsoft
Corporation)
[DFFFF500 - DFFFF5FF] VIA Compatable Fast Ethernet Adapter
[DFFFF600 - DFFFF6FF] Standard Enhanced PCI to USB Host Controller
[DFFFF700 - DFFFF7FF] NETGEAR FA310TX Fast Ethernet Adapter (NGRPCI)
[DFFFF800 - DFFFFFFF] VIA OHCI Compliant IEEE 1394 Host Controller
[E0000000 - E3FFFFFF] VIA CPU to AGP Controller
[FEE01000 - FFDFFFFF] PCI bus

-Paul Randall
 
T

Tim Slattery

Thank you. AFAIK, my ATI Radeon does not use main RAM. I don't
remember the fine details, but I think it is maxed out at 256MB.

256MB of the 4GB address space must be used to access the RAM on your
video card. That 256MB of address space then cannot be used to access
your main system RAM. So, installing that card means that you can't
use any more than about 3.75GB RAM. Address space must also be used
for the BIOS, and possible other things on PCI and PCIx cards, further
reducing the amount of RAM you can actually access.
 
G

Guest

It's not necessarily a limit in the OS, its more about the limits of 32-bit
computing.

The total address space of any 32-bit processor is 4GB (addresses 0 to
FFFFFFFF). What people get confused with is thinking that means that you can
fill each of those address spaces with RAM. You can't.

The reason? Memory mapped devices. Meaning that to talk to certain devices
(DMA controllers, I/O controllers, really anything connected to the CPU), the
CPU has to know what address the device is at. These devices consume address
space just like RAM does.

So, when you throw a couple dozen devices in the design, along with a video
card that has a lot of on board memory (that typically has to be mapped into
the CPU's address space), you start to lose the address space you'd like to
put RAM into.

As far as the virtual address space, Russinovich explains this in detail in
Windows Internals. 2GB user space, 2GB OS space per process. If you are
booted with the /3GB switch, then it's 3GB user, 1GB OS.

David.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top