To view parent comment, click here.
To read all comments associated with this story, please click here.
Lolwut?
Windows' 32bit client versions do PAE but limits the *operating system* to 4GB anyway due to problems it caused with instability with some drivers (Windows Server 32bit do support more than 4GB).
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."
http://blogs.technet.com/b/markrussinovich/archive/2008/07/21/30920...
However, *applications* in 32bit Windows can access more than 4GB if they want to using AWE (Address Windowing Extensions).
In other words, you're talking out of your ass.
Edited 2011-01-06 13:03 UTC
...
However, *applications* in 32bit Windows can access more than 4GB if they want to using AWE (Address Windowing Extensions). "
A Windows client SKU won't address more than 4Gb of physical memory. This means that applications can't use those physical pages either. If an app can use those physical pages, you'll have those pages going through device drivers, which is what the article claims is not supported. If an application attempts to address more than 4Gb of memory, this can only be achieved by paging (ie., giving more than 4Gb of virtual address space but without more than 4Gb of physical pages.) So if you want to put 8Gb of RAM in a machine and actually use it, you have to choose between a 64-bit client SKU or a 32-bit server SKU; a 32-bit client SKU will not use half of that memory.
Please don't include this kind of discourse. It's not constructive, helpful, or informative.
PAE allows you to have more than 4 GB of addressable physical memory, but you can only map them in a 32-bit address space*. A single process thus still cannot hold more than 4 GB of data easily.
PAE is just fine for running lots of small processes on a big machine, as an example if you're running lots of small virtual machines on a server. But for the power-hungry desktop user who wants to crunch terabytes of data in some video editing software, on the other hand, I don't think it'll ever be that useful. Except if we start coding multi-process video editing software, but since developers already have issues with multiple threads I don't see this happening soon...
* AMD64 Vol2, r3.15 (11/2009), p120
Edited 2011-01-06 13:16 UTC
A single process can use AWE to map subsets of data in its limited address space at a time while still using more than 32-bits of physical memory. Or, in many cases, it can delegate that job to the operating system (eg. by using the OS file cache, which is not limited to the process' 4Gb limit.)
So perhaps we're moving to 64-bit for simplicity, not necessity.
So 32 bit being limited to 4GB is mostly a market bending nothing more by Microsoft.
PAE allows the *kernel* to access more than 4 GB of RAM. However, *processes* can only see 4 GB of RAM, period. Each process can be given it's own 4 GB chunk of memory, though. But they are still limited to 4 GB.
And the kernel has to do a lot of thunking and bounce buffers and hoop jumping and whatnot to manage PAE accesses. And all your drivers need to be coded to support PAE. And all your low-level apps need to be coded to support PAE. And on and on.
PAE is a mess, and should be avoided like the plague unless there's absolutely no way to run a 64-bit OS/apps.
The only way for an app/process to access more than 4 GB of RAM (on x86) is to use a 64-bit CPU with a 64-bit kernel.
So 32 bit being limited to 4GB is mostly a market bending nothing more by Microsoft.
PAE allows the *kernel* to access more than 4 GB of RAM. However, *processes* can only see 4 GB of RAM, period. Each process can be given it's own 4 GB chunk of memory, though. But they are still limited to 4 GB.
And the kernel has to do a lot of thunking and bounce buffers and hoop jumping and whatnot to manage PAE accesses. And all your drivers need to be coded to support PAE. And all your low-level apps need to be coded to support PAE. And on and on.
"
Really name a Linux program that has to be changed between PAE mode and non PAE mode. Answer zero.
PAE does not have to have anything todo with userspace.
PAE thunking is way lighter than swapspace.
What stunts do 32 bit programs that need to use more than 4gb of space use. Memory mapping to file. PAE Provides more access to storage space so can reduce number of disk operations on a memory mapped file.
So don't quote trash. 64 bit system is not the only way to exceed the 4 GB limit.
Yes a program running on a Non PAE 32 bit machine can be using methods already to have more space than the 4 gb limit at the cost of performance. PAE enables you to reduce the cost of those stunts.
Shock horror is just using PAE for swap, disk cache and assisting mapped files to reduce disk accesses don't require you to be running all PAE compatible drivers. Since most drivers should not be messing with this stuff.
Here is the best bit of all PAE used this way is not even new. Its basically using same style as Expanded memory. Yes breaking the 4 gb limit goes back to 1984.
The limit is 4 gb of memory at 1 time on x86 32 bit. Yes memory mapping and other methods means a program could be many times large than that in reality with or without PAE active.
Difference is PAE can remove the speed hits from the methods used by programs to exceed the 4gb limit.
That is the big mistake here. You are presuming that programs will not be using more than 4gb of memory. That presume is based on the idea that the OS did not provide programmers with a way around that problem. What is incorrect.





Member since:
2009-05-30
The ARM Cortex-A15 MPCore CPU architecture, which is the one aimed at desktops and servers, is a 32-bit architecture. Nevertheless, it does not suffer from a limitation of 4GB of main memory, it can in fact address up to one terabyte (1TB) of main memory.
http://www.engadget.com/2010/09/09/arm-reveals-eagle-core-as-cortex... "
Also important note the 4GB limit on 32 bit OS on a lot of x86 chips is garbage as well. PAE mode. 64gb to 128gb. 32 bit mode.
So 32 bit being limited to 4GB is mostly a market bending nothing more by Microsoft.
So we can expect MS to treat ARM the same as what they do x86. Different versions different limits nothing todo with real hardware limits.