Memory system and operating method of a controller of the memory system
A memory system includes memory blocks and a controller. The controller configured to perform a wear levelling operation on the memory blocks based on a reference count table and an erase count table.
1 . A memory system comprising:
memory blocks; and
a controller configured to perform a wear levelling operation on the memory blocks based on a reference count table and an erase count table,
wherein the reference count table includes reference counts, the number of which is equal to the number of memory blocks, the reference counts being respectively associated with the memory blocks;
wherein the erase count table includes erase counts of the respective memory blocks; and
wherein the controller determines, at a first time point associated with a first memory block among the memory blocks, an average of the erase counts included in the erase count table in order to update a first reference count corresponding to the first memory block, and stores the determined average as the first reference count, the first reference count being not updated even if the average of the erase counts vary until a second time point associated with the first memory block.
2 . The memory system of claim 1 , wherein the first time point is a time point when the first memory block becomes open.
3 . The memory system of claim 1 , wherein the first time point is a time point when the first memory block becomes erased.
4 . The memory system of claim 1 , wherein the controller is configured to perform, based on the reference count table and the erase count table, the wear levelling operation by selecting a source memory block and a destination memory block and moving data from the source memory block to the destination memory block.
5 . The memory system of claim 4 , wherein, during the wear levelling operation, the controller is configured to select the first memory block as the source memory block when a first subtraction value, obtained by subtracting the first reference count from a current average of the erase counts of the memory blocks, is greater than a threshold value.
6 . The memory system of claim 4 , wherein, during the wear levelling operation, the controller is configured to select, as the source memory block, the first memory block when a first subtraction value, obtained by subtracting the first reference count from a current average of the erase counts of the memory blocks is a maximum one of subtraction values obtained for the memory blocks by subtracting the respective reference counts from the current average of the erase counts of the memory blocks.
7 . The memory system of claim 1 , wherein, after completing the wear levelling operation, the controller is configured to perform a subsequent wear levelling operation when a second subtraction value is greater than a threshold value, the second subtraction value being obtained by subtracting an erase count of a source memory block of the completed wear levelling operation from a current average of the erase counts of the memory blocks.
8 . The memory system of claim 1 , wherein, after completing the wear levelling operation, the controller is configured to perform a subsequent wear levelling operation when a third subtraction value is greater than a threshold value, the third subtraction value being obtained by subtracting a current average of the erase counts of the memory blocks from an erase count of a destination memory block of the completed wear levelling operation.
9 . A memory system comprising:
memory blocks; and
a controller configured to:
maintain an erase count table that includes erase counts of the respective memory blocks;
determine, at a first time point associated with a first memory block among the memory blocks, an average of the erase counts and store the determined average as a first reference count corresponding to the first memory block, the first reference count being not updated even if the average of the erase counts vary until a second time point associated with the first memory block;
determine the first memory block as a cold memory block based on a first subtraction value obtained by subtracting the first reference count from a current average of the erase counts of the memory blocks; and
perform a wear levelling operation by moving data from the cold memory block to a hot memory block selected by the controller.
10 . The memory system of claim 9 , wherein the first time point is a time point when the first memory block becomes open.
11 . The memory system of claim 9 , wherein the first time point is a time point when the first memory block becomes erased.
12 . The memory system of claim 9 , wherein the controller determines the first memory block as the cold memory block when the first subtraction value is greater than a threshold value.
13 . The memory system of claim 9 , wherein, after completing the wear levelling operation, the controller is configured to perform a subsequent wear levelling operation when a second subtraction value is greater than a threshold value, the second subtraction value being obtained by subtracting an erase count of the cold memory block from the then-current average of the erase counts of the memory blocks.
14 . The memory system of claim 9 , wherein, after completing the wear levelling operation, the controller is configured to perform a subsequent wear levelling operation when a third subtraction value is greater than a threshold value, the third subtraction value being obtained by subtracting the then-current average of the erase counts of the memory blocks from an erase count of the hot memory block.
15 . An operating method of a controller of a memory system, the operating method comprising:
determining, at a first time point associated with a first memory block among memory blocks, an average of erase counts of the respective memory blocks in order to update a first reference count corresponding to the first memory block, and storing the determined average as the first reference count, the first reference count being not updated even if the average of the erase counts vary until a second time point associated with the first memory block; and
performing a wear levelling operation on memory blocks based on a reference count table and an erase count table,
wherein the reference count table includes reference counts equal in number to the memory blocks, the reference counts being respectively associated with the memory blocks, and the erase count table includes the erase counts.
16 . The operating method of claim 15 , wherein the performing of the wear levelling operation includes selecting, as a source memory block, the first memory block when a first subtraction value is greater than a threshold value, the first subtraction value being obtained by subtracting the first reference count from a current average of the erase counts of the memory blocks.
17 . The operating method of claim 15 , further comprising, after completing the performing of the wear levelling operation, performing a subsequent wear levelling operation when a second subtraction value is greater than a threshold value, the second subtraction value being obtained by subtracting an erase count of a source memory block of the completed wear levelling operation from a current average of the erase counts of the memory blocks.