CPC G06F 12/0253 (2013.01) [G06F 3/0646 (2013.01); G06F 11/3037 (2013.01); G06F 11/3058 (2013.01); G06F 12/0246 (2013.01); G06F 12/0873 (2013.01); G06F 12/0882 (2013.01)] | 13 Claims |
1. A memory management method of a storage device, the method comprising:
programming write-requested data in a first memory block;
determining if all pages of the first memory block have been programmed with the write-requested data;
when there is an un-programmed page in the first memory block:
counting an elapse time of the first memory block from a time when a last page of the first memory block was programmed with the write-requested data;
triggering a garbage collection of at least a second memory block the storage device when the elapse time of the first memory block exceeds a threshold value; and
programming valid data collected, by the garbage collection, from the at least second memory block at a first clean page of the first memory block, the first clean page of the first memory block being a destination of the garbage collection;
including the first memory block in a free block list when the elapse time exceeds the threshold value;
selecting one of a plurality of memory blocks included in the free block list, based on a predetermined priority, wherein the selected memory block is programmed with the valid data,
wherein the priority is based on at least two of the elapse time, a number of clean pages, an erase count, a weakness characteristic, and an operating temperature of each of the plurality of memory blocks.
|