CPU-Z4GB completely usable inside windows.
Yes, it's possible in 32-bit Windows NT/2000/XP/2003, if you have a CPU capable of
PAE and you have a motherboard/CPU with PCI device remapping support.
My mobo's BIOS setup has an option for using either hardware remapping, software (or just not using it).
You may have similar options for your BIOS.
But what is remapping?
Normally PCI devices are accessed with addresses around 3.2 or 3.5GB. This is similar in how in the old days, to access the video card, you would write something to a certain address in between 640K and 1MB.
So now with remapping, we tell it, let's move them to over 4GB and then now we can use the full 4GB for accessible memory.
Hardware remapping requires the CPU to support it, Athlon/Opteron E-stepping and later CPUs do support this option so I can use hardware remapping.
Software remapping should work similarly except it's slower, so this can be used if the CPU doesn't support it.
After that's been set, you may need to edit the
boot.ini to add in the switches /PAE or /NoExecute=AlwaysOn or /NoExecute=OptOut or /NoExecute=OptIn.
Any of these switches turn on PAE support.
Why do we need PAE?
Well, since we just moved our PCI devices from 3.5GB to over 4GB, we still need to access them somehow. PAE lets us access up to 64GB of addresses which is more than enough room to get to PCI devices.
Ok, so that's all done now, reboot, cross your fingers, and check task manager.
I get 4193528KB in the physical memory field now, which is 4095.24MB. Close enough to 4GB.
One last thing you may do, if you have programs that support it, is tweak the kernel address space down from 2GB, to 1GB. This is required for any program which wants to use > 2GB. Adobe After Effects support this, for example. Otherwise, even if you have 4GB of RAM, a single program can only use up to 2GB of it.
Add /3GB to the boot.ini file to enable this option. Sometimes though, reducing the memory allowed for the kernel is too much for running things normally. AGP aperture size for example, will use kernel memory, and if you have a large number for that, you may not have enough memory left over. The switch, /userva=xxxx lets you tweak the amount of address space you have for programs. Setting /3GB alone is equivalent to using /userva=3072, so, simply make it a lower number such as /userva=3030.
After that, you should be running fine with 4GB inside windows.
References:
http://blogs.msdn.com/oldnewthing/archive/2004/08/22/218527.aspxhttp://support.microsoft.com/kb/316739http://support.microsoft.com/kb/875352