Memory Pooling for Dynamic CPU Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory management solutions lead to inefficient CPU and memory utilization due to fixed ratios between CPU processor capability and memory size, resulting in over-capacity and resource waste, with software-based solutions causing delays and inefficiencies through encapsulation protocols.
Innovation Solution
A method and apparatus for memory management that pools memories and CPUs, allowing for unconstrained configurations by creating a memory pool and CPU pool, with memory spaces allocated in a one-to-one correspondence, enabling dynamic adjustment based on usage thresholds to optimize resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If servers are added to increase memory size or CPU processing capability, then the overall capability of the system is improved, but the utilization of the overall available CPU processing capability or memory usage decreases due to over-capacity
Solution Approach 1:
The patent creates a shared memory pool that serves multiple CPUs simultaneously, allowing the same memory resources to be accessed and utilized by different processing units. This multi-functional approach enables memory to serve universal purposes across the system rather than being dedicated to single CPU instances, thereby improving overall utilization while maintaining increased memory capacity
Solution Approach 2:
The patent merges individual memory spaces of multiple CPUs into a unified shared memory pool. By combining previously separate memory resources into a single pooled structure, the system achieves better resource consolidation and utilization, allowing any CPU to access any portion of the pooled memory based on demand rather than being constrained by fixed allocations
2Adaptability or versatility
If software-based solutions are used to manage and dispatch memory, then memory management capability is improved, but the CPU utilizes a relatively large amount of memory to process encapsulation protocols, causing delay and decrease in processing efficiency
Solution Approach 1:
The patent replaces software-based memory management mechanisms with hardware-level implementations. By utilizing memory management units (MMUs) and hardware descriptors, the system eliminates the need for software protocols to handle basic memory allocation and access operations, thereby reducing CPU overhead and processing delays while maintaining flexible memory management capabilities
Solution Approach 2:
The patent introduces hardware descriptors as intermediary structures that facilitate efficient memory access between CPUs and the shared memory pool. These descriptors act as hardware-level mediators that contain pre-computed address translation information, eliminating the need for software protocol processing and reducing the time required for memory access operations
3Device complexity
If a fixed ratio between memory size and CPU processor capability is maintained, then system configuration simplicity is preserved, but the system cannot dynamically adjust to changing usage needs, resulting in resource waste
Solution Approach 1:
The patent implements dynamic memory allocation within the shared memory pool, allowing memory assignments to change based on real-time CPU needs. The system monitors memory usage patterns and automatically reallocates memory spaces from underutilized CPUs to CPUs requiring additional capacity, enabling the configuration to adapt dynamically without requiring complex manual reconfiguration procedures
Solution Approach 2:
The patent enables changes in memory allocation parameters through hardware-controlled mechanisms rather than fixed configurations. By utilizing programmable MMUs and descriptor tables, the system can modify memory mapping parameters, allocation ratios, and access permissions dynamically, allowing adaptation to changing workloads while maintaining relatively simple overall system architecture
Data Source
Figure 1A
Figure 1B
Figure 2
AI summary
A method and apparatus of memory management are disclosed. Pooling of at least one memory to generate a memory pool, dividing the memory pool to generate at least one memory space, and allocating a respective memory space to a respective CPU in a one-to-one correspondence manner are performed. Further, the respective memory space allocated to the respective CPU is set as a pinned memory of the respective CPU. Additionally, setting unallocated memory space as a shared memory pool, obtaining a memory value that represents usage of the respective memory space by the respective CPU during operation, and determining if the memory value exceeds a preset threshold range are performed. Selecting, if the memory value exceeds the preset threshold range, additional memory space from the memory pool to allocate to the respective CPU or reallocating at least a portion of the respective memory space allocated to the CPU are performed.