Memory system that performs error correction using metric array and method of controlling the same
AssigneeKioxia Corporation
InventorsYuta Kumano, Hironori Uchikawa
Life of this patent
Estimating the term…
Abstract
A memory system includes a non-volatile memory and a memory controller. The memory controller is configured to read data from the non-volatile memory, obtain a plurality of decoded words based on a syndrome calculated from a soft decision input data based on the read data, calculate a plurality of metrics for the plurality of decoded words, generate a metric array using the calculated metrics. Further, the memory controller is configured to, based on a relationship of each value of the metric array with a smallest one of the metrics and a second smallest one of the metrics, obtain a soft decision output data corresponding to the soft decision input data.
Claims19
A memory system comprising:
- a non-volatile memory;
- and
- a memory controller configured to:
- encode data to be written into the non-volatile memory using an error-correction code that includes a Hamming code;
- obtain a hard-read value of data read from the non-volatile memory using a read voltage;
- obtain a plurality of soft-read values of data read from the non-volatile memory using a plurality of read voltages;
- based on the hard-read value and the soft-read values, obtain a soft decision input data, each value of which indicates a likelihood that a corresponding bit of the read data is either 0 or 1;
- obtain a hard decision data of the soft decision input data;
- obtain a syndrome using the hard decision data and a parity check matrix of the error-correction code;
- decoding the hard decision data using a predetermined decoding method to obtain decoded words that are different from each other;
- obtain a plurality of metrics each of which indicates a distance between one of the decoded words and the soft decision input data;
- generate a metric array using the obtained metrics;
- and
- based on a relationship of each value of the metric array with a smallest one of the metrics and a second smallest one of the metrics, obtain a soft decision output data corresponding to the soft decision input data, as a decoding result of the read data.
A method of controlling a memory system including a non-volatile memory, the method comprising:
- encoding data to be written into the non-volatile memory using an error-correction code that includes a Hamming code;
- obtaining a hard-read value from data read from the non-volatile memory using a read voltage;
- obtaining a plurality of soft-read values from data read the non-volatile memory using a plurality of read voltages;
- based on the hard-read value and the soft-read values, obtaining a soft decision input data, each value of which indicates a likelihood that a corresponding bit of the read data is either 0 or 1;
- obtaining a hard decision data of the soft decision input data;
- obtaining a syndrome using the hard decision data and a parity check matrix of the error-correction code;
- decoding the hard decision data using a predetermined decoding method to obtain decoded words that are different from each other;
- obtaining a plurality of metrics each of which indicates a distance between one of the decoded words and the soft decision input data;
- generating a metric array using the obtained metrics;
- and
- based on a relationship of each value of the metric array with a smallest one of the metrics and a second smallest one of the metrics, obtaining a soft decision output data corresponding to the soft decision input data.
Dependencies are inferred from the claim text.