Memory Compression for Reducing Memory Commit Charge

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As computer programs become more complex, they require increased amounts of memory, leading to higher costs due to the need for additional computer memory, and existing methods do not effectively manage memory commit efficiently to reduce these costs.

Innovation Solution

A method that determines the amount of memory committed to a program, compresses unused memory pages, and releases the committed memory when not in use, allowing re-allocation to other programs, with the option to re-launch the program if memory access is unsuccessful.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If memory is allocated to complex computer programs to support increased functionality, then program capability is improved, but memory cost increases

Engineering Contradiction:
Improveprogram functionalityVSAvoidmemory amount
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent changes the state of memory from uncompressed to compressed, transforming the density parameter. By compressing memory pages when programs are suspended, the system reduces the physical memory quantity required while maintaining the same program functionality, thus resolving the contradiction between program capability and memory cost

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamic memory management where memory pages are compressed when programs are suspended and decompressed when needed. This dynamic adjustment of memory state allows the system to optimize memory usage based on program activity, reducing overall memory requirements while preserving program functionality when executed

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If memory is released from suspended programs to reduce commit charge, then memory efficiency is improved, but program accessibility deteriorates

Engineering Contradiction:
Improvememory commitVSAvoidprogram access
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent applies preliminary compression to memory pages before the program is fully suspended. By pre-compressing the memory content and storing compression metadata, the system ensures that when memory is released and the program needs to be reactivated, the compressed data can be quickly decompressed and restored, thus maintaining program accessibility while improving memory efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces compression metadata and decompression mechanisms as intermediaries between the released memory and the program. This intermediary layer allows the system to manage released memory commit while providing a pathway to restore program access through decompression, resolving the contradiction between memory efficiency and program accessibility

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3265918B1Using memory compression to reduce memory commit charge
Publication Date: 2018.11.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3265918B1 patent drawingFigure 1
  • EP3265918B1 patent drawingFigure 2A~2B
  • EP3265918B1 patent drawingFigure 3

AI summary

A memory manager in a computing device allocates memory to programs running on the computing device, the amount of memory allocated to a program being a memory commit for the program. When a program is in a state where the program can be terminated, the content of the memory pages allocated to the program is compressed, and an amount of the memory commit for the program that can be released is determined. This amount of memory commit is the amount that was committed to the program less any amount still storing (in compressed format) information (e.g., data or instructions) for the program. The determined amount of memory commit is released, allowing that amount of memory to be consumed by other programs as appropriate.