## 6 Discussion and Analysis
### Performance Analysis  
We present a performance analysis of Asymmetric Programming in terms of read performance write performance and garbage collection efficiency. _(1) Impact on Read Performance:_ When the file system conducts reading operations, the read request will query the mapping table of FTL to get the physical address of the corresponding logical address of the request. Then, the NAND flash controller will return the data of the physical page. Asymmetric Programming does not need to modify the FTL address mapping table or add any extra mappings for the read process. Therefore, Asymmetric Programming will not bring any overhead to the read performance as shown in results of Figure 12.  
_(2) Impact on Write Performance:_ When performing write operations, Asymmetric Programming will directly bypass the uncritical page write requests, which make up the greater part of the I/O requests. This will not incur overhead for write performance of uncritical pages. For those write requests of critical pages, the time overhead is incurred by the shared pages mapping table searching time, the extra request feedback operations and the garbage collection process. Asymmetric Programming needs to search the shared pages mapping to find the MSB page. The time spent on searching for an entry is set as _Tp_. The searching time is determined by the page number of one block (set as _Np_). The _Np_ of commercial NAND flash is usually no more than 256. For example, we used Micron's 29F64 GCBAAA NAND flash memory chip which consists of 256 pages in one block. Thus, there are no more than 128 (256/2) entries in the shared pages mapping table. Fetching these entries in the shared pages mapping table will take at most several hundreds of nanoseconds and its impact to the write performance can be negligible. As described in Algorithm 1, Asymmetric Programming may also introduce extra request feedback operations if the current critical page request is not allocated in the MSB page. Then there will be extra time overhead for write operations. The time overhead is related to the number of request feedback  
Figure 15: The number of valid page copy operations for Baseline (BL), Meta-Cure (MC), and Asymmetric Programming (AP) during garbage collection operations with different (**a**) Percentages of read operations (**b**) Ratios of random accesses. operations. Because most of the operations of the file systems are file-based operations and metadata only occupies a small part of the file, most of the critical requests are random requests. That means, in most cases, one request feedback operation could be enough for the critical pages to be stored in MSB pages. Therefore, the time overhead introduced by the request feedback operation would be small. This conclusion is well proved by experimental results of Figures 13 and 14. _(3) Impact on Garbage Collection Performance:_ During the garbage collection process, Asymmetric Programming copies all of the victim pages into the buffer and then reallocates the order of all the valid pages. Comparing the normal garbage collection process without Asymmetric Programming, it should be noted that Asymmetric Programming has to search the shared pages mapping table to ensure that all of the valid critical pages are copied into the MSB pages of the target block. Each valid page will add one extra search for the shared pages mapping. The total time cost is _Np*Tp_. Taking Micron's 29F64 GCBAAA as an example, _Np_ is 256 and _Tp_ is about 300 ns. Thus, the overall time for Asymmetric Programming is about 38 \(\upmu\)s.  
Assuming that the time required to read a page, program a page, and erase a block are _Trd_, _Tprog_, and _Ters_, respectively, and that half of the pages in the victim block are valid pages, then the overall time cost of valid page copy and block erase operations will be _Np/2 * (Trd + Trprog) + Trs_. In typical NAND flash memory chips, _Trd_, _Tprog_ and _Ters_ are 75 \(\upmu\)s, 1300 \(\upmu\)s and 3800 \(\upmu\)s, respectively.