Combining memory pages having identical content
First Claim
1. A method in a device having a memory accessed as multiple pages, the method comprising:
- identifying two or more pages of the multiple pages having identical content, the identical content including at least the two or more pages having the same page protections, the same page protections identifying how the two or more pages may be used including at least one of read, write, or execute, the identifying the two or more pages including at least generating a check value for each of the multiple pages;
allowing, while the two or more pages are being identified, other processes running on the device to use the two or more pages including allowing the other processes to change cache attributes of each of the two or more pages;
combining the two or more pages into a single combined page; and
updating a process page record having multiple entries pointing to the multiple pages so that entries that previously pointed to one of the two or more pages instead point to the single combined page, the other processes being unaware of the identifying, combining, and updating while the two or more pages are being identified, the process page record including at least an identifier for each of the multiple pages indicating when the generating the check value is being done.
2 Assignments
0 Petitions
Accused Products
Abstract
In a device having a memory accessed as multiple pages, two or more pages of the multiple pages having identical content are identified. While the two or more pages are being identified, other processes running in the device are allowed to use the two or more pages, including being allowed to change cache attributes of each of the two or more pages. The two or more pages are combined into a single combined page (e.g., a newly allocated page of the multiple pages), and a process page record having multiple entries pointing to the multiple pages is updated so that entries that previously pointed to one of the two or more pages instead point to the single page.
-
Citations
20 Claims
-
1. A method in a device having a memory accessed as multiple pages, the method comprising:
-
identifying two or more pages of the multiple pages having identical content, the identical content including at least the two or more pages having the same page protections, the same page protections identifying how the two or more pages may be used including at least one of read, write, or execute, the identifying the two or more pages including at least generating a check value for each of the multiple pages; allowing, while the two or more pages are being identified, other processes running on the device to use the two or more pages including allowing the other processes to change cache attributes of each of the two or more pages; combining the two or more pages into a single combined page; and updating a process page record having multiple entries pointing to the multiple pages so that entries that previously pointed to one of the two or more pages instead point to the single combined page, the other processes being unaware of the identifying, combining, and updating while the two or more pages are being identified, the process page record including at least an identifier for each of the multiple pages indicating when the generating the check value is being done. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. One or more computer storage memories having stored thereon multiple instructions that, when executed by one or more processors of a device having a memory accessed as multiple pages, implement a page combination procedure by causing the one or more processors to:
-
identify two or more pages of the multiple pages having identical content, the identical content including at least the two or more pages having the same page protections, the same page protections identifying how the two or more pages may be used including at least one of read, write, or execute, the identify the two or more pages including at least generating a check value for each of the multiple pages; allocate a new page of the multiple pages, the new page having the identical content as the two or more pages; update a process page record having multiple entries pointing to the multiple pages so that entries that previously pointed to one of the two or more pages instead point to the new page, the process page record including at least an identifier for each of the multiple pages indicating when the generating the check value is being done; and cause one or more additional processes running on the device other than a process implementing the page combination procedure to be unaware of the identification, allocation, and updating. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method in a device having a memory accessed as multiple pages, the method comprising:
-
determining, in response to an indication received from a user mode page combine policy module, to perform a page combination procedure, the indication occurring in response to a user being away from the device for a threshold amount of time, an increase of a threshold amount of memory being used within a particular amount of time, or a rate at which new pages are being allocated exceeds a threshold amount, the threshold amount of memory based on a total number of pages comprising the multiple pages; identifying, as part of the page combination procedure, two or more pages of the multiple pages having identical content, the identical content including at least the two or more pages having the same page protection, the multiple pages including previously combined pages that have been transferred to a storage device, the identifying the two or more pages including at least generating a check value for each of the multiple pages; allowing, while the two or more pages are being identified, other processes running on the device to use the two or more pages including allowing the other processes to change cache attributes of each of the two or more pages; combining, as part of the page combination procedure, the two or more pages into a single combined page by allocating a new page of the multiple pages and copying the content of one of the two or more pages to the new page; and updating, as part of the page combination procedure, a process page record having multiple entries pointing to the multiple pages so that entries that previously pointed to one of the two or more pages instead point to the single combined page, the other processes being unaware of the identifying, combining, and updating while the two or more pages are being identified, the process page record including at least an identifier for each of the multiple pages indicating when the generating the check value is being done. - View Dependent Claims (19, 20)
-
Specification