How does a 32-bit machine support more than 4 GB of RAM?

I have always wondered about this and never totally understood how 32 bit machines are addressing more than 4 GB of RAM. I mean, there are no more address lines left, correct?

I know even in our facility that we have Dell database servers with 8 GB of RAM addressable by the machine and a 32-bit version of SQL Server. Is it achieved similar to EMS memory of the 20 address line 8086, using a window of rotating memory?


Solution 1:

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

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

Solution 2:

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.

Solution 3:

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.

Solution 4:

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.