Storage Controller Read Latency via Scatter Gather List Pre-fetch
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
Data Source
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.


