Data storage system with file system stream detection
US-9594513-B1 · Mar 14, 2017 · US
US2018113642A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2018113642-A1 |
| Application number | US-201715458968-A |
| Country | US |
| Kind code | A1 |
| Filing date | Mar 14, 2017 |
| Priority date | Oct 26, 2016 |
| Publication date | Apr 26, 2018 |
| Grant date | — |
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.
A Solid State Drive (SSD) is disclosed. The SSD may include a flash memory to store data and support for a number of device streams. The SSD may also include an SSD controller to manage reading data from and writing data to the flash memory. The SSD may also include a host interface logic, which may include a receiver to receive the commands associated with software streams from a host, a timer to time a window, a statistics collector to determine values for at least one criterion for the software streams from the commands, a ranker to rank the software streams according to the values, and a mapper to establish a mapping between the software streams and device streams.
Opening claim text (preview).
What is claimed is: 1 . A Solid State Drive (SSD), comprising: flash memory to store data; support for a plurality of device streams in the SSD; an SSD controller to manage reading data from and writing data to the flash memory responsive to a plurality of commands; and a host interface logic, including: a receiver to receive the plurality of commands from a host, the plurality of commands associated with a plurality of software streams; a timer to time a window; a statistics collector to determine at least one value for at least one criterion for each of the plurality of software streams during the window, responsive to the plurality of commands; a ranker to rank the plurality of software streams according to the at least one value for the at least one criterion for each of the plurality of software streams; and a mapper to establish a mapping, the mapping operative to map each software stream in a first subset of the plurality of software streams to a unique device stream in the plurality of device streams in the SSD and to map all of the software streams in a second subset of the plurality of software streams to a consolidated device stream of the plurality of device streams in the SSD. 2 . An SSD according to claim 1 , wherein the SSD is operative to receive an additional plurality of commands from the plurality of software streams and assign the additional plurality of commands to the plurality of device streams according to the mapping. 3 . An SSD according to claim 1 , wherein: the window is a sliding window; and the statistics collector is operative to adjust the at least one value for the at least one criterion within the window as each of the plurality of commands enters and exits the window. 4 . An SSD according to claim 1 , wherein the window is a discrete window. 5 . An SSD according to claim 1 , wherein: the first subset of the plurality of software streams includes a number of software streams with highest ranking, wherein the number of software streams with highest ranking is one less than a number of the plurality of device streams; and the second subset of the plurality of software streams includes all software streams not included in the first subset of the plurality of software streams. 6 . An SSD according to claim 1 , wherein the statistics collector is operative to determine a first value for a first criterion and a second value for a second criterion for each of the plurality of software streams. 7 . An SSD according to claim 6 , wherein: the ranker includes a first weight for the first criterion and a second weight for the second criterion; and the ranker is operative to rank the plurality of software streams according to a weighted sum of a first rank for the first value using the first weight and a second rank for the second value using the second weight. 8 . An SSD according to claim 6 , wherein: the ranker includes a threshold for the first criterion; and the ranker is operative to rank the plurality of software streams according to the first criterion for software streams whose first value is greater than the threshold for the first criterion and according to the second criterion for software streams whose first value is less than the threshold for the first criterion. 9 . A driver for use in a computer system, comprising: a receiver to receive a plurality of commands from a host, the plurality of commands associated with a plurality of software streams; a timer to time a window; a statistics collector to determine at least one value for at least one criterion for each of the plurality of software streams during the window, responsive to the plurality of commands; a ranker to rank the plurality of software streams according to the at least one value for the at least one criterion for each of the plurality of software streams; a mapper to establish a mapping, the mapping operative to map each software stream in a first subset of the plurality of software streams to a unique device stream in a plurality of device streams in a Solid State Drive (SSD) and to map all of the software streams in a second subset of the plurality of software streams to a consolidated device stream of the plurality of device streams in the SSD; a device stream identifier (ID) adder to add to each of an additional plurality of commands a device stream ID for a device stream corresponding to a software stream associated with each of the plurality of commands; and a transmitter to transmit each of the additional plurality of commands to the SSD. 10 . A driver according to claim 9 , wherein: the window is a sliding window; and the statistics collector is operative to adjust the at least one value for the at least one criterion within the window as each of the plurality of commands enters and exits the window. 11 . A driver according to claim 9 , wherein the window is a discrete window. 12 . A driver according to claim 9 , wherein: the first subset of the plurality of software streams includes a number of software streams with highest ranking, wherein the number of software streams with highest ranking is one less than a number of the plurality of device streams; and the second subset of the plurality of software streams includes all software streams not included in the first subset of the plurality of software streams. 13 . A driver according to claim 9 , wherein the statistics collector is operative to determine a first value for a first criterion and a second value for a second criterion for each of the plurality of software streams. 14 . A driver according to claim 13 , wherein: the ranker includes a first weight for the first criterion and a second weight for the second criterion; and the ranker is operative to rank the plurality of software streams according to a weighted sum of a first rank for the first value using the first weight and a second rank for the second value using the second weight. 15 . A driver according to claim 13 , wherein: the ranker includes a threshold for the first criterion; and the ranker is operative to rank the plurality of software streams according to the first criterion for software streams whose first value is greater than the threshold for the first criterion and according to the second criterion for software streams whose first value is less than the threshold for the first criterion. 16 . A method, comprising: receiving a plurality of commands associated with a plurality of software streams, the plurality of commands to be processed using a Solid State Drive (SSD) including a plurality of device streams; determining at least one value for at least one criterion for each of the plurality of software streams, responsive to the plurality of commands; identifying first and second subsets of the plurality of software streams responsive to the at least one value for the at least one criterion; generating a mapping, the mapping operative to map each software stream in the first subset of the plurality of software streams to a unique device stream of the plurality of device streams in the SSD and to map all of the software streams in the second subset of the plurality of software streams to a consolidated device stream of the plurality of device streams in the SSD; receiving a second plurality of commands associated with the plurality of software streams after generating the mapping; assigning each of the second plurality of commands to one of the plurality of device streams responsive to the mapping; and processing each of the second plurality of commands on the SSD using the ass
Improving or facilitating administration, e.g. storage management · CPC title
Organizing or formatting or addressing of data · CPC title
Non-volatile semiconductor memory arrays · CPC title
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Details of memory controller · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.