Compressed Store Manager Memory Commit Charge Reduction

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 memory management techniques do not effectively reduce memory commit charges during compression, limiting system efficiency.

Innovation Solution

A system that identifies modified memory pages allocated to a program, compresses them into a compressed store managed by a compressed store manager, allowing the memory manager to repurpose these pages while using the memory commit charge for the compressed pages to conserve memory commit, thereby reducing the need for additional memory allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory pages are compressed into a compressed store, then the amount of physical memory required is reduced, but the memory commit charge increases due to the need for additional memory allocation for compression operations

Engineering Contradiction:
Improvephysical memory usageVSAvoidmemory commit charge
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

A compression manager is introduced as an intermediary component that manages the compression store and handles commit charge allocation separately from the main memory manager. This intermediary structure allows compression operations to proceed without increasing the overall system commit charge, as the compression manager can allocate and manage commit charge resources independently for compressed pages.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system changes the state of memory pages from uncompressed to compressed, altering their physical representation while maintaining logical integrity. By transforming pages into a compressed format within the compression store, the system reduces physical memory footprint while the parameter management system tracks and adjusts commit charge allocation to reflect the compressed state rather than treating compressed pages as additional memory commitments.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If more computer memory is included to support complex programs, then program functionality increases, but the cost of the computer system increases

Engineering Contradiction:
Improveprogram functionalityVSAvoidcomputer memory quantity
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system changes the density and organization of stored information through compression, allowing more data to be stored in the same physical memory space. This parameter transformation enables complex programs to run without requiring additional physical memory, as the compression store efficiently packs memory pages to maximize utilization of available memory resources.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The compression store is implemented as a nested structure where compressed memory pages are stored within allocated memory regions. This nesting allows the system to create virtual layers of memory management, where the compression store sits within the overall memory architecture, providing additional storage capacity without requiring external memory expansion.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentEP3283965B1Reducing memory commit charge when compressing memory
Publication Date: 2019.10.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3283965B1 patent drawingFigure 1
  • EP3283965B1 patent drawingFigure 2
  • EP3283965B1 patent drawingFigure 3

AI summary

A set of memory pages from a working set of a program process, such as at least some of the memory pages that have been modified, are compressed into a compressed store prior to being written to a page file, after which the memory pages can be repurposed by a memory manager. The memory commit charge for the memory pages compressed into the compressed store is borrowed from the program process by a compressed storage manager, reducing the memory commit charge of the compressed storage manager. Subsequent requests from the memory manager for memory pages that have been compressed into a compressed store are satisfied by accessing the compressed store memory pages (including retrieving the compressed store memory pages from the page file if written to the page file), decompressing the requested memory pages, and returning the requested memory pages to the memory manager.