Abstract:
A method includes calculating redundancy information over a set of data items, and sending the data items for storage in a memory. The redundancy information is retained only until the data items are written successfully in the memory, and then discarded. The data items are recovered using the redundancy information upon a failure in writing the data items to the memory.
Abstract:
A data storage method includes, in a memory controller that accepts memory access commands from a host for execution in one or more memory units, holding a definition of a policy to be applied by the memory controller in the execution of the memory access commands in the memory units. The policy is reported from the memory controller to the host so as to cause the host to format memory access commands based on the reported policy.
Abstract:
A method includes storing data in a group of analog memory cells. The memory cells in the group are read using first read thresholds to produce first readout results, and re-read using second read thresholds to produce second readout results. Third read thresholds, which include at least one of the first read thresholds and at least one of the second read thresholds, are defined. Readout performance of the first, second and third read thresholds is evaluated based on the first and second readout results. The first, second or third read thresholds are selected based on the evaluated readout performance, and data recovery is performed using the selected read thresholds.
Abstract:
A method for decoding an ECC, in a decoder that includes at least first and second root search units, includes accepting at least first and second Error Locator Polynomials (ELPs) that have been computed over respective first and second code words of the ECC. A criterion depending on the ELPs is evaluated. One of first and second modes is selected based on the criterion. One or more first roots of the first ELP and one or more second roots of the second ELP are found using the selected mode, and the first and second code words are decoded using the first and second roots. In the first mode, the first and second root search units are combined and simultaneously find the first roots. In the second mode, the first and second root search units operate separately, and simultaneously identify the first roots and the second roots, respectively.
Abstract:
A method for data storage includes encoding each of multiple data items individually using a first Error Correction Code (ECC) to produce respective encoded data items. The encoded data items are stored in a memory. The multiple data items are encoded jointly using a second ECC, so as to produce a code word of the second ECC, and only a part of the code word is stored in the memory. The stored encoded data items are recalled from the memory and the first ECC is decoded in order to reconstruct the data items. Upon a failure to reconstruct a given data item from a respective given encoded data item by decoding the first ECC, the given data item is reconstructed based on the part of the code word of the second ECC and on the encoded data items other than the given encoded data item.
Abstract:
A data storage method includes, in a memory controller that accepts memory access commands from a host for execution in one or more memory units, holding a definition of a policy to be applied by the memory controller in the execution of the memory access commands in the memory units. The policy is reported from the memory controller to the host so as to cause the host to format memory access commands based on the reported policy.
Abstract:
A method for data storage in a memory that includes multiple analog memory cells fabricated using respective physical media, includes identifying a group of the memory cells whose physical media have deteriorated over time below a given storage quality level. A rejuvenation process, which causes the physical media of the memory cells in the group to meet the given storage quality level, is applied to the identified group. Data is stored in the rejuvenated group of the memory cells.
Abstract:
A method for data storage includes storing data in a group of analog memory cells by writing into the memory cells in the group respective storage values, which program each of the analog memory cells to a respective programming state selected from a predefined set of programming states. The programming states include at least first and second programming states, which are applied respectively to first and second subsets of the memory cells, whereby the storage values held in the memory cells in the first and second subsets are distributed in accordance with respective first and second distributions. Respective first and second medians of the first and second distributions are estimated, and a read threshold is calculated based on the first and second medians. The data is retrieved from the analog memory cells in the group by reading the storage values using the calculated read threshold.
Abstract:
A method includes receiving an Error Correction Code (ECC) code word, which includes multiple encoded bits that represent data and have a bit order. Multiple subsets of the encoded bits are selected using a selection criterion that does not sequentially follow the bit order. For each subset in at least some of the multiple subsets, the bits in the subset are inverted and the code word having the inverted bits is decoded, so as to reconstruct the data.
Abstract:
A method for data storage includes scrambling data for storage in a memory device using a given scrambling seed. A statistical distribution of the scrambled data is assessed, and a measure of randomness of the statistical distribution is computed. A scrambling configuration of the data is modified responsively to the measure of randomness, and the data having the modified scrambling configuration is stored in the memory device.