• Happy holidays, folks! Thanks to each and every one of you for being part of the Tom's Hardware community!

4Gb of Memory with 32-bit Vista? Possible?

Page 2 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.
Some information confirming that Microsoft ditched PAE because of driver issues:
http://www.pctipsbox.com/32-bit-windows-vista-vs-64-bit-windows-vista/

Some information on x86-64's addressing:
http://en.wikipedia.org/wiki/AMD64#Virtual_address_space_details
"However, rather than the three-level page table system used by systems in PAE mode, systems running in long mode use four levels of page table: PAE's Page-Directory Pointer Table is extended from 4 entries to 512, and an additional Page-Map Level 4 Table is added, containing 512 entries in 48-bit implementations."
 
In the AMD doc, for switching the processor into long-mode, "physical-address extensions" must be enabled. After this, another page entry is added. So we end up with four levels

So the complexity only grows
 
Hey all, good discussion. My situation is somewhat similar so rather than post a new thread I'll ask here.

I purchased some new RAM today, 4 gigs of the same type. After I installed it all, during POST it only showed me 3200mb. I found it odd, and tried to POST again with multiple RAM configurations to see if I had gotten a faulty stick. Satisfied that all the sticks were working but something else must be the issue I got online and started searching.

I now understand that I need to turn on (and have) the memory remaping feature in my BIOS. I also understand that in order to have access to 4gigs in Vista, I need to somehow (not really certain on this but haven't started looking yet either) enable PAE.

I have two major concerns before I proceed.

1) As has been stated (and from what I read on the MS knowledge base) PAE adds a new layer where it is basically translating 36bit to 32bit applications and vice versa. I'm sure this comes with a performance cost, but beyond that, my main issue is stability. Has this extra layer been known to cause stability issues? I find it difficult to believe that if Vista COULD truly support 4gigs natively, that it would not have been "on" by default.

2) If indeed I opt not to use PAE, should I turn my memory mapper back to the old setting? With memory mapper off I was showing 3200mb RAM, with it turned on, oddly enough I show about 3000mb. So if I decide PAE is not the option for me, do I gain any performance by keeping memory mapper on or should I turn it back off to regain my 200mb of RAM back (which incidently show up in Vista. I show up at 3200MB).

Thanks :)
 

As far as I know, vista uses more RAM than XP because of SuperFetch, which loads commonly used programs into memory after bootup. This means they load faster, hence the more responsiveness of the OS. XP doesn't do this, data is only loaded as it is required. Vista's memory management is far better than XPs in this regard, because it doesn't "waste" RAM (RAM that will be filled up with the same data later anyway) when you are simply surfing the net or something before you play some games.
 


As you may have seen from reading the above this issue gets rather complex, to my mind at least LOL

But PAE, as a switch you enable in Windows, is no longer an option for MS consumer level OS. (It might be for pre-service pack version of XP, according to some sources)

To use your full 4 gig you will need to get the 64 bit version of Vista (or XP).

The 'memory remapping' feature in the BIOS you are referring to is not the same thing as the PAE we were discussing (though it may be in some way similar in concept.) If you have a 64 bit OS you will need to turn on memory remapping in the BIOS to get your missing RAM. But you need a 64 bit OS in order to see it in Windows. If you don't have 64 bit it seems to turn off the extra gig you were otherwise getting in Windows, taking you from 3 down to 2, as happened to you and many others. You may see it in th BIOS but you don't in the OS. EDIT: I see for you it went from 3200 down to 3000, interesting, mine dropped from 3000 down to 2000 (approx) in Windows, although my BIOS reports 4. Perhaps you better list your specs here so someone can tell you if you meet the requirements.

To get the full 4 gig you will need;

1. 64 bit OS (on consumer level MS at least)
2. Motherboard that supports memory remapping (sounds like you have it)
3. 64 bit CPU (Athlon 64, or Intel core 2 duo generation)

That's the bottom line as I understand it.

Supposedly you can contact MS and they will send you the 64 bit version of your OS for a small fee. http://www.microsoft.com/windowsvista/1033/ordermedia/default.mspx
 
I got a 32bit DVD when I got Vista, and asked Microsoft for the 64bit version (the one I use). It cost 9.99 shipped. They shipped it to me in a couple weeks.
 
Thanks for the informative reply. I'm assuming a fresh install will be required and I simply can't do an upgrade to 64 bit?
 


Correct. I looked into this and didn't find any way to simply upgrade.

On a good note Vista 64 has worked well for me. I do have one odd ball problem ever since I added the extra RAM - on about 50% of my warm boots my sound gets messed up, on-board or Audigy, this happened before going to 64 bit though, as soon as I added the RAM, and has persisted through fresh installs and the move to Vista 64. If I cold boot it works fine. Go figure.
 
