Browse Prior Art Database

Split-Memory Facility for Windows NT(tm)

IP.com Disclosure Number: IPCOM000123836D
Original Publication Date: 1999-May-01
Included in the Prior Art Database: 2005-Apr-05
Document File: 3 page(s) / 154K

Publishing Venue

IBM

Related People

Simon, JH: AUTHOR

Abstract

A method is disclosed that splits physical memory into two useful parts; the first part is used as physical RAM under the operating system Windows NTT. The second part is a contiguous chunk of physical memory that supports secondary operating systems, applications and independent operations of the initial Windows NT operating system.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 42% of the total text.

Split-Memory Facility for Windows NT(tm)

   A method is disclosed that splits physical memory into two
useful parts; the first part is used as physical RAM under the
operating system Windows NTT.  The second part is a contiguous chunk
of physical memory that supports secondary operating systems,
applications and independent operations of the initial Windows NT
operating system.

   In the process of starting the Windows NT operating system,
the initial program load sequence reads a configuration file,
boot.ini, that describes the disk, the disk partition, and
configuration switches.  One documented software switch on the boot
selection line referred to "maxmem" appears as:
  multi(0)disk(0)rdisk(0)partition(1)\winnt= "Windows NT"
  /MAXMEM=32

   In the example above, the maxmem switch will cause Windows
NT system to allocate 32 megabytes of physical memory to the
operating system leaving addressable physical memory above and
beyond the maxmem limit unused.  Typical use of the maxmem switch is
for testing systems with sub-optimal physical memory allocations.
The invention is a novel modification applied to processor register
settings and operating system page directory structures to make the
unused memory useful and available to solve various problems.  The
unused memory above the maxmem limit is referred to as
"split-memory".

   The split-memory address space is in physical memory, while
user-mode applications operate in virtual space with the operating
system and processor hardware virtual mapping.  A User-mode
application can not use split-memory because a virtual mapping does
not exist.  The split-memory facility uses the maxmem switch to
prevent Windows NT from fully allocating physical memory leaving a
split-memory region and a kernel mode driver to modify the page
directory.  The exact entries in the page directory structure to
modify are not obvious because Windows NT provides a 4 gigabyte
address space.  Allocating freely within the page directory is
hazardous meaning the primary operating system may fail unless the
operating system does not allocate those virtual addresses.  Two
methods to assure the allocation remains free from conflict exist.

   Method 1: Physical Memory Access with Windows NT Virtual
Memory Subsystem Reservation

   When a call to a published Win32 application programming
interface (API) VirtualAlloc() is made, one parameter,
Allocation_Type, is used to direct the operating system to RESERVE or
COMMIT.  Using the RESERVE option provides a reservation without
allocation, but most importantly reserves virtual memory locations
for the allocation.  After the application performs this operation,
the kernel-mode driver will communicate through a separate API
physically mapping the split-memory to the applications call.
Windows NT does not actually allocate the physical memory nor create
a mapping.  After the reservation is in place, the Windows NT virtual
memory manager must respect the reserved...