Lock-Free Local Memory Pools for Multi-Processor Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional memory management schemes in computing systems either lead to over-provisioning or high memory contention among processes, as they either reserve fixed memory for each process or rely on a global memory pool, resulting in inefficient resource allocation and utilization.
Innovation Solution
Implementing a memory management system with a global memory pool and local memory pools for each processor, where memory is allocated and deallocated efficiently without locking, allowing processes to request memory locally and from a global pool as needed, with mechanisms to reclaim memory from idle processors to reduce contention and underutilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a fixed amount of memory is reserved for each process, then memory allocation is simple and predictable, but memory over-provisioning occurs and other processes may exhaust memory
Solution Approach 1:
The patent divides the global memory pool into local memory pools for each processor. Each processor has its own local pool that it can access without locking, while the global pool remains shared. This segmentation allows processes to efficiently access memory locally without contention, while still enabling global memory sharing when needed, thus resolving the contradiction between allocation predictability and utilization efficiency.
2Quantity of substance
If a single global memory pool is used for all processes, then memory waste is minimized, but high contention occurs among processes for memory allocation
Solution Approach 1:
The patent segments the global memory pool into processor-specific local pools. Each processor can allocate memory from its local pool without acquiring locks, eliminating contention. The global pool serves as a backup for when local pools are exhausted. This segmentation resolves the contradiction by enabling fast lock-free allocation locally while maintaining efficient global memory utilization.
Solution Approach 2:
The patent implements local memory pools with different access characteristics than the global pool. Local pools provide fast, lock-free access for their respective processors, while the global pool provides shared access with locking. This local quality differentiation resolves the contradiction between utilization efficiency and allocation speed by optimizing each pool's access pattern for its specific use case.
3Productivity
If local memory pools are implemented for each processor, then lock contention is reduced for memory allocation, but system complexity increases
Solution Approach 1:
The patent divides memory management into local and global components. Each processor manages its own local pool independently without locks, while a global pool handles overflow cases. This segmentation achieves fast local allocation while keeping the overall system manageable through clear separation of concerns, resolving the contradiction between allocation speed and system complexity.
Data Source
AI summary
An example method of memory management in a computing system having a plurality of processors includes: receiving a first memory allocation request at a memory manager from a process executing on a processor of the plurality of processors in the computing system; allocating a local memory pool for the processor from a global memory pool for the plurality of processors in response to the first memory allocation request; and allocating memory from the local memory pool for the processor in response to the first memory allocation request without locking the local memory pool.


