×

Merging data from single-level cell block to multiple-level cell block using scrambler with different seeds

  • US 10,592,157 B2
  • Filed: 10/16/2018
  • Issued: 03/17/2020
  • Est. Priority Date: 11/13/2017
  • Status: Active Grant
First Claim
Patent Images

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.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×