Memory Page Deduplication for Reducing Fragmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As the number of programs running on computers increases, it can lead to strained resources such as available memory, resulting in slow or sluggish computer operation, reducing user friendliness.
Innovation Solution
A method is implemented to identify and combine multiple memory pages with identical content into a single page, updating process page records to point to the combined page, while allowing other processes to use the memory pages during analysis, and allocating a new page if a process writes to the combined page.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple memory pages with identical content are maintained separately, then each process can access its pages independently, but memory fragmentation increases and memory usage efficiency decreases
Solution Approach 1:
The patent combines multiple memory pages that have identical content into a single shared page. When multiple pages are identified as having the same content, the system merges them into one page and updates the process page records to point to this shared page, thereby reducing memory fragmentation and improving memory usage efficiency without sacrificing process independence
Solution Approach 2:
The patent uses copying by creating a shared copy of identical page content. Instead of maintaining separate copies of identical data across multiple pages, the system creates a single copy and shares it among multiple process page records, reducing overall memory consumption while maintaining the ability for each process to access the data independently
2Productivity
If memory pages are combined into a single page, then memory fragmentation is reduced and memory efficiency is improved, but the process of identifying and combining pages requires analysis time
Solution Approach 1:
The patent performs preliminary action by analyzing and identifying pages with identical content during system operations rather than waiting for memory pressure to manifest. The page identification and combination process is initiated proactively, allowing the system to prepare optimized memory structures in advance without delaying critical operations
Solution Approach 2:
The patent maintains continuity of useful action by allowing other processes to continue executing during the page analysis and combination operation. The system performs page identification and merging in a manner that does not block or delay other process operations, ensuring that the memory optimization process itself does not become a bottleneck
3Device complexity
If process page records are updated to point to combined pages, then memory references are consolidated, but the updating process may affect process performance
Solution Approach 1:
The patent ensures continuity of useful action by updating process page records in a manner that does not interrupt or delay process execution. The record updating operation is performed in parallel with process operations or in a way that maintains process throughput, ensuring that memory reference consolidation does not become a performance bottleneck
Solution Approach 2:
The system performs self-service by automatically updating process page records to point to combined pages without requiring explicit process intervention. The memory management system autonomously identifies identical pages, combines them, and updates the necessary records, making the optimization transparent to running processes and avoiding additional overhead from coordinated updates
Data Source
AI summary
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.


