Access more memory, even on a 32-bit system

Scott dunn By Scott Dunn

No matter how much memory you have in your PC, you may not be getting the most out of your installed RAM.

A few little-known system tweaks can improve the way Windows manages memory, freeing up more RAM for your applications.

As described in an entry on the Microsoft Developer Network, all non-server 32-bit versions of Windows XP and Vista impose a memory limit of 4GB. Your system may allow you to install more than this amount of RAM, but with few exceptions, the extra memory won’t do Windows or your applications any good.

Subscribe to our Windows Secrets Newsletter - It's Free!

Get our unique weekly Newsletter with tips and techniques, how to's and critical updates on Windows 7, Windows 8, Windows XP, Firefox, Internet Explorer, Google, etc. Join our 480,000 subscribers!

Windows 8.1: Out of the box

Subscribe and get our monthly bonuses - free!

Get a real feel for Windows 8.1 with a wealth of tips in this step-by-step guide. This month, Windows Secrets subscribers can download the first 2 chapters for free: Using Windows 8.1 and Using Email and the Internet. Get this excerpt and other 5 bonuses if you subscribe now!



Moreover, even if you have 4GB of memory installed in your PC, you may not be able to use it all. For example, if your video card comes with 1GB of memory and you have 4GB of RAM, your system actually has 5GB of memory physically installed. But Windows will use only 4GB of that total, regardless.

It gets worse: according to a comment posted to the MSDN article, Windows itself is getting only 3GB because the video card gets 1GB. This happens because the memory aperture — a portion of system memory — is used to work with the video system.

Ways to break through Windows’ RAM ceiling

Fortunately, there are techniques you can use to get around Windows’ system-memory limitations. One method is to use Physical Address Extension (PAE), a feature of x86 processors that lets 32-bit operating systems overcome the 4GB memory limit.

Another MSDN article explains that 32-bit Windows operating systems support PAE. Even though XP and Vista still cling to the 4GB limit with PAE enabled, the feature may help you get back some of your unused RAM.

In one or two rare cases, a developer may take advantage of PAE technology to get around the usual Windows limits. For example, reader Alan Gorski reports that when he increased a computer to 8GB, the program AutoCAD was able to open large drawing files without generating the “out of memory” errors he previously had seen. As Gorski notes, “AutoCAD has long used special memory management techniques since the DOS days to maximize use of available RAM.”

There’s a good chance your system is already using PAE. That’s because Windows relies on the technology to support the security feature known as Data Execution Prevention (DEP). For more information about Windows and DEP, see my Top Story in the May 3, 2007, issue.

If a computer supports hardware-enforced DEP, then PAE is enabled as well. Here’s how to check for it in Windows XP:

  • Step 1. Choose Start, Run.
  • Step 2. Type sysdm.cpl and press Enter.
  • Step 3. Click the Advanced tab. In the Performance box, click Settings and choose the Data Execution Prevention tab.
  • Step 4. Look for a status message at the bottom of the dialog box. If it indicates that your hardware does not support DEP, chances are PAE is not enabled.
To check your system’s PAE status in Vista, do the following:
  • Step 1. Press Win+R to open the Run dialog box.
  • Step 2. Type SystemPropertiesDataExecutionPrevention and press Enter.
  • Step 3. If prompted by User Account Control, click Continue.
  • Step 4. If the status message at the bottom of the dialog box says your system supports DEP and the “Turn on” button is selected, then PAE is enabled as well.
If PAE is not already enabled on your system, here’s how to activate it in Windows XP:
  • Step 1. Choose Start, Run.
  • Step 2. Type notepad c:boot.ini and press Enter.
  • Step 3. Under the [operating systems] heading, look for a line that contains the /noexecute switch, which turns software DEP. For example, it may be /noexecute=optin, /noexecute=optout, or /noexecute=always on. Place the cursor directly after that switch and type a space followed by /pae. Save the file and reboot.
If you don’t have DEP enabled on Vista (or you don’t want it enabled), you can still activate PAE by following these steps:
  • Step 1. Click Start, type cmd.exe and press Ctrl+Shift+Enter.
  • Step 2. If prompted by User Account Control, click Continue. This opens a command prompt window with administrator privileges.
  • Step 3. At the prompt, type BCDEdit /set PAE ForceEnable and press Enter.
You can read more about PAE in this post on Microsoft’s TechNet site.

Microsoft warns in another TechNet article that some drivers will not load if PAE is enabled. After you make this change, keep an eye on your system. If you have problems with drivers or your system starts acting up, remove the /pae switch from boot.ini in XP, or enter the following command line in an administrator command prompt in Vista:

BCDEdit /set PAE ForceDisable

For more information on the switches and settings related to PAE, consult this MSDN paper, “Boot Parameters to Configure DEP and PAE.”

Reader Alan Gorski will receive a gift certificate for a book, CD, or DVD of his choice for information used in this story. Send us your tips via the Windows Secrets contact page.

Scott Dunn is a contributing editor of the Windows Secrets Newsletter. He has been a contributing editor of PC World since 1992 and currently writes for the Here’s How section of that magazine.