Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have always wondered this, and never totally understood how 32 bit machines are addressing more than 4GB of ram, I mean there are no more address lines left, correct? I know even in our facility that we have Dell SQL Servers with 8GB of ram addressable by the machine and a 32-bit version of SQL. Is it achieved similar to EMS memory of the 20 address line 8086, using a window of rotating memory?

Thank you,

Brett

share|improve this question
    
What OS and SQL? –  Daniel A. White May 2 '09 at 23:31
add comment

5 Answers

up vote 14 down vote accepted

To support more than 4Gb memory windows uses Physical Address Extension. It uses paging tables to map the memory greater than 4Gb. By doing this physical address size is increased to 36bits, or 64Gb. PAE is used in 64bit OS's as well, in this case the maximum size is doubled to 128Gb.

This method does mean that Each process is still limited to a maximum of 4Gb of memory.

share|improve this answer
    
So explain how Windows Server Datacenter Edition x86 supports 128GB? –  tsilb May 3 '09 at 1:57
1  
It doesn't. microsoft.com/windowsserver2008/en/us/compare-specs.aspx It's limited to 64 GB, just as Sam said. –  Sören Kuklau May 3 '09 at 18:42
1  
Not just Windows. All operating system which support the processor feature PAE can do this. To find out if your processor supports PAE, check the output of "cat /proc/cpuinfo". No idea how to check in Windows though. –  wzzrd Jun 17 '09 at 6:36
    
In the normal, default 32 bit Windows OS configuration, 2 GB of the virtual address space are allocated to the process’ private use and the other 2 GB are allocated to shared and operating system use. Therefore only 2 GB can be used by a process in reality.(maybe 3 with the /3GB but never all of them from psychical RAM) Only that portion of the address space that is actually referenced (used) by a process or the system is associated with a page frame in real memory, or in the pagefile. –  Jimmy Mar 24 '10 at 20:05
add comment

There's an Intel feature called PAE which in effect enables the OS to utilize more than 4GB of memory. Each application can only use 2 (or 3) GB of memory space but as the OS now has more memory to spread stuff out over - there will be less sharing between processes and hence some possible performance benefits.

The real magic however begins when using the AWE API with which you can actually use more memory with a single 32bit application that is especially written for this. This is what SQL Server is doing.

share|improve this answer
add comment

Well, your server operating system might be 64-bit. SQL maybe only using 4 gigs of the 8, or some 32-bit programs spawn more processes (like video encoding software, in my experience) to take advantage of the ram.

share|improve this answer
add comment

It's called PAE. It works by changing the page table layout on the processor to support up to 64 GB of RAM. However, any one application can still only use 2-3 GB (depending on how the kernel is set up, usually 2 GB for Windows and 3 GB for Linux). Also, PAE tends to make the machine run slightly slower, because page table lookups have an extra level to go through.

It should be supported on any relatively recent processor.

share|improve this answer
add comment

An application on a 32 bit OS can access of 4GB of address space. But this is virtual address space and has absolutely nothing to with the size of physical RAM. Most modern 32 bit processors have sufficient address lines to address 64GB of RAM. Blocks of 4K bytes are mapped to a process's address space as needed.

It is PAE that allows access to more than 4GB of RAM. It is not a hack as often claimed but is quite efficient. PAE doesn't make any fundamental changes, it is only the details that are differnet. In fact, most modern system are using PAE by default. DEP relies on the PAE kernel.

Unfortunately, access to RAM beyond 4GB is limited to servers. A desktop may be using PAE but will ignore any RAM beyond 4GB. There are a number of technical and marketing reasons for this.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.