SLC-MLC combination flash storage device
First Claim
1. A method of storing data in a flash storage device comprising non-volatile memory, the non-volatile memory comprising SLC and MLC flash memory, the method comprising the steps of:
- checking an erase count associated with a first data block in the MLC flash memory;
moving data stored in the first data block to a second data block in the SLC flash memory when the erase count satisfies a first threshold; and
moving the data from the second data block in the SLC flash memory to a third data block in the MLC flash memory when a write count associated with the second data block satisfies a second threshold and a number of data blocks in the SLC flash memory storing data therein satisfies a third threshold, the third data block being associated with a write count lower than the write count associated with the second data block.
8 Assignments
0 Petitions
Accused Products
Abstract
Flash memory drives and related methods are disclosed that operate to keep frequently written data, which results in frequently erased blocks, in SLC flash, and relatively static data in MLC flash. A flash drive according to the present disclosure keeps track of the number of times that data for each logical block address (LBA) has been written to the flash memory, and determines whether to store newly received data associated with a particular LBA in SLC flash or in MLC flash depending on the number of writes that have occurred for that particular LBA. For each logical block sent to the flash drive, a comparison is made of the write count of the associated LBA to a threshold. If the write count is above the threshold, the logical block is written to SLC flash. If the write count is below the threshold, the logical block is written to MLC flash.
52 Citations
21 Claims
-
1. A method of storing data in a flash storage device comprising non-volatile memory, the non-volatile memory comprising SLC and MLC flash memory, the method comprising the steps of:
-
checking an erase count associated with a first data block in the MLC flash memory; moving data stored in the first data block to a second data block in the SLC flash memory when the erase count satisfies a first threshold; and moving the data from the second data block in the SLC flash memory to a third data block in the MLC flash memory when a write count associated with the second data block satisfies a second threshold and a number of data blocks in the SLC flash memory storing data therein satisfies a third threshold, the third data block being associated with a write count lower than the write count associated with the second data block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A flash storage device comprising:
-
a volatile memory; one or more channels of non-volatile flash memory including SLC flash memory and MLC flash memory; and a controller configured to; check an erase count associated with a first data block in the MLC flash memory; move data stored in the first data block to a second data block in the SLC flash memory when the erase count satisfies a first threshold; and move the data from the second data block in the SLC flash memory to a third data block in the MLC flash memory when a write count associated with the second data block satisfies a second threshold and a number of data blocks in the SLC flash memory storing data therein satisfies a third threshold, the third data block being associated with a write count lower than the write count associated with the second data block. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory machine-readable storage medium including one or more sequences of machine-readable instructions for storing data in a flash storage device including SLC flash memory and MLC flash memory, wherein execution of the one or more sequences by one or more processors causes the one or more processors to perform the steps of:
-
checking an erase count associated with a first data block in the MLC flash memory; moving data stored in the first data block to a second data block in the SLC flash memory when the erase count satisfies a first threshold; and moving the data from the second data block in the SLC flash memory to a third data block in the MLC flash memory when a write count associated with the second data block satisfies a second threshold and a number of data blocks in the SLC flash memory storing data therein satisfies a third threshold, the third data block being associated with a write count lower than the write count associated with the second data block.
-
Specification