The Old New Thing

Why all these articles about PAE and /3GB?

Apparently there is some unrest in comment-land with people who are sick of this whole /3GB series. Why have I been spending over two weeks exploring the consequences of the /3GB switch and exploding various common myths about it? Because too many people don't understand what /3GB means but talk as if they do. As you saw yesterday, there ...

Why is the virtual address space 4GB anyway?

The size of the address space is capped by the number of unique pointer values. For a 32-bit processor, a 32-bit value can represent 232 distinct values. If you allow each such value to address a different byte of memory, you get 232 bytes, which equals four gigabytes. If you were willing to forego the flat memory model and deal with ...

Myth: The /3GB switch lets me map one giant 3GB block of memory

Just because the virtual address space is 3GB doesn't mean that you can map one giant 3GB block of memory. The standard holes in the virtual address space are still there: 64K at the bottom, and 64K near the 2GB boundary. Moreover, the system DLLs continue to load at their preferred virtual addresses which lie just below the 2GB boundary. ...

Why does Exchange recommend /3GB if you have more than 1GB of physical memory?

If you look through the Knowledge Base, you'll see an article that say that Exchange 2000 requires the /3GB switch with more than 1 gigabyte of physical RAM. Yet I've been writing all this time that /3GB has nothing to do with physical RAM. What's the deal? The title of the article could be a bit clearer. It really should be something more ...

Myth: The /3GB switch expands the user-mode address space of all programs

Only programs marked as /LARGEADDRESSAWARE are affected. For compatibility reasons, only programs that explicitly indicate that they are prepared to handle a virtual address space larger than 2GB will get the larger virtual address space. Unmarked programs get the normal 2GB virtual address space, and the address space between 2GB and 3GB ...

Myth: You need /3GB if you have more than 2GB of physical memory

Physical memory is not virtual address space. In my opinion, this is another non sequitur. I'm not sure what logical process led to this myth. It can't be a misapprehension of a 1-1 mapping between physical memory and virtual memory, because that mapping is blatantly not one-to-one. You typically have far more virtual memory than physical ...

Kernel address space consequences of the /3GB switch

One of the adverse consequences of the /3GB switch is that it forces the kernel to operate inside a much smaller space. One of the biggest casualties of the limited address space is the video driver. To manage the memory on the video card, the driver needs to be able to address it, and the apertures required are typically quite large...

The oft-misunderstood /3GB switch

It's simple to explain what it does, but people often misunderstand. The /3GB switch changes the way the 4GB virtual address space is split up. Instead of splitting it as 2GB of user mode virtual address space and 2GB of kernel mode virtual address space, the split is 3GB of user mode virtual address space and 1GB of kernel mode virtual...