Data compression reduce the overall data write to SSDs thus can improve NAND flash memory lifetime. However, what is the full potential of exploiting data compressibility to improve memory lifetime? This paper takes MLC error pattern into consideration. The basic idea is try to avoid to write ‘0’ to cells, because write ‘0’ is more harmful to the flash lifetime.
How does compressed data stored on flash?
The number of sectors of the data after compressed are determined by the runtime variation. If the data stored on flash does not aligned to the pages, the FTL design can be too complicated. Thus, more common way is to fill content to the unused storage space to keep the write aligned to the pages. The intuitive way is to fill ‘1’ to the unused space. However, for the MLC, there are more potential. The cell in MLC stores the left bit and right bit resides in lower and upper page. The content write to the cell influence the bit error rate. Thus, write ’11’ to a cell can better improve it’s lifetime.
To achieve this, we need to design non-uniform way to align the data in the lower page and upper page, based on their content.