PAE vs 64 bit – What manufacturers don’t want you to know

Note: This article is old, dating back to May 2009, and severely outdated. Whatever the information included in my post below, it’s probably advisable not to care today. As a simple fact of the matter, tell yourself that if your computer does not yet support 64 bit, it’s time to get a new one.

From 32 bit to 64 bit

You’ve heard the drill, any system with 4GiB+ of RAM requires a 64 bit operating system. Why? Because the total addressing space of the memory (the number of locations on the physical memory of your computer) in 32 bit memory architectures is limited to a total of 4 GiB.

This can be calculated with the following formula: 232, which equals 4,294,967,296 bytes, or 4 GiB.

Conversely, 64 bit has the following formula: 264, which equals a rather stunning 18,446,744,073,709,551,616 bytes, which translates into 16 EiB or 17,179,869,184 GiB.

So, it’ll take a while before we run out of addressing space in 64 bit memory architectures.

Anyway, you’ve probably recently heard about that thing called PAE, or Physical Address Extension. Most likely, you’ve heard it as a trick to make Windows XP recognize that extra ram, or your 32 bit Vista perhaps.

Is it true? Does it really work? The short answer is yes. It does work. However, we need to dive in the specifics a little bit to know why in the world Microsoft and other hardware/software companies decided to hide this Intel invention.

PAE Explained

When inventing the x86 architecture, and incidentally the x86-64 architecture (also known by its maker Advanced Micro Devices as AMD64), Intel also created something called Physical Address Extension (PAE) as a feature of the x86 architecture to make up for future memory limitations of the 32 bit architecture.

The trick is not a trick, it is a real hardware feature that consists of augmenting the number of memory address lines on the CPU from 32 bit to 36 bit, bumping the total possible amount of memory from 4 GiB to 64 GiB.

However, the processor remains a 32 bit processor, as well as its supporting motherboard and memory chips, preventing simultaneous use of more than 4 GiB. In other words, it remains possible to exploit the total 64 GiB of memory but no single virtual ram instance (ie. Photoshop) or physical memory unit can use more than 4 GiB of memory at the same time.

This translates into the impossibility of mounting anything else than 4 GiB sticks of RAM in your system, and probably even a total of 4 GiB because of the 32 bit architecture of your motherboard, which most likely only supports a total of 4 GiB of RAM, regardless of the CPU.

Now, since the total simultaneous limit is 4 GiB, you may be wondering how the operating system is capable of expanding this to 64 GiB. Effectively, since the x86 architecture is old and very common, it’s been long since operating systems including Windows and Unix variants like Mac OS X and Linux support the PAE extension, and with a few registry hacks, it’s possible to enable this “hidden” feature of Windows and other operating systems (in which case it’s something else than registry).

In Windows, this is called Address Windowing Extensions (AWE), where it involves mapping/spanning, or “Windowing”, an operating system across to more than a single virtual instance of 4 GiB of memory (or an application).

Why nobody told you

If you’re just a tad geeky in computers, you probably understood right away why software and hardware makers are pushing you towards 64 bit right away instead of temporarily using PAE.

And there, I’ve just said it, it’s a temporary solution. In a few years, systems will already be exceeding 64 GiB of memory, and applications (virtual memory instances) will need much more than blocks of 4 GiB of memory, a limitation of PAE.

Since 64 bit is a much more future-ready effort, instead of having to do two switches in a short period of time, Intel and Microsoft, among other companies, decided to literally hide this capability and make 64 bit the only apparent way to get more than 4 GiB of addressing space.

Should you use PAE

For the moment, if you’ve been using anything else than Windows, for instance, a Mac, the 64 bit issue should not have been an issue for you because prior earlier Apple processors like the PowerPC G5 (before the Intel x86-64 switch) were already 64 bit architectures.

Unlike Microsoft Windows and Linux, Apple’s tight integration of hardware and software allowed a much harder transition, from the IBM PowerPC to the Intel x86-64 microprocessor architecture, to be done in a very smooth way.

However, Microsoft’s much larger user base doesn’t allow this freedom and Windows XP remains a largely 32 bit operating system, seeing very limited support of its 64 bit counterpart, released in 2003, the same year Apple released its own first 64 bit system, the Power Mac G5.

To smooth in the transition, Microsoft also made Windows Vista and its more recent Windows 7 into two editions, 32 bit and 64 bit, although in this case, support is much more widespread, especially caused by the wider availability of 64 bit processors from Intel.

