SSD Controller Buffer Memory Allocation for I/O Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing data management systems in operating systems, particularly with SSDs, face reduced input/output speed due to software overhead, which affects overall performance, as they sequentially perform software and hardware operations, leading to increased latency.

Innovation Solution

A data management system and method that allocates buffer memory and DMA addresses in advance, registers and releases them during I/O operations, and receives notifications through interrupts to perform context switching, allowing for parallel execution of software and hardware operations, thereby reducing I/O latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If buffer memory and DMA address are allocated sequentially before I/O operation, then memory management is simple and reliable, but I/O latency increases and performance decreases

Engineering Contradiction:
Improvememory management reliabilityVSAvoidI/O latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by allocating buffer memory and DMA addresses in advance before the I/O operation is actually needed. The controller pre-allocates buffer memory regions and their corresponding DMA addresses during idle periods or in parallel with other operations, so that when data I/O is requested, the allocation is already complete or nearly complete, significantly reducing the latency associated with sequential allocation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements continuity of useful action by maintaining buffer memory allocation and DMA address registration as ongoing processes rather than discrete sequential steps. The controller continuously manages buffer memory pools and DMA address spaces, allowing it to quickly grant allocations without interrupting the main I/O flow, thus keeping the system continuously productive without idle waiting periods.

Inventive Principle:
Principle #20Continuity of useful action

2Ease of operation

If software I/O stack processes are performed sequentially, then system complexity is reduced and ease of operation is improved, but overall I/O speed decreases

Engineering Contradiction:
Improvesystem operation simplicityVSAvoidI/O speed
Core Design Contradiction:
Ease of operationVSSpeed

Solution Approach 1:

The patent segments the I/O processing into multiple parallel paths: buffer memory allocation, DMA address registration, and actual data transfer occur as separate but coordinated operations rather than a single sequential process. This segmentation allows each component to operate independently and in parallel, improving overall I/O speed while maintaining manageable system complexity through clear separation of concerns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic parallel execution where the controller can simultaneously perform buffer allocation, DMA registration, and initiate data transfers based on real-time system conditions. The system dynamically adjusts the timing and ordering of these operations to maximize throughput, transforming the static sequential process into a flexible dynamic system that adapts to workload demands.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11379371B2Method and system with improved memory input and output speed
Publication Date: 2022.07.05 RES & BUSINESS FOUND SUNGKYUNKWAN UNIV
  • US11379371B2 patent drawing
  • US11379371B2 patent drawing
  • US11379371B2 patent drawing

AI summary

A data management system includes a data storage device, a buffer memory, and a controller. The buffer memory is configured to temporally store data read during a reading operation of the data storage device. The controller is configured to, after transmitting a data input/output (I/O) instruction to the data storage device upon an indication of a data reading request, allocate the buffer memory, register a buffer cache of the buffer memory, allocate a direct memory access (DMA) address for the buffer memory, and release the DMA address.