Patent ID: 8839073
Filing Date: 2014-09-16
Classification: G06F,G11C,H03M

Abstract:
1. A method, comprising: scrambling data to be written to a portion of a non-volatile memory to produce scrambled data having a known statistical average number of zero bits and a known statistical average number of one bits; writing the scrambled data to the portion of the non-volatile memory; subsequent to the writing, reading the portion of the non-volatile memory; computing a disparity between a number of zero bits and a number of one bits in data read from the portion of the non-volatile memory; determining a threshold voltage for a subsequent read of the non-volatile memory based at least in part on the disparity; re-reading the portion of the non-volatile memory using the threshold voltage; prior to the re-reading, decoding the data read from the portion of the non-volatile memory with an ECC decoder to determine that the data read from the portion of the non-volatile memory is uncorrectable; wherein the writing comprises encoding the scrambled data with an ECC encoder and writing the encoded scrambled data to the portion of the non-volatile memory, and further comprising; and wherein the ECC encoder adds one or more bytes to the scrambled data, and wherein the one or more bytes added by the ECC encoder have the known statistical average number of zero bits and the known statistical average number of one bits.