Windows 2000 Server does not display maximum memory correctly?

  • Thread starter Thread starter ohaya
  • Start date Start date
O

ohaya

Hi,

I have 4GB of memory in my machine, and during boot, the BIOS displays
4GB.

However, when I boot into Windows 2000 Server SP4, and right-click on My
Computer, then Properties, it says "3,390,768 KB RAM".

I thought that the standard Windows 2000 Server is suppose to be able to
support up to 4GB of memory?

Thanks,
Jim

P.S. If I boot this same machine to Windows 2003 Server, the same
display says 4GB.
 
Later version of Server 2003 is PAE aware and uses 36 bit memory
addressing, server 2000 uses 32 bit addressing. Although Server 2003
only supports 4GB RAM by using 36 bit addressing it can map memory for
hardware devices above the 4GB limit, thus makeing the full 4 GB RAM
available to the operating system and programs. On the other hand
Server 2000 using 32 bit addressing must map memory for hardware within
the 4GB limit, thus it uses some of the space for hardware devices and
the space used for these devices is then not available to the Operating
System for RAM mapping. The hardware memory issue is summed up as so by
Tyan:

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]

http://www.tyan.com/archive/support/html/memory_faq.html

John
 
John John,

Ok, thanks for the detailed explanation.

If I'm understanding, Win2K Server is actually recognizing all 4GB, but
it can only use the 3+ GB because the rest is used for the PCI stuff.
The other OSes, like Win2K3, can move the PCI stuff above 4GB, and
that's why I can "see" 4GB when I boot to Win2K3.

So, it looks like the only way for me to take advantage of the full 4GB
would be to migrate to some other OS, like Win2K3 or maybe Win2K
Advanced Server.

Jim



John said:
Later version of Server 2003 is PAE aware and uses 36 bit memory
addressing, server 2000 uses 32 bit addressing. Although Server 2003
only supports 4GB RAM by using 36 bit addressing it can map memory for
hardware devices above the 4GB limit, thus makeing the full 4 GB RAM
available to the operating system and programs. On the other hand
Server 2000 using 32 bit addressing must map memory for hardware within
the 4GB limit, thus it uses some of the space for hardware devices and
the space used for these devices is then not available to the Operating
System for RAM mapping. The hardware memory issue is summed up as so by
Tyan:

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]

http://www.tyan.com/archive/support/html/memory_faq.html

John
Hi,

I have 4GB of memory in my machine, and during boot, the BIOS displays
4GB.

However, when I boot into Windows 2000 Server SP4, and right-click on
My Computer, then Properties, it says "3,390,768 KB RAM".

I thought that the standard Windows 2000 Server is suppose to be able
to support up to 4GB of memory?

Thanks,
Jim

P.S. If I boot this same machine to Windows 2003 Server, the same
display says 4GB.
 
In a nutshell, yes. The RAM itself isn't used by the PCI devices but it
can't be fully mapped and used because the devices need some of the
address space that would otherwise be available to the RAM. My
understanding is that you need Windows 2000 Advanced Server or better to
overcome the problem.

John
John John,

Ok, thanks for the detailed explanation.

If I'm understanding, Win2K Server is actually recognizing all 4GB, but
it can only use the 3+ GB because the rest is used for the PCI stuff.
The other OSes, like Win2K3, can move the PCI stuff above 4GB, and
that's why I can "see" 4GB when I boot to Win2K3.

So, it looks like the only way for me to take advantage of the full 4GB
would be to migrate to some other OS, like Win2K3 or maybe Win2K
Advanced Server.

Jim



John said:
Later version of Server 2003 is PAE aware and uses 36 bit memory
addressing, server 2000 uses 32 bit addressing. Although Server 2003
only supports 4GB RAM by using 36 bit addressing it can map memory for
hardware devices above the 4GB limit, thus makeing the full 4 GB RAM
available to the operating system and programs. On the other hand
Server 2000 using 32 bit addressing must map memory for hardware
within the 4GB limit, thus it uses some of the space for hardware
devices and the space used for these devices is then not available to
the Operating System for RAM mapping. The hardware memory issue is
summed up as so by Tyan:

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]

http://www.tyan.com/archive/support/html/memory_faq.html

John
Hi,

I have 4GB of memory in my machine, and during boot, the BIOS
displays 4GB.

However, when I boot into Windows 2000 Server SP4, and right-click on
My Computer, then Properties, it says "3,390,768 KB RAM".

I thought that the standard Windows 2000 Server is suppose to be able
to support up to 4GB of memory?

Thanks,
Jim

