CPC G06F 3/0613 (2013.01) [G06F 3/0641 (2013.01); G06F 3/0679 (2013.01)] | 20 Claims |
1. A storage device, comprising:
a nonvolatile memory device configured to store data based on program modes for programming data with a preset number of bits; and
a storage controller including a target program mode table including a relationship between a reference count value and the program modes, the reference count value representing a number of times data is duplicated, the program modes including a first program mode, a second program mode and a third program mode, the first program mode corresponding to a case where a first value of a first reference count value is less than or equal to a first threshold, the third program mode corresponding to a case where a third value of the first reference count value is greater than or equal to a second threshold and the second program mode corresponding to a case where a second value of the first reference count value is between the first threshold and the second threshold,
wherein the storage controller is configured to:
in response to a program request being received from a host device, and in response to first data corresponding to the program request being already stored in the nonvolatile memory device, perform a deduplication operation in which the first data is logically programmed and not physically programmed,
in response to the program request or an erase request associated with the first data being received from the host device, update the first reference count value from the first value to the second value, the first reference count value representing a number of times the first data is duplicated, and
in response to a determination based on information in the target program mode table that the first program mode corresponding to the first value and the second program mode corresponding to the second value are different, transmit a first command and a first address to the nonvolatile memory device such that a first program operation in which the first data programmed with a first number of bits corresponding to the first program mode is re-programmed with a second number of bits corresponding to the second program mode is performed.
|