Skip to Main Content
Recently NAND flash memories are widely used as storage alternatives to hard disks in embedded systems. Different characteristics of NAND flash memories from hard disks include: a limited block erase count, the impossibility of in-place update, and asymmetry in operation granularity. Thus various garbage collection techniques for the NAND flash memories have been proposed. However, existing garbage collection techniques impede block wear leveling because they use the same method for both hot and cold data. In this paper, we propose efficient garbage collection and block management methods to improve block wear leveling and garbage collection speed. First of all, data are classified into three types according to modification frequency--hot data, cold data, and warm data--and different types of data are stored in different blocks. The erase cost is calculated considering data type, and then garbage collection is performed for the blocks whose erase costs exceed the threshold value. In addition, different block lists are created in RAM by data type, and the blocks are arranged in the order of their erase cost. In experiment results, the proposed methods show that the deviation value of block erase count is sharply reduced in comparison with other algorithms. The average time of the garbage collection decreases by up to 22.1% compares to the Greedy algorithm and up to 19.5% compares to the PCP algorithm.