IP Library Granted Patent US 10,289,309
Granted Patent B2
US 10,289,309 · App. 15/262,668 · Granted May 14, 2019

Automatic detection of multiple streams

Inventors: Shimon Tsalmon (Kfar-Saba, IL); Yaron Klein (Raanana, IL)
Assignee: Toshiba Memory Corporation
G06F3/061G06F3/0656G06F3/0659G06F3/0679
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,289,309
App. No.
15/262,668
Granted
May 14, 2019
Kind
B2
Abstract

A method of storing data in a storage device is disclosed. In one embodiment, the method includes receiving a write command comprising write data to be written to the storage device. The method further includes determining whether the write data belongs to a first open stream of write data if a logical block address corresponding to the write data is consecutive to, or within a given distance from, a logical block address of the first open stream of write data. The method further includes updating the logical block address of the first open stream of write data to the logical block address corresponding to the write data and resetting a timer of the first open stream of write data if the write data is determined to belong to the first open stream of write data. The method further includes closing the first open stream of write data when the timer expires.

Claims (69)

1. A method of storing data received in one or more streams of write data in a storage device, comprising:

receiving, at a stream detector in the storage device, a write command comprising one or more write data chunks to be written to the storage device;

determining whether a first write data chunk of the one or more write data chunks belongs to a first open stream of write data if a logical block address of the first write data chunk is within a predetermined distance from a logical block address of a second write data chunk associated with belonging to the first open stream of write data;

adding, the first write data chunk to the first open stream of write data and starting a timer associated with the first open stream of write data if the first write data chunk is determined to belong to the first open stream of write data; and

closing the first open stream of write data when the timer expires.

2. The method of claim 1 , wherein the predetermined distance is one logical block.

3. The method of claim 1 , further comprising:

writing the first open stream of write data from the stream detector to a block of a flash memory device of the storage device after the first open stream of write data is closed.

4. The method of claim 1 , further comprising:

if the write data is not determined to belong to the first open stream of write data,

creating a second open stream of write data,

adding the first write data chunk to the second open stream of write data;

starting a second timer corresponding to the second open stream of write data; and

closing the second open stream of write data when the second timer expires.

5. The method of claim 4 , further comprising:

writing the second open stream of write data to a block of a flash memory device of the storage device after the second open stream of write data is closed.

6. The method of claim 1 , further comprising:

receiving a read command for a read data chunk stored in the storage device;

determining whether the read data chunk corresponding to the read command is part of a stream of data that was previously written to the storage device;

fetching the read data chunk and placing the stream of data that was previously written to the storage device in a memory buffer if the read data is determined to belong to the stream of data; and

fetching the read data chunk if the read data chunk is not determined to belong to any stream of data.

7. The method of claim 1 , further comprising:

detecting an object format of the first write data chunk;

determining whether the object format corresponds to a known object format not associated with the first open stream of write data;

opening a second stream of write data, adding the first write data chunk to the second stream of write data and starting a second timer for the second stream of write data if the object format is determined to correspond to the known object format; and

closing the second stream of write data when the second timer expires.

8. The method claim of claim 7 , further comprising:

extracting stream information from the write data chunk if the object format of the write data chunk corresponds to the known object format.

9. The method of claim 8 , wherein extracting stream information comprises scanning a header of the write data chunk.

10. The method of claim 8 , further comprising:

closing the second stream of write data when the extracted stream information reaches a predetermined object length, irrespective of when the second timer expires.

11. The method of claim 1 , wherein the timer has a predetermined time.

12. The method of claim 1 , further comprising:

adjusting a time of the timer based on a frequency of receiving a series of write data chunks belonging to the first open stream of write data.

13. The method of claim 1 , further comprising:

adjusting a time of the timer based on a distance of the logical block address of the write data chunk and the logical block address of a second write data chunk belonging to the first open stream of write data.

14. The method of claim 1 , wherein the storage device comprises an SSD.

15. A storage device comprising:

a stream detector communicatively coupled to a plurality of flash memory devices configured to store data received in one or more streams of write data, wherein the stream detector is configured to:

determine whether a first write data chunk of a write command belongs to a first open stream of write data if a logical block address of the write data chunk is within a predetermined distance from a logical block address of a second write data chunk belonging to the first open stream of write data,

add the first data chunk to the first open stream of write data and start a timer associated with the first open stream of write data if the first write data chunk is determined to belong to the open stream of write data, and

close the first open stream of write data when the timer expires.

16. The storage device of claim 15 , wherein the predetermined distance is one logical block.

17. The storage device of claim 15 , wherein the stream detector is further configured to:

write the first open stream of write data from the stream detector to a block of the flash memory devices after the first open stream of write data is closed.

18. The storage device of claim 15 , wherein the stream detector is further configured to:

create a second open stream of write data

add the first write data chunk to the second open stream of write data and start a second timer corresponding to the second open stream of write data if the first write data chunk is not determined to belong to the first open stream of write data, and

close the second open stream of write data when the second timer expires.

19. The storage device of claim 18 , wherein the stream detector is further configured to:

write the second open stream of write data to a block of the flash memory devices after the second open stream of write data is closed.

20. The storage device of claim 15 , wherein the stream detector is further configured to:

determine whether a read data chunk corresponding to a read command for the read data stored in the flash memory devices is part of a stream of data,

fetch the read data chunk and place remaining stream of data in a memory buffer communicatively coupled to the stream detector if the read data chunk is determined to belong to the stream of data, and

fetch the read data chunk, if the read data chunk is not determined to belong to any stream of data.

21. The storage device of claim 15 , wherein the stream detector is further configured to:

detect an object format of the first write data chunk,

determine whether the object format corresponds to a known object format not associated with the first open stream of write data,

open a second stream of write data, add the first write data chunk to the second stream of write data and start a second timer for the second stream of write data if the object format is determined to correspond to the known object format, and

close the second stream of write data when the second timer expires.

22. The storage device of claim 21 , wherein the stream detector is further configured to:

extract stream information from the first write data chunk if the object format of the first write data chunk corresponds to the known object format.

23. The storage device of claim 22 , wherein the stream detector is configured to extract stream information by scanning a header of the first write data chunk.

24. The storage device of claim 22 , wherein the stream detector is further configured to:

close the second stream of write data when the extracted stream information reaches a predetermined object length, irrespective of when the second timer expires.

25. The storage device of claim 15 , wherein the timer has a predetermined time.

26. The storage device of claim 15 , wherein the timer is adjusted based on a frequency of the stream detector receiving a series of write data chunks belonging to the first open stream of write data.

27. The storage device of claim 15 , wherein the timer is adjusted based on a distance between the logical block address of the first write data chunk and the logical block address of the second write data chunk belonging to the first open stream of write data.

28. The storage device of claim 15 , wherein the storage device comprises an SSD.

Assignments (5)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043397/0380 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2016
From: TSALMON, SHIMON; KLEIN, YARON
To: TOSHIBA CORPORATION
Reel/Frame 039703/0717 →
Continuity (1)
Related Publication 20180074700A1 · Mar 15, 2018
Cited By (1)
US 12,294,626