PCIe SSD Memory Pool Segmentation for I/O Overhead Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory management systems for NVMe SSDs connected over the PCIe bus do not effectively reduce input/output overhead during read/write operations, as they lack an upper limit in memory allocation size and fail to manage memory efficiently, leading to performance bottlenecks.
Innovation Solution
A method and system where a memory controller generates multiple memory pools of equal size from contiguous physical memory, divides them into sets of memory pages, and allocates specific pages to manage memory requests of varying sizes, reducing overhead by optimizing memory allocation and de-allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If existing memory managers use genalloc/genpool or bitmap techniques for memory allocation, then memory can be allocated and de-allocated, but there is no upper limit in memory allocation size and input/output overhead cannot be reduced
Solution Approach 1:
The patent segments the contiguous physical memory into multiple memory pools of equal size, where each pool is further divided into first-set memory pages and second-set memory pages. This hierarchical segmentation allows the system to manage memory requests of different sizes efficiently by directing them to appropriate pools, thereby establishing upper limits on allocation sizes and reducing I/O overhead while maintaining organized memory management structure.
2Adaptability or versatility
If memory is allocated without upper limit using existing techniques, then flexibility in memory allocation is maintained, but input/output overhead increases and performance decreases
Solution Approach 1:
The patent applies local quality by creating different types of memory pools with specific characteristics - each pool is associated with a predefined size of memory request and contains memory pages of specific sizes. This allows the system to match memory allocation to specific request sizes locally within appropriate pools, maintaining flexibility for different memory request types while optimizing performance by avoiding excessive I/O operations through size-matched allocation.
3Ease of operation
If contiguous physical memory is managed as a single block, then allocation is simple, but memory requests of different sizes cannot be efficiently managed and I/O overhead increases
Solution Approach 1:
The patent performs preliminary action by pre-dividing the contiguous physical memory into multiple equally-sized pools during initialization, and further pre-dividing each pool into first-set and second-set memory pages with specific size characteristics. This advance organization allows the memory controller to quickly match incoming memory requests of different sizes to appropriate pre-prepared pools and pages, maintaining operational simplicity while dramatically reducing allocation and de-allocation time during actual operations.
Data Source
AI summary
A method for managing a memory associated with PCIe SSD including: generating memory pools of equal size from a predefined size of contiguous physical memory, each of the memory pools manages a memory request of different size and is associated with a respective predefined size of memory request; dividing each of the memory pools into first set of memory pages, each having a size equal to maximum size among the predefined size of the memory request associated with the respective memory pool; dividing each of the first set of memory pages into second set of memory pages, each having a size equal to the predefined size of the memory request associated with respective memory pool; and managing the contiguous physical memory by allocating a memory page from the second set of memory pages fora memory request corresponding to the size of the second set of memory pages.


