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?
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.
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.
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.
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.
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.