NVMe Controller Completion Packet Buffering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage devices face performance reduction due to the interruption of burst mode data access operations caused by the recurring need to immediately transmit completion responses to the host after each data access operation, which disrupts the sequential transmission of multiple data sets.

Innovation Solution

Implementing a method where data storage devices store completion responses in a buffer and transmit them sequentially as a single completion packet during a single transaction, rather than immediately after each operation, using a Non-Volatile Memory Express (NVMe) controller to manage and transmit the responses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If completion responses are immediately transmitted after each data access operation, then the host can promptly receive operation status, but the burst mode data access performance is reduced due to frequent interruptions

Engineering Contradiction:
Improvecompletion response deliveryVSAvoiddata access performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines multiple completion responses into a single completion packet that is transmitted to the host in one transaction. Instead of sending individual completion responses after each data access operation, the storage device accumulates multiple completion responses and transmits them collectively, thereby reducing transmission interruptions and maintaining burst mode data access performance while still ensuring the host receives all operation status information.

Inventive Principle:
Principle #5Merging (Combining)

2Loss of information

If multiple completion responses are transmitted separately, then each operation status is clearly communicated, but the transmission overhead and transaction interruptions increase

Engineering Contradiction:
Improveoperation status informationVSAvoidtransmission time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent merges multiple completion responses containing operation status information into a single completion packet. This consolidation ensures that all operation status information is communicated to the host without the time loss associated with multiple separate transmission transactions, as the combined packet is transmitted in a single operation.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If completion responses are buffered and transmitted in batches, then transmission efficiency is improved, but the device complexity increases due to buffer management requirements

Engineering Contradiction:
Improvetransmission efficiencyVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a completion packet as an intermediary structure that mediates between multiple completion responses and the host. This completion packet serves as a container that simplifies buffer management by providing a standardized format for accumulating and transmitting completion responses, thereby improving transmission efficiency while minimizing the complexity increase associated with buffer management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10496281B2Data storage device, data processing system and method of operation
Publication Date: 2019.12.03 SAMSUNG ELECTRONICS CO LTD
  • US10496281B2 patent drawing
  • US10496281B2 patent drawing
  • US10496281B2 patent drawing

AI summary

A data processing system includes a host capable of pipelining execution of a command set including a plurality of commands by storing the commands in a buffer, and a data storage device including a NVMe controller that receives the commands and controls execution of data access operations corresponding to the respective commands, generates a completion response upon successfully executing each one of the commands, and stores the resulting completion responses in a buffer, wherein the NVMe controller extracts at least two of the completion responses stored in the buffer to generate a completion packet and transmits the completion packet to the host during a single transaction.