A tiny-capacitor-backed non-volatile buffer to reduce storage writes in smartphones

2015 
Mobile storage writes are often dominated by writes to SQLite database files. Our characterization shows that they mostly consist of frequent overwrites with small new data (which we call small writes ) and relatively infrequent writes with large data updates. In order to reduce writes to the Flash memory on smartphones, we propose exploiting these characteristics and present a low-cost non-volatile write buffer for write coalescing. The key challenge in it is that the stringent resource constraints of mobile devices force the write buffer size to be minimized down to a single Flash page in order to reduce the overhead of SRAM buffer on the controller chip and a backing capacitor that maintains non-volatility of the buffer on power failure. As a solution to this problem, we propose three optimizations that make the best use of this small single-page non-volatile write buffer. First, we propose managing only the difference between old and new data (i.e., differential logs) in the write buffer, based on the observation that small writes are frequent. Second, we develop a dynamic bypass scheme which judiciously bypasses overwrite-unfriendly pages from the write buffer. Third, we devise an incremental flush policy which controls the number of write buffer entries to be flushed according to the size of the newly written data. According to our experiments using four representative mobile applications on a real storage platform, OpenSSD, the proposed method gives average 69.5% and 64.5% reductions in Flash memory writes in single- and multi-application runs, respectively. In addition, our scheme introduces a very small cost into existing systems, including 8--18.5KB SRAM on the controller chip and a tiny capacitor occupying only 1.7% of eMMC package volume.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    9
    References
    4
    Citations
    NaN
    KQI
    []