Windows 32bit 4GB Limit a Lie?

Soldato
Joined
7 Mar 2008
Posts
2,621
Location
Kent
I've just read this article in a magazine , and it appears to indicate that the Windows 32bit 4gb limit, could be arbitrary.

It points to the below web address and the Windows 2003 entry where it states that you can buy the 32 bit server version, with differing amounts of memory depending on how much you pay.

http://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx

The magazine indicates that using a PAE(Physical Address Extension) a 32 bit Windows can address more memory than 4GB.

Here's another website with more detailed info.

http://www.geoffchappell.com/viewer.htm?doc=notes/windows/license/memory.htm

Of course even if it could, the individual software is only programmed to handle 32 bits so they could only address 4GB but you could surely still use the rest spread out over other programs.

They even asked Microsoft, and basically, the reply was no comment.

So is the Windows 32bit limit an arbitrary software restriction and not a physical addressing limit? Whats anyones opinion on this? Why would they do this?
 
It could well be in the case of WinXP, it looks nerfed compared to the Server 2003 versions in that table.

Version
Windows XP

Limit in 32-bit Windows
4 GB

Limit in 64-bit Windows
128 GB

and

A surprising number of people who claim some sort of attention as expert commentators would have you believe that using more than 4GB of memory is mathematically impossible for any 32-bit operating system because 2 to the power of 32 is 4G. If nothing else, they don’t know enough history: 2 to the 16 is only 64K and yet the wealth of Microsoft is founded on a 16-bit operating system that from its very first version was designed to use 640KB of RAM plus other memory in a physical address space of 1MB.
 
Last edited:
PAE is not a magic wand. It breaks many things, especially anything that requires DMA access such as drivers. In fact drivers were the main reason why PAE support wasn't pushed.

Mark Russinovich said:
What they found was that many of the systems would crash, hang, or become unbootable because some device drivers, commonly those for video and audio devices that are found typically on clients but not servers, were not programmed to expect physical addresses larger than 4GB. As a result, the drivers truncated such addresses, resulting in memory corruptions and corruption side effects. Server systems commonly have more generic devices and with simpler and more stable drivers, and therefore hadn't generally surfaced these problems. The problematic client driver ecosystem led to the decision for client SKUs to ignore physical memory that resides above 4GB, even though they can theoretically address it.

Anyway, why stick with 32bit when you can just use a 64bit copy?
 
PAE is not a magic wand. It breaks many things, especially anything that requires DMA access such as drivers. In fact drivers were the main reason why PAE support wasn't pushed.

No, but that is markedly different from claiming it is impossible to address the memory.

Anyway, why stick with 32bit when you can just use a 64bit copy?

Application compatibility for one, and driver support.
 
No, but that is markedly different from claiming it is impossible to address the memory.

When was it ever said it was impossible?



Application compatibility for one, and driver support.

Application support isn't that much of a problem, especially with VMs and drivers are similar also and become a problem less and less as time goes on.
 
No, but that is markedly different from claiming it is impossible to address the memory.

You cannot address more than 4G directly, you can indirectly (Using PAE), but this carries a heavy performance penalty for each and every memory access.
 
PAE is not a magic wand. It breaks many things, especially anything that requires DMA access such as drivers. In fact drivers were the main reason why PAE support wasn't pushed.



Anyway, why stick with 32bit when you can just use a 64bit copy?

The guy tries it in Windows Vista and it appears to work fine, and says errors should be negligable or if there are any, they would likely appear on 64bit as well. He says something to effect that they shouldnt address the memory directly anyway. You would have to work at it to get an error from PAE(ignore the docs).

But ignoring the above why keep on propogating the myth, the lie that 4GB is a hardware limit? Why create the operating system in the first place with that arbitrary software restriction? Whom does it benefit and why?
 
Last edited:
The guy tries it in Windows Vista and it appears to work fine, and says errors should be negligable or if there are any, they would likely appear on 64bit as well.

But ignoring the above why keep on propogating the myth, the lie that 4GB is a hardware limit? Why create the operating system in the first place with that arbitrary software restriction? Whom does it benefit and why?

It's not an abitrary software restriction, it is a hardware limitation. Running PAE kills memory performance.
 
The guy tries it in Windows Vista and it appears to work fine, and says errors should be negligable or if there are any, they would likely appear on 64bit as well. He says something to effect that they shouldnt address the memory directly anyway. You would have to work at it to get an error from PAE(ignore the docs).

Drivers are an exception to that and they WILL cause issues.

But ignoring the above why keep on propogating the myth, the lie that 4GB is a hardware limit? Why create the operating system in the first place with that arbitrary software restriction? Whom does it benefit and why?

It's not an arbitrary limit. It's a limit from 32bit hardware.
 
When was it ever said it was impossible?

I didn't say Microsoft themselves said that, but you could be forgiven for reading this very forum and coming away thinking that your only option is 64-bit for >4GB. Example here: http://forums.overclockers.co.uk/showpost.php?p=15233692&postcount=4

Application support isn't that much of a problem, especially with VMs

Less than optimal for a 3D application to put it mildly.

and drivers are similar also and become a problem less and less as time goes on.

I'll get back to you when I've found 64-bit drivers for my TV card...
 
It's not an abitrary software restriction, it is a hardware limitation. Running PAE kills memory performance.

Quote from Geoff Chappell.

