IP Library › Granted Patent US 11,182,104
Granted Patent B2
US 11,182,104 · App. 16/416,805 · Granted Nov 23, 2021

Method of operating storage device with a plurality of streams using a data classifier, storage device performing the same and storage system including the same

Inventors: Byeong-Hui Kim (Hwaseong-si, KR); Jung-Min Seo (Seongnam-si, KR); Hyeon-gyu Min (Seoul, KR); Seung-Jun Yang (Hwaseong-si, KR); Joo-Young Hwang (Suwon-si, KR)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0655G06F3/0604G06F3/0679G06N3/08
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 11,182,104
App. No.
16/416,805
Granted
Nov 23, 2021
Kind
B2
Abstract

In a method of operating a storage device, the storage device includes a plurality of memory blocks. A data write request and target data to be written are received. Using a data classifier, such as a neural network model, the target data is assigned to a stream selected from a plurality of streams based on a data property of the target data. The target data is written into a memory block assigned to a stream selected for assignment of the target data, such that target data that has been assigned to a stream are written into the one or more memory blocks assigned to the stream.

Claims (62)

1. A method of operating a storage device including a plurality of memory blocks of a memory device, the method comprising:

receiving a data write request and target data to be written;

assigning the target data to a stream selected from a plurality of streams using a data classifier that is configured to select the stream from the plurality of streams based on a data property of the target data, the data classifier including a set of learnable filters; and

writing the target data into a memory block selected from the plurality of memory blocks forming write data, wherein the memory block has been assigned to the stream to which the target data has been assigned;

training the data classifier during the operation of the storage device; and

changing a number of the plurality of streams to the plurality of memory blocks based on the training of the data classifier,

wherein each of the learnable filters slides across a width or height of an input volume during a forward pass of the target data.

2. The method of claim 1 , wherein

the data property is a change period of the target data, and

respective streams of the plurality of streams represent the change period of the target data assigned to the stream.

3. The method of claim 2 , wherein assigning the target data to one of the plurality of streams includes,

assigning the target data to a first stream selected among the plurality of streams on condition of determining that the change period of the target data is shorter than a first reference time, and

assigning the target data to a second stream among the plurality of streams on condition of determining that the change period of the target data is longer than or equal to the first reference time.

4. The method of claim 1 , wherein respective streams of the plurality of streams represent a regularity of the target data.

5. The method of claim 4 , wherein assigning the target data to one of the plurality of streams includes,

assigning the target data to a first stream selected from the plurality of streams on condition of determining that a plurality of data bits of the target data have the regularity, and

assigning the target data to a second stream selected from the plurality of streams on condition of determining that the plurality of data bits of the target data does not have the regularity.

6. The method of claim 1 , wherein assigning the target data to one of the plurality of streams includes,

assigning the target data to a first stream selected from the plurality of streams on condition of determining that a plurality of data bits of the target data has a pattern, and

assigning the target data to a second stream selected from the plurality of streams on condition of determining that the plurality of data bits of the target data does not have the pattern.

7. The method of claim 1 , wherein assigning the target data to one of the plurality of streams includes,

assigning the target data to a first stream selected from the plurality of streams on condition of determining that a plurality of data bits of the target data has a first pattern, and

assigning the target data to a second stream selected from the plurality of streams on condition of determining that the plurality of data bits of the target data has a second pattern.

8. The method of claim 1 , wherein writing the target data into the memory block includes writing the target data into a first memory block selected among the plurality of memory blocks for assignment to a first stream selected from the plurality of streams on condition of assigning the target data to the first stream.

9. The method of claim 1 , wherein writing the target data into the memory block includes assigning a free memory block selected among the plurality of memory blocks to a first stream on condition of determining that a first memory block has not yet been assigned to the first stream.

10. The method of claim 1 , wherein writing the target data into the memory block includes assigning a free memory block selected among the plurality of memory blocks to a first stream on condition of determining that a storage space in a first memory block that has been assigned to the first stream is insufficient to store the target data.

11. The method of claim 1 , further comprising:

training the data classifier before assigning the target data to the stream selected from the plurality of streams.

12. The method of claim 1 , wherein

the training of the data classifier is performed in real time.

13. The method of claim 12 , wherein

the changing the number of the plurality of streams is based on the real time training of the data classifier.

14. A storage device comprising:

a plurality of memory blocks; and

a storage controller configured to

receive a data write request and target data to be written,

assign the target data to a stream selected from a plurality of streams using a data classifier that is configured to select the stream from the plurality of streams based on a data property of the target data, the data classifier including a set of learnable filters,

write the target data into a memory block selected from the plurality of memory blocks forming write data, wherein the memory block has been assigned to the stream to which the target data has been assigned,

train during an operation of the storage device, and

change a number of the plurality of streams to the plurality of memory blocks based on the training,

wherein each of the learnable filters slides across a width or height of an input volume during a forward pass of the target data.

15. The storage device of claim 14 , wherein

the storage controller includes at least one processor, and

the data classifier is driven by the at least one processor.

16. The storage device of claim 14 , further comprising:

at least one processor located outside the storage controller, and

the data classifier is driven by the at least one processor.

17. The storage device of claim 14 , wherein the data classifier is driven by at least one processor located outside the storage device.

18. The storage device of claim 14 , further comprising:

a buffer memory configured to temporarily store the target data before the target data is written into the memory block.

19. A storage system comprising:

a host configured to provide a data write request and target data; and

a storage device including a plurality of memory blocks and a storage controller configured to write the target data into the plurality of memory blocks based on the data write request,

wherein the storage controller includes a data classifier that is configured to select a stream from a plurality of streams based on a data property of the target data, the data classifier including a set of learnable filters,

wherein the storage controller is configured to

receive the data write request and the target data,

assign the target data to the stream selected from the plurality of streams using the data classifier,

write the target data into a memory block that is assigned to the stream forming write data,

train during an operation of the storage device, and

change a number of the plurality of streams to the plurality of memory blocks based on the training,

wherein each of the learnable filters slides across a width or height of an input volume during a forward pass of the target data.

20. The storage system of claim 19 , wherein assigning the target data to the stream selected from the plurality of streams and writing the target data into the memory block are performed independently of a control of the host.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2019
From: KIM, BYEONG-HUI; SEO, JUNG-MIN; MIN, HYEON-GYU; YANG, SEUNG-JUN; HWANG, JOO-YOUNG
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 049238/0382 →
Priority Claims (1)
KR 10-2018-0138077 · Nov 12, 2018 · national
Continuity (1)
Related Publication 20200150892A1 · May 14, 2020
Cited By (1)
US 12,373,104