AMD Processors
Decrease font size
Increase font size
Locked Topic Locked
Topic Title: Using more than 2GB of RAM with 32-bit Windows
Topic Summary:
Created On: 05/09/2008 04:49 PM
Status: Read Only
Linear : Threading : Single : Branch
Search Topic Search Topic
Topic Tools Topic Tools
View similar topics View similar topics
View topic in raw text format. Print this topic.
 05/09/2008 04:49 PM
User is offline View Users Profile Print this message

Author Icon
fizzbang
Senior Member

Posts: 1256
Joined: 03/05/2006

I compiled the following info based on my own experience troubleshooting what I initially thought was a memory problem, but what turned out to be just how a 32-bit operating system works. I'm no expert on memory, hardware, or operating system architectures, so if I've made a bad assumption or phrased something incorrectly, I'd appreciate a correction.

Thanks to PorscheRacer for his clarification of Vista memory limits
Thanks to nytrousboy for the PAE Memory and Windows link (pulled from another thread)

--

Both Windows XP 32-bit and Windows Vista 32-bit operating systems are limited to a 4GB total address space. That's not an artificial limit chosen by Microsoft, it's the nature of binary numbers. (You can determine the total address space available in any binary digital system by raising 2 to the bits power. For example, 2^32bits = 4,294,967,296 bits = 4GB.) Of that 4GB total address space, 2GB are directly available to the user, while up to 2GB are reserved by Windows. Note that the memory itself isn't being used, just the address space, but if you're excluded from the address space, you're excluded from the physical memory as well.

The reserved 2GB of memory are used to map...
  • System BIOS (including motherboard, add-on cards, etc..)
  • Motherboard resources
  • Memory mapped I/O
  • Configuration for AGP/PCI-Ex/PCI
  • Other memory allocations for PCI devices


Due to this reservation of address space, systems with 4GB of physical memory installed often report anywhere from 2.5 to a little over 3GB of available, user usable memory depending on total system overhead. In contrast, both XP 64 and Vista 64 (Business Edition and up) can directly address up to 128GB of physical memory.

--

The /PAE (Physical Address Extension) and/or the /3GB (4-Gigabyte Tuning) boot.ini switches may allow you to use more of your memory.

PAE is a feature of Intel Pentium Pro and above, and compatible 3rd party (AMD) CPUs. PAE changes the addressing scheme used by Windows, allowing up to 64GB of physical memory to be mapped into a 32-bit (4GB) virtual address space. By making more physical memory available, PAE may reduce the need to swap memory to and from the page file, thereby improving performance. PAE also enables certain other system and processor features, so it can be used for reasons other than memory management. CPUID flag PAE indicates a particular CPU's PAE capability.

/3GB (4-Gigabyte Tuning) increases the virtual address space available to applications from 2GB to 3GB, and reduces the amount available to the OS to 1GB. 4-Gigabyte Tuning is most commonly used on servers hosting memory intensive applications. In order for an application to utilize the additional memory, the application process header must include the IMAGE_FILE_LARGE_ADDRESS_AWARE flag. You don't get any benefits from just dropping "/3GB" into the boot.ini file.

--

Physical Memory Limits: 32-bit Windows XP
Version . . . . . . . . . . . . . . . . . Limit in 32-bit Windows . . . Limit in 64-bit Windows
Windows XP . . . . . . . . . . . . . . . 4GB . . . . . . . . . . . . . . . . . . . 128GB

Physical Memory Limits: 32-bit Windows Vista
Version . . . . . . . . . . . . . . . . . Limit in 32-bit Windows . . . Limit in 64-bit Windows
Windows Vista Ultimate . . . . . . . 4GB . . . . . . . . . . . . . . . . . . . 128GB
Windows Vista Enterprise . . . . . .4GB . . . . . . . . . . . . . . . . . . . 128GB
Windows Vista Business . . . . . . .4GB . . . . . . . . . . . . . . . . . . . 128GB
Windows Vista Home Premium . . 4GB . . . . . . . . . . . . . . . . . . . .16GB
Windows Vista Home Basic . . . . .4GB . . . . . . . . . . . . . . . . . . . . .8GB

--

References

Microsoft...
Document - Memory limits for Windows Releases
Document - memory support and Windows operating systems
KnowledgeBase Article - RAM, Virtual Memory, Pagefile and all that stuff
KnowledgeBase Article - Vista 32bit/4GB RAM issue
KnowledgeBase Article - Large memory support
Document - PAE Memory and Windows
Document - Physical Address Extension
Document - Operating systems and PAE Support
Document - DEP and PAE
Document - PAE Technical Reference
Document - 4-Gigabyte Tuning
Document - 4-Gigabyte Tuning Technical Reference

