November 12, 2019
LDPC code is considered as a solution to improve the error rate in today's 3D TLC and QLC memory.But they are not for every market.
Low density parity check (LDPC) code is a kind of error correction code, which is used for applications that need efficient information transmission through channels.In the past decade, LDPC code in the field of flash memory is also more and more attention.The BCH code, which is widely used in SLC and MLC flash technologies, cannot provide satisfactory performance because today's 3D TLC and 3D QLC flash have limited spare areas and are replaced by other codes with soft-decoding capabilities, such as LDPC codes.Although this code is suitable for some applications, it has two major drawbacks
Different types of flash memory are currently available.The more bits stored per unit, the lower the data retention, and the more failure bits.Although SLC and MLC are mainly manufactured by plane flash memory technology, TLC and QLC are manufactured by 3D technology
LDPC performs well in some areas, but only averages in others
LDPC code has excellent performance for input data with high error rate.Few other code reaches this level of performance because it is even close to the theoretical maximum, the Shannon limit.On the other hand, their performance is normal for input data, with few errors.For a small number of typos, failed errors are corrected very frequently - other code achieves significantly better results in this regard.Thus, LDPC codes are used for occasional errors that are acceptable at low input error rates, but require high error rate performance, for example, terrestrial digital video broadcast standard dvb-t.In this case, a failed correction will result in a few pixels of the wrong color in the video stream - which is acceptable.In another case - a large number of errors in the input data - the video stream will remain uninterrupted for as long as possible (for example, black screen).
This relationship explains the occurrence of LDPC code in NAND flash controller.The latest NAND flash technology shows very high error rates - especially for the consumer market.LDPC code is close to the ideal conditions to meet these requirements.However, there are other market occasional errors that are unacceptable for input data with a low error rate.The industrial market is one of them.A common standard for system-level reliability is the JEDEC enterprise specification: it requires a rate of less than 10-16 frames of error over the entire life of the operation.Impressively, LDPC code performance is close to the lifetime of NAND flash memory, but it does not meet this requirement in the lifetime of memory, that is, flash memory as error correction input changes bit error rate - low at the beginning and high at the end of life.
LDPC performance can only be estimated
In response to JEDEC's stringent specification, the university of applied sciences konstanz and Hyperstone have developed different error correction codes based on generalized cascade coding (GCC).In terms of high input error rate, its performance will not exceed that of the LDPC code.However, it does show significantly better performance with low and medium error rates.The main advantage is that the performance can be calculated, thus guaranteeing all input error rates, whereas LDPC performance can only be estimated for low and medium error rates.For a detailed explanation of this, see our free download of the reliable flash storage infrastructure white paper, "error correction code."This means that it is not clear what exactly horizontal performance LDPC will provide, beyond the ordinary performance of showing low to medium input error rates.This fact makes it completely unusable in industrial and enterprise storage markets.
Gcc-based error correction in Hyperstone's latest flash controller works closely with a mechanism called calibration.This mechanism ensures that the read voltage of the flash memory unit is always in the best position to generate low to medium bit error rates throughout the lifetime of the flash memory.Therefore, the error amount of the error correction unit input is kept at the best input condition.Although the combination of calibration with GCC improves system-level performance, it does not improve ldpc-based error correction because it moves the input error rate from a favorable range to a less favorable range for LDPC.
LDPC code is a common error correction code in flash controller.They are ideal for use in consumer products where occasional errors are acceptable.In industrial markets with high reliability requirements, they simply do not fit.GCC, combined with advanced calibration, can easily meet the demanding requirements of the industrial market