User-Centric DMA Memory Segmentation for Mixed-Size I/O

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage arrays experience bottlenecks and increased latency due to protracted I/O stacks and inefficient user-level DMA, particularly in handling diverse I/O requests with varying data sizes, leading to strained system resources and degraded IOPS.

Innovation Solution

Implement a user-centric DMA (UCDMA) system that categorizes I/O requests based on size, using statically pinned memory for small requests, a pinned memory pool for medium requests, and dynamically allocated memory for large requests, optimizing memory usage through scatter/gather lists and minimizing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If user-level DMA is used to enable direct I/O operations, then I/O performance is improved, but memory pinning overhead is introduced and adaptability to varying I/O request sizes is reduced

Engineering Contradiction:
ImproveI/O performanceVSAvoidmemory pinning overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments memory management into three distinct categories based on I/O request size: statically pinned memory for small requests (<4KB), pinned memory pool for medium requests (4-4MB), and dynamically allocated memory for large requests (>4MB). This segmentation allows each memory type to be optimized for its specific use case, reducing overall pinning overhead while maintaining adaptability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the memory allocation parameters dynamically based on I/O request size. Instead of using a fixed memory pinning strategy, the system adjusts the memory management approach according to the request characteristics, transitioning from static pinning for small requests to dynamic allocation for large requests, thereby optimizing the balance between performance and overhead.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If a protracted I/O stack is used to handle diverse I/O requests, then request handling capability is improved, but system processing resources are strained and latency is increased

Engineering Contradiction:
Improverequest handling capabilityVSAvoidlatency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the I/O request handling process into three distinct paths based on request size classification. This segmentation allows the system to route different types of requests through optimized processing paths, reducing the effective complexity of the I/O stack for most common cases while maintaining comprehensive handling capability for diverse requests.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary classification of I/O requests by size before processing, routing them to appropriate memory regions in advance. This preliminary action reduces the processing time for subsequent operations by avoiding complex decision-making during the actual data transfer, thereby reducing latency while maintaining request handling capability.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If dynamically allocated memory is used for all I/O requests, then adaptability to varying request sizes is improved, but memory management overhead and performance are degraded

Engineering Contradiction:
Improveadaptability to varying request sizesVSAvoidmemory management performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments memory management strategies based on request size, applying dynamic allocation only to large requests (>4MB) while using static pinning for small requests. This selective approach maintains adaptability for large data transfers while optimizing performance for common small requests by avoiding unnecessary dynamic allocation overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the memory management parameter from uniform dynamic allocation to size-dependent allocation. By adjusting the allocation strategy based on request size parameters, the system achieves both adaptability for varying request sizes and optimized performance, avoiding the overhead of dynamic allocation for cases where static pinning suffices.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20250328481A1Systems and methods of improving storage performance with user-centric direct memory access
Publication Date: 2025.10.23 DELL PROD LP
  • US20250328481A1 patent drawing
  • US20250328481A1 patent drawing
  • US20250328481A1 patent drawing

AI summary

A user-centric direct memory access system receives Input/Output requests and categorizes the requests according to a classification, such as a request size. The request is stored to a statically pinned memory if the request is categorized as a small request, a pinned memory pool if the request is categorized as a medium sized request, and a dynamically allocated memory if the request is a classified as a large request. The statically pinned memory includes three memory block lists, including two block lists for write requests and one block list for read requests. Memory pinned in the dynamically allocated memory may be released upon completion of a request.