Low-complexity flash memory data-encoding techniques using simplified belief propagation
AssigneeEmpire Technology Development LLC
InventorXudong MA
Life of this patent
Estimating the term…
Abstract
Technologies and implementations for encoding and storing data in a solid-state memory device with a reduced number of erasures using a simplified belief-propagation algorithm that includes a set of message-calculation rules that have a low computational complexity are generally disclosed. Additionally, technologies and implementations for decoding data and for error correction are generally disclosed.
Claims34
A method to encode data, the method comprising:
- receiving a first group of data to be encoded and stored in a memory block of a single-level cell-type flash memory as a second group of data subject to a current state of a third group of data stored in single-level cell-type flash memory cells in the memory block of the flash memory, each element of the first group of data corresponding to a row of a parity-check equation, each data element of the second group of data corresponding to a single-level cell-type flash memory cell in the memory block of the flash memory and initially corresponding to an unknown variable of the parity-check equation, each row of the parity-check equation corresponding to a check node of the parity-check equation and each unknown variable corresponding to a variable node of the parity-check equation;
- determining a marginal probability of each data element of the second group of data for a first selected configuration of the second group of data;
- determining a value of at least one data element of the second group of data according to the marginal probability of each data element of the second group of data;
- and
- iteratively determining the marginal probability of each remaining undetermined data element of the second group of data for subsequently selected configurations of the remaining undetermined data elements of the second group of data, and determining a value of at least one remaining undetermined data element of the second group of data until all data elements of the second group of data have been determined, the determined values of the data elements of the second group of data being the encoded first group of data,
- wherein solutions to the parity check equation are subject to the constraint that the value of a data element of the second group of data is zero if the current state of a corresponding flash memory cell in the memory block is zero.
(canceled)
A machine-readable non-transitory medium having stored therein instructions that, when executed by one or more processors, operatively enable a data encoding module to:
- receive a first group of data to be encoded and stored in a memory block of a single-level cell-type flash memory as a second group of data subject to a current state of a third group of data stored in single-level cell-type flash memory cells in the memory block of the flash memory, each element of the first group of data corresponding to a row of a parity-check equation, each data element of the second group of data corresponding to a single-level cell-type flash memory cell in the memory block of the flash memory and initially corresponding to an unknown variable of the parity-check equation, each row of the parity-check equation corresponding to a check node of the parity-check equation and each unknown variable corresponding to a variable node of the parity-check equation;
- determine a marginal probability of each data element of the second group of data for a first selected configuration of the second group of data;
- determine a value of at least one data element of the second group of data according to the marginal probability of each data element of the second group of data;
- and
- iteratively determine the marginal probability of each remaining undetermined data element of the second group of data for subsequently selected configurations of the remaining undetermined data elements of the second group of data, and determine a value of at least one remaining undetermined data element of the second group of data until all data elements of the second group of data have been determined, the determined values of the data elements of the second group of data being the encoded first group of data,
- wherein solutions to the parity check equation are subject to the constraint that the value of a data element of the second group of data is zero if the current state of a corresponding flash memory cell in the memory block is zero.
(canceled)
A system, comprising:
- an encoding module;
- a machine-readable non-transitory medium having stored therein instructions that, when executed by one or more processors, operatively enable the encoding module to:
- receive a first group of data to be encoded and stored in a memory block of a single-level cell-type flash memory as a second group of data subject to a current state of a third group of data stored in single-level cell-type flash memory cells in the memory block of the flash memory, each element of the first group of data corresponding to a row of a parity-check equation, each data element of the second group of data corresponding to a single-level cell-type flash memory cell in the memory block of the flash memory and initially corresponding to an unknown variable of the parity-check equation, each row of the parity-check equation corresponding to a check node of the parity-check equation and each unknown variable corresponding to a variable node of the parity-check equation;
- determine a marginal probability of each data element of the second group of data for a first selected configuration of the second group of data;
- determine a value of at least one data element of the second group of data according to the marginal probability of each data element of the second group of data;
- and
- iteratively determine the marginal probability of each remaining undetermined data element of the second group of data for subsequently selected configurations of the remaining undetermined data elements of the second group of data, and determine a value of at least one remaining undetermined data element of the second group of data until all data elements of the second group of data have been determined, the determined values of the data elements of the second group of data being the encoded first group of data,
- wherein solutions to the parity check equation are subject to the constraint that the value of a data element of the second group of data is zero if the current state of a corresponding flash memory cell in the memory block is zero.
(canceled)
An encoder/decoder, comprising:
- an input capable of receiving input data;
- a mode-selection input capable of receiving an indication of an encoding mode or an error-correction decoding mode;
- a message processor coupled to the message input and to the mode-selection input, wherein if the received indication is of the encoding mode, the message processor being capable of encoding the input data and if the received indication is of the error-correction decoding mode, the message processor being capable of error-correction decoding the input data using the same circuitry that is used for encoding the input data.
Dependencies are inferred from the claim text.