  Flash memories intended for SSD and mobile applications need to provide high
random I/O performance. This requires using efficient schemes for reading small
chunks of data (e.g. 0.5KB - 4KB) from random addresses. Furthermore, in order
to be cost efficient, it is desirable to use high density Multi-Level Cell
(MLC) memories, such as the ones based on 3 or 4 bit per cell technologies.
Unfortunately, these two requirements are contradicting, as reading an MLC
memory, whose data is coded conventionally, requires multiple sensing
operations, resulting in slow reading and degraded random I/O performance. This
paper describes a novel coding scheme that optimizes random read throughput, by
allowing reading small data chunks from an MLC memory using a single sensing
operation.
