Memory Manager with Application Metadata API

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory management systems in computer applications lack insight into how applications use memory, leading to inefficient decisions about allocation and usage, particularly in resource-constrained environments like mobile devices, where legacy applications pose challenges.

Innovation Solution

A memory management system that provides an API for applications to specify metadata about memory allocations, allowing the host to make more informed decisions through static and dynamic analysis, and kernel-level changes to leverage this information for proactive memory management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the operating system provides virtual memory and basic allocation functions, then memory isolation between applications is achieved, but the operating system lacks insight into how applications use memory

Engineering Contradiction:
Improvememory isolationVSAvoidmemory usage information
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent introduces an intermediary layer between the operating system and applications that collects metadata about memory allocations. This intermediary component intercepts allocation requests, attaches metadata descriptors containing usage information (such as allocation purpose, priority, and recreateability), and passes this enriched information back to the operating system without disrupting the existing memory isolation mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Use of energy by moving object

If mobile devices limit memory to reduce energy consumption, then power efficiency is improved, but the number of applications that can run simultaneously is reduced

Engineering Contradiction:
Improveenergy consumptionVSAvoidapplication concurrency
Core Design Contradiction:
Use of energy by moving objectVSAdaptability or versatility

Solution Approach 1:

The patent enables preliminary action by allowing the operating system to proactively analyze metadata about upcoming memory allocations and application behavior patterns. This analysis occurs before memory is actually allocated, enabling the system to predict which applications will benefit from keeping memory allocated and which can safely have memory freed or paged, thus preparing optimization strategies in advance rather than reactively.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of memory management from static allocation to dynamic, metadata-driven allocation. By incorporating metadata descriptors that contain information about allocation purpose, priority, and recreateability, the system can adjust memory parameters (such as allocation size, retention time, and paging behavior) based on actual usage patterns rather than fixed rules, enabling better energy efficiency without sacrificing application concurrency.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If legacy applications are supported without modification, then application compatibility is maintained, but new memory management techniques cannot be implemented

Engineering Contradiction:
Improveapplication compatibilityVSAvoidmemory management efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent extracts the memory management enhancement logic from the application layer and places it in the operating system layer. By collecting metadata through interceptors and analysis tools that operate independently of application modifications, the system separates the benefit (improved memory management) from the requirement (application modification), allowing legacy applications to receive enhanced treatment without any changes to their code.

Inventive Principle:
Principle #2Taking out (Extraction)

4Device complexity

If runtime information is used for memory management decisions, then implementation simplicity is maintained, but memory management effectiveness is limited

Engineering Contradiction:
Improveimplementation complexityVSAvoidmemory management effectiveness
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent shifts from reactive runtime decision-making to proactive preliminary analysis. Metadata descriptors are attached at allocation time or through static analysis before the application runs, providing the operating system with forward-looking information about memory usage patterns. This preliminary information enables more effective memory management decisions without adding complex runtime monitoring overhead.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2721480B1Memory manager with enhanced application metadata
Publication Date: 2021.05.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2721480B1 patent drawingFigure 1
  • EP2721480B1 patent drawingFigure 2
  • EP2721480B1 patent drawingFigure 3

AI summary

A memory management system is described herein that receives information from applications describing how memory is being used and that allows an application host to exert more control over application requests for using memory. The system provides an application memory management application-programming interface (API) that allows the application to specify more information about memory allocations that is helpful for managing memory later. The system also provides an ability to statically and/or dynamically analyze legacy applications to give applications that are not modified to work with the system some ability to participate in more effective memory management. The system provides application host changes to leverage information provided by applications and to manage memory more effectively using information and hooks into application's use of memory. Thus, the system provides a new model for managing memory that improves application host behavior and allows applications to use computing resources more efficiently.