Partial Host Buffer Fetching for NVMe Storage Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data transfer methods in data storage devices, such as NVMe, experience inefficiencies and latency due to the way host buffer fetching is handled, particularly in scenarios involving sequential write or read operations, where the device waits for host buffers to be available, leading to performance issues and quality of service (QoS) problems.

Innovation Solution

The data storage device parses and fetches physical region page (PRP) entries and/or scatter-gather list (SGL) entries, along with host buffer pointers, prior to scheduling commands, utilizing a controller with a host interface module, command scheduler, and initial buffer pointer fetcher to optimize buffer fetching based on device constraints and queue depth, thereby reducing latency and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the data storage device waits for host buffers to be available before executing commands, then data transfer reliability is improved, but data transfer speed and device productivity deteriorate due to latency and bubbles

Engineering Contradiction:
Improvedata transfer reliabilityVSAvoiddata transfer speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The controller performs preliminary fetching of host buffer pointers (PRP/SGL entries) immediately upon receiving a command, before the command is scheduled for execution. This preliminary action ensures that buffer information is available in advance, eliminating waiting time and bubbles during command execution, thus resolving the contradiction between reliability and productivity

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the controller fetches all host buffers immediately upon receiving commands, then data transfer speed is improved, but device complexity and memory resource requirements worsen

Engineering Contradiction:
Improvedata transfer speedVSAvoidcontroller complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The controller implements partial fetching by selectively fetching only the necessary number of PRP/SGL entries based on command characteristics and queue depth, rather than fetching all possible buffers. This partial action maintains high data transfer speed while avoiding excessive memory usage and controller complexity

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If the controller fetches host buffer pointers prior to scheduling commands, then latency is reduced and productivity improves, but the complexity of buffer management and device complexity increase

Engineering Contradiction:
Improvedevice performanceVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The controller automatically manages the fetching and caching of PRP/SGL entries as part of its normal command processing workflow. The initial buffer pointer fetcher operates autonomously to fetch buffer information in the background, eliminating the need for complex external buffer management mechanisms while reducing latency and improving productivity

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20230176777A1Immediate Partial Host Buffer Fetching
Publication Date: 2023.06.08 SANDISK TECHNOLOGIES LLC
  • US20230176777A1 patent drawing
  • US20230176777A1 patent drawing
  • US20230176777A1 patent drawing

AI summary

The present disclosure generally relates to improving data transfer in a data storage device. Not only prior to executing a command received from a host device, but even before scheduling the command, the data storage device parses the command and fetches physical region page (PRP) entries and/or scatter-gather list (SGL) entries. The fetching occurs just after receiving the command. Additionally, the host buffer pointers, which are described in PRP or SGL methods, associated with the entries are also fetched prior to scheduling the command. The fetching is a function of device constraints, queue depth, and/or tenant ID in a multi-tenant environment. The immediate fetching of at least part of the host buffers improves device performance, particularly in sequential write or read look ahead (RLA) scenarios.