Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support
First Claim
1. A method for providing virtual memory support for managing translation look aside buffers (TLBs) with multiple page size support for use in a computer system comprising the steps of:
- defining a base page size for the computer system;
defining one or more defined large page sizes, each defined large page size being a multiple of said base page size;
maintaining a page frame data structure (PFDAT) for each portion of main memory of said base page size;
maintaining a page table entry (PTE) for each mapped portion of main memory of said base page size; and
faulting in a large memory page, wherein said faulting in step comprises;
(i) determining an appropriate large page size;
(ii) verifying that a region of a virtual address space can accommodate a memory page of said appropriate large page size; and
(iii) setting up a plurality of PTEs, wherein each of the plurality of PTEs is updated to point to a page frame number (PFN) and marked to reflect said appropriate size.
15 Assignments
0 Petitions
Accused Products
Abstract
A system, method and computer program product for virtual memory support for TLBs with multiple page sizes that require only minor revisions to existing operating system code and remains compatible with existing applications. The virtual memory support provided herein is transparent to many existing operating system procedures and application programs. Various page sizes such as 4 KB, 64 KB, 256 KB, 1 MB, 4 MB and 16 MB page sizes can be used by application programs and each process can use multiple page sizes. Base page sized PTEs and data structures associated with physical pages (PFDATs) are maintained. Maintaining PFDATs and PTEs at a base page level facilitates upgrading and downgrading of memory pages. In addition, different processes can have different views of the same data. Support is provided for upgrading and downgrading memory pages. Examples of operating system methods that can be used for virtual memory support for multiple page sized TLBs are provided herein. Such examples include downgrading and upgrading memory pages, large page faulting and prefaulting, large page validation and page table entry setup.
68 Citations
6 Claims
-
1. A method for providing virtual memory support for managing translation look aside buffers (TLBs) with multiple page size support for use in a computer system comprising the steps of:
-
defining a base page size for the computer system; defining one or more defined large page sizes, each defined large page size being a multiple of said base page size; maintaining a page frame data structure (PFDAT) for each portion of main memory of said base page size; maintaining a page table entry (PTE) for each mapped portion of main memory of said base page size; and faulting in a large memory page, wherein said faulting in step comprises; (i) determining an appropriate large page size; (ii) verifying that a region of a virtual address space can accommodate a memory page of said appropriate large page size; and (iii) setting up a plurality of PTEs, wherein each of the plurality of PTEs is updated to point to a page frame number (PFN) and marked to reflect said appropriate size.
-
-
2. A method for providing virtual memory support for managing translation look aside buffers (TLBs) with multiple page size support for use in a computer system comprising the steps of:
-
defining a base page size for the computer system; defining one or more defined large page sizes, each defined large page size being a multiple of said base page size; maintaining a page frame data structure (PFDAT) for each portion of main memory of said base page size; maintaining a page table entry (PTE) for each mapped portion of main memory of said base page size; and handling page modify faults on a large memory page, wherein a plurality of base page size portions of said large memory page are tracked for modification; whereby only each of said plurality of base page size portions that are modified need to be written to file.
-
-
3. A system for providing virtual memory support for managing translation look aside buffers (TLBs) with multiple page size support for use in a computer system, comprising:
-
a base page definer that defines a base page size for the computer system; a large page definer that defines one or more defined large page sizes, each defined large page size being a multiple of said base page size; a data structure maintainer that maintains a page frame data structure (PFDAT) for each portion of main memory of said base page size; a table entry maintainer that maintains a page table entry (PTE) for each mapped portion of main memory of said base page size; and a faulter that faults in a large memory page, wherein said faulter comprises; (i) a determiner that determines an appropriate large page size; (ii) a verifier that verifies that a region of a virtual address space can accommodate a memory page of said appropriate large page size; and (iii) a PTE setter that sets up a plurality of PTEs, wherein each of the plurality of PTEs is updated to point to a page frame number (PFN) and marked to reflect said appropriate size.
-
-
4. A computer program product comprising a computer useable medium having computer program logic stored therein, said computer program logic for providing virtual memory support for managing translation look aside buffers (TLBs) with multiple page size support for use in a computer system, comprising:
-
a base page definer that enables the computer to define a base page size for the computer system; a large page definer that enables the computer to define one or more defined large page sizes, each defined large page size being a multiple of said base page size; a data structure maintainer that enables the computer to maintain a page frame data structure (PFDAT) for each portion of main memory of said base page size; a table entry maintainer that enables the computer to maintain a page table entry (PTE) for each mapped portion of main memory of said base page size; and a faulter that enables the computer to fault in a large memory page, wherein said faulter comprises; (i) a determiner that enables the computer to determine an appropriate large page size; (ii) a verifier that enables the computer to verify that a region of a virtual address space can accommodate a memory page of said appropriate large page size; and (iii) a PTE setter that enables the computer to set up a plurality of PTEs, wherein each of the plurality of PTEs is updated to point to a page frame number (PFN) and marked to reflect said appropriate size.
-
-
5. A system for providing virtual memory support for managing translation look aside buffers (TLBs) with multiple page size support for use in a computer system, comprising:
-
a base page definer that defines a base page size for the computer system; a large page definer that defines one or more defined large page sizes, each defined large page size being a multiple of said base page size; a data structure maintainer that maintains a page frame data structure (PFDAT) for each portion of main memory of said base page size; a table entry maintainer that maintains a page table entry (PTE) for each mapped portion of main memory of said base page size; and a fault handler that handles page modify faults on a large memory page, wherein a plurality of base page size portions of said large memory page are tracked for modification; whereby only each of said plurality of base page size portions that are modified need to be written to file.
-
-
6. A computer program product comprising a computer useable medium having computer program logic stored therein, said computer program logic for providing virtual memory support for managing translation look aside buffers (TLBs) with multiple page size support for use in a computer system, comprising:
-
a base page definer that enables the computer to define a base page size for the computer system; a large page definer that enables the computer to define one or more defined large page sizes, each defined large page size being a multiple of said base page size; a data structure maintainer that enables the computer to maintain a page frame data structure (PFDAT) for each portion of main memory of said base page size; a table entry maintainer that enables the computer to maintain a page table entry (PTE) for each mapped portion of main memory of said base page size; and fault handler that enables the computer to handle page modify faults on a large memory page, wherein a plurality of base page size portions of said large memory page are tracked for modification; whereby only each of said plurality of base page size portions that are modified need to be written to file.
-
Specification