## 5 Evaluation and Analysis
### Experimental Results and Analysis with IOMeter Tool
#### 5.3.2 I/O Performance  
I/O performance is another important performance metric for evaluating the NAND flash memory storage system. We evaluated the I/O performance of the proposed scheme in terms of two metrics: the average response time and the response time for read operations. To fully evaluate these time-related cases of Asymmetric Programming, we ran the proposed scheme under workloads with different ratios of random accesses and different percentages of read operations generated by IOMeter. The error correction capability of the BCH code was configured as four bits. To accurately measure the response time of each request, we used the implemented hardware NAND flash timer. The precision of the response time was 10 nanosecond. We recorded the response time of each request and calculated the required time value. The experimental results for average response time are shown in Table 6 and Table 7. We observe that Asymmetric Programming can achieve similar average response times as the baseline scheme. From the results, it can be seen that the overhead for the average response time ranges between 0.002% and 0.33%. These results show that the I/O performance overhead incurred by Asymmetric Programming is negligible. From Tables 6 and 7, we also find that the average response time of Asymmetric Programming is not sensitive to the percentage of random accesses but is highly sensitive to the ratio of write operations. That is because the more write operations in the workload, the more frequently garbage collection is needed and the average response time will be longer. For different ratios of random accesses, the number of block erase counts is relatively stable as shown in Figure 14c. Therefore, the average response time will also be relatively stable. We conducted experiments on performance under different percentages of random accesses with a 50% read operation workload as shown in Table 6. Compared to Meta-Cure, our scheme can improve the average response time by 6.57% on average, while inducing only 0.07% overhead compared with the baseline scheme. This means that our proposed scheme enhances the reliability of the critical pages of storage system with only a negligible average response time overhead. \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline \multirow{2}{*}{**\% of Random**} & \multirow{2}{*}{**Total Requests**} & \multicolumn{2}{c}{**Average Response Time (ns)**} & \multicolumn{2}{c}{**Overhead (\%)**} & \multicolumn{2}{c}{**Improvement (\%)**} \\ \cline{3-8}  & & **BL** & **MC** & **AP** & **MC vs. BL** & **AP vs. BL** & **AP vs.MC** \\ \hline
0 & 146,443 & 1,638,774 & 1,735,443 & 1,635,948 & 6.21 & 0.12 & 6.09 \\
25 & 146,381 & 1,750,170 & 1,867,718 & 1,751,090 & 6.72 & 0.05 & 6.66 \\
50 & 146,353 & 1,754,543 & 1,871,834 & 1,755,464 & 6.68 & 0.05 & 6.64 \\
75 & 151,467 & 1,751,297 & 1,868,359 & 1,754,623 & 6.68 & 0.12 & 6.56 \\
100 & 146,355 & 1,753,841 & 1,874,425 & 1,753,383 & 6.88 & 0.002 & 6.90 \\ Average & & & & & 6.63 & 0.07 & 6.57 \\ \hline \hline \end{tabular}
\end{table} 
Table 6: The I/O performance for Baseline, Meta-Cure, and Asymmetric Programming with different radios of random accesses (BL: Base Line; MC: Meta-Cure; AP: Asymmetric Programming). Figure 12: Response time for the read operation of Baseline (BL), Meta-Cure (MC), and Asymmetric Programming (AP).