Misc...
Old New Thing (3rd party Blog) - PAE Discussion
Wikipaedia Entry for PAE

-------------------------
939Dual-SATA2 v1.05, BIOS v2.31
Opteron 165 (CCBWE 0550UPMW) @2.7GHz, 1.35V
TWINX2048-3200C2PT 2.5-3-3-6 1T
Thermaltake Big Typhoon
ATI X1800GTO


Edited: 05/30/2008 at 02:40 PM by fizzbang
 05/11/2008 10:56 AM
User is offline View Users Profile Print this message

Author Icon
sgie87
Case Modder

Posts: 1141
Joined: 08/01/2004

informative post.

the most important part in simpler words ,
windows xp 32-bit will only see 3gb of ram if 4gb is installed,and of that 3gb it will only give 2gb to any one program.

but if you are using a 64-bit operating system,all 4gb of ram can be used.

-------------------------
*IRC chatroom #freedom on irc.globalgamers.net server is a great place to hang out online.PM me for more info.*
 05/11/2008 02:06 PM
User is offline View Users Profile Print this message

Author Icon
fizzbang
Senior Member

Posts: 1256
Joined: 03/05/2006

Pretty good summary. Thanks.

-------------------------
939Dual-SATA2 v1.05, BIOS v2.31
Opteron 165 (CCBWE 0550UPMW) @2.7GHz, 1.35V
TWINX2048-3200C2PT 2.5-3-3-6 1T
Thermaltake Big Typhoon
ATI X1800GTO
 06/12/2008 01:24 AM
User is offline View Users Profile Print this message

Author Icon
Overmind
Assimilator

Posts: 8052
Joined: 01/22/2004

You don't get 4GB on 32-bit no matter what you do. The reserved area will still be reserved.

-------------------------

World's best Red Alert 2: Yuri's Revenge mod and Star Trek: Starfleet Command 3 mod: Overmind.ro
 06/12/2008 07:10 AM
User is offline View Users Profile Print this message

Author Icon
fizzbang
Senior Member

Posts: 1256
Joined: 03/05/2006

In a 32-bit operating system you'll never be able to address more than 4GB directly. A different addressing scheme may allow you to map more physical memory into that 4GB address space. That's what PAE does.

-------------------------
939Dual-SATA2 v1.05, BIOS v2.31
Opteron 165 (CCBWE 0550UPMW) @2.7GHz, 1.35V
TWINX2048-3200C2PT 2.5-3-3-6 1T
Thermaltake Big Typhoon
ATI X1800GTO
 06/12/2008 09:56 AM
User is offline View Users Profile Print this message

Author Icon
Overmind
Assimilator

Posts: 8052
Joined: 01/22/2004

Originally posted by: fizzbang

In a 32-bit operating system you'll never be able to address more than 4GB directly. A different addressing scheme may allow you to map more physical memory into that 4GB address space. That's what PAE does.

More yes, all no.

-------------------------

World's best Red Alert 2: Yuri's Revenge mod and Star Trek: Starfleet Command 3 mod: Overmind.ro
 06/12/2008 12:09 PM
User is offline View Users Profile Print this message

Author Icon
fizzbang
Senior Member

Posts: 1256
Joined: 03/05/2006

