Memory systems may have memory elements that store data unreliably. Some of the unreliable memory elements may be unreliable in that they exhibit a high likelihood of returning data at the same logic value regardless of the logic value at which the data was actually programmed. For example, when a controller reads a data bit from an unreliable memory element, the unreliable memory element may, with high frequency, return the data bit as a logic 1 value regardless of whether that data bit was programmed into the unreliable memory element as a logic 1 or logic 0 value.
Before data is programmed into memory, the data may be randomized, which may result in a generally equal distribution of logic 1 and logic 0 data bits programmed in the memory. Statistically, then, the odds that a logic 1 data bit or a logic 0 data bit are to be stored in an unreliable memory element is about the same—50%. As a result, for unreliable memory elements that return the same logic value with high frequency, there is statistically about a 50% chance that data is read from unreliable memory elements correctly.
Although avoiding programming data into unreliable elements may be an effective way to reduce errors when subsequently reading the data, doing so limits the amount of memory elements that may be utilized to store data. In order to utilize as much storage space as possible, it may be desirable to store data in unreliable memory cells, but to do so in a way that increases the odds of the data being read to above 50%.