## 5 Evaluation and Analysis
### Experimental Results and Analysis with IOMeter Tool
#### 5.3.3. Garbage Collection and Endurance  
The endurance of NAND flash is one of the most important factors to take into account when analyzing the reliability of flash memory. The endurance of NAND flash is mainly affected by the number of block erase counts in the flash. We also present the total number of write and read operations and the number of valid pages that were copied to further exploit the garbage collection efficiency of Asymmetric Programming. All of the workloads were generated by IOMeter, and each workload lasted for five minutes for each experiment. Figures 13 and 14 present the number of block erase counts and the total number of write and read operations with different percentages of read operations and different ratios of random accesses. From the results of Figures 13c and 14c, we observe that Asymmetric Programming can achieve almost the same number of block erase counts as the baseline scheme, which means that Asymmetric Programming will not induce overhead for the endurance of the NAND flash. This result also indicates that our proposed write algorithm (Algorithm 1) is very effective at improving block utilization and that it inserts most of the uncritical page data into the physical pages between the adjacent MSB pages by conducting request feedback operations using request queue scheduler. Compared with Figure 14c, we can see that the number of block erase counts is affected by the number of write operations for the baseline scheme, Meta-Cure, and Asymmetric Programming schemes. Because of the intrinsic feature of IOMeter, to meet the configuration of the random ratio, it divides the workload into several segments and every segment has accurate random request ratio according the configuration. There are 256 pages per block in the flash package we used in the experiments, which is larger than the segment size of the workload of IOMeter. Thus, except for all sequential accesses (0% random accesses), other different ratios of random accesses would be seemed as all random accesses to the flash package we use. Therefore, the erase count of different ratios of random accesses will not be the same except for all sequential accesses. The total number of read operations and that of write operations are shown in Figure 13a,b, respectively. Compared with Figure 13c, we can clearly see that the number of block erase counts is affected by the number of write operations for the baseline scheme, Meta-Cure, and Asymmetric Programming schemes. In addition, the total number of read and write operation of the proposed scheme is still the same as that of baseline scheme and much smaller than that of Meta-Cure scheme. This result indicates that Asymmetric Programming scheme induces very few extra write operations when conducting request feedback operation. Also, by combining the results in Figure 14a-c, we can see that none of these three schemes are sensitive to the percentage of read/write operations. The number of valid page copies is another important factor in evaluating the efficiency of the garbage collection process. Figure 15a,b present the number of valid page copy operations with different percentages of read operations and different ratios of random accesses for the baseline, Meta-Cure and Asymmetric Programming, respectively. We can see that Asymmetric Programming achieves nearly similar numbers of valid page copy operations as that of the baseline scheme with different percentages of read operation and the case with different ratios of random accesses. Compared with the Meta-Cure scheme, Asymmetric Programming and Meta-Cure have much smaller numbers of valid page copy operations. This is because there are few extra garbage collection operations caused by the Asymmetric Programming scheme. This result further proves that the proposed Asymmetric Programming scheme has much higher garbage collection efficiency and better endurance than that of Meta-Cure scheme.