Reverse mapping page frame data structures to page table entries
First Claim
1. A method for reverse mapping page frame data structures that represent pages of memory, comprising the steps of:
- (1) reserving a number m of fields in a first page frame data structure for storing reverse mapping information, the first page frame data structure representing a first page of memory;
(2) generating a number n of reverse map entries for pointing to data structure references that reference the first page of memory, wherein n≧
2;
(3) if the number n is less than or equal to the number m, placing all of the reverse map entries in the reserved fields of the first page frame data structure,(4) if the number n is greater than the number m,(i) placing m-1 reverse map entries in m-1 corresponding reserved fields,(ii) placing the remaining n-(m-1) reverse map entries in a reverse map table, and(iii) placing a pointer to the reverse map table in an unused reserved field of the first page frame data structure; and
(5) storing an index in each of the data structure references, wherein the index identifies one of the n reverse map entries that is pointing to the data structure reference.
15 Assignments
0 Petitions
Accused Products
Abstract
A system, method and computer program product for reverse mapping a page of memory to one or more data structure references, such as page table entries, that reference the page of memory. A number m of fields of a page frame data structure are reserved for storing reverse mapping data for a page of memory. Each reserved field can store a reverse map entry for pointing to a data structure reference, such as a page table entry, that references the page of memory that is represented by the page frame data structure. Where a number n of references to the page of memory is greater than the number m of reserved fields, a reverse map table is generated for storing additional reverse map entries. When a reverse map table is generated, one of the reverse map entries in one of the reserved fields of the page frame data structure is moved to the reverse map table. A pointer to the reverse map table is placed in the now-vacant reserved field. Indexes in the page table entries are used to identify and remove the reverse map entries when a page table is deallocated. Reverse map tables can be generated as needed and can be dynamically sized to accommodate any number of reverse map entries.
49 Citations
20 Claims
-
1. A method for reverse mapping page frame data structures that represent pages of memory, comprising the steps of:
-
(1) reserving a number m of fields in a first page frame data structure for storing reverse mapping information, the first page frame data structure representing a first page of memory; (2) generating a number n of reverse map entries for pointing to data structure references that reference the first page of memory, wherein n≧
2;(3) if the number n is less than or equal to the number m, placing all of the reverse map entries in the reserved fields of the first page frame data structure, (4) if the number n is greater than the number m, (i) placing m-1 reverse map entries in m-1 corresponding reserved fields, (ii) placing the remaining n-(m-1) reverse map entries in a reverse map table, and (iii) placing a pointer to the reverse map table in an unused reserved field of the first page frame data structure; and (5) storing an index in each of the data structure references, wherein the index identifies one of the n reverse map entries that is pointing to the data structure reference. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for reverse mapping page frame data structures that represent pages of memory, comprising the steps of:
-
(1) reserving a number m of fields of a page frame data structure that represents a page frame for storing reverse mapping information; (2) generating a plurality of reverse map entries that point to corresponding data structures that reference the page frame; (3) associating each of the plurality of reverse map entries with the page frame data structure, comprising the steps of; (a) generating a dynamically sizeable reverse map table; (b) placing at least one of the plurality of reverse map entries in the reverse map table; and (c) placing a pointer to the reverse map table in one of the reserved fields of the page frame data structure; and (4) storing an index that identifies one of the plurality of reverse map entries in the corresponding data structure. - View Dependent Claims (13)
-
-
14. A computer program product comprising a computer useable medium having computer program logic stored therein, said computer program logic for enabling a computer to reverse map a page frame to data structure references that reference the page frame, wherein said computer program logic comprises:
-
a procedure that enables the computer to employ a number m of fields of a first page frame data structure, that represents a first page of memory, for storing reverse mapping information; a procedure that enables the computer to generate a number n of reverse map entries for pointing to data structure references that reference the first page of memory, wherein n≧
2;a procedure that enables the computer to place the reverse map entries in the reserved fields of the first page frame data structure if the number n is less than or equal to the number m; a procedure that enables the computer to place m-1 reverse map entries in m-1 of the reserved fields if the number n is greater than the number m; a procedure that enables the computer to place n-(m-1) reverse map entries in a reverse map table if the number n is greater than the number m; a procedure that enables the computer to place a pointer to the reverse map table in an unused one of the m fields of the first page frame data structure if the number n is greater than the number m; a procedure that enables the computer to store an index in each of the data structure references, wherein the index identifies one of the n reverse map entries that is pointing to the data structure reference. - View Dependent Claims (15, 16)
-
-
17. A system for reverse mapping a page frame to a data structure reference that references the page frame, comprising:
-
a procedure that employs a number m of fields of a first page frame data structure, that represents a first page frame, for storing reverse mapping information; a procedure that generates a number n of reverse map entries for pointing to data structure references that reference the first page frame, wherein n≧
2;a procedure that places the reverse map entries in the reserved fields of the first page frame data structure if the number n is less than or equal to the number m; a procedure that places m-1 reverse map entries in m-1 in the reserved fields of the first page frame data structure if the number n is greater than the number m; a procedure the places n-(m-1) reverse map entries in a reverse map table if the number n is greater than the number m; a procedure that places a pointer to the reverse map table in a remaining field of the first page frame data structure if the number n is greater than the number m; and a procedure that stores an index in each of the data structure references, wherein the index identifies one of the n reverse map entries that is pointing to the data structure reference. - View Dependent Claims (18, 19, 20)
-
Specification