Runtime Persistent Memory Allocation for Virtual Machines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems require a reboot to modify the allocation of persistent and volatile memory, limiting the ability to dynamically adjust memory usage during runtime of virtual machines (VMs).

Innovation Solution

The solution involves creating a file in the persistent memory of a host computing device, which can be allocated to a VM and used as volatile memory, allowing for dynamic memory allocation without the need for a reboot.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If firmware is configured to allocate persistent memory as volatile memory, then memory efficiency is improved, but the system requires a reboot to apply changes

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoidreboot time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements dynamic memory allocation by allowing the host operating system to allocate persistent memory as volatile memory during runtime without requiring a reboot. The system dynamically adjusts memory allocation based on runtime conditions, enabling flexible reconfiguration of memory resources while the VM is running.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent performs preliminary actions by pre-allocating persistent memory blocks and preparing them for use as volatile memory before they are needed. The host OS pre-configures the memory allocation structures and prepares the persistent memory regions so that when allocation is requested, the transition can occur without system reboot.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If firmware defines memory allocation during boot process, then system stability is improved, but runtime adaptability deteriorates

Engineering Contradiction:
Improvesystem stabilityVSAvoidruntime memory configuration
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces the host operating system as an intermediary layer between the firmware and the VM. The host OS manages persistent memory allocation and can dynamically allocate persistent memory as volatile memory without requiring changes to firmware configuration. This intermediary approach maintains system stability while enabling runtime adaptability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments memory management into separate layers: firmware handles initial boot configuration for stability, while the host OS handles runtime dynamic allocation. This segmentation allows each layer to operate independently - firmware ensures system stability during boot, while the host OS provides runtime adaptability without conflicting with firmware constraints.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If persistent memory is used as volatile memory, then memory capacity is improved, but data persistence characteristics change

Engineering Contradiction:
Improveavailable memory capacityVSAvoidmemory volatility
Core Design Contradiction:
Quantity of substanceVSStability of the object's composition

Solution Approach 1:

The patent changes the operational parameters of persistent memory by allocating it for volatile memory usage. When the host OS allocates persistent memory as volatile memory, the memory's accessibility and speed characteristics are optimized for volatile operations, while the underlying persistent storage properties remain intact. This parameter change allows the same physical memory to serve dual purposes.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent makes persistent memory universal by enabling it to function both as persistent storage and as volatile memory. The same persistent memory blocks can be allocated for volatile memory operations when needed, providing multi-functionality. This allows the system to maximize memory utilization by having persistent memory serve multiple roles depending on runtime requirements.

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

Data Source

PatentUS20250190350A1Runtime allocation and utilization of persistent memory as volatile memory
Publication Date: 2025.06.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20250190350A1 patent drawing
  • US20250190350A1 patent drawing
  • US20250190350A1 patent drawing

AI summary

The described technologies enable a computing device to allocate at least a portion of its persistent memory as volatile memory during runtime. At least some implementations create a file in the persistent memory of the computing device. The file is created in the persistent memory of the computing device during runtime of a virtual machine (VM) hosted by the computing device. The file may be allocated to the VM. The file allocated to the VM may be used as volatile memory. For example, the VM may use the file to store temporary data (e.g., volatile data). In some implementations, the temporary data is associated with an application executing in the VM.