Vista (32bit or 64bit) isn't setup to show all 4GB on all systems so they have a little hotpatch.

1) Start with 2GB, install the hotfix: http://support.microsoft.com/kb/929777

2) reboot to login with only 2gb installed.

3) Power down, install the last 2GB

4) Powerup.

You don't need to be getting the error mentioned in the hotfix to benefit from the patch, if your system already see's all 4 GB then there is no need but if you put in 4gb and see less than than you need the hotfix.
 
notherdude I have the same problem haha!
almost the same
I installed vista ultimate 64 after my ram upgrade and after some warm boots (from xp or vista) my sound is screwed...I have to reinstall the driver (pain in the ass) each time.

This started last night so now I have one official complaint.
 
Vista does come with a pae kernel, which is why you can find references to it around the net.

The confusing part is, that even with pae enabled, it wont go above 4GB. It has pae to support hardware dep. pae is automatically enabled if you have a newer cpu (that supports the nx bit)
 


Interesting. I stand corrected on that point. But it isn't working? But the bottom line is still the same, need 64 bit for full 4 gig?


 
For ***** and giggles I enabled the PAE switch in my Vista 32 and the edit was sucessfully saved, but I still see 2.9 gig of RAM in system properties and if I enable memory remapping in BIOS I only get 2 gig in windows. Of course there may be more to it than simply enabling PAE?

I also see this from Microsoft:

WORKAROUND
For Windows Vista to use all 4 GB of memory on a computer that has 4 GB of memory installed, the computer must meet the following requirements: • The chipset must support at least 8 GB of address space. Chipsets that have this capability include the following:• Intel 975X
• Intel P965
• Intel 955X on Socket 775
• Chipsets that support AMD processors that use socket F, socket 940, socket 939, or socket AM2. These chipsets include any AMD socket and CPU combination in which the memory controller resides in the CPU.

• The CPU must support the x64 instruction set. The AMD64 CPU and the Intel EM64T CPU support this instruction set.
• The BIOS must support the memory remapping feature. The memory remapping feature allows for the segment of system memory that was previously overwritten by the Peripheral Component Interconnect (PCI) configuration space to be remapped above the 4 GB address line. This feature must be enabled in the BIOS configuration utility on the computer. View your computer product documentation for instructions that explain how to enable this feature. Many consumer-oriented computers may not support the memory remapping feature. No standard terminology is used in documentation or in BIOS configuration utilities for this feature. Therefore, you may have to read the descriptions of the various BIOS configuration settings that are available to determine whether any of the settings enable the memory remapping feature.
• An x64 (64-bit) version of Windows Vista must be used.

I am confused. The article seems to indicate this is a fix for the problem but then clearly states you need a 64 bit OS to do it.

Can anyone explain all this is basic terms?

And if anyone is getting their full 4 gig in Vista 32 please raise your hand and post a screenshot.
 


Ah ha! I knew somebody else must be getting this. Only warm boots for sure? Sounds like the kind of driver problems we see referenced in these articles about PAE, maybe.
 
It goes like this, to have support for all 4 GB you need:

* hardware that supports more than 4GB (address space), and memory remapping
* 64-bit Vista or XP
* 32-bit server Windows (with PAE enabled)
* 32 or 64 bit Linux
 


That's what I thought.

So why is PAE enabled in Vista 32 and what is it doing?
 
Nobody is getting the full 4 GB in Vista 32. Microsoft couldn't figure out how to get the drivers to work properly. You'll need Vista 64 to get the full 4 GB. Even then, there are other requirements such as your BIOS supporting memory remapping.

This limitation MAY not apply to the server versions of the Microsoft operating systems but you REALLY do not want to go that road. It certainly does not apply to Linux but again, no good to you if you are looking at playing the latest games, etc. etc.
 



Right. I was pretty sure nobody was using full 4 gig in 32 bit vista.

But do you know why PAE switch is supposedly available in 32 Vista? Does it really turn on PAE or is it in fact diasabled in Vista 32?
 
When you enable pae in vista, you really get pae, the extra layer of address translation etc.

newer cpus supports something called the no executable bit, which can be used to indicate memory regions that cannot be allowed to hold executable programcode (virus, worms etc). To mark theses memory regions, you need to have pae enabled. Google DEP
 
Take a look at this

http://techfiles.de/dmelanchthon/files/memory_hole.pdf

This is a hardware limitation due to certain devices using memory address space to communicate (MMIO, memory mapped I/O). There have been various schemes devised to get around this but it is dependant on the hardware allowing the OS to get to more that a 32 bit address range.

This is true for any OS running on the hardware.
 
When talking about so much memory, you also need to talk about the virtual address space that each application live in. This is fixed to 4GB in 32-bit, nomatter what you do. By default, applications can use 2GB of it for them selves.

In 64-bit this address space grows big...