Out-of-order data transfer mechanisms for data storage systems

US10095433B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10095433-B1
Application numberUS-201213659865-A
CountryUS
Kind codeB1
Filing dateOct 24, 2012
Priority dateOct 24, 2012
Publication dateOct 9, 2018
Grant dateOct 9, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A data storage system implements out-of-order data transfer. In one embodiment, the data storage system can retrieve from a host system a scatter gather list (SGL) associated with a data read command and generate a memory access table based on the retrieved SGL. The data storage system can further retrieve data from memory, and at least some data may be retrieved out of order. Retrieved data can be provided to the host system using the memory access table, and at least some data may be provided out of order. Data retrieval performance can be increased.

First claim

Opening claim text (preview).

What is claimed is: 1. A data storage system comprising: a non-volatile memory array; and a controller configured to: receive a read data command from a host system; retrieve from the host system a scatter gather list (SGL) associated with the read data command, the SGL comprising a plurality of entries associated with a plurality of logical addresses corresponding to logical data units stored in the non-volatile memory array; generate a memory access table using the SGL, the memory access table comprising a plurality of entries, wherein the plurality of entries includes a respective plurality of physical addresses translated from the plurality of logical addresses of the logical data units, wherein one of the plurality of logical addresses corresponding to one of the logical data units is associated with more than one of the plurality of physical addresses in the memory access table, and wherein one of the plurality of entries in the memory access table comprises a pointer to one of the plurality of entries in the SGL; generate, based at least in part on the memory access table, a plurality of requests to retrieve the logical data units stored in the non-volatile memory array and retrieve the logical data units, wherein at least some of logical data units are retrieved not in the same order as an order of the retrieval requests or an order of entries in the SGL; and provide to the host system, based at least in part on the memory access table, at least some of the logical data units retrieved not in the same order as the order of the plurality of retrieval requests. 2. The data storage system of claim 1 , wherein the plurality of entries of the memory access table are associated with a plurality of entries of the SGL and wherein the plurality of logical data units retrieved from the non-volatile memory array are associated with the plurality of entries of the memory access table. 3. The data storage system of claim 1 , wherein the controller is further configured to: determine that a retrieved logical data unit is associated with first and second entries of the memory access table, and divide the retrieved logical data unit into a first portion associated with the first entry of the memory access table and a second portion associated with the second entry of the memory access table. 4. The data storage system of claim 1 , wherein the plurality of requests comprises first and second requests, the first request associated with a first entry of the SGL and the second request associated with a second entry of the SGL that follows the first entry of the SGL, and wherein the controller is further configured to: retrieve at least some logical data units for the second request prior to retrieving at least some logical data units for the first request; and provide to the host system the at least some logical data units for the second request prior to providing to the host system the at least some logical data units for the first request. 5. The data storage system of claim 1 , wherein the plurality of entries of the memory access table comprise a first group of consecutive entries none of which include a pointer to at least one of the entries of the SGL and a second group of consecutive entries wherein all of the entries in the second group include a pointer to at least one of the entries of the SGL. 6. The data storage system of claim 5 , wherein at least one entry of the memory access table is associated with a third group of entries in the SGL, and wherein the controller is further configured to access the SGL to retrieve information associated with the entries in the third group of the SGL. 7. The data storage system of claim 6 , wherein the entries in the third group of the SGL are not consecutive. 8. The data storage system of claim 6 , wherein at least some of the entries in the third group of the SGL are not consecutive. 9. The data storage system of claim 5 , wherein the number of the entries of the second group of the memory access table is less than that of the entries of the first group of the memory access table. 10. The data storage system of claim 5 , wherein the at least one entry of the second group of the memory access table includes neither a physical address for a corresponding entry of the SGL, nor a size of data associated with the physical address. 11. In a data storage system comprising a non-volatile memory array and a controller, a method of executing data storage operations communicated by a host system, the method comprising: receiving a read data command from the host system; retrieving from the host system a scatter gather list (SGL) associated with the read data command, the SGL comprising a plurality of entries associated with a plurality of logical addresses corresponding to logical data units stored in the non-volatile memory array; generating a memory access table using the SGL, the memory access table comprising a plurality of entries, wherein the plurality of entries includes a respective plurality of physical addresses translated from the plurality of logical addresses of the logical data units, wherein one of the plurality of logical addresses corresponding to one of the logical data units is associated with more than one of the plurality of physical addresses in the memory access table, and wherein one of the plurality of entries in the memory access table comprises a pointer to one of the plurality of entries in the SGL; generating, based at least in part on the memory access table, a plurality of requests to retrieve a plurality of logical data units stored in the non-volatile memory array and retrieving the plurality of logical data units, wherein at least some of the logical data units are retrieved not in the same order as the order of the retrieval requests or the order of the entries in the SGL; and based at least in part on the memory access table, providing to the host system at least some of the logical data units retrieved not in the same order as the order of the plurality of retrieval requests, wherein the method is executed under the control of the controller. 12. The method of claim 11 , wherein the plurality of entries of the memory access table are associated with a plurality of entries of the SGL and wherein the plurality of logical data units retrieved from the non-volatile memory array are associated with the plurality of entries of the memory access table. 13. The method of claim 11 , further comprising: determining that a retrieved logical data unit is associated with first and second entries of the memory access table; and dividing the retrieved logical data unit into a first portion associated with the first entry of the memory access table and a second portion associated with the second entry of the memory access table. 14. The method of claim 11 , wherein the plurality of requests comprises first and second requests, the first request associated with a first entry of the SGL and the second request associated with a second entry of the SGL that follows the first entry of the SGL, and wherein the method further comprises: retrieving at least some logical data units for the second request prior to retrieving at least some logical data units for the first request; and providing to the host system the at least some logical data units for the second request prior to providing to the host system the at least some logical data units for the first request. 15. The method of claim 11 , wherein the plurality of entries of the memory access table comprise a first group of consecutive entries none of which include a pointer to at least one of the entries of

Assignees

Inventors

Classifications

  • in block erasable memory, e.g. flash memory · CPC title

  • G06F3/0628Primary

    making use of a particular technique · CPC title

  • Interfaces specially adapted for storage systems · CPC title

  • G06F3/0679Primary

    Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • Allocation control and policies · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10095433B1 cover?
A data storage system implements out-of-order data transfer. In one embodiment, the data storage system can retrieve from a host system a scatter gather list (SGL) associated with a data read command and generate a memory access table based on the retrieved SGL. The data storage system can further retrieve data from memory, and at least some data may be retrieved out of order. Retrieved data ca…
Who is the assignee on this patent?
Western Digital Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0628. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 09 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).