Windows Vista Forums
Vista Forums Home Join Vista Forums Windows 7 Forum Vista Tutorials Tags
Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks.

Go Back   Vista Forums > Vista Forums > Vista News

Vista - Access more memory, even on a 32-bit system

Reply
 
Old 12-18-2008   #1 (permalink)


Microsoft® Windows Vista™ Ultimate x64 SP2 Windows 7 7127 x64
 
 

Access more memory, even on a 32-bit system

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.

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 1MB 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."

By Scott Dunn

Access more memory, even on a 32-bit system

My System SpecsSystem Spec
Old 12-18-2008   #2 (permalink)


Vista Home Premium 32bit [x86] - SP2
 
 

Re: Access more memory, even on a 32-bit system

G'Day echrada,


Having recently increased my RAM from 1GB to 4GB [system shows 3.69GB available of the 4GB], I found this post most informative.


I have had DEP activated for quite some time now, and I'm sure that it assisted during the recent wild times that IE has been experiencing.


I have an alternative and perhaps more long-winded way of doing the DEP check, as follows;



End users who are logged on as administrators can manually configure DEP between the OptIn and OptOut policies using the Data Execution Prevention tab inside the System Properties dialog box. The following procedure describes how to manually configure DEP on the computer:
  1. Click Start, click Control Panel, and then double-click System.
  2. Click the Advanced tab. Then, under Performance, click Settings.
  3. Click the Data Execution Prevention tab.
  4. Click Turn on DEP for essential Windows programs and services only to select the OptIn policy.
  5. Click Turn on DEP for all programs and services except those I select to select the OptOut policy.
  6. If you selected the OptOut policy, click Add and add the applications that you do not want to use DEP with.
I selected option 6. but have made no exceptions. Does this make any difference to the performance?

Cheers

sassofalco
My System SpecsSystem Spec
Old 12-18-2008   #3 (permalink)


Microsoft® Windows Vista™ Ultimate x64 SP2 Windows 7 7127 x64
 
 

Re: Access more memory, even on a 32-bit system

Sassofalco

I took this straight from MS -

"DEP is a highly effective security feature that should not be disabled unless you have no alternative. The default settings for DEP and PAE are optimal for most systems. Do not change the default settings unless they interfere with essential processing tasks. This section is included to show you how to configure these features, but it should not be interpreted as a recommendation to change the default settings."
My System SpecsSystem Spec
Old 12-18-2008   #4 (permalink)


Vista Home Premium 32bit [x86] - SP2
 
 

Re: Access more memory, even on a 32-bit system

Quote  Quote: Originally Posted by echrada View Post
Sassofalco

I took this straight from MS -

"DEP is a highly effective security feature that should not be disabled unless you have no alternative. The default settings for DEP and PAE are optimal for most systems. Do not change the default settings unless they interfere with essential processing tasks. This section is included to show you how to configure these features, but it should not be interpreted as a recommendation to change the default settings."
MacMate!

I'm still left with the fact that I have learned a little more about this danged thung today, and it's only because I read your post. Anything that adds to my understanding of what I sit and swear at, is a huge bonus. Thank-you.

sassofalco
My System SpecsSystem Spec
Old 12-18-2008   #5 (permalink)


Vista Home Premium 64bit SP2
 
 

Re: Access more memory, even on a 32-bit system

you can get windows to recognise any ammount of ram but you cant get it to use it , its a limitation of the 32 bit O/S , its physically impossible for it to utilise 4 gb , its NOT a limit imposed by microsoft.

it refers to the OS having 5GB of ram if you have a 4GB installed and 1GB onboard your GPU?? Its wrong , moreover the only time an os will use 1 gb of physical memory for the GPU is if this GPU is "onboard" (built into the mobo) and its using "shared ram"

Quote:
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."
^^^^ That is simply impossible , windows will simply be using the pagefile , 32 bit windows cannot utilise more than 4gb of ram however you tweak it