I think I see where you're going. In 32-bit Windows each application gets it's own virtual 4GB memory space, but of that 4GB, 2GB or so are reserved for the OS. (Each application gets 2GB of address space for it's own use, but all applications share the same 2GB reserved space.) So, even in a system with more than 4GB of physical memory installed, an application still never actually uses a 4GB "block" of memory, but has to have that "extra" memory mapped into it's own 2GB address space.

-------------------------
939Dual-SATA2 v1.05, BIOS v2.31
Opteron 165 (CCBWE 0550UPMW) @2.7GHz, 1.35V
TWINX2048-3200C2PT 2.5-3-3-6 1T
Thermaltake Big Typhoon
ATI X1800GTO


Edited: 06/12/2008 at 12:19 PM by fizzbang
 06/13/2008 01:34 AM
User is offline View Users Profile Print this message

Author Icon
Overmind
Assimilator

Posts: 8052
Joined: 01/22/2004

That's not what I wanted to say.
Even with PAE, you can only get an amount of memory lower than 4GB, that is dependent on your other components. I.e. if you have a 512 MB video card, you'll get to use about 3.2GB of RAM.
Everything in your computer has an MMIO address; the BIOS, the BUSes, Video Card's RAM (that supersedes your DRAM addressing). The computer reserves blocks of MMIO addresses for VRAM, BUSes, bridges, BIOS, then DRAM. Your RAM only gets all the addressing space left.

-------------------------

World's best Red Alert 2: Yuri's Revenge mod and Star Trek: Starfleet Command 3 mod: Overmind.ro
 06/13/2008 07:51 AM
User is offline View Users Profile Print this message

Author Icon
fizzbang
Senior Member

Posts: 1256
Joined: 03/05/2006

I never said the whole 4GB address space could be used for RAM. Rereading the original I don't think I even implied it. Did I? I noted, as did you, that some amount of address space is always reserved for use by the system/OS/kernel. Aren't we saying the same thing?

edit: I guess I should note more clearly that PAE helps only if you have more than 4GB RAM installed...

-------------------------
939Dual-SATA2 v1.05, BIOS v2.31
Opteron 165 (CCBWE 0550UPMW) @2.7GHz, 1.35V
TWINX2048-3200C2PT 2.5-3-3-6 1T
Thermaltake Big Typhoon
ATI X1800GTO


Edited: 06/13/2008 at 10:44 AM by fizzbang
 06/14/2008 01:32 AM
User is offline View Users Profile Print this message

Author Icon
Overmind
Assimilator

Posts: 8052
Joined: 01/22/2004

It's best to clarify everything.
Btw, even with 8GB or more, the same thing applies. You'll be able to use only 7.x out of 8.

-------------------------

World's best Red Alert 2: Yuri's Revenge mod and Star Trek: Starfleet Command 3 mod: Overmind.ro
 06/19/2008 03:40 PM
User is offline View Users Profile Print this message

Author Icon
tcsenter
Member

Posts: 113
Joined: 05/07/2004

Originally posted by: fizzbang
edit: I guess I should note more clearly that PAE helps only if you have more than 4GB RAM installed...

If you run a current 32-bit Linux distro, or one of several 32-bit enterprise and database editions of Microsoft server products such as Server 2003 Enterprise Edition, then it will help (as long as the CPU, BIOS, and chipset support more than 4GB RAM), but not on any current MS desktop operating system nor even 'standard' non-enterprise editions of MS server products.

All current 32-bit Microsoft desktop operating systems have the kernel MMU capped at 32-bit (i.e. 4096MB) physical address space, PAE or no PAE. Only 36-bit PTEs are supported in PAE kernel mode. This includes 32-bit Windows XP SP2 and SP3, Windows Vista 32-bit RTM and SP1.

There are at most several dozen commercial applications available on the market that utilize the 'large_address_aware' feature, nearly all of which are enterprise, database, professional workstation, scientific, or server applications. The number of consumer applications or games that support this feature can be counted on both hands, and few of those support it in a production environment rather than strictly for testing purposes.

I would just delete the thread or at least conspicuously disclaim that it has absolutely nothing to do with making more RAM available to the system, because these features are of no utility or relevance to 99% of PC users. Anyone that would actually stand to benefit from this information is more likely than not to already know about it, due to the extremely limited scope of application. While the other 99% are very likely to misinterpret what is said here as somehow being a solution or work-around to 32-bit physical address limitations.

It is already a pervasive problem that people are referencing or offering this information to the general or common user as methods to get some of the RAM back that they have lost to 32-bit physical address constraints. I see it almost every single day and have had to refute/clarify this in a dozen such discussions myself.

PAE will be enabled by default on practically all contemporary systems with a CPU (and BIOS) that supports hardware DEP (Execute Disable or No Execute bit). If your system is using hardware DEP, it is in PAE mode. If your System Properties screen reports "Physical Address Extensions" below the CPU frequency and RAM, it is in PAE mode. See screen grab here: Physical Address Extensions

If you use the /PAE switch on a system that is already running PAE by default, the switch is simply ignored by the kernel.

Edited: 06/19/2008 at 07:51 PM by tcsenter
Statistics
112018 users are registered to the AMD Processors forum.
There are currently 0 users logged in.

FuseTalk Hosting Executive Plan v3.2 - © 1999-2014 FuseTalk Inc. All rights reserved.



Contact AMD Terms and Conditions ©2007 Advanced Micro Devices, Inc. Privacy Trademark information