Runtime Persistent Memory Allocation for Virtual Machines
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If firmware defines memory allocation during boot process, then system stability is improved, but runtime adaptability deteriorates
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.
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.
3Quantity of substance
If persistent memory is used as volatile memory, then memory capacity is improved, but data persistence characteristics change
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.
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.
Data Source
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.


