Storage device for classifying data based on stream class number and operating method thereof
Abstract
A storage device includes: a buffer to receive first data and second data from outside, and store the first data and the second data on a first page; a non-volatile memory to store the first data and the second data in a first block; and a controller to perform a program operation that programs the first and second data in free blocks different from each other through a garbage collection. The first data may include a first stream class number identifying characteristics of the first data, and the second data may include a second stream class number identifying characteristics of the second data and is different from the first stream class number. The controller may transmit information of the program operation to the outside before performing the program operation. The controller may perform the program operation when receiving a program execution permission command from the outside.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A storage device, comprising:
a buffer configured to receive first data and second data from outside, and store the first data and the second data on a first page; a non-volatile memory configured to store the first data and the second data in a first block; and a controller configured to perform a program operation that programs the first and second data in free blocks different from each other through a garbage collection, wherein: the first data includes a first stream class number that identifies characteristics of the first data, and the second data includes a second stream class number that identifies characteristics of the second data and is different from the first stream class number, the controller is configured to transmit information of the program operation to the outside before performing the program operation, and the controller is configured to perform the program operation when receiving a program execution permission command from the outside.
2 . The storage device as claimed in claim 1 , further comprising a physical mapping table buffer, wherein:
the physical mapping table buffer is configured to store a physical mapping table that stores a first physical block address corresponding to a first logical block address of the first data, and store a second physical block address corresponding to a second logical block address of the second data, and the controller is configured to update the physical mapping table when the program operation is performed.
3 . The storage device as claimed in claim 2 , further comprising a stream mapping table buffer, wherein:
the stream mapping table buffer is configured to store a stream mapping table that stores the first stream class number corresponding to the first logical block address of the first data, and store the second stream class number corresponding to the second logical block address of the second data, the controller is configured to determine characteristics of the first data and characteristics of the second data using the stream mapping table.
4 . The storage device as claimed in claim 1 , wherein:
the first data stored in the non-volatile memory includes a first extra data space, and the second data includes a second extra data space, and the first stream class number is stored in the first extra data space, and the second stream class number is stored in the second extra data space.
5 . The storage device as claimed in claim 1 , wherein the controller is configured to:
determine whether an amount of types of stream class numbers included in the first block is smaller than a pre-defined amount, perform the garbage collection when the amount is determined to be smaller than the pre-defined amount, and perform no garbage collection when the amount is determined not to be smaller than the pre-defined amount.
6 . The storage device as claimed in claim 1 , wherein the controller is configured to:
determine whether a number of valid data included in the first block is smaller than a pre-defined number, perform the garbage collection when the number of valid data included in the first block is determined to be smaller than the pre-defined number, and perform no garbage collection when the number of valid data included in the first block is determined not to be smaller than the pre-defined number.
7 . The storage device as claimed in claim 1 , wherein the controller is configured to:
calculate a difference value between an amount of free blocks consumed through the program operation and an amount of free blocks generated through the program operation, and perform the garbage collection when the difference value is calculated to be greater than a pre-defined value.
8 . The storage device as claimed in claim 1 , wherein the information includes at least one of a number of free blocks, a power required at a time of the program operation, and a number of free blocks generated after the program operation.
9 . A storage device, comprising:
a host configured to transmit data including stream class numbers that are classified depending on characteristics of data; a non-volatile memory including a plurality of blocks in which data received from the host are arbitrarily stored regardless of the stream class numbers; and a controller configured to perform a program operation that programs data having a same stream class number in a same block, on the basis of the stream class numbers that are classified depending on the characteristics of the data, wherein: the controller is configured to transmit information of the program operation to the host before performing the program operation, and the controller performs the program operation when receiving a program execution permission command from the host.
10 . The storage device as claimed in claim 9 , wherein:
the data stored in the non-volatile memory includes an extra data space, the stream class numbers are stored in the extra data space.
11 . The storage device as claimed in claim 9 , wherein the controller is configured to:
determine whether an amount of types of stream class numbers included in the block is smaller than a pre-defined amount, perform the program operation when the amount of types of stream class numbers included in the block is determined to be smaller than the pre-defined amount, and not perform the program operation when the amount of types of stream class numbers included in the block is determined not to be smaller than the pre-defined amount.
12 . The storage device as claimed in claim 9 , wherein the controller is configured to:
determine whether a number of valid data included in the block is smaller than a pre-defined number, perform the program operation when the number of valid data included in the block is determined to be smaller than the pre-defined number, and not perform the program operation when the number of valid data included in the block is determined not to be smaller than the pre-defined number.
13 . The storage device as claimed in claim 9 , wherein the controller is configured to:
calculate a difference value between an amount of free blocks consumed through the program operation and an amount of free blocks generated through the program operation, and perform the program operation when the difference value is calculated to be greater than a pre-defined value.
14 . The storage device as claimed in claim 9 , wherein the information includes at least one of an amount of free blocks consumed through the program operation, an amount of free blocks generated through the program operation, a power required at a time of the program operation, and a number of free blocks generated after the program operation.
15 . An operating method of a storage device, comprising:
receiving, from a host, data including stream class numbers that are classified depending on characteristics of data; storing the data in a free block in a non-volatile memory; determining whether the data needs to be classified depending on the stream class numbers; when it is determined that the data need to be classified depending on the stream class numbers, determining a victim block in which classification is performed through garbage collection, among blocks in which the data are stored in the non-volatile memory; transmitting information about performing the garbage collection on the victim block to the host; and when an executable message of the garbage collection is received from the host, performing the garbage collection on the victim block, and classifying the data in the victim block depending on the stream class numbers to program the data in the free block.
16 . The operating method of the storage device as claimed in claim 15 , wherein:
the stream class numbers are stored in an extra data space of the data in the non-volatile memory, and the characteristics of the data are determined on the basis of the extra data space.
17 . The operating method of the storage device as claimed in claim 15 , wherein the determination of the victim block includes:
measuring an amount of types of stream class numbers included in each of blocks in which the data are stored; comparing the amount of types of stream class numbers with a pre-defined amount; and determining the block in which the amount of types of stream class numbers is determined to be smaller than the pre-defined amount, as the victim block.
18 . The operating method of the storage device as claimed in claim 15 , wherein the determination of the victim block includes:
measuring a number of valid data included in each block in which the data are stored, comparing the number of valid data with a pre-defined number, and determining a block in which the number of valid data is determined to be smaller than the pre-defined number, as the victim block.
19 . The operating method of the storage device as claimed in claim 15 , wherein the determination of the victim block includes:
measuring each of an amount of free blocks to be generated by performing the garbage collection and an amount of free blocks to be eliminated through the garbage collection, on at least some of the blocks in which the data are stored, comparing the amount of free blocks to be generated with the amount of free blocks to be eliminated, and when the amount of free blocks to be generated is determined to be larger than the amount of free blocks to be eliminated, determining at least some of the blocks in which the data are stored as the victim block.
20 . The operating method of the storage device as claimed in claim 15 , wherein the information includes at least one of a number of free blocks, a power required at a time of the garbage collection, and a number of free blocks generated after the garbage collection.Join the waitlist — get patent alerts
Track US2021397550A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.