Patent ID: 8762622

Claim:
A method of storing data in a flash storage device comprising SLC-mode MLC and normal mode MLC flash memory, the method comprising the steps of: receiving a write command comprising a logical block address from a host; mapping the logical block address to a physical address of one or more memory channels of non-volatile memory including SLC-mode flash memory MLC and normal mode MLC flash memory; checking an erase count of a data block corresponding with the physical address; moving a logical data block stored at the physical address to a second data block in the SLC-mode flash memory if the physical address is in the MLC flash memory and the erase count satisfies a predetermined threshold; identifying one or more lowermost write count values for one or more data blocks in each of one or more flash memory channels associated with the SLC-mode flash memory; selecting a write threshold value greater than the one or more lowermost write count values but lower than write count values associated with one or more other blocks in the one or more flash memory channels; and moving a data block stored in the SLC-mode flash memory back to the MLC flash memory when the stored data block has a write count satisfying the write threshold value.