An intriguing feature of Windows NT 5.0 is its support for 64-bit virtual memory. Although Microsoft has made public relatively little information about this new architecture, Lou Perrazoli (Microsoft's Director of Core OS) revealed some details about very large memory (VLM) in a session at the November Professional Developer Conference.

NT's current memory architecture provides a 4GB address space per process, of which 2GB is available­and thus addressable­to the application. The operating system reserves the other 2GB. VLM will handle memory in the 4GB to 32GB address range, and applications can share VLM. But VLM is not paged: To provide the best performance, Microsoft chose not to handle page faults for memory in this range. When an application allocates a block of VLM, that memory is locked down in the application's working set; if the memory isn't available, the allocation will fail. The system must have physical memory to devote to VLM.

Obviously, not all hardware will take advantage of NT 5.0's new 64-bit memory capabilities. To handle VLM, the hardware must support 64-bit CPU registers and addressing. Today, Digital Equipment's Alpha processors provide this capability, as will next-generation Intel CPUs (code named Merced).

Microsoft will expose VLM through a small number of new APIs to Alloc, Free, Commit, Reserve, Query, Copy, and Protect memory in the 4GB to 32GB range. Because these new APIs will use true 64-bit addresses­which cannot pass to 32-bit functions­Microsoft will also provide runtime APIs to copy between 32-bit and 64-bit memory. Additional VLM functions will include process memory read/write, which enables debuggers to work with 64-bit memory, and file subsystem read/write.