  The pivotal storage density win achieved by solid-state devices over magnetic
devices in 2015 is a result of multiple innovations in physics, architecture,
and signal processing. One of the most important innovations in that regard is
enabling the storage of more than one bit per cell in the Flash device, i.e.,
having more than two charge levels per cell. Constrained coding is used in
Flash devices to increase reliability via mitigating inter-cell interference
that stems from charge propagation among cells. Recently, capacity-achieving
constrained codes were introduced to serve that purpose in modern Flash
devices, which have more than two levels per cell. While these codes result in
minimal redundancy via exploiting the underlying physics, they result in
non-negligible complexity increase and access speed limitation since pages
cannot be read separately. In this paper, we suggest new constrained coding
schemes that have low-complexity and preserve the desirable high access speed
in modern Flash devices. The idea is to eliminate error-prone patterns by
coding data only on the left-most page while leaving data on all the remaining
pages uncoded. Our coding schemes work for any number of levels per cell, offer
systematic encoding and decoding, and are capacity-approaching. Since the
proposed schemes enable the separation of pages, we refer to them as
read-and-run (RR) constrained coding schemes as opposed to schemes adopting
read-and-wait for other pages. We analyze the new RR coding schemes and discuss
their impact on the probability of occurrence of different charge levels. We
also demonstrate the performance improvement achieved via RR coding on a
practical triple-level cell Flash device.
