Merging data from single-level cell block to multiple-level cell block using scrambler with different seeds
First Claim
1. A data storage device, comprising:
- a memory device, comprising a plurality of memory blocks, wherein the memory blocks comprise a plurality of single-level cell blocks and a plurality of multiple-level cell blocks, and wherein the single-level cell blocks comprise at least a first single-level cell block and a second single-level cell block; and
a controller, coupled to the memory device and comprising a scrambler and an encoder,wherein when the controller receives first data to be written in the memory device from a host device, the scrambler is configured to perform data scrambling on the first data according to a first set of random seeds, the encoder is configured to encode the scrambled first data and the controller is configured to write the scrambled and encoded first data in the first single-level cell block, andwhen the controller receives second data to be written in the memory device from the host device, the scrambler is configured to perform data scrambling on the second data according to a second set of random seeds, the encoder is configured to encode the scrambled second data and the controller is configured to write the scrambled and encoded second data in the second single-level cell block,wherein the first set of random seeds and the second set of random seeds are different,wherein in response to a valid page count corresponding to more than one single-level cell block being greater than a threshold, the controller is configured to execute a first merge procedure to directly write the data stored in the single-level cell blocks with the valid page count greater than the threshold into one or more of the multiple-level cell blocks,wherein in response to the valid page count corresponding to one single-level cell block not being greater than the threshold, the controller is configured to execute a second merge procedure to determine whether data stored in physical pages of an single-level cell block is all valid,wherein in response to the data stored in one physical page of the single-level cell block not being all valid, the controller is configured to read valid data of valid pages of the single-level cell block and store the valid data of the valid pages in a buffer,wherein in response to the amount of valid data that can be written to a multiple-level cell block having been collected in the buffer, the valid data is written into one of the multiple-level cell blocks.
1 Assignment
0 Petitions
Accused Products
Abstract
A data storage device includes a memory device and a controller. The memory device includes multiple memory blocks. The memory blocks include single-level cell blocks and multiple-level cell blocks. The controller is coupled to the memory device. When the controller executes a predetermined procedure to write data stored in the single-level cell blocks into the multiple-level cell blocks, the controller is configured to determine whether a valid page count corresponding to each single-level cell block is greater than a threshold, and when the valid page count corresponding to more than one single-level cell block is greater than the threshold, the controller is configured to execute a first merge procedure to directly write the data stored in the single-level cell blocks with the valid page count greater than the threshold into one or more of the multiple-level cell blocks.
-
Citations
12 Claims
-
1. A data storage device, comprising:
-
a memory device, comprising a plurality of memory blocks, wherein the memory blocks comprise a plurality of single-level cell blocks and a plurality of multiple-level cell blocks, and wherein the single-level cell blocks comprise at least a first single-level cell block and a second single-level cell block; and a controller, coupled to the memory device and comprising a scrambler and an encoder, wherein when the controller receives first data to be written in the memory device from a host device, the scrambler is configured to perform data scrambling on the first data according to a first set of random seeds, the encoder is configured to encode the scrambled first data and the controller is configured to write the scrambled and encoded first data in the first single-level cell block, and when the controller receives second data to be written in the memory device from the host device, the scrambler is configured to perform data scrambling on the second data according to a second set of random seeds, the encoder is configured to encode the scrambled second data and the controller is configured to write the scrambled and encoded second data in the second single-level cell block, wherein the first set of random seeds and the second set of random seeds are different, wherein in response to a valid page count corresponding to more than one single-level cell block being greater than a threshold, the controller is configured to execute a first merge procedure to directly write the data stored in the single-level cell blocks with the valid page count greater than the threshold into one or more of the multiple-level cell blocks, wherein in response to the valid page count corresponding to one single-level cell block not being greater than the threshold, the controller is configured to execute a second merge procedure to determine whether data stored in physical pages of an single-level cell block is all valid, wherein in response to the data stored in one physical page of the single-level cell block not being all valid, the controller is configured to read valid data of valid pages of the single-level cell block and store the valid data of the valid pages in a buffer, wherein in response to the amount of valid data that can be written to a multiple-level cell block having been collected in the buffer, the valid data is written into one of the multiple-level cell blocks. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for processing data stored in a memory device, suitable for a data storage device, the data storage device comprising the memory device and a controller, the memory device comprising a plurality of memory blocks, the memory blocks comprising a plurality of single-level cell blocks and a plurality of multiple-level cell blocks, and the single-level cell blocks comprising at least a first single-level cell block and a second single-level cell block, the method comprising:
-
when writing first data in the memory device, scrambling the first data according to a first set of random seeds, encoding the scrambled first data and writing the scrambled and encoded first data in the first single-level cell block; when writing second data in the memory device, scrambling the second data according to a second set of random seeds, encoding the scrambled second data and writing the scrambled and encoded second data in the second single-level cell block, wherein the first set of random seeds and the second set of random seeds are different; in response to a valid page count corresponding to more than one single-level cell block being greater than a threshold, executing a first merge procedure to directly write the data stored in the single-level cell blocks with the valid page count greater than the threshold into one or more of the multiple-level cell blocks; in response to the valid page count corresponding to one single-level cell block not being greater than the threshold, executing a second merge procedure to determine whether data stored in physical pages of an single-level cell block is all valid; in response to the data stored in one physical page of the single-level cell block not being all valid, reading valid data of valid pages of the single-level cell block and storing the valid data of the valid pages in a buffer; and in response to the amount of valid data that can be written to a multiple-level cell block having been collected in the buffer, writing the valid data into one of the multiple-level cell blocks. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification