Storage Controller Read Latency via Scatter Gather List Pre-fetch

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage devices face high read latency due to the time-consuming process of retrieving and processing scatter gather lists (SGLs) during read operations, especially when pre-fetching data that includes bit buckets which are subsequently discarded.

Innovation Solution

Initiating a pre-fetch operation of logical blocks from non-volatile memory before retrieving and processing the SGL, allowing the controller to identify and transfer only the requested logical blocks while skipping bit buckets, thereby reducing overall read latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the data storage device waits to retrieve and process the SGL before reading data, then it can accurately identify which logical blocks to transfer and which bit buckets to discard, but the read latency increases significantly

Engineering Contradiction:
Improveread latencyVSAvoiddata transfer control complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by initiating the pre-fetch read operation before the SGL is retrieved and processed. The controller starts reading logical blocks from non-volatile memory using the starting LBA and NLB parameters immediately, while the SGL retrieval and processing occur in parallel or subsequently. This allows the data read operation to begin earlier, reducing overall read latency even though the SGL processing must still occur to identify which blocks to transfer and which bit buckets to discard.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the data storage device pre-fetches a continuous segment of logical blocks before SGL retrieval, then read latency decreases, but the device may read and subsequently discard bit buckets that were not requested, wasting read operations

Engineering Contradiction:
Improveread operation speedVSAvoidwasted read operations on bit buckets
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies partial or excessive action by pre-fetching a continuous segment of logical blocks that may include more data than ultimately needs to be transferred. The controller reads a continuous range of logical blocks based on the starting LBA and NLB parameters, which may include bit buckets that will later be identified for discarding after SGL processing. This excessive reading action enables the pre-fetch to start earlier and overlap with SGL retrieval, improving read operation speed despite the waste of reading unnecessary bit buckets.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9110786B2Read operation prior to retrieval of scatter gather list
Publication Date: 2015.08.18 SANDISK TECHNOLOGIES LLC
  • US9110786B2 patent drawing
  • US9110786B2 patent drawing
  • US9110786B2 patent drawing

AI summary

A data storage device includes a non-volatile memory and a controller coupled to the non-volatile memory. The controller is configured to receive a read command from a host device. The read command includes a starting logical block address (LBA) of the non-volatile memory, a number of logical blocks to be read (NLB), and a pointer to a scatter gather list (SGL). The controller is also configured to instruct the non-volatile memory to read a plurality of logical blocks from the non-volatile memory based on the starting LBA and the NLB. The controller is further configured to, after instructing the non-volatile memory to read the plurality of logical blocks, retrieve the SGL based on the pointer. The controller is configured to transfer a subset of the plurality of logical blocks identified by the SGL to the host device.