Re: Win64 address space

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: John Dallman (jgd_at_cix.co.uk)
Date: 04/03/04


Date: Sat, 3 Apr 2004 03:29 +0100 (BST)

In article <c4d811$2ft6b1$1@ID-173638.news.uni-berlin.de>,
NullVoid@att.net (spinlock) wrote:

> The following is very high-level and is an
> over-simplification, but, I believe that it is correct:
>
> In windows 32-x86(without the 3GB boot.ini option)
> the 32 bit address space is split 2GB(lower 2 GB)
> for application space and upper 2GB for kernel space.
> Non-RAM devices, like PCI busses, VGA buffers, etc
> are mapped into the high region of the kernel address space.
>
> What is the high-level mapping of Windows 64-x86 address
> spaces?

I don't know the details, but I tried out a little 32-bit program that I
wrote for exploring the /3GB boot option. It mallocs 1Mb chunks of memory
until it can't get any more: obviously it has to be linked
/LARGEADDRESSAWARE to get access to memory above the 2Gb line.

On an AMD box with Windows XP for x64, it got 3.7Gb. This suggests
strongly that I/O devices aren't mapped in, and that very little of the
operating system is, either. One hopes that memory would be like this on
any x64 machine, as opposed to the variations in what you can get with
/3GB - which on some motherboards, doesn't work at all.

---
John Dallman, jgd@cix.co.uk, HTML mail is treated as probable spam.



Relevant Pages