IP Library Granted Patent US 10,282,324
Granted Patent B2
US 10,282,324 · App. 15/344,422 · Granted May 7, 2019

Smart I/O stream detection based on multiple attributes

Inventors: Janki S. Bhimani (Billerica, MA); Jingpei Yang (Santa Clara, CA); Changho Choi (San Jose, CA); Jianjian Huo (San Jose, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F13/18G06F3/0611G06F3/0647G06F3/0653G06F3/0688G06F12/0246G06F17/30353G06N3/00G06F2212/1016G06F2212/1036G06F2212/7201G06F2212/7202G06F2212/7205
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,282,324
App. No.
15/344,422
Granted
May 7, 2019
Kind
B2
Abstract

A multi-streaming memory system includes a memory, and a processor coupled to the memory, the processor executing a software component that is configured to identify multiple attributes that are each related to logical block addresses (LBAs), and that each correspond to each of a plurality of streams of data writes, evaluate an importance factor for each of the attributes for each of the streams, and clustering two or more of the LBAs by assigning a stream ID to each of the LBAs based on all of the importance factors for each of the LBAs and the assigned stream.

Claims (48)

1. A multi-streaming memory system, comprising:

a memory; and

a processor coupled to the memory, the processor executing a software component that is configured to improve stream assignment in multi-streaming flash drives by:

identifying attributes that are each related to logical block addresses (LBAs), that each correspond to each of a plurality of streams of data writes, and that each are indicative of an expected lifespan of data to be stored in a corresponding stream;

determining which group of streams of the streams correspond to concurrent data write requests occurring during each of multiple timestamp windows to evaluate an importance factor for one of the attributes indicating how likely a group of LBAs will be accessed together as one of the attributes for each of the streams by:

representing the LBAs of each of the streams of the group of streams in an element in a queue for each of the timestamp windows;

comparing each element with all other elements; and

identifying the LBAs of the streams of the group of streams that are each represented in each of a plurality of the elements;

clustering two or more of the LBAs into one or more streams of data writes by assigning a single stream ID to each of the two or more clustered LBAs based on the importance factors for each of the LBAs and the assigned stream, and based on an indication that the expected lifespan of the data of the two or more of the LBAs will be similar; and

writing the data of the streams of data writes.

2. The system of claim 1 , wherein the software component is further configured to assign a weight factor to one or more of the attributes, and

wherein the software component is configured to assign the stream ID to each of the LBAs by giving priority to the importance factors corresponding to the attributes over others of the importance factors based on the assigned weight factor.

3. The system of claim 1 , wherein the software component is configured to evaluate the importance factor for each of the attributes for each of the LBAs by generating an n×m feature matrix comprising n×m addresses, wherein n is a total number of the attributes and m is a total number of LBAs.

4. The system of claim 3 , wherein each of the addresses of the feature matrix corresponds to the importance factor, and comprises a single-bit binary value indicating whether a corresponding attribute of a corresponding one of the LBAs is important.

5. The system of claim 4 , wherein the software component is further configured to determine a value of the single-bit binary value based on whether a threshold corresponding to a corresponding one of the attributes is met.

6. The system of claim 5 , wherein the software component is further configured to assign a same stream ID to ones of the LBAs having matching binary values in corresponding ones of the addresses of the feature matrix.

7. The system of claim 1 , wherein the software component is further configured to generate a dictionary for assigning a stream ID to future LBA requests based on the importance factor for each of the attributes for each of the LBA requests, and

wherein the memory is configured to store the dictionary.

8. The system of claim 1 , wherein the attributes comprise an attribute of frequency, an attribute of temporal locality, an attribute of sequentiality, or an attribute of congruency, and

wherein the importance factor for each of the attributes corresponds to whether a number of accesses of any particular address is less than a frequency attribute threshold, whether addresses are accessed after a temporal locality attribute threshold of a maximum timestamp of a training trace, whether a corresponding previous LBA has a matching sequence within a sequentiality attribute window size, or whether a number of unique LBAs accessed within a timestamp window is less than a congruency attribute threshold.

9. A method of identifying attributes that are each related to a logical block address (LBA) corresponding to an input/output (I/O) stream of data in a multi-streaming memory device to improve stream assignment in multi-streaming flash drives, the method comprising:

detecting the input/output (I/O) stream corresponding to the memory device;

capturing a plurality of attributes corresponding to the LBA corresponding to the detected I/O stream, and indicating an expected lifespan of data to be stored in the detected I/O stream;

generating a feature matrix for indicating an importance factor of each of the attributes for the LBA;

determining which group of streams of the streams correspond to concurrent data write requests occurring during each of multiple timestamp windows to evaluate the importance factor for one of the attributes indicating how likely a group of LBAs will be accessed together by:

representing the LBAs of each of the streams of the group of streams in an element in a queue for each of the timestamp windows;

comparing each element with all other elements; and

identifying the LBAs of the streams of the group of streams that are each represented in each of a plurality of the elements;

clustering received data corresponding to two or more LBAs into one or more different streams of data writes based on the feature matrix, and based on an indication that the expected lifespan of the data of the two or more of the LBAs will be similar; and

writing the data of the streams of data writes.

10. The method of claim 9 , further comprising generating an analytical model based on the feature matrix for evaluating aspects of the clustering of the received data into different streams.

11. The method of claim 10 , further comprising introducing a relative weight factor to the analytical model to differently weight the captured attributes based on a level of importance of each of the attributes.

12. The method of claim 10 , further comprising generating a dictionary based on the analytical model for assigning a corresponding stream ID to a subsequently received stream by performing a lookup.

13. The method of claim 9 , wherein clustering the received data into different streams comprises assigning a corresponding stream ID to the LBA.

14. The method of claim 9 , wherein the plurality of attributes comprise frequency, temporal locality, sequentiality, or congruency.

15. The method of claim 9 , wherein each address of the feature matrix comprises a single-bit for indicating the importance factor corresponding to the attribute corresponding to the LBA.

16. The method of claim 9 , wherein clustering the received data into different streams comprises determining which logical block addresses (LBAs) correspond to the received data.

17. The method of claim 16 , wherein clustering the received data into different streams comprises determining which LBAs are concurrently accessed during each of a plurality of timestamp windows.

18. The method of claim 9 , wherein the attributes comprise an attribute of frequency, an attribute of temporal locality, an attribute of sequentiality, or an attribute of congruency, and

wherein the importance factor for each of the attributes corresponds to whether a number of accesses of any particular address is less than a frequency attribute threshold, whether addresses are accessed after a temporal locality attribute threshold of a maximum timestamp of a training trace, whether a corresponding previous LBA has a matching sequence within a sequentiality attribute window size, or whether a number of unique LBAs accessed within a timestamp window is less than a congruency attribute threshold.

19. A method of assigning an importance factor of an attribute to a stream of data in a multi-streaming memory device to improve stream assignment in multi-streaming flash drives, the method comprising:

receiving streams of data respectively corresponding to logical block addresses (LBAs);

determining whether a number of unique LBAs accessed in each of a plurality of timestamp windows is less than a threshold;

inserting symbols respectively corresponding to the timestamp windows and respectively representing the LBAs into a queue when the number of unique LBAs corresponding thereto is not less than the threshold;

determining whether the queue is full with the inserted symbols;

determining which of the LBAs are concurrently accessed during each of multiple ones of the timestamp windows when the queue is full; and

writing data of the streams of data.

20. The method of claim 19 , further comprising assigning a same stream ID to the streams corresponding to the LBAs that are determined to have been concurrently accessed during each of the multiple ones of the timestamp windows.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2016
From: BHIMANI, JANKI; YANG, JINGPEI; CHOI, CHANGHO; HUO, JIANJIAN
To: SAMSUNG ELECTRONICS CO., LTD
Reel/Frame 040811/0726 →
Continuity (5)
Continuation In Part 15144588 · May 2, 2016
Provisional Application 62192045 · Jul 13, 2015
Provisional Application 62245100 · Oct 22, 2015
Provisional Application 62383302 · Sep 2, 2016
Related Publication 20170075832A1 · Mar 16, 2017
Cited By (2)
US 12,287,981 US 12,373,104