Quote:
By definition, a 32-bit processor uses 32 bits to refer to the location of each byte of memory. 2^32 = 4.2 billion, which means a memory address that's 32 bits long can only refer to 4.2 billion unique locations (i.e. 4 GB).
My System SpecsSystem Spec
Old 12-18-2008   #6 (permalink)


Vista Ultimate SP2 x64 Windows 7 Ultimate x64 TECHNET
 
 

Re: Access more memory, even on a 32-bit system

Quote  Quote: Originally Posted by echrada View Post
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.

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 1MB 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."

By Scott Dunn

Access more memory, even on a 32-bit system

Yeah, I tried this quite a while back. It made absolutely no foreseeable difference that I can see anywhere.
My System SpecsSystem Spec
Old 12-18-2008   #7 (permalink)


Vista x64 Ultimate
 
 

Re: Access more memory, even on a 32-bit system

Very few apps use more than 100 MB of RAM. Few programs can access more than 2 GB of RAM. /3GB and /PAE are used on only a handful of applications. A 32-bit OS can only address up to 4GB. Even with virtual memory limits beyond 4GB. Very few programs even have the capability of use it. What you posted is theoretical. The application must be written to use it. I believe AutoCAD is capable of using it.

My server board has NX execute switch on it for hardware DEP. DEP only works great on applications written to use it. Most applications don't use it.
My System SpecsSystem Spec
Old 12-18-2008   #8 (permalink)


Vista Ultimate x64 MAK, OpenSolaris 5, Gentoo 2008.1....
 
 

Re: Access more memory, even on a 32-bit system

I got this exact article by email today b/c of my Window's Secrets newsletter, and I have to say - pffft.

Exactly, Michael, this little snippet in the article gets buried easily, especially by those that 'skim' instead of reading the entire article.

I'll reproduce it here for you all to read again....

Quote  Quote: Originally Posted by echrada View Post
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."
My System SpecsSystem Spec
Old 12-19-2008   #9 (permalink)


Vista Ultimate x64 SP1
 
 

Re: Access more memory, even on a 32-bit system

For people who don't know what (this part of) PAE does: It allows an added table which the OS can use to add the “same” address in more than one place. Think of this as adding a street name to your house number. 1234567890 on table A is not the same as 1234567890 on table B. The limitation is that this must be provided for in your programs and drivers in order to work. If the mailman only looks at the '1234567890' and never checks the street name, then he can and will sometimes deliver a letter to the wrong place. The same thing is true of PAE - If/when then individual program haven’t been coded to look in multiple tables for the needed memory locations in addition to the numerical addresses, messages can and will often go to the wrong place. In Windows, this is a called a “memory access violation”, and results in a blue screen.

Additionally, individual programs under PAE can still only use up to 4 GB. The same limitation applies to kernels and drivers: They can be made aware of PAE, but can only use 4 GB ranges at a time.

In a server environment the number/version/type of programs and drivers and their functionality can be tightly controlled. Not to mention the potential availability of in-house expertise to write drivers and custom code, if needed. So this works and is why this functionality is openly available on server versions of 32 bit Windows (NT, 2003, 2006, etc).

In a consumer environment, this is not true at all.

Be Forewarned.

Last edited by Scotteq; 12-19-2008 at 09:06 AM.. Reason: tYp0zz
My System SpecsSystem Spec
Old 12-19-2008   #10 (permalink)


Microsoft® Windows Vista™ Ultimate x64 SP2 Windows 7 7127 x64
 
 

Re: Access more memory, even on a 32-bit system

Seems as if I opened a big can of worms
My System SpecsSystem Spec
Reply

Thread Tools


Similar Threads
Thread Forum
Access 97 Memory Error Microsoft Office
Dedicated Graphical Memory & Shared System Memory Vista hardware & devices
Access 'Out of Memory' Vista General
Difference between Physical Memory and the Vista System Memory (Ra Vista hardware & devices
Ati Radeon 9550 using system memory? 511mb shared system memory. Vista hardware & devices


Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46