A system and method for providing applications with the ability to access
an increased amount of memory. An application maps a specified address
range in its (small) virtual memory space to a corresponding number of
pages allocated thereto in (relatively large) physical memory. When the
application accesses an address in that range in virtual memory, e.g., via
a thirty-two-bit address, the mapping information is used to access the
corresponding page currently pointed to in the physical memory, allowing
access to significantly greater amounts of memory. Fine granularity of
access (e.g., one page) is provided, along with fast remapping,
cross-process security and coherency across multiple processors in a
multiprocessor system. To this end, a memory manager maintains information
related to the mapping of virtual addresses to physical pages, in order to
verify remap requests and invalidate existing mappings from a virtual
address to a previously mapped physical page. For coherency in a
multi-processor system, a list is maintained for invalidating existing
mappings in the translation buffers of other processors in a consolidated
operation, thereby requiring only a single interrupt of each processor to
invalidate mappings.