The theoretical memory limits in 16, 32 and 64 bit machines are as follows ...
The fundamental flaw here is the notion that the "bit width" of the processor, which is usually the size of the machine's general-purpose registers, is necessarily the same as the width of RAM addresses.
In x86 with paging enabled, but without PAE, the addresses that program and OS code use are called "linear addresses" by Intel - we usually call them "virtual addresses". They're 32 bits wide. This permits a 4 GiB virtual address space.
But it is more or less coincidence, merely an artifact of the format of page table entries that the size of a physical (RAM) address is also 32 bits.
With PAE the latter is 36 bits (at first... wider in later implementations). So, just because it is, for example, a "32 bit machine" does not mean that physical memory addresses are limited to 32 bits.
The industry has a long history of machines whose "bit width" did not match their maximum physical address size. For example, the VAX architecture defines a 32-bit machine, and virtual addresses (which are the addresses used by code once address translation is turned on) are indeed 32 bits wide... but the VAX's physical addresses are only 30 bits wide - and half of the physical address space is devoted to I/O device registers, so maximum RAM was only 512 MiB.
Even without address translation hardware, it is not necessarily the case that the machine's "bit width" defines the maximum RAM address. Example: The CDC "upper 3000" series were 36-bit machines. Do you think they could address 64 GiB of RAM? Not hardly! Those machines came out in the mid-60s! Heck, we couldn't even have 64 GB of disk space in those days. (The CDC 6000 series were 60-bit machines. Need I go on?)
3THat's a myth. The overhead due to PAE is tiny. And if you dislike PAE you should really hate x64, because the page table structure on x64 looks just like PAE, just with yet another table level added on top and more bits for PFNs in the PxE's. – Jamie Hanrahan – 2014-11-07T05:46:00.553
1PAE was not "removed in Windows 7 because it is no longer needed", it is still present in Windows 7 x86 - it's just there by default rather than having to be optioned in. – Jamie Hanrahan – 2014-11-07T05:46:39.647
What is about linux? – SaidbakR – 2016-01-02T21:32:43.377
Ah I've heard of PAE before but never investigated it. It appears to be largely used in server architecture, so does not seem to apply to a Windows 7 32bit installation, as the list specifies that W7x86 only allows up to 4GB – Matthew Layton – 2013-02-22T22:09:33.227
@series0ne: this is a licensing issue. Scott even mentions this in his answer. – 0xC0000022L – 2013-02-22T22:23:24.960
1@0xC0000022L to be fair, I added the license part as a edit after his comment, but due to the 4 min edit window it looks like I posted it before he posted the comment. – Scott Chamberlain – 2013-02-22T22:27:11.703
@series0ne PEA also applied to win XP 32 bit, so not only server OS'ses. It got removed in windows 7 (and maybe already in vista) because it no longer is needed. 64 bit CPUs have been in use since ~1979 and they are now that common that it is safe to assume every newly installed computer has one and thus the X64 version can be used with much less hassle. – Hennes – 2013-02-23T00:29:49.037
1PAE requires page table switcheroo to work, and that is costly in terms of performance. – vonbrand – 2013-02-23T01:42:17.223
search for 32-bit vs PAE performance benchmarks and you'll see that PAE is not a good solution. http://www.phoronix.com/scan.php?page=article&item=ubuntu_32_pae&num=1
– phuclv – 2013-08-30T08:39:53.103