Virtual Memory Management in NUMA Environments
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-processor and multi-memory environments, existing methods for executing virtual machines in Non-Uniform Memory Access (NUMA) settings face performance bottlenecks due to memory access inefficiencies, particularly when trying to ensure quality of service for tasks requiring frequent memory access, as they often require data replication, migration, or task migration, leading to performance overhead.
Innovation Solution
A virtual memory management apparatus and method that allocates virtual system memory and virtual swap devices dynamically, utilizing internal memories of other processors or distributed memories connected through a network, with a virtual swap device map to optimize memory access by selecting the fastest available memory for virtual machines, thereby reducing overhead and enhancing memory use efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data replication or migration is used to ensure memory access performance in NUMA environments, then memory access performance for frequently accessed data is improved, but performance overhead increases due to the replication and migration operations
Solution Approach 1:
The patent extracts the memory allocation decision from the traditional VMM and assigns it to the application program itself. By allowing applications to directly allocate memory nodes from the NUMA memory hierarchy without VMM intervention, the system eliminates the performance overhead associated with VMM-mediated data replication and migration operations, while still ensuring fast memory access through direct allocation to appropriate memory nodes
Solution Approach 2:
The invention enables application programs to perform self-allocation of memory nodes directly from the NUMA memory hierarchy. This self-service mechanism allows applications to autonomously select and allocate optimal memory nodes without requiring VMM assistance, thereby eliminating the performance overhead of VMM-mediated operations while maintaining fast memory access performance
2Adaptability or versatility
If a VMM is used to virtualize NUMA environment into UMA environment, then virtual machine execution is enabled, but performance overhead occurs due to replication, migration, or task migration requirements
Solution Approach 1:
The patent extracts the memory allocation function from the VMM and transfers it to the application program. This allows virtual machines to execute in the native NUMA environment without VMM-mediated virtualization overhead. Applications directly allocate memory nodes from the NUMA hierarchy, eliminating the need for VMM-induced data replication and migration operations that caused performance overhead
Solution Approach 2:
Instead of having the VMM mediate memory allocation for virtual machines (traditional approach), the invention inverts the approach by allowing application programs to directly perform memory allocation from the NUMA memory hierarchy. This inversion eliminates the VMM overhead while maintaining virtual machine execution capability
3Ease of operation
If multiple processors access memory through a bus in UMA environment, then all processors can access memory at the same speed, but memory access performance deteriorates due to bottleneck effects as more processors access memory
Solution Approach 1:
The patent segments the memory access architecture by assigning each processor its own L2 cache memory node in the NUMA hierarchy. This segmentation eliminates the single bus bottleneck present in UMA systems, as each processor can independently access its local L2 cache without contending for a shared memory bus, thereby maintaining uniform access capability while improving overall memory access speed
Solution Approach 2:
The invention transitions from a flat UMA memory architecture to a hierarchical NUMA memory architecture with multiple memory dimensions (L1 cache, L2 cache, main memory). This dimensional expansion allows processors to access memory at different hierarchical levels, reducing the bottleneck effect of single-level bus access while maintaining ease of operation through standardized allocation interfaces
Data Source
AI summary
A virtual memory management apparatus and method to execute virtual machines in a multi-processor and multi-memory environment are provided. The virtual memory management apparatus includes a virtual system memory manager configured to allocate a virtual system memory to a virtual machine. The virtual memory management apparatus further includes a virtual swap device map storage configured to store location information of virtual swap devices that are able to be allocated to the virtual machine. The virtual memory management apparatus further includes a virtual swap device manager configured to allocate a virtual swap device to the virtual machine with reference to a virtual swap device map.


