IP Library Granted Patent US 6,970,990
Granted Patent B2
US 6,970,990 · App. 10/261,866 · Granted Nov 29, 2005

Virtual mode virtual memory manager method and apparatus

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,970,990
App. No.
10/261,866
Granted
Nov 29, 2005
Kind
B2
Abstract

A virtual mode virtual memory manager method and apparatus are provided. Mechanisms are provided for allowing a virtual memory manager to operate in virtual mode utilizing virtual addresses for all of its own data structures, allowing for physical discontinuity of the physical memory backing those data structures. First order virtual memory manager metadata is included for resolving system wide virtual memory page faults. Second order virtual memory manager metadata is provided to resolve faults on the first order virtual memory manager metadata. The second order virtual memory manager metadata is associated with pinned entries in a page table and thus, faults on the second order virtual memory manager metadata cannot occur.

Claims (51)

1. A method of handling a page fault in a virtual memory manager of a data processing system, comprising:

attempting to resolve the page fault using first order virtual memory manager metadata;

determining if a fault occurs during the attempt to resolve the page fault using the first order virtual memory manager metadata;

in response to a fault occurring during the attempt to resolve the page fault using the first order virtual memory manager metadata, using second order virtual memory manager metadata to resolve a fault on the first order virtual memory manager metadata; and

providing a virtual memory manager data structure virtual address space that is defined such that a hash distribution in the virtual memory manager data structure virtual address space yields no more than one pinned page table entry per page table entry group in a page table.

2. The method of claim 1 , wherein the second order virtual memory manager metadata is associated with pinned entries in the page table.

3. The method of claim 1 , wherein resolving the fault on the first order virtual memory manager metadata includes loading a virtual address to physical address mapping from a page table entry into the first order virtual memory manager metadata.

4. The method of claim 3 , further comprising:

resolving the page fault using the first order virtual memory manager metadata after resolving a fault on the first order virtual memory metadata using the second order virtual memory manager metadata.

5. The method of claim 1 , further comprising:

returning control to a faulting instruction after having resolved the page fault and a fault on the first order virtual memory manager metadata if any.

6. The method of claim 1 , further comprising:

promoting the first order virtual memory manager metadata to second order virtual memory manager metadata in response to predetermined criteria being met as a self-tuning performance optimization.

7. The method of claim 6 , wherein the first order virtual memory manager metadata is promoted to second order virtual memory manager metadata by pinning the first order virtual memory manager metadata in the page table.

8. The method of claim 2 , wherein there is at most one pinned entry in the page table per page table entry group.

9. The method of claim 1 , wherein attempting to resolve the page fault using first order virtual memory manager metadata includes:

applying a hash function to a virtual address associated with an instruction to generate an index into a page table entry group of the page table; and

searching the page table entry group indexed by the hash of the virtual address to identify an entry corresponding to the virtual address.

10. The method of claim 9 , wherein attempting to resolve the page fault using first order virtual memory manager metadata further includes generating the virtual address from an effective address.

11. The method of claim 10 , wherein the effective address includes a kernel special purpose address space identifier and a virtual segment identifier encoded in the effective address.

12. A computer program product in a computer recordable medium for handling a page fault in a virtual memory manager of a data processing system, comprising:

first instructions for attempting to resolve the page fault using first order virtual memory manager metadata;

second instructions for determining if a fault occurs during the attempt to resolve the page fault using the first order virtual memory manager metadata;

third instructions for, in response to a fault occurring during the attempt to resolve the page fault using the first order virtual memory manager metadata, using second order virtual memory manager metadata to resolve a fault on the first order virtual memory manager metadata; and

fourth instructions for providing a virtual memory manager data structure virtual address space that is defined such that a hash distribution in the virtual memory manager data structure virtual address space yields no more than one pinned page table entry per page table entry group in a page table.

13. The computer program product of claim 12 , wherein the second order virtual memory manager metadata is associated with pinned entries in the page table.

14. The computer program product of claim 12 , wherein the third instructions for resolving the fault on the first order virtual memory manager metadata include instructions for loading a virtual address to physical address mapping into a page table entry from the second order virtual memory manager metadata.

15. The computer program product of claim 14 , further comprising:

fourth instructions for resolving the page fault using the first order virtual memory manager metadata after resolving a fault on the first order virtual memory metadata using the second order virtual memory manager metadata.

16. The computer program product of claim 12 , further comprising:

fourth instructions for returning control to a faulting instruction after having resolved the page fault and a fault on the first order virtual memory manager metadata if any.

17. The computer program product of claim 12 , further comprising: fourth instructions for promoting the first order virtual memory manager metadata to second order virtual memory manager metadata in response to predetermined criteria being met as a self-tuning performance optimization.

18. The computer program product of claim 17 , wherein the first order virtual memory manager metadata is promoted to second order virtual memory manager metadata by pinning the first order virtual memory manager metadata in the page table.

19. The computer program product of claim 13 , wherein there is at most one pinned entry in the page table per page table entry group.

20. The computer program product of claim 12 , wherein the first instructions for attempting to resolve the page fault using first order virtual memory manager metadata include:

instructions for applying a hash function to a virtual address associated with an instruction to generate an index into a page table entry group of the page table; and

instructions for searching the page table entry group indexed by the hash of the virtual address to identify an entry corresponding to the virtual address.

21. The computer program product of claim 20 , wherein the first instructions for attempting to resolve the page fault using first order virtual memory manager metadata further include instructions for generating the virtual address from an effective address.

22. The computer program product of claim 21 , wherein the effective address includes a kernel special purpose address space identifier and a virtual segment identifier encoded in the effective address.

23. An apparatus for handling a page fault in a virtual memory manager of a data processing system, comprising:

means for attempting to resolve the page fault using first order virtual memory manager metadata;

means for determining if a fault occurs during the attempt to resolve the page fault using the first order virtual memory manager metadata;

means for, in response to a fault occurring during the attempt to resolve the page fault using the first order virtual memory manager metadata, using second order virtual memory manager metadata to resolve a fault on the first order virtual memory manager metadata; and

means for providing a virtual memory manager data structure virtual address space that is defined such that a hash distribution in the virtual memory manager data structure virtual address space yields no more than one pinned page table entry per page table entry group in a page table.

24. A method of implementing a virtual memory manager in virtual mode on a data processing system, comprising:

providing a page table that stores virtual address to physical address mappings;

providing first order virtual memory manager metadata that is used by the virtual memory manager to handle general system wide page faults;

providing second order virtual memory manager metadata that is used to handle faults on the first order virtual memory manager metadata; and

providing a virtual memory manager data structure virtual address space that is defined such that a hash distribution in the virtual memory manager data structure virtual address space yields no more than one pinned page table entry per page table entry group.

25. The method of claim 24 , wherein the second order virtual memory metadata are pinned entries in a page table.

26. The method of claim 25 , wherein there is at most one pinned page table entry per page table entry group in the page table.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2013
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: INTELLECTUAL DISCOVERY, INC.
Reel/Frame 030628/0554 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2002
From: ROGERS, MARK DOUGLASS; SWANBERG, RANDAL CRAIG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 013360/0080 →