Method of consolidate data streams for multi-stream enabled ssds

US2018113642A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2018113642-A1
Application numberUS-201715458968-A
CountryUS
Kind codeA1
Filing dateMar 14, 2017
Priority dateOct 26, 2016
Publication dateApr 26, 2018
Grant date

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 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.

First claim

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

Assignees

Inventors

Classifications

  • Improving or facilitating administration, e.g. storage management · CPC title

  • G06F3/0638Primary

    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

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 US2018113642A1 cover?
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…
Who is the assignee on this patent?
Samsung Electronics Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F3/0638. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Apr 26 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).