Along with Windows Vista came the mainstreaming of 4 GiB of system RAM and its related problems.

If you were hesitating to swith over Windows Vista 64 bit and found PAE to be a good solution to solve your RAM problem while keeping Windows XP, I would reconsider.

With the imminent launch of Windows 7 and Windows XP’s extended support period ending in 2014, PAE is but a very temporary solution.

How to

But hey, it can be useful where 64 bit is not possible because of a 32 bit processor, so why not. Here goes, this option is compatible with any Intel Pentium Pro, Pentium II, III, 4, Core, Core 2, Core i7 and + processor, along with every recent AMD processors and Athlon series.

Windows XP

1. Open an explorer window
2. Tools > Folder Options > View Tab
3. Check the radio box written “Show hidden files and folders”
4. Click OK to accept changes and close the dialog box
5. Go to your local drive where Windows is installed, most likely C:
6. Locate the file called BOOT.INI
7. Right-click on the file and click Properties
8. In the Properties dialog box, make sure the Read-only attribute is unchecked (checking it will prevent you from modifying the file)
9. Click OK to accept changes and close the dialog box
10. Open the BOOT.INI (default opens with Notepad)
11. It should look something like this:

[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Microsoft Windows XP Professional” /noexecute=optin /fastdetect

12. Append at the end of last line the following: /PAE
13. It should now look like this:

[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Microsoft Windows XP Professional” /noexecute=optin /fastdetect /PAE

14. If it does, save the file, exit Notepad and restart Windows

Congratulations, your Windows XP system now runs with PAE enabled.

Windows Vista / Windows 7

1. Click on the Start Orb
2. Search for CMD
3. Right-click CMD or Command Promt in the search results and click Run as administrator
4. In the command line, enter:
bcdedit /set pae ForceEnable
5. Close the command line

Congratulations, your Windows Vista/7 32 bit system now runs with PAE enabled.

To install PAE on a specific boot if you’re using a dual/multi-boot system, refer to the MSDN BCDEdit /set command documentation for instructions on how to set the ID of the boot.

Note: Official Microsoft documentation does not as of this writing specify explicit support for PAE in Windows 7.

Note: Applications not specifically built to use the AWE api from Microsoft will not be able to use more than 4 GiB of RAM even though PAE is enabled, this includes about every non server-specific application possible, so no, Photoshop and company won’t support more than 4 GiB of RAM each.

Note: Even though PAE technically enables 64 GiB of RAM, Windows XP, along with Windows Vista 32 bit, is limited to a total of 4 GiB. Detailed information can be found in this MSDN article on memory limits of Windows. Windows Vista 32 bit and Windows 7 32 bit also support PAE, as mentioned in other Microsoft articles spread amongst MSDN and other resources. However, Microsoft documentation isn’t clear on whether it is the physical RAM limit or the physical total addressable memory limit that is 4 GiB so results of enabling PAE may vary. With luck, they meant the total physical RAM limit, and not the total physical addressable memory limit, since this one is already 4 GiB with the 32 bit architecture, which would make PAE useless.

Note: Although the x86-64 (64 bit) architecture does support PAE, Windows’s AWE does not support it.

Note: Even though Intel’s specifications limit PAE to an extended total of 36 bit of addressable memory, it is technically possible to example this amount without changing the hardware. For example, Windows Server 2003 SP1 Datacenter Edition uses a special 37 bit PAE capable of supporting 128 GiB of RAM.

Mac and Linux

PowerMac processors are 64 bit since the G5, and any Intel Mac is 64 bit too, so you don’t have to worry about PAE at all, just the OS’s own RAM limitations (up to 16 TiB of RAM in OS X Snow Leopard 10.6). In Linux, any distro on the 2.6 version and up of the kernel has PAE included native and most often enabled by default, so it’s another thing you don’t have to worry about.

13 thoughts on “PAE vs 64 bit – What manufacturers don’t want you to know

  1. Nice.. ok for Winows but.. you forgot the ‘how to’ for Mac Osx!

  2. Here you go, I added the information which states that you don’t have to do anything for that in OS X. As long as your hardware supports it, your Mac OS X supports it.

  3. I’ll have to do research on this, thanks.
    (For perplexed readers, he’s talking about the Intel Core 1, not the Core 2, which are all 64 bit capable)

    Other note I’ll have to check on, actual OS X, even Snow Leopard (until an update comes out for that) still run their kernel in 32 bit mode. Wondering how Apple managed to make things 64 bit without breaking anything? The answer: they never did.

  4. I find this hard to swallow as anyone who understands the memory management model will realize that PAE also hobbles your system in a 32-bit world. It cuts your Free Page Table entries down to about 10% and the pools drop to half of what they originally were set. This in turn, causes performance issue at the kernel level. Microsoft did not necessarily try to hide this. They simply do not want this level of information going out to those who would implement without a good understanding. As far as Apple goes, Mac is a home user system at this point, or for graphics, and really cannot be discussed in this venue as it does not, nor will it ever, apply. Apple can stick to blowing up Ipods, lolol.

  5. Well, I have to admit it was just for the sake of the title -_-… I don’t really think PAE is really a solution either. If anything it’s just a temporary gimmick.

    Still, it’s part of this world, as Apple still is running Snow Leopard in 32 bit on the kernel level as of 10.6.1 you know. Anyway, most of the time I haven’t actually been able to make it work well and I’d just recommend to anyone to simply get 64 bit and get over with 32 bit and Windows XP now that Windows 7 is coming out.

  6. @ gawdfadda

    But yea DEP also uses 36bit and its a kernel hog too isnt it?
    and that’s enabled by default, but PAE ins’t so what up with that then..

  7. Mac OS X 10.6.x runs in 64-bit mode on Core2Duo or later processors. On older CoreDuo processors (like my first-gen MacBook Pro) runs in 32-bit mode.

    To verify you’re running in 64-bit mode, go to Applications > Utilities > Activity Monitor. It will display all your running processes and whether they’re 64-bit, 32-bit, or PowerPC emulated (upgrade your software already!).

    Apple hardware has no problems running Windows in 64-bit mode (via Bootcamp or virtualization) and Linux in 64-bit mode (not just PAE).

    -Aaron-

    PS: Your slash on step 12 of your XP instructions is the wrong direction.

  8. wow, thanks lol. Never noticed.

    So, did you meant 10.6 runs its Kernel in 64 bit? Because all the 10.6 computers I have run in 64 bit, no matter what the processor (all Intel processors on Macs are 64 bit capable), just the Kernel isn’t running in 64 bit yet, which is eventually going to get changed by Apple… one day.

    And while Apple hardware has no problem running 64 bit Windows, you have to be careful as older machines are not supported in 64 bit on BootCamp, despite being capable of doing so. It doesn’t prevent you from doing it, it’s just that Apple doesn’t have proper drivers for it, so getting the webcam to run is a bit harder than just putting a CD in.

    In Activity Monitor, you have to display all processes, not just user processes, in order to determine if you’re running 64 bit in the Kernel as well. Some Apple apps, notably iTunes, as well as a couple of services, aren’t fully 64 bit yet. I believe this is the case on Windows as well, except Windows 64 bit has always been Kernel 64 bit, hence the major pain in driver upgrades a while ago, which is not so much of a problem these days though as hardware manufacturers have pretty much moved on.

  9. I just bought a cheap all-in-one pc. It has Windows 7 32 bits installed. CPU is AMD E-350 1.6GHz. It came with 2GB of memory and added another 4GB, so a total of 6GB memory. I enabled PAE using bcdedit command as described. The bcdedit /enum shows the setting after the system was rebooted. Total memory always shows 6GB. Usable memory reported has dropped a little bit since enabling PAE to 2.61GB. First, will PAE work with this AMD CPU? Second, how can I find out whther PAE is doing its magic and is using all 6GB memory?

    Thanks!

  10. PAE was introduced in the Pentium Pro back in 1995, long before 64 intel compatibles chips were invisioned. I have a dual p3/tualatin server that has 6GB ram. PAE is similar to how DOS Expanded Memory worked. it basically pages memory about 4GB down into the 4GB area to use it. this is MUCH faster than say virtual memory. Plus, it gives indiviual programs more memory to play with.

    It is pretty much irrellavent with 64bit system(althought still used for memory management in intel64).

    the original 8086 was a 16bit chip with a 20bit memory address & the 286 was a 16bit chip with a 24bit memory address, so its not like this is a new idea.

  11. Thanks for the info. I think whatever I wrote here back in 2009 is pretty much irrelevant today anyway. I mean, if your new computer can’t do 64 bit… and any other computer not 64 bit ready is getting pretty old now.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>