Recently there was some discussion around the memory that is addressable in a Windows environment. In fact there is varying opinion on the configuration options for 32-bit windows systems. I thought I would add to that pool.
In very (very) simple theoretical terms 32-bit systems only have 32-bits of data to work with resulting in them being able to address only up to 4 GB of memory. However a 64-bit system could theoretically address up to 16 exabytes of memory.
So why then are there different configuration options for 32bit windows systems and not that many for 64bit windows systems? Lets take an all too typical example – When fitted with 4GB of RAM why then in 32bit Windows on an x86 architecture one is able to see say only 3.5GB?
Although most of the address space on your Windows Memory Manager is filled with RAM a good amount of it will be used by memory mapped devices. Booting with the Physical Address Extension (/PAE / NOPAE) switch allows the processor to access the memory beyond this boundary. The post on Chad Boyd’s SQL stuff gives a far more in depth discussion of PAE than I could. Microsoft’s PAE knowledge base gives a table listing the maximum memory support for a few different windows OS with PAE turned on.
Of course applications complied under dotNet 2.0 (and newer) with the AnyCPU switch set to true dont really need to worry too much about the underlying hardware do they
2 Comments
August 2, 2008 at 11:43 pm
Belated comment, but I’ve only just found your blog Izzy !
(Hopefully by now), most server manufacturers have actually implemented “hacks” to help with the recovering the lost memory when running 32bit OS’s.
For example, using Windows 2003 standard, 32 bit, on a server with 4Gb RAM, you’ll end up with with 3.5Gb ish (I’ve actually seen as little as 2.8Gb !). Both IBM and HP (at least) introduced BIOS features, which when used with the above combination and the /PAE switch, will move the lost RAM above the 4Gb boundry, and make it accessible to the OS again. Good stuff !
Check the HS20 BIOS for an example of such hacks:
“Fix to improve allocation of the memory required by PCI devices so that more memory is available as usable system memory with 4GB of physical memory installed. For OS kernels that can support PAE(Physical Address Extension) mode and the mode is enabled by the customer this is a non-issue”
August 9, 2008 at 6:44 pm
i have been blogging for a while (under different locations), but i thought of formalizing things and having a human face to ibm technology (although i try to blog not just on ibm but all technology i find interesting in general and in an unbiased way)
i have short bursts of blurbs at http://twitter.com/wizzy if you are inclined that way.
thanks for the comment, as always your insight is brilliant.
hope to see you at the Forum! I’ll be there all day.