Dynamic Non-Volatile Memory Allocation for Computing Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems lack the ability to dynamically share non-volatile memory across volatile main memory and persistent storage memory, failing to adapt to dynamic changes in read and write operations performed by applications.

Innovation Solution

A computing system with a first memory, a second memory of a different type, and a third configurable non-volatile memory that dynamically adjusts its resources to function with either the first or second memory based on application needs, reallocating resources between volatile main memory and solid state storage memory as necessary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If non-volatile memory is statically allocated to either volatile main memory or persistent storage memory, then the system structure is simple and stable, but the memory resources cannot adapt to dynamic changes in application read and write loads

Engineering Contradiction:
Improvememory adaptabilityVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic memory allocation by enabling the non-volatile memory to automatically switch between functioning as volatile main memory and persistent storage memory based on real-time monitoring of application read and write operation loads, replacing static allocation with adaptive dynamic reconfiguration

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs self-adjustment through automatic monitoring and reconfiguration of non-volatile memory functionality without requiring manual intervention or complex external memory management, allowing the memory subsystem to serve itself by adapting to workload changes

Inventive Principle:
Principle #25Self-service

2Productivity

If non-volatile memory resources are dynamically reconfigured based on application needs, then memory efficiency and adaptability improve, but the control and monitoring mechanisms become more complex

Engineering Contradiction:
Improvememory efficiencyVSAvoidcontrol mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements feedback mechanisms by monitoring the loads on volatile main memory and persistent storage memory, using this information to determine when and how to reconfigure non-volatile memory resources, creating a closed-loop control system that continuously optimizes memory allocation based on actual usage patterns

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If the non-volatile memory functions exclusively with one memory type, then the system is simpler to manage, but the memory resources are wasted when the allocated memory type is not sufficient

Engineering Contradiction:
Improvememory resource utilizationVSAvoidmemory management ease
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The patent enables the non-volatile memory to perform multiple functions by allowing it to dynamically switch between augmenting volatile main memory and supporting persistent storage memory, making a single memory resource universally applicable to different memory subsystems based on real-time needs

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11231852B2Efficient sharing of non-volatile memory
Publication Date: 2022.01.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11231852B2 patent drawing
  • US11231852B2 patent drawing
  • US11231852B2 patent drawing

AI summary

In the embodiment a determination is made, for one or more applications being executed by the computing system, of an amount of the first or second memory being used by the one or more applications. Based on the determination, a portion of the memory resources of the third memory are configured to function with the first or second memory when it is determined that the amount of the first or second memory being used by the one or more applications is not sufficient for the memory needs of the one or more applications and a portion of the memory resources of the third memory are removed from functioning with the first or second memory when it is determined that the amount of the first or second memory being used by the one or more applications is more than is needed for the memory needs of the one or more applications.