Memory Page Deduplication for Reducing Fragmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvememory usage efficiencyVSAvoidmemory page management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #5Merging (Combining)

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

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improvememory efficiencyVSAvoidpage analysis time
Core Design Contradiction:
ProductivityVSLoss of 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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #20Continuity of useful action

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

Engineering Contradiction:
Improvememory reference consistencyVSAvoidprocess execution speed
Core Design Contradiction:
Device complexityVSProductivity

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

Inventive Principle:
Principle #20Continuity of useful action

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

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9058212B2Combining memory pages having identical content
Publication Date: 2015.06.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9058212B2 patent drawing
  • US9058212B2 patent drawing
  • US9058212B2 patent drawing

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.