NVMe Storage Controller Dynamic Buffer Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current NVMe over Fabric architectures require significant memory space and high processor utilization due to high completion latency in read and write operations, as they need to apply for storage space in advance and wait for completion messages before data transmission, which is inefficient for applications sensitive to data latency.

Innovation Solution

A storage device with a control module that uses virtual addresses to update and manage data read-write instructions, dividing the buffer module into multiple buffer units, allowing for data transmission without pre-allocating storage space and releasing buffer units upon completion, thereby optimizing data processing and reducing memory requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If storage space is pre-allocated in the buffer module, then data transmission can be ensured, but memory requirements increase and buffer units cannot be efficiently reused

Engineering Contradiction:
Improvedata transmission reliabilityVSAvoidmemory space requirement
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The buffer unit allocation is made dynamic rather than static. Buffer units are allocated on-demand based on actual data transmission needs, and released immediately after use. The control module dynamically manages the buffer unit pool, allocating K buffer units for each data transmission task and releasing them upon completion, allowing the same buffer units to be reused for subsequent transmissions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Buffer units are discarded (released) immediately after data transmission completes, rather than being held for the entire task duration. The control module recovers buffer units by releasing them back to the pool as soon as transmission is done, making them available for reuse by other data transmission tasks, thus reducing the total memory requirement.

Inventive Principle:
Principle #34Discarding and recovering

2Reliability

If completion messages are waited for before data transmission, then data integrity is ensured, but completion latency increases

Engineering Contradiction:
Improvedata integrityVSAvoidcompletion latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The control module performs preliminary actions by pre-establishing the buffer unit pool and virtual address mapping before data transmission begins. Buffer units are pre-configured and ready for immediate use, and the mapping relationship between virtual addresses and buffer units is established in advance, eliminating the need to wait for completion messages before starting transmission.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Data transmission proceeds continuously without interruption or waiting. Once buffer units are allocated and data is written to them, transmission starts immediately and continues without pausing for completion messages. The system maintains continuous useful action by keeping the data transmission pipeline flowing without idle waiting periods.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If processor handles command conversion and interrupt processing, then command processing is completed, but processor utilization rate becomes excessively high

Engineering Contradiction:
Improvecommand processing capabilityVSAvoidprocessor utilization rate
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The control module extracts and handles specific functions (buffer management, virtual address mapping, data transmission coordination) independently from the processor. By taking out these functions from the processor's workload, the processor is relieved of some responsibilities, reducing its utilization rate while maintaining command processing capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The control module serves itself by autonomously managing buffer unit allocation, virtual address mapping, and data transmission without requiring continuous processor intervention. This self-service capability reduces the burden on the processor, allowing it to focus on higher-level command processing while the control module handles routine buffer management tasks.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11966585B2Storage device and storage system
Publication Date: 2024.04.23 INNOGRIT TECH CO LTD
  • US11966585B2 patent drawing
  • US11966585B2 patent drawing
  • US11966585B2 patent drawing

AI summary

The present disclosure relates to a storage device and a storage system. The device comprises a storage, a storage controller, a control module, and a buffer module. The control module is configured to: when receiving a data read-write instruction, update the data read-write instruction by using a virtual address; apply for K buffer units in the buffer module; perform a write operation on the K buffer units by using data to be read and written; and when any of the K buffer units is full, directly start data transmission of the full buffer unit. By using the virtual storage address and by employing data block management, the present disclosure can update and forward an NVMe I/O command without applying for a storage space in advance, and can start data block transmission without checking the completion message.