Storage controller and storage device including the same and operating method thereof
US-2021223954-A1 · Jul 22, 2021 · US
US11960741B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11960741-B2 |
| Application number | US-202217588682-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 31, 2022 |
| Priority date | Jun 7, 2021 |
| Publication date | Apr 16, 2024 |
| Grant date | Apr 16, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The present disclosure generally relates to writing data to streams. A host device can instruct a data storage device to operate in implied streams mode such that the host device does not need to tell the data storage device the specific stream in which to write data. The data storage device would maintain a list of open append points of specific streams. Upon receiving a write command, the data storage device determines whether the write command is for an already open stream, and if so, write to the specific stream. If not, then the data storage device opens a new stream or write the data to an overflow stream.
Opening claim text (preview).
What is claimed is: 1. A data storage device, comprising: a memory device having stream architecture, the stream architecture dividing the memory device into a plurality of streams; and a controller coupled to the memory device, the controller configured to: enter an implied streams mode; receive a write command from a host device; and determine a stream associated with the write command based on one or more logical block addresses (LBAs) of the write command, wherein a stream identifier (ID) is not sent with the write command. 2. The data storage device of claim 1 , wherein the controller is further configured to divide the memory device into a discrete number of stream granularity size (SGS) contiguous LBA ranges. 3. The data storage device of claim 2 , wherein the controller is further configured to maintain a list of open append points, and wherein each open append point of the list of open append points is associated with a SGS LBA range of the discrete number of SGS contiguous LBA ranges. 4. The data storage device of claim 2 , wherein the controller is further configured to determine if the write command is for an open SGS LBA range of the discrete number of SGS contiguous LBA ranges. 5. The data storage device of claim 4 , wherein the controller is further configured to schedule the write command to the open SGS LBA range upon determining that the write command is for the open SGS LBA range. 6. The data storage device of claim 4 , wherein the controller is further configured to open a new append point for a new open SGS LBA range when the write command is not for the open SGS LBA range. 7. The data storage device of claim 6 , wherein the controller is further configured to schedule the write command to the new append point for the new open SGS LBA range. 8. The data storage device of claim 4 , wherein the controller is further configured to schedule the write command for a generic append point that takes overflow commands when the write command is not for the open SGS LBA range. 9. The data storage device of claim 4 , wherein the controller is further configured to merge two or more open SGS LBA ranges to a single open append point when the write command is not for the open SGS LBA range. 10. The data storage device of claim 9 , wherein the controller is further configured to schedule the write command to the single open append point. 11. A data storage device, comprising: a memory device having stream architecture, the stream architecture dividing the memory device into a plurality of streams; and a controller coupled to the memory device, the controller configured to: receive an indication from a host device to enter an implied streams mode, wherein the host device does not send a stream identifier (ID) with a write command during the implied streams mode; and determine a stream associated with a write command based on one or more logical block addresses (LBAs) for each write command received from the host device. 12. The data storage device of claim 11 , wherein the controller is further configured to determine that a first stream associated with a first write command is not for any open stream of a plurality of open streams based on the one or more LBAs of the first write command. 13. The data storage device of claim 12 , wherein the controller is further configured to determine if a threshold number of open streams is reached when the first stream associated with the first write command is not for any open stream of the plurality of open streams. 14. The data storage device of claim 13 , wherein the controller is configured to: open a new open stream when the threshold number of open streams is not reached; and program data of the first write command to a first open append point of the new open stream. 15. The data storage device of claim 13 , wherein, when the threshold number of open streams is reached, the controller is further configured to either: write data of the first write command to a generic append point, wherein the generic append point is for a stream granularity size (SGS) LBA range associated with overflow commands; close an open SGS LBA range, open a new SGS LBA range associated with the one or more LBAs of the first write command, and write the data of the first write command to a first open append point of the new SGS LBA range; or merge two or more SGS LBA ranges to a single open append point and write the data of the first write command to the single open append point. 16. The data storage device of claim 15 , wherein the open SGS LBA range that is closed is either: a least recently used SGS LBA range of a plurality of SGS LBA ranges; a SGS LBA range of the plurality of SGS LBA ranges having a least number of writes over a window of time; or a closest-to-the-end SGS LBA range of the plurality SGS LBA ranges, wherein the closest-to-the-end SGS LBA range is a SGS LBA range that is closest to an end of a current SGS LBA range and/or to an end of an open append superblock. 17. The data storage device of claim 15 , wherein the open SGS LBA range that is closed is based on a weighted combination of at least two of: a least recently used SGS LBA range of a plurality of SGS LBA ranges; a SGS LBA range of the plurality of SGS LBA ranges having a least number of writes over a window of time; and a closest-to-the-end SGS LBA range of the plurality SGS LBA ranges, wherein the closest-to-the-end SGS LBA range is a SGS LBA range that is closest to an end of a current SGS LBA range and/or to an end of an open append superblock. 18. A data storage device, comprising: memory means having stream architecture, the stream architecture dividing the memory means into a plurality of streams; and a controller coupled to the memory means, the controller configured to: program data of a write command to a stream of the plurality of streams, wherein the stream is selected based on one or more logical block addresses (LBAs) of the write command, wherein each stream has a plurality of stream granularity size (SGS) LBA ranges, and wherein a stream identifier (ID) is not included with the write command; and maintain a list of open append points, wherein the list of open append points is maintained in a flash translation layer (FTL) table, and wherein each open append point of the list of open append points is associated with a SGS LBA range of a plurality of SGS LBA ranges. 19. A data storage device, comprising: memory means having stream architecture, the stream architecture dividing the memory means into a plurality of streams; and a controller coupled to the memory means, the controller configured to: program a data of a write command to a stream of the plurality of streams, wherein the stream is selected based on one or more logical block addresses (LBAs) of the write command, wherein each stream has a plurality of stream granularity size (SGS) LBA ranges, and wherein a stream identifier (ID) is not included with the write command; determine that the stream is associated with a closed SGS LBA range; select and/or open an open append point for another SGS LBA range; and program the data of the write command to the open append point.
Management of blocks · CPC title
in relation to throughput · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.