US 11,860,777 B2
Storage device and a garbage collection method thereof
Kyungduk Lee, Seoul (KR); and Young-Seop Shim, Seoul (KR)
Assigned to SAMSUNG ELECTRONICS CO., LTD., Suwon-si (KR)
Filed by SAMSUNG ELECTRONICS CO., LTD., Suwon-si (KR)
Filed on Jul. 16, 2020, as Appl. No. 16/930,429.
Claims priority of application No. 10-2019-0127885 (KR), filed on Oct. 15, 2019.
Prior Publication US 2021/0109856 A1, Apr. 15, 2021
Int. Cl. G06F 12/02 (2006.01); G06F 12/0873 (2016.01); G06F 12/0882 (2016.01); G06F 3/06 (2006.01); G06F 11/30 (2006.01)
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
OG exemplary drawing
 
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.