P.S. If I boot this same machine to Windows 2003 Server, the same
display says 4GB.
 
Hi,

Thanks for the confirmation.

Unfortunately, there doesn't seem to be a way to simply upgrade Win2K
Server Standard to Win2K Advanced Server :(, so I guess I'm stuck with
the 3+ GB (I was trying to squeeze a bit more memory because it'd be
nice for running my Virtual PC guests), and I'm loath to do a fresh
install of all my apps...

Thanks again,
Jim




John said:
In a nutshell, yes. The RAM itself isn't used by the PCI devices but it
can't be fully mapped and used because the devices need some of the
address space that would otherwise be available to the RAM. My
understanding is that you need Windows 2000 Advanced Server or better to
overcome the problem.

John
John John,

Ok, thanks for the detailed explanation.

If I'm understanding, Win2K Server is actually recognizing all 4GB,
but it can only use the 3+ GB because the rest is used for the PCI
stuff. The other OSes, like Win2K3, can move the PCI stuff above 4GB,
and that's why I can "see" 4GB when I boot to Win2K3.

So, it looks like the only way for me to take advantage of the full
4GB would be to migrate to some other OS, like Win2K3 or maybe Win2K
Advanced Server.

Jim



John said:
Later version of Server 2003 is PAE aware and uses 36 bit memory
addressing, server 2000 uses 32 bit addressing. Although Server 2003
only supports 4GB RAM by using 36 bit addressing it can map memory
for hardware devices above the 4GB limit, thus makeing the full 4 GB
RAM available to the operating system and programs. On the other
hand Server 2000 using 32 bit addressing must map memory for hardware
within the 4GB limit, thus it uses some of the space for hardware
devices and the space used for these devices is then not available to
the Operating System for RAM mapping. The hardware memory issue is
summed up as so by Tyan:

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]

http://www.tyan.com/archive/support/html/memory_faq.html

John

ohaya wrote:

Hi,

I have 4GB of memory in my machine, and during boot, the BIOS
displays 4GB.

However, when I boot into Windows 2000 Server SP4, and right-click
on My Computer, then Properties, it says "3,390,768 KB RAM".

I thought that the standard Windows 2000 Server is suppose to be
able to support up to 4GB of memory?

Thanks,
Jim

P.S. If I boot this same machine to Windows 2003 Server, the same
display says 4GB.
 
You're welcome.

John
Hi,

Thanks for the confirmation.

Unfortunately, there doesn't seem to be a way to simply upgrade Win2K
Server Standard to Win2K Advanced Server :(, so I guess I'm stuck with
the 3+ GB (I was trying to squeeze a bit more memory because it'd be
nice for running my Virtual PC guests), and I'm loath to do a fresh
install of all my apps...

Thanks again,
Jim




John said:
In a nutshell, yes. The RAM itself isn't used by the PCI devices but
it can't be fully mapped and used because the devices need some of the
address space that would otherwise be available to the RAM. My
understanding is that you need Windows 2000 Advanced Server or better
to overcome the problem.

John
John John,

Ok, thanks for the detailed explanation.

If I'm understanding, Win2K Server is actually recognizing all 4GB,
but it can only use the 3+ GB because the rest is used for the PCI
stuff. The other OSes, like Win2K3, can move the PCI stuff above 4GB,
and that's why I can "see" 4GB when I boot to Win2K3.

So, it looks like the only way for me to take advantage of the full
4GB would be to migrate to some other OS, like Win2K3 or maybe Win2K
Advanced Server.

Jim



John John wrote:

Later version of Server 2003 is PAE aware and uses 36 bit memory
addressing, server 2000 uses 32 bit addressing. Although Server
2003 only supports 4GB RAM by using 36 bit addressing it can map
memory for hardware devices above the 4GB limit, thus makeing the
full 4 GB RAM available to the operating system and programs. On
the other hand Server 2000 using 32 bit addressing must map memory
for hardware within the 4GB limit, thus it uses some of the space
for hardware devices and the space used for these devices is then
not available to the Operating System for RAM mapping. The hardware
memory issue is summed up as so by Tyan:

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]

http://www.tyan.com/archive/support/html/memory_faq.html

John

ohaya wrote:

Hi,

I have 4GB of memory in my machine, and during boot, the BIOS
displays 4GB.

However, when I boot into Windows 2000 Server SP4, and right-click
on My Computer, then Properties, it says "3,390,768 KB RAM".

I thought that the standard Windows 2000 Server is suppose to be
able to support up to 4GB of memory?

Thanks,
Jim

P.S. If I boot this same machine to Windows 2003 Server, the same
display says 4GB.
 
Back
Top