4GB RAM Limitation

O

Omicron

Greetings All,
Here is my setup:
Windows XP Pro SP/2 with ALL updates (critical and otherwise). Product
is activated with MS.
Motherboard: ASUS P5NSLI with latest BIOS from ASUS
Pentium D 830 3.0GHz 2MB Cache 800 FSB Socket 775 Dual Core
Hiper 580W Modular Blue LED Power Supply
SeaGate 320GB SATA HD (97% Empty)
WesternDigital 80 GB IDE HD (99% Empty)
AOPEN DUW1616/ARR DVD-RW & JLMS DVD-ROM LTD-166S
Zalman CNPS9500 Blue LED Copper Heatsink/Fan
Cooler Master Mystique 632 Black Alumium w/Side Acrylic Panel
Virtual Memory handled by Windows
4 GB PC2 4200 CL4 240 PIN DIMM Kingston DDR2 RAM

Upon boot-up, POST shows me the full 4GBs of RAM.
Going into the BIOS also shows me the full 4GBs of RAM.
However, Windows Task Manager, as well as Sandra Professional Business
XI only shows that 2.75GBs of RAM are in the machine (2,882,028
bytes).
I've read about the "4GB limitation" of Windows XP 32-bit. However,
I've also read that other folks using Windows XP Pro get different
values of RAM when then have 4GBs in their box. I've seen numbers like
3.25GB and other values as well.
Editing the boot.ini file with such variations like the /3GB switch
and the /PAE switch do nothing to resolve my issues.
My question is:
Is there anything I can do, short of switching to a 64-bit OS, to
allow the use of the full 4GBs of RAM I now have or, at the very
least, anything that will let me use more then the 2.75GBs that
Windows is currently seeing?
Or am I just stuck with a gig that is doing nothing??
Any help would be greatly appreciated.
Regards.
 
C

Conor

I've read about the "4GB limitation" of Windows XP 32-bit. However,
I've also read that other folks using Windows XP Pro get different
values of RAM when then have 4GBs in their box. I've seen numbers like
3.25GB and other values as well.
Editing the boot.ini file with such variations like the /3GB switch
and the /PAE switch do nothing to resolve my issues.
My question is:
Is there anything I can do, short of switching to a 64-bit OS, to
allow the use of the full 4GBs of RAM I now have or, at the very
least, anything that will let me use more then the 2.75GBs that
Windows is currently seeing?
Or am I just stuck with a gig that is doing nothing??
Any help would be greatly appreciated.
Regards.
You're stuck. The reason people get varying amounts with 4GB in a 32
bit Windows OS is because of the different hardware. The more you've
got in, the more memory the hardware has reserved and the less you see.
For example, take out one of your PCI cards and you'll see it go up.
Add one and it'll drop.
 
R

Ron Hardin

Conor said:
You're stuck. The reason people get varying amounts with 4GB in a 32
bit Windows OS is because of the different hardware. The more you've
got in, the more memory the hardware has reserved and the less you see.
For example, take out one of your PCI cards and you'll see it go up.
Add one and it'll drop.

