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. https://codeshoppy.com/shop/product/location-based-garbage-management-system-for-smart-city/ 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.
Flash memories are used today in various embedded systems such as mobile phones, PDAs, and Digital Cameras. The flash memory is emerging as a common storage device that replaces hard disks because it has many advantages such as small size, high durability, and low power consumption . However, NAND flash memories have a few limitations due to their physical characteristics . First, before new data can be written in an area with data saved on it, the area must be erased. Although reading and writing can be done in page units, erasing must be performed in block units. Writing errors occur in a block that has exceeded the allowed erase count. Therefore, all areas of the flash memory should be evenly used; otherwise, the available storage space can rapidly be reduced. To overcome these limits, NAND flash memories write new data in a different space and invalidate old data when modifYing data. Code Shoppy Also, to secure sufficient free blocks, when there are blocks in which invalid and valid data are mixed, the valid data are moved to empty blocks and existing blocks are deleted and turned into free blocks. This technique is called “garbage collection .” Because flash memories take more time to erase than to read and write, it is important to minimize the erase count when performing garbage collection. Furthermore, the blocks to be erased should be selected while considering block wear leveling and the cost of copying valid pages to a new block. Existing garbage collection methods and block management methods cannot guarantee block wear leveling, because they do not consider data type in terms of modification frequency. To overcome these problems, this paper proposes an efficient garbage collection and block management by taking into account data type.
Existing garbage collection methods have to search for blocks that have the optimum erase cost after determining the erase cost of each block before deleting blocks. Thus, the garbage collection time increases in proportion to the flash memory size. Furthermore, they do not show good performance for wear leveling because the existence of hot and cold data cannot be reflected. In this study, data are classified into hot data, warm data, and cold data based on the frequency of the data updates, and each data is stored in different blocks by data type. In addition, different erase costs are applied to different data types, and block lists are separately created in RAM according to data type to promote efficient garbage collection. Finally, an effective free block allocation method based on data type is proposed for wear leveling of all blocks. Experiment results show that the standard deviation of the erase count is low regardless of the flash memory usage. In addition, the garbage collection time is shortened by reducing the time for searching for the target blocks for the garbage collection.