Memory Management Module Selective Mitigation Modes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory management systems in computing devices are prone to errors due to programming bugs, leading to crashes and poor user experience, as they often fail to anticipate and mitigate inconsistencies in memory operations effectively, which can result in resource inefficiencies and performance impacts.

Innovation Solution

A memory management module that operates in different modes for each software module, performing mitigation actions such as allocating extra resources or delaying memory operations to prevent errors, and selectively enabling these actions based on detected bugs and performance metrics, with configuration data shared across devices to optimize mitigation strategies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If debugging tools like Page Heap are used to detect memory errors, then memory error detection capability is improved, but system performance deteriorates due to monitoring overhead

Engineering Contradiction:
Improvememory error detection capabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments memory management functionality into distinct modes: a debugging mode with full monitoring and verification capabilities, and a production mode with minimal overhead. This segmentation allows the system to apply comprehensive error detection only when needed, rather than continuously, thus resolving the contradiction between detection capability and performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements periodic switching between debugging and production modes based on operational context. Memory operations are monitored intensively during debugging sessions but operate in high-performance mode during normal production execution. This periodic alternation allows the system to maintain both high reliability during testing and high productivity during operation.

Inventive Principle:
Principle #19Periodic action

2Reliability

If mitigation actions are always enabled to prevent memory errors, then software reliability is improved, but system performance deteriorates due to continuous overhead

Engineering Contradiction:
Improvesoftware reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts the level of mitigation applied to memory operations based on runtime conditions and operational mode. In production mode, mitigations are applied selectively rather than continuously, allowing the system to maintain high reliability for critical operations while preserving overall system performance through adaptive control.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Different levels of mitigation are applied to different portions of memory operations based on their criticality and the operational context. High-risk operations receive full mitigation while routine operations use minimal verification, creating a localized quality approach that optimizes the balance between reliability and performance across the system.

Inventive Principle:
Principle #3Local quality

3Reliability

If extra memory is allocated to compensate for programming bugs, then memory error prevention is improved, but memory resource efficiency deteriorates

Engineering Contradiction:
Improvememory error preventionVSAvoidmemory resource efficiency
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system performs preliminary verification of memory operation parameters before execution to detect potential bugs such as buffer overflows. By validating allocation sizes, access boundaries, and operation correctness in advance, the system prevents memory errors without requiring excessive extra memory allocation, thus maintaining resource efficiency while improving reliability.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If memory operations are monitored and validated in real-time, then memory error detection is improved, but processing speed deteriorates

Engineering Contradiction:
Improvememory error detectionVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system applies partial verification to memory operations based on their risk profile and operational context. Critical memory operations receive full real-time monitoring and validation, while routine operations use simplified or deferred verification. This partial action approach maintains high detection capability for important operations while preserving processing speed for less critical tasks.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2329384B1Memory management techniques selectively using mitigations to reduce errors
Publication Date: 2019.10.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2329384B1 patent drawingFigure 1
  • EP2329384B1 patent drawingFigure 2A
  • EP2329384B1 patent drawingFigure 2B

AI summary

Techniques for performing memory management to mitigate memory errors. In accordance with the principles described herein, a memory management module may be implemented that acts in different modes of operation for each of one or more software modules issuing requests for performance of memory operations to the memory management module. In one mode of operation, one or more mitigation actions may be performed by the memory management module in addition to or instead of the memory operation requested by the calling software module, such that the memory operations are performed in accordance with the mitigation actions. These mitigation actions may serve to reduce a likelihood of a memory error negatively affecting the calling software module. In another mode of operation, the memory management module performs memory operations as requested, without performing mitigation actions