Is it that the hardware uses the memory for something (in which case 64 bits
wouldn't help), or that a portion of the address space is occupied by the
hardware (in which case the OS's virtual memory mapping ought to take care of
it, if done right, so long as no process wants all 4gb to itself, but perhaps
it is not done right).
 
Y

Yes Baby

Conor said:
You're stuck. The reason people get varying amounts with 4GB in a 32
bit Windows OS is because of the different hardware. The more you've
got in, the more memory the hardware has reserved and the less you see.
For example, take out one of your PCI cards and you'll see it go up.
Add one and it'll drop.



--
Conor

Light travels faster than sound. This is why some people appear bright
until you hear them speak.........

l have just constructed a new super system with 4GB ram (2 x 2 matched
pairs) and windows system shows it as 3.25GB. Belarc and the BIOS show the
full 4GB. But hey its cheap these days so I aint bovered.

dj
Intel D975XBX2
Intel Quad Core Q6600
Corsair Ram 2 x (2 x1GB) matched
XFX 7600GT DDR3 Graphics
WD Caviar HDD 250GB x 2
Thermaltake Toughpower 700W
NEC AD7170 DVD/RAM
DLink DWL-G510 WLan
XP Pro SP2
 
C

Conor

Is it that the hardware uses the memory for something (in which case 64 bits
wouldn't help), or that a portion of the address space is occupied by the
hardware (in which case the OS's virtual memory mapping ought to take care of
it, if done right, so long as no process wants all 4gb to itself, but perhaps
it is not done right).
The hardware has it's own memory or range of addresses it needs to
reserve to access it. As XP 32 bit can only address 4GB and nothing
above this, the mapping is done so the hardware requirements are kept
within this 4GB address range.
 
C

Conor

l have just constructed a new super system with 4GB ram (2 x 2 matched
pairs) and windows system shows it as 3.25GB. Belarc and the BIOS show the
full 4GB. But hey its cheap these days so I aint bovered.
Belarc etc will be polling the SPD chip of each DIMM.
 
F

frodo

"is there anything i can do to get more of my 4 gig "usable"...

Short answer: probably not.

background: the 32-bit PC can address a total of 4 Gig of ADDRESS SPACE.
Various things map into that space: RAM, ROM, certain I/O Devices, etc.
So, all of it is not available for your RAM. It is the BIOS (for the most
part) that makes this initial allocation, and XP simply follows suite.
This is why different motherboards have different amounts. Having about
3.25G of RAM available is pretty typical; some MoBo just cut it off at
3Gig, period. Better BIOS "reclaim" as much as they can.

You can check a few bios settings to make sure you're getting the most:

TURN OFF anything about "ROM Shadowing/Caching"; it is unnecessary under
XP. Also, turn off any motherboard resources that you do not use, like
older legacy ports, infared ports, firewire ports, even the wired lan port
if you only use wireless.

this topic is often-discussed, google around for more/deeper insight.

also, your MoBo maker's site might have something (a FAQ?) for your
specific model, or perhaps a forum where you can ask other users who've
already dealt with this issue.
 
R

Ron Hardin

Conor said:
The hardware has it's own memory or range of addresses it needs to
reserve to access it. As XP 32 bit can only address 4GB and nothing
above this, the mapping is done so the hardware requirements are kept
within this 4GB address range.

Don't they have memory management? The user could have the full 4GB address space
with only the OS addressing the hardware devices themselves (the user accesses
falling into actual RAM). That's what I meant by doing it right.
 
J

Jim

Ron Hardin said:
Don't they have memory management? The user could have the full 4GB
address space
with only the OS addressing the hardware devices themselves (the user
accesses
falling into actual RAM). That's what I meant by doing it right.

--
Ron Hardin
(e-mail address removed)

On the internet, nobody knows you're a jerk.
Of course, they have memory management. What the OP wants to know is why XP
tells him that there is far less RAM on his system than the 4 GB that he has
installed.

The answer is that RAM gets diverted to such things as shared memory
graphics cards, etc., before XP starts. Exactly how much gets diverted
depends on the system.

This RAM is the pure untouched physical quantity.

Your belief that somewhow there is a way to let the user have full access to
all, or nearly all, of the RAM is false.
The operating system requires quite a bit of memory in addition to the
amount needed for the physical devices for such tasks as memory management.

In fact, the entire operating system is mapped into the virtual address
space that each process owns.
Jim
 
C

Conor

Don't they have memory management? The user could have the full 4GB address space
with only the OS addressing the hardware devices themselves (the user accesses
falling into actual RAM). That's what I meant by doing it right.
Irrelevent. It's down to binary maths. 32bits = 4GB because the binary
address you use to access a memory location can only be 32 bits long,
i.e

11111111111111111111111111111111

= 4294967295

which is approx 4GB.

So you can't physically address anything above that because there are
only 32 bits you can use in the address.
 
R

Ron Hardin

Jim said:
Your belief that somewhow there is a way to let the user have full access to
all, or nearly all, of the RAM is false.
The operating system requires quite a bit of memory in addition to the
amount needed for the physical devices for such tasks as memory management.

In fact, the entire operating system is mapped into the virtual address
space that each process owns.

Okay, I see. I was transferring my feeling on the matter from the PDP-11, where
there are a couple hidden address bits, making 18, beyond the user's 16, that
memory management can use to map RAM to ``device'' addresses, with memory management
enabled.
 
F

Franc Zabkar

Here is my setup:
Windows XP Pro SP/2 with ALL updates (critical and otherwise). Product
is activated with MS.
Motherboard: ASUS P5NSLI with latest BIOS from ASUS
Pentium D 830 3.0GHz 2MB Cache 800 FSB Socket 775 Dual Core
4 GB PC2 4200 CL4 240 PIN DIMM Kingston DDR2 RAM

Upon boot-up, POST shows me the full 4GBs of RAM.
Going into the BIOS also shows me the full 4GBs of RAM.
However, Windows Task Manager, as well as Sandra Professional Business
XI only shows that 2.75GBs of RAM are in the machine (2,882,028
bytes).

Check the list of memory resources in Device Manager. I don't know how
you get there in XP, but in Win98 you select Computer -> Properties ->
Memory.

Look for devices occupying memory addresses above 2.75G.

2,882,028,000 dec = ABC841E0 hex

See if changing the "PnP aware OS Y/N" setting in the BIOS has any
effect on the resource allocation.

- Franc Zabkar
 
A

Al Dykes

Okay, I see. I was transferring my feeling on the matter from the PDP-11, where
there are a couple hidden address bits, making 18, beyond the user's 16, that
memory management can use to map RAM to ``device'' addresses, with memory management
enabled.


Roughly, the extra addres bits are called Program Address Extension
(PAE). Intel defined it and google will get you all you want to know.


PAE requires hardware; a motherboard with more than 24 address lines,
an operating system that is PAE aware (w2k and XP are not. NTServer
and up are.) and an aplication that can use PAE. I know Oracle Server
can. I assume MS SQLServer can. I have a rumor that Photoshop CS3 can.

Under PAE, each process can stil only see 2-3GB. PAE just allows the
server to have more prosecces in memory at once. A program writen and
compiled to PAE specs can appear to access more than 2-3GB but it's
done with smoke and mirrors and there is a performance cost. This can
be heavy if the programmer is oblivious to the underlying mechanism.
 
O

Omicron

You're stuck. The reason people get varying amounts with 4GB in a 32
bit Windows OS is because of the different hardware. The more you've
got in, the more memory the hardware has reserved and the less you see.
For example, take out one of your PCI cards and you'll see it go up.
Add one and it'll drop.
Thank you Conor.
That direct answer has made it clear to my somewhat slow thought
process, that I should just be happen with the 2.75GBs RAM that
Windows is seeing for "my" use.
Regards.
 
J

johns

I've never gotten a good answer to this question.
From working with embedded controllers, I know
this. It is possible to I/O map your hardware so that
is doesn't use the memory bus at all. Intel controllers
are like that. I think that means that the hardware
you install on the system bus, can map its ram
needs to I/O addressing, and the address can
be exactly the same as a memory address, only
the I/O bus is enabled, and the Memory bus is
disabled during that access. So, that means the
system RAM, which is installed on the system
ram bus is totally available for all RAM operations.
All that is needed is for the mobo to have a tri-
statable interface between the system data bus
and I/O, and the system data bus and RAM.
Maybe this is just wishfull thinking ???? Intel
invented this. Does that mean there is an Intel
mobo that can do this ??

johns
 
F

Franc Zabkar

Thank you Conor.
That direct answer has made it clear to my somewhat slow thought
process, that I should just be happen with the 2.75GBs RAM that
Windows is seeing for "my" use.
Regards.

Why leave it at that? Why not at least use DM to find out which device
is using this memory? If you can see a 512M hole in the upper address
space, then there may be an opportunity to make it available.

Alternatively, use the MSinfo32.exe tool to "list memory address
ranges that are in use by devices":

http://support.microsoft.com/kb/308549

"Click Start, click Run, type msinfo32.exe in the Open box, and then
click OK".

- Franc Zabkar
 

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