Some commentators say that PAE comes with some hideous cost in performance. Compared with the original algorithm that maps 32-bit linear addresses to 32-bit physical addresses, PAE is slower. It has one extra level to its page tables. Each PTE is twice as big. The operating system therefore has more work to do when preparing and maintaining the page tables, and since the Translation Lookaside Buffer (TLB) has only half the capacity, memory references are more likely to miss the TLB and require additional bus cycles. The reduction in performance is surely measurable. If you have no need to access memory above 4GB and are concerned enough, then you would not enable PAE. Note however that Microsoft itself does not regard this performance cost as worth troubling over (as will be clear shortly, under the heading Data Execution Prevention).

Anyway, for access to memory above 4GB, the appropriate comparison is not between using PAE and not, but between using PAE and using the native 64-bit algorithm. For this comparison, not only are the PTEs the same size but the algorithms are very similar. To the processor, it’s PAE that is slightly simpler and plausibly quicker, but the memory manager in a 64-bit operating system can benefit from using 64-bit registers when working with the PTEs. These are very fine trade-offs relative to the enormous overheads that embellish some of the wilder misunderstandings of PAE on the Internet.

For a rough-and-ready assessment of these trade-offs, consider Microsoft’s own performance measurement, as given by the Windows Experience Index. Surely this is meant to have some objectivity, even if comparison of ratings for 32-bit and 64-bit Windows may not be strictly fair. On this article’s test machine, the “Memory (RAM)” component of the Windows Experience Index is consistently 5.0 in 64-bit Windows Vista and is just as consistently 5.1 in 32-bit Windows Vista, even with PAE and the use of memory above 4GB.
 
You cannot address more than 4G directly, you can indirectly (Using PAE), but this carries a heavy performance penalty for each and every memory access.

With the specification of machines around here I wouldn't think it would be a problem ;)

But if you can address 4TB directly with 64-bit why are most versions of Windows still limited to far less?
 
Why does this conversation even exist?

New machines these days that can only run 32bit Windows are hard limited to their RAM limit anyway such as netbooks only supporting up to 3 or 4GB ram.

This will change soon as 64bit cpus get put into these devices and the 32bit OS fades into history.

32bit is not worth installing on any machine that has a 64bit compatible CPU.

If your TV card does not have 64bit drivers then I'm sorry but that's just **** and you need to get a new TV card from a manufacturer that actually cares about its products.

Hard facts man, hard facts. Driver issues do not exist for quality hardware, if your cheap piece of hardware of obscure model has no drivers then MS are not to blame.

I've had 64bit since Vista came out and I upgrade hardware every few months - never have I encountered an issue with drivers and I consider myself to be quite a regular hardware cycler and power user.
 
Last edited:
The magazine indicates that using a PAE(Physical Address Extension) a 32 bit Windows can address more memory than 4GB.

...

So is the Windows 32bit limit an arbitrary software restriction and not a physical addressing limit? Whats anyones opinion on this? Why would they do this?

Yes it's just another lame tactic employed by Microsoft to encourage people to upgrade, the same reason they have different memory limits on 64bit OS's depending which version you purchase.
 
The guy tries it in Windows Vista and it appears to work fine, and says errors should be negligable or if there are any, they would likely appear on 64bit as well. He says something to effect that they shouldnt address the memory directly anyway. You would have to work at it to get an error from PAE(ignore the docs).

But ignoring the above why keep on propagating the myth, the lie that 4GB is a hardware limit? Why create the operating system in the first place with that arbitrary software restriction? Whom does it benefit and why?

what this "expert" in unaware of, is that Microsoft completely disabled PAE in ALL consumer versions of windows since XP Service-Pack One, to stop IDIOTS from activating it, breaking their systems and then complaining to Microsoft.
just as x64 windows needs x64 drivers, PAE-enabled windows needs both PAE drivers and PAE-aware software (which only server-grade software IS) to realise the SLIGHT benefits.

as to why "those evil Microsoft peoples" arbitrarily limited windows to 32-bit is because those "Evil CPU companies" were only able to practically create processors with 32-bit memory registers. even today, "64-bit" cpu's are only truly 48-bit in hardware, and 64-bit virtualisation.
 
what this "expert" in unaware of, is that Microsoft completely disabled PAE in ALL consumer versions of windows since XP Service-Pack One, to stop IDIOTS from activating it
Errr, no they didn't. PAE is still needed for DEP, and you'll find it's still activated on consumer versions of Windows.

All that has happened is MS limited the amount of ram that could be used by the OS with PAE enabled since XP SP2.
 
I just thought it was interesting, you always hear everyone saying with utter certainty that Windows can only use 4GB, it turns out actually it can use more. The hard limit that everyone says there is isnt there, its just a setting in it.

I dont know if Microsoft are some evil coorporation out to pillage our memory for all we've got(of course they are:rolleyes:). I never intimated that in any of my posts, do people perhaps have some victimisation empathy with Microsoft.
 
I just thought it was interesting, you always hear everyone saying with utter certainty that Windows can only use 4GB, it turns out actually it can use more. The hard limit that everyone says there is isnt there, its just a setting in it.

I dont know if Microsoft are some evil coorporation out to pillage our memory for all we've got(of course they are:rolleyes:). I never intimated that in any of my posts, do people perhaps have some victimisation empathy with Microsoft.

Wrong. Stop making assumptions and stating them facts on things you don't fully understand.
 
Hasnt Linux been addressing more than 4GB in 32bit systems for ages. Just MS does things the simple way, whereas the Linux solution is more complex, and therefore more wobbly.
 
Back
Top Bottom