Subject Windows 2000 Address Windowing Extension (AWE)
Author Charlie Caro
This looks like some promising technology for those of you with VLDB's
and large database cache requirements. Address Windowing Extension (AWE)
API allows Win2K applications to take advantage of an Intel feature of
Pentium Pros called 36-bit Physical Address Extension (PAE).

For systems with large physical memory, the AWE APIs allow an
application to privately allocate large chunks of physical memory into
their 32-bit address space. It sounds like a form of nonpaged pool from
system space except it's in user space. If this is true than large
database caches would never be pageable which is exactly what one wants
from a cache!

The steps are:

1) AllocateUserPhysicalPages() for a large database cache (eg. 512MB);

2) Create a window in the virtual address space with VirtualAlloc (...,
MEM_PHYSICAL) for that size;

3) Create a mapping from that virtual address window to the physical
memory with MapUserPhysicalPages.

Mix this technology with direct access I/O to bypass eccentric NT file
cache behavior plus raise IB's arbitrary cache limit of 65,000 page
buffers and we've got something brewing here.

Would appreciate if anyone has more info on AWE API or the /3GB boot
switch which gives applications/NT a 3GB/1GB split of process virtual
address space.

Regards,
Charlie