CN109660263B - An LDPC code decoding method suitable for MLC NAND flash memory - Google Patents
An LDPC code decoding method suitable for MLC NAND flash memory Download PDFInfo
- Publication number
- CN109660263B CN109660263B CN201811401607.5A CN201811401607A CN109660263B CN 109660263 B CN109660263 B CN 109660263B CN 201811401607 A CN201811401607 A CN 201811401607A CN 109660263 B CN109660263 B CN 109660263B
- Authority
- CN
- China
- Prior art keywords
- decoding
- data
- threshold voltage
- decoded
- voltage range
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1125—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种适用于MLC NAND闪存的LDPC码译码方法,包括:(1)确定待译码数据所属页的类型,若为低页,则转入步骤(2);否则,转入步骤(3);(2)对待译码数据进行LDPC码译码,并保存译码结果;译码结束;(3)获得同一单元中译码后的低页数据,根据所获得的低页数据和待译码数据确定存储单元的阈值电压范围;根据所确定的阈值电压范围计算对数似然比;以所计算的对数似然比为译码输入,对待译码数据进行LDPC码译码;译码结束。本发明能够提高译码成功率、减少译码迭代次数,从而达到降低译码延迟、提高闪存读性能的目的。
The invention discloses an LDPC code decoding method suitable for MLC NAND flash memory, comprising: (1) determining the type of the page to which the data to be decoded belongs, if it is a low page, then go to step (2); otherwise, go to step (2) Step (3); (2) carry out LDPC code decoding on the data to be decoded, and save the decoding result; the decoding ends; (3) obtain the low page data after decoding in the same unit, according to the obtained low page data Determine the threshold voltage range of the storage unit with the data to be decoded; calculate the log-likelihood ratio according to the determined threshold voltage range; take the calculated log-likelihood ratio as the decoding input, and perform LDPC code decoding on the data to be decoded ; Decoding ends. The invention can improve the decoding success rate and reduce the number of decoding iterations, so as to achieve the purpose of reducing the decoding delay and improving the read performance of the flash memory.
Description
技术领域technical field
本发明属于计算机存储纠错技术领域,更具体地,涉及一种适用于MLC NAND闪存的LDPC码译码方法。The invention belongs to the technical field of computer storage error correction, and more particularly, relates to an LDPC code decoding method suitable for MLC NAND flash memory.
背景技术Background technique
NAND闪存是一种非易失性存储介质,基于其存储密度高、单位成本低、读写速度快等优点,NAND闪存已经成为存储领域的应用主流。但是随着闪存工艺尺寸的缩小和存储密度的增加,NAND闪存的误码率也不断增高,相比于传统的BCH码,LDPC码在高噪声下依然具有强大的纠错能力,因而LDPC码越来越广泛地应用于NAND闪存中。然而,LDPC码在数据读写的过程中会带来额外的读写延迟,从而降低NAND闪存的性能。NAND flash memory is a non-volatile storage medium. Based on its advantages of high storage density, low unit cost, and fast read and write speed, NAND flash memory has become the mainstream application in the storage field. However, with the shrinking of flash memory process size and the increase of storage density, the bit error rate of NAND flash memory is also increasing. Compared with traditional BCH codes, LDPC codes still have strong error correction ability under high noise. More and more widely used in NAND flash memory. However, LDPC codes will bring additional read and write delays in the process of data read and write, thereby reducing the performance of NAND flash memory.
MLCNAND闪存中,一个存储单元存储两位数据,这两位属于不同的数据页,分别是高页和低页,根据存储单元阈值电压的大小,存储单元被分为四个状态,并且这四个状态被编码为对应的数据“11”、“10”、“00”和“01”左边的是低页数据,右边的是高页数据。外围电路需要借助于一系列读参考电压确定存储单元存储的数据,将存储阈值电压和读参考电压比较大小就可以确定存储单元中的数据。闪存中的存储单元受到噪声的干扰后,阈值电压会发生变化,相邻的两个状态的阈值电压分布会发生重叠,使得读取出来的数据出现错误。In MLCNAND flash memory, a memory cell stores two bits of data, and these two bits belong to different data pages, namely high page and low page. According to the threshold voltage of the memory cell, the memory cell is divided into four states, and these four The states are encoded as corresponding data "11", "10", "00", and "01" on the left is the low page data and on the right is the high page data. The peripheral circuit needs to determine the data stored in the memory cell by means of a series of read reference voltages, and the data in the memory cell can be determined by comparing the storage threshold voltage with the read reference voltage. After the memory cells in the flash memory are disturbed by noise, the threshold voltage will change, and the threshold voltage distributions of two adjacent states will overlap, causing errors in the read data.
MLCNAND闪存受到干扰后的阈值电压模型如图1所示,实线代表的电压值VERF1、VREF2和VREF3为默认的读参考电压,虚线代表的电压值为可改变的读参考电压。现有的LDPC码译码方法如图2所示,使用默认的三个读参考电压可以得到阈值电压的范围,读出数据后可使用LDPC硬判决译码。如果相邻状态的阈值电压分布发生重叠,会读出错误的数据。若LDPC硬判决译码失败,则应该改变读参考电压,得到更加精确的阈值电压范围,使用软判决译码得到正确数据。软判决译码失败后可以进一步改变读参考电压,进行下一轮的软判决译码,直到所有可用的读参考电压都被使用,无法再改变读参考电压。The threshold voltage model of MLCNAND flash memory after interference is shown in Figure 1. The voltage values VERF1, VREF2, and VREF3 represented by solid lines are the default read reference voltages, and the voltage values represented by dotted lines are variable read reference voltages. The existing LDPC code decoding method is shown in FIG. 2 , the threshold voltage range can be obtained by using the default three read reference voltages, and LDPC hard-decision decoding can be used after reading the data. If the threshold voltage distributions of adjacent states overlap, erroneous data will be read out. If the LDPC hard-decision decoding fails, the read reference voltage should be changed to obtain a more accurate threshold voltage range, and soft-decision decoding is used to obtain correct data. After the soft-decision decoding fails, the read reference voltage can be further changed, and the next round of soft-decision decoding can be performed until all the available read reference voltages are used, and the read reference voltage cannot be changed any more.
在LDPC码的译码过程中,需要先根据读取的数据确定对应的阈值电压范围,然后根据所确定的阈值电压范围计算对数似然比(Log-Likelihood Ratio,LLR)作为译码输入,所确定的阈值电压范围越小,获得的译码输入越精确,则LDPC码的译码效率越高。但要获得更小的阈值电压范围,需要多次改变读参考电压,从而导致LDPC码译码过程中的读延迟增加。In the decoding process of the LDPC code, it is necessary to first determine the corresponding threshold voltage range according to the read data, and then calculate the Log-Likelihood Ratio (LLR) according to the determined threshold voltage range as the decoding input. The smaller the determined threshold voltage range, the more accurate the obtained decoding input, and the higher the decoding efficiency of the LDPC code. However, to obtain a smaller threshold voltage range, the read reference voltage needs to be changed many times, which leads to an increase in the read delay in the decoding process of the LDPC code.
发明内容SUMMARY OF THE INVENTION
针对现有技术的缺陷和改进需求,本发明提供了一种适用于MLC NAND闪存的LDPC码译码方法,其目的在于,降低MLC NAND闪存中LDPC码的译码延迟,从而提高闪存的性能。In view of the defects and improvement requirements of the prior art, the present invention provides an LDPC code decoding method suitable for MLC NAND flash memory, the purpose of which is to reduce the decoding delay of the LDPC code in the MLC NAND flash memory, thereby improving the performance of the flash memory.
为实现上述目的,本发明提供了一种适用于MLC NAND闪存的LDPC码译码方法,包括如下步骤:In order to achieve the above object, the present invention provides an LDPC code decoding method suitable for MLC NAND flash memory, comprising the following steps:
(1)确定待译码数据所属页的类型,若为低页,则转入步骤(2);否则,转入步骤(3);(1) determine the type of the page to which the data to be decoded belongs, if it is a low page, then go to step (2); otherwise, go to step (3);
(2)对待译码数据进行LDPC码译码,并保存译码结果;译码结束;(2) LDPC code decoding is performed on the data to be decoded, and the decoding result is saved; the decoding ends;
(3)获得同一单元中译码后的低页数据,并根据低页数据对待译码数据进行LDPC码译码;译码结束。(3) Obtain the decoded lower page data in the same unit, and perform LDPC code decoding on the to-be-decoded data according to the lower page data; the decoding ends.
属于同一存储单元的两位数据,虽然属于不同的页,但是受到噪声干扰后出现的错误具有一定的关联性,而且由于编码的特性,低页的原始误码率低于高页的原始误码率,所以低页的译码成功率高于高页的译码成功率,并且在译码的过程中低页的译码先于高页的译码。在本发明中,对高页数据进行译码时,利用同一单元的低页译码信息辅助高页数据的译码,可根据高页数据与低页数据之间的关联性缩小阈值电压范围,获得更加精确的译码输入,从而提高译码成功率、减少译码迭代次数,达到降低译码延迟、提高闪存读性能的目的。Although the two bits of data belonging to the same storage unit belong to different pages, the errors that occur after being interfered by noise have a certain correlation, and due to the characteristics of encoding, the original bit error rate of the low page is lower than that of the high page. Therefore, the decoding success rate of the low page is higher than that of the high page, and the decoding of the low page precedes the decoding of the high page in the decoding process. In the present invention, when decoding the high page data, the low page decoding information of the same unit is used to assist the decoding of the high page data, and the threshold voltage range can be narrowed according to the correlation between the high page data and the low page data, A more accurate decoding input is obtained, thereby improving the decoding success rate, reducing the number of decoding iterations, and achieving the purpose of reducing the decoding delay and improving the read performance of the flash memory.
进一步地,步骤(3)包括:Further, step (3) includes:
根据低页数据和待译码数据确定存储单元的阈值电压范围;Determine the threshold voltage range of the memory cell according to the low page data and the data to be decoded;
根据阈值电压范围计算对数似然比;Calculate the log-likelihood ratio based on the threshold voltage range;
以对数似然比为译码输入,对待译码数据进行LDPC码译码。Taking the log-likelihood ratio as the decoding input, the data to be decoded is decoded by LDPC code.
更进一步地,若低页数据为“1”且在译码前后没有翻转,并且待译码数据为“1”,则阈值电压范围为(-∞,VREF1],且对数似然比为:Further, if the low page data is "1" and is not flipped before and after decoding, and the data to be decoded is "1", the threshold voltage range is (-∞, VREF1], and the log-likelihood ratio is:
若低页数据为“1”且在译码前后没有翻转,并且待译码数据为“0”,则阈值电压范围为(VREF1,VREF2],且对数似然比为:If the low page data is "1" and is not flipped before and after decoding, and the data to be decoded is "0", the threshold voltage range is (VREF1, VREF2], and the log-likelihood ratio is:
若低页数据为“0”且在译码前后没有翻转,并且待译码数据为“1”,则阈值电压范围为(VREF3,∞],且对数似然比为:If the low page data is "0" and is not flipped before and after decoding, and the data to be decoded is "1", the threshold voltage range is (VREF3,∞], and the log-likelihood ratio is:
若低页数据为“0”且在译码前后没有翻转,并且待译码数据为“0”,则阈值电压范围为(VREF2,VREF3],且对数似然比为:If the low page data is "0" and is not flipped before and after decoding, and the data to be decoded is "0", the threshold voltage range is (VREF2, VREF3], and the log-likelihood ratio is:
若低页数据在译码前后发生翻转,则对数似然比为:If the low page data is flipped before and after decoding, the log-likelihood ratio is:
LLR(MSB)=LLRMAX;LLR(MSB)=LLRMAX;
其中,ER、P1、P2和P3分别为存储单元存储数据“11”、“10”、“00”和“01”时对应的存储单元状态,VREF1、VREF2和VREF3均为默认读参考电压,且VREF1<VREF2<VREF3,p(S)(x)表示阈值电压为x时待译码数据发生错误前存储单元状态为S的概率,S∈{ER,P1,P2,P3},LLRMAX表示大于50的常数。Among them, ER, P1, P2 and P3 are the corresponding memory cell states when the memory cells store data "11", "10", "00" and "01" respectively, VREF1, VREF2 and VREF3 are the default read reference voltages, and VREF1<VREF2<VREF3, p (S) (x) represents the probability that the memory cell state is S before the data to be decoded is in error when the threshold voltage is x, S∈{ER,P1,P2,P3}, LLRMAX means greater than 50 constant.
对于存储单元中的高页数据,若读出数据为1,可以确定阈值电压范围为(-∞,VREF1]∪(VREF3,+∞],若读出数据为0,可以确定阈值电压范围为(VREF1,VREF3],仅根据高页数据确定的阈值电压范围较大;根据同一单元中低页数据的值,可以进一步确定阈值电压范围为(-∞,VREF1]、(VREF1,VREF2]、(VREF2,VREF3]和(VREF3,+∞)之中的某个范围,由此缩小了阈值电压范围,可以得到更加精确的译码输入。For the high page data in the memory cell, if the read data is 1, the threshold voltage range can be determined to be (-∞, VREF1]∪(VREF3,+∞], and if the read data is 0, the threshold voltage range can be determined to be ( VREF1, VREF3], the threshold voltage range determined only according to the high page data is large; according to the value of the low page data in the same cell, the threshold voltage range can be further determined as (-∞, VREF1], (VREF1, VREF2], (VREF2 , VREF3] and (VREF3, +∞) in a certain range, thus narrowing the threshold voltage range, you can get more accurate decoding input.
对于一个码字来说,如果译码前后在某一位上面发生翻转,则表明这一位所在的存储单元的阈值电压状态发生了偏移,导致读出数据错误。由于阈值电压状态偏移多偏移向相邻状态,且阈值电压相邻状态的编码为只相差一位的格雷码,所以若阈值电压状态偏移至相邻状态导致存储单元某一位发生翻转,则同单元的另一位数据是不变的。由于低页数据错误发生在P1和P2重叠区域,所以若存储单元低页数据译码前后发生翻转,则表明低页数据读取错误,阈值电压处于P1或P2状态。而P1和P2状态的高页数据都为0,所以同一单元高页数据有很大概率为0,LLR可以设置为一个很大的值LLRMAX。For a codeword, if a bit is flipped before and after decoding, it indicates that the threshold voltage state of the memory cell where this bit is located has shifted, resulting in an error in reading data. Since the threshold voltage state is shifted to adjacent states, and the coding of the adjacent states of the threshold voltage is a Gray code that differs by only one bit, if the threshold voltage state is shifted to the adjacent state, a certain bit of the memory cell will be flipped , the other data of the same unit is unchanged. Since the low page data error occurs in the overlapping area of P1 and P2, if the memory cell low page data is inverted before and after decoding, it indicates that the low page data is read incorrectly, and the threshold voltage is in the P1 or P2 state. The high page data of the P1 and P2 states are both 0, so the high page data of the same unit has a high probability of being 0, and the LLR can be set to a large value LLRMAX.
总体而言,通过本发明所构思的以上技术方案,与现有技术相比,由于在对高页数据进行译码时,会结合同一单元中译码后的低页数据确定存储单元的阈值电压范围,由此能够有效缩小所确定的阈值电压范围,提供更为精确的译码输入,从而能够提高译码成功率、减少译码迭代次数,达到降低译码延迟、提高闪存读性能的目的。In general, through the above technical solutions conceived in the present invention, compared with the prior art, when decoding the high page data, the threshold voltage of the memory cell is determined in combination with the decoded low page data in the same unit. Therefore, the determined threshold voltage range can be effectively narrowed and a more accurate decoding input can be provided, thereby improving the decoding success rate, reducing the number of decoding iterations, reducing the decoding delay and improving the flash memory read performance.
附图说明Description of drawings
图1为现有的MLC NAND闪存的存储单元阈值电压分布示意图;FIG. 1 is a schematic diagram of a memory cell threshold voltage distribution of an existing MLC NAND flash memory;
图2为现有的LDPC码译码方法示意图;2 is a schematic diagram of an existing LDPC code decoding method;
图3为本发明实施例提供的使用于MLC NAND闪存的LDPC码译码方法流程图;3 is a flowchart of a method for decoding an LDPC code used in an MLC NAND flash memory provided by an embodiment of the present invention;
图4为本发明实施例提供的译码输入计算区域示意图;4 is a schematic diagram of a decoding input calculation area provided by an embodiment of the present invention;
图5为采用传统译码方法及本发明提供的译码方法进行译码测试的测试结果。FIG. 5 is a test result of performing a decoding test using the traditional decoding method and the decoding method provided by the present invention.
具体实施方式Detailed ways
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。In order to make the objectives, technical solutions and advantages of the present invention clearer, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention, but not to limit the present invention. In addition, the technical features involved in the various embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.
在详细介绍本发明的技术方案之前,先对作为译码输入的对数似然比LLR的计算作一个简要说明。对数似然比为对应数据为0的概率与对应数据为1的概率之比再取对数,假设存储单元的阈值电压范围在(VREF1,V1,2]中,则低页数据的对数似然比LLR(LSB)和高页数据的对数似然比LLR(MSB)的计算公式分别为:Before introducing the technical solutions of the present invention in detail, a brief description of the calculation of the log-likelihood ratio (LLR) as the decoding input is made. The log-likelihood ratio is the ratio of the probability that the corresponding data is 0 to the probability that the corresponding data is 1, and then the logarithm is taken. Assuming that the threshold voltage range of the memory cell is in (VREF1,
LLR的计算基于存储单元的阈值电压范围,读出的阈值电压范围越小,获得的译码输入信息LLR越精确,则LDPC码译码效率越高。但要获得更小的阈值电压范围,需要多次改变读参考电压,从而导致LDPC码译码过程中的读延迟增加。The calculation of the LLR is based on the threshold voltage range of the memory cell. The smaller the read threshold voltage range, the more accurate the obtained decoding input information LLR, and the higher the decoding efficiency of the LDPC code. However, to obtain a smaller threshold voltage range, the read reference voltage needs to be changed many times, which leads to an increase in the read delay in the decoding process of the LDPC code.
本发明提供了一种适用于MLC NAND闪存的LDPC码译码方法,其整体思路在于,利用同一存储单元中高页数据和低页数据之间的关联性以及低页数据的原始误码率低于高页数据的原始误码率这一特性,在对高页数据进行译码时,结合同一存储单元中低页数据确定存储单元的阈值电压范围,以缩小阈值电压范围,提供更为精确的译码输入,从而提高译码成功率、减少译码迭代次数,达到降低译码延迟、提高闪存读性能的目的。The present invention provides an LDPC code decoding method suitable for MLC NAND flash memory. The characteristic of the original bit error rate of the high page data is that when decoding the high page data, the threshold voltage range of the memory cell is determined in combination with the low page data in the same memory cell to narrow the threshold voltage range and provide more accurate decoding. code input, thereby improving the decoding success rate, reducing the number of decoding iterations, reducing the decoding delay and improving the flash memory read performance.
本发明所提供的适用于MLC NAND闪存的LDPC码译码方法,如图3所示,包括如下步骤:The LDPC code decoding method suitable for MLC NAND flash memory provided by the present invention, as shown in Figure 3, includes the following steps:
(1)确定待译码数据所属页的类型,若为低页,则转入步骤(2);否则,转入步骤(3);(1) determine the type of the page to which the data to be decoded belongs, if it is a low page, then go to step (2); otherwise, go to step (3);
(2)对待译码数据进行LDPC码译码,并保存译码结果;译码结束;(2) LDPC code decoding is performed on the data to be decoded, and the decoding result is saved; the decoding ends;
(3)获得同一单元中译码后的低页数据,并根据低页数据对待译码数据进行LDPC码译码;译码结束;(3) obtain the low page data after decoding in the same unit, and carry out LDPC code decoding to the data to be decoded according to the low page data; the decoding ends;
在一个可选的实施方式中,步骤(3)具体包括:In an optional embodiment, step (3) specifically includes:
根据低页数据和待译码数据确定存储单元的阈值电压范围;Determine the threshold voltage range of the memory cell according to the low page data and the data to be decoded;
根据阈值电压范围计算对数似然比;Calculate the log-likelihood ratio based on the threshold voltage range;
以对数似然比为译码输入,对待译码数据进行LDPC码译码;Taking the log-likelihood ratio as the decoding input, the data to be decoded is decoded by LDPC code;
根据高页数据(即待译码数据)和低页数据的具体取值,确定阈值电压范围并计算对数似然比的方法为:According to the specific values of the high page data (that is, the data to be decoded) and the low page data, the method for determining the threshold voltage range and calculating the log-likelihood ratio is:
若低页数据为“1”且在译码前后没有翻转,并且待译码数据为“1”,则阈值电压范围为(-∞,VREF1],且对数似然比为:If the low page data is "1" and is not flipped before and after decoding, and the data to be decoded is "1", the threshold voltage range is (-∞, VREF1], and the log-likelihood ratio is:
若低页数据为“1”且在译码前后没有翻转,并且待译码数据为“0”,则阈值电压范围为(VREF1,VREF2],且对数似然比为:If the low page data is "1" and is not flipped before and after decoding, and the data to be decoded is "0", the threshold voltage range is (VREF1, VREF2], and the log-likelihood ratio is:
若低页数据为“0”且在译码前后没有翻转,并且待译码数据为“1”,则阈值电压范围为(VREF3,∞],且对数似然比为:If the low page data is "0" and is not flipped before and after decoding, and the data to be decoded is "1", the threshold voltage range is (VREF3,∞], and the log-likelihood ratio is:
若低页数据为“0”且在译码前后没有翻转,并且待译码数据为“0”,则阈值电压范围为(VREF2,VREF3],且对数似然比为:If the low page data is "0" and is not flipped before and after decoding, and the data to be decoded is "0", the threshold voltage range is (VREF2, VREF3], and the log-likelihood ratio is:
若低页数据在译码前后发生翻转,则对数似然比为:If the low page data is flipped before and after decoding, the log-likelihood ratio is:
LLR(MSB)=LLRMAX;LLR(MSB)=LLRMAX;
其中,ER、P1、P2和P3分别为存储单元存储数据“11”、“10”、“00”和“01”时对应的存储单元状态,VREF1、VREF2和VREF3均为默认读参考电压,且VREF1<VREF2<VREF3,p(S)(x)表示阈值电压为x时待译码数据发生错误前存储单元状态为S的概率,S∈{ER,P1,P2,P3},LLRMAX表示大于50的常数。Among them, ER, P1, P2 and P3 are the corresponding memory cell states when the memory cells store data "11", "10", "00" and "01" respectively, VREF1, VREF2 and VREF3 are the default read reference voltages, and VREF1<VREF2<VREF3, p (S) (x) represents the probability that the memory cell state is S before the data to be decoded is in error when the threshold voltage is x, S∈{ER,P1,P2,P3}, LLRMAX means greater than 50 constant.
如图4所示,对于存储单元中的高页数据,若读出数据为1,可以确定阈值电压范围为(-∞,VREF1]∪(VREF3,+∞],若读出数据为0,可以确定阈值电压范围为(VREF1,VREF3],仅根据高页数据确定的阈值电压范围较大;根据同一单元中低页数据的值,可以进一步确定阈值电压范围为(-∞,VREF1]、(VREF1,VREF2]、(VREF2,VREF3]和(VREF3,+∞)之中的某个范围,由此缩小了阈值电压范围,可以得到更加精确的译码输入;As shown in Figure 4, for the high page data in the memory cell, if the read data is 1, the threshold voltage range can be determined to be (-∞, VREF1]∪(VREF3,+∞], if the read data is 0, it can be It is determined that the threshold voltage range is (VREF1, VREF3], and the threshold voltage range determined only according to the high page data is larger; according to the value of the low page data in the same cell, the threshold voltage range can be further determined to be (-∞, VREF1], (VREF1 , VREF2], (VREF2, VREF3] and (VREF3, +∞) in a certain range, thus narrowing the threshold voltage range, can get more accurate decoding input;
对于一个码字来说,如果译码前后在某一位上面发生翻转,则表明这一位所在的存储单元的阈值电压状态发生了偏移,导致读出数据错误;由于阈值电压状态偏移多偏移向相邻状态,且阈值电压相邻状态的编码为只相差一位的格雷码,所以若阈值电压状态偏移至相邻状态导致存储单元某一位发生翻转,则同单元的另一位数据是不变的;由于低页数据错误发生在P1和P2重叠区域,所以若存储单元低页数据译码前后发生翻转,则表明低页数据读取错误,阈值电压处于P1或P2状态;而P1和P2状态的高页数据都为0,所以同一单元高页数据有很大概率为0,LLR可以设置为一个很大的值LLRMAX,在以上实施例中,LLRMAX的取值范围为大于50。For a codeword, if a bit flips before and after decoding, it indicates that the threshold voltage state of the memory cell where this bit is located has shifted, resulting in an error in reading data; because the threshold voltage state shifts more Offset to the adjacent state, and the coding of the adjacent state of the threshold voltage is a Gray code that differs by only one bit, so if the threshold voltage state is shifted to the adjacent state and a bit of the memory cell is flipped, the other of the same cell will be reversed. Bit data is unchanged; since the low page data error occurs in the overlapping area of P1 and P2, if the memory cell low page data is flipped before and after decoding, it indicates that the low page data is read incorrectly, and the threshold voltage is in the P1 or P2 state; However, the high page data of P1 and P2 states are both 0, so the high page data of the same unit has a high probability of being 0, and LLR can be set to a large value LLRMAX. In the above embodiment, the value range of LLRMAX is greater than 50.
在本发明中,对高页数据进行译码时,利用同一单元的低页译码信息辅助高页数据的译码,可根据高页数据与低页数据之间的关联性缩小阈值电压范围,获得更加精确的译码输入,从而提高译码成功率、减少译码迭代次数,达到降低译码延迟、提高闪存读性能的目的。In the present invention, when decoding the high page data, the low page decoding information of the same unit is used to assist the decoding of the high page data, and the threshold voltage range can be narrowed according to the correlation between the high page data and the low page data, A more accurate decoding input is obtained, thereby improving the decoding success rate, reducing the number of decoding iterations, and achieving the purpose of reducing the decoding delay and improving the read performance of the flash memory.
基于“Exploiting Memory Device Wear-Out Dynamics to Improve NAND FlashMemory System Performance”中的闪存错误模型及参数,分别采用传统的LDPC码译码方法(即没有辅助信息的译码)及本发明提供的适用于MLC NAND闪存的LDPC码译码方法(即有辅助信息的译码)进行译码测试,设置LDPC码的码长为9216,信息长度为8192,码率为88.9%,最大译码迭代次数为50。测试样例擦写周期(PE)为2000-5000次,编程干扰次数为0-3次,保留时间为1个月到10年,闪存误码率为10-3到10-2级别。具体测试样例如表1所示,采用两种译码方法对表1所示测试样例进行译码测试的译码成功率及采用辅助信息的译码方法的高页误码率如图5所示。Based on the flash memory error model and parameters in "Exploiting Memory Device Wear-Out Dynamics to Improve NAND FlashMemory System Performance", the traditional LDPC code decoding method (ie decoding without auxiliary information) and the MLC code provided by the present invention are respectively adopted. The LDPC code decoding method of NAND flash memory (that is, decoding with auxiliary information) is tested for decoding, and the code length of the LDPC code is set to 9216, the information length is 8192, the code rate is 88.9%, and the maximum number of decoding iterations is 50. The test sample erase and write cycle (PE) is 2000-5000 times, the number of programming disturbances is 0-3 times, the retention time is 1 month to 10 years, and the flash bit error rate is 10 -3 to 10 -2 level. The specific test samples are shown in Table 1. The decoding success rate of the test samples shown in Table 1 using two decoding methods and the high page error rate of the decoding method using auxiliary information are shown in Figure 5. Show.
表1测试样例Table 1 Test Example
根据图5所示的测试结果可知,相比于传统的LDPC码译码方法,本发明所提供的适用于MLC NAND闪存的LDPC码译码方法最多提高了49%的译码成功率,减少了40%的译码迭代次数,能有效降低译码延迟。According to the test results shown in FIG. 5 , compared with the traditional LDPC code decoding method, the LDPC code decoding method suitable for MLC NAND flash memory provided by the present invention improves the decoding success rate by up to 49%, and reduces the 40% of the decoding iteration times can effectively reduce the decoding delay.
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。Those skilled in the art can easily understand that the above descriptions are only preferred embodiments of the present invention, and are not intended to limit the present invention. Any modifications, equivalent replacements and improvements made within the spirit and principles of the present invention, etc., All should be included within the protection scope of the present invention.
Claims (2)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811401607.5A CN109660263B (en) | 2018-11-22 | 2018-11-22 | An LDPC code decoding method suitable for MLC NAND flash memory |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811401607.5A CN109660263B (en) | 2018-11-22 | 2018-11-22 | An LDPC code decoding method suitable for MLC NAND flash memory |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN109660263A CN109660263A (en) | 2019-04-19 |
| CN109660263B true CN109660263B (en) | 2022-07-05 |
Family
ID=66112286
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201811401607.5A Active CN109660263B (en) | 2018-11-22 | 2018-11-22 | An LDPC code decoding method suitable for MLC NAND flash memory |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN109660263B (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110752850B (en) * | 2019-08-27 | 2023-04-07 | 广东工业大学 | Method for quickly iterating LDPC code of MLC flash memory chip |
| CN111611101B (en) * | 2020-04-22 | 2023-09-29 | 珠海妙存科技有限公司 | Method and device for adjusting flash memory read data throughput rate |
| CN114047887B (en) * | 2022-01-13 | 2022-04-22 | 苏州浪潮智能科技有限公司 | A method, device and medium for improving the success rate of data reading |
| CN115035935A (en) * | 2022-07-06 | 2022-09-09 | 中国科学院微电子研究所 | Decoding method and device for a memory |
Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102655021A (en) * | 2011-03-02 | 2012-09-05 | 株式会社东芝 | Semiconductor memory device and decoding method |
| CN103888148A (en) * | 2014-03-20 | 2014-06-25 | 山东华芯半导体有限公司 | LDPC hard decision decoding method for dynamic threshold value bit-flipping |
| CN103917964A (en) * | 2011-11-02 | 2014-07-09 | 国立大学法人东京大学 | Memory controller and data storage device |
| CN104835535A (en) * | 2015-05-15 | 2015-08-12 | 华中科技大学 | Solid disc self-adaptive error correction method and system |
| US9142323B1 (en) * | 2011-03-01 | 2015-09-22 | Sk Hynix Memory Solutions Inc. | Hardware acceleration of DSP error recovery for flash memory |
| US9294132B1 (en) * | 2011-11-21 | 2016-03-22 | Proton Digital Systems, Inc. | Dual-stage data decoding for non-volatile memories |
| CN105679364A (en) * | 2014-12-08 | 2016-06-15 | 桑迪士克技术有限公司 | Rewritable multibit non-volatile memory with soft decode optimization |
| CN106294197A (en) * | 2016-08-05 | 2017-01-04 | 华中科技大学 | A kind of page frame replacement method towards nand flash memory |
| CN106371943A (en) * | 2016-09-06 | 2017-02-01 | 华中科技大学 | LDPC (low density parity check) decoding optimization method based on flash programming interference error perception |
| CN106504796A (en) * | 2016-10-28 | 2017-03-15 | 东南大学 | A Polar Code Error Correction Scheme Applied to NAND Flash Memory |
| CN106575522A (en) * | 2014-08-20 | 2017-04-19 | 桑迪士克科技有限责任公司 | Memory modules and methods for repair effects using isolation processes |
| CN107294542A (en) * | 2017-05-23 | 2017-10-24 | 南京邮电大学 | Volume, interpretation method based on double-deck LDPC code in MLC flash |
| CN107395214A (en) * | 2017-07-12 | 2017-11-24 | 华中科技大学 | A kind of method that LDPC decoding latencies are reduced based on Hash memory pages error property |
| CN107608818A (en) * | 2016-07-12 | 2018-01-19 | 大心电子股份有限公司 | Coding/decoding method, memory storage apparatus and memorizer control circuit unit |
| US10061640B1 (en) * | 2013-03-12 | 2018-08-28 | Western Digital Technologies, Inc. | Soft-decision input generation for data storage systems |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7966546B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Non-volatile memory with soft bit data transmission for error correction control |
| US9337865B2 (en) * | 2012-05-04 | 2016-05-10 | Seagate Technology Llc | Log-likelihood ratio (LLR) dampening in low-density parity-check (LDPC) decoders |
| US10395754B2 (en) * | 2016-03-21 | 2019-08-27 | Nandext Srl | Method for decoding bits in a solid state drive, and related solid state drive |
| CN106160753B (en) * | 2016-06-23 | 2020-01-10 | 湖南大学 | Weight multi-bit flipping LDPC decoding method suitable for SSD |
| CN107590021B (en) * | 2017-08-22 | 2020-01-03 | 华中科技大学 | Encoder and decoder for reducing error rate of flash memory and encoding and decoding methods |
-
2018
- 2018-11-22 CN CN201811401607.5A patent/CN109660263B/en active Active
Patent Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9142323B1 (en) * | 2011-03-01 | 2015-09-22 | Sk Hynix Memory Solutions Inc. | Hardware acceleration of DSP error recovery for flash memory |
| CN102655021A (en) * | 2011-03-02 | 2012-09-05 | 株式会社东芝 | Semiconductor memory device and decoding method |
| CN103917964A (en) * | 2011-11-02 | 2014-07-09 | 国立大学法人东京大学 | Memory controller and data storage device |
| US9294132B1 (en) * | 2011-11-21 | 2016-03-22 | Proton Digital Systems, Inc. | Dual-stage data decoding for non-volatile memories |
| US10061640B1 (en) * | 2013-03-12 | 2018-08-28 | Western Digital Technologies, Inc. | Soft-decision input generation for data storage systems |
| CN103888148A (en) * | 2014-03-20 | 2014-06-25 | 山东华芯半导体有限公司 | LDPC hard decision decoding method for dynamic threshold value bit-flipping |
| CN106575522A (en) * | 2014-08-20 | 2017-04-19 | 桑迪士克科技有限责任公司 | Memory modules and methods for repair effects using isolation processes |
| CN105679364A (en) * | 2014-12-08 | 2016-06-15 | 桑迪士克技术有限公司 | Rewritable multibit non-volatile memory with soft decode optimization |
| CN104835535A (en) * | 2015-05-15 | 2015-08-12 | 华中科技大学 | Solid disc self-adaptive error correction method and system |
| CN107608818A (en) * | 2016-07-12 | 2018-01-19 | 大心电子股份有限公司 | Coding/decoding method, memory storage apparatus and memorizer control circuit unit |
| CN106294197A (en) * | 2016-08-05 | 2017-01-04 | 华中科技大学 | A kind of page frame replacement method towards nand flash memory |
| CN106371943A (en) * | 2016-09-06 | 2017-02-01 | 华中科技大学 | LDPC (low density parity check) decoding optimization method based on flash programming interference error perception |
| CN106504796A (en) * | 2016-10-28 | 2017-03-15 | 东南大学 | A Polar Code Error Correction Scheme Applied to NAND Flash Memory |
| CN107294542A (en) * | 2017-05-23 | 2017-10-24 | 南京邮电大学 | Volume, interpretation method based on double-deck LDPC code in MLC flash |
| CN107395214A (en) * | 2017-07-12 | 2017-11-24 | 华中科技大学 | A kind of method that LDPC decoding latencies are reduced based on Hash memory pages error property |
Non-Patent Citations (5)
| Title |
|---|
| Low-Complexity Detection and Decoding Scheme for LDPC-Coded MLC NAND Flash Memory;Xusheng Lin 等;《中国通信》;20180615;第15卷(第06期);58-67 * |
| Performance of the modified SRBI-MLGD algorithm for LDPC codes in MLC NAND flash memory;Jiaying Wen 等;《2015 10th International Conference on Information, Communications and Signal Processing (ICICS)》;20160428;1-5 * |
| RBER Aware Multi-Sensing for Improving Read Performance of 3D MLC NAND Flash Memory;Meng Zhang 等;《IEEE Access》;20181001;第6卷;61934-61947 * |
| Using Disturbance Compensation and Data Clustering (DC)2 to Improve Reliability and Performance of 3D MLC Flash Memory;Yazhi Feng 等;《2017 IEEE International Conference on Computer Design (ICCD)》;20171123;565-572 * |
| 动态内存分配器研究综述;刘翔 等;《计算机学报》;20180418;第41卷(第10期);2359-2378 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109660263A (en) | 2019-04-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10929221B2 (en) | Multi-tier detection and decoding in flash memories utilizing data from additional pages or wordlines | |
| CN111538620B (en) | Robust detection method for memory devices | |
| CN109660263B (en) | An LDPC code decoding method suitable for MLC NAND flash memory | |
| CN113032178B (en) | Memory controller and flash memory access method | |
| KR101981355B1 (en) | Soft information generation for memory systems | |
| CN102203875B (en) | Method and apparatus for soft data generation for memory devices using reference cells | |
| US8301979B2 (en) | Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders | |
| JP6367562B2 (en) | Detection and decoding in flash memory using selective binary and non-binary decoding | |
| CN107590021B (en) | Encoder and decoder for reducing error rate of flash memory and encoding and decoding methods | |
| CN101601094A (en) | Use the method for a plurality of thresholding reading cells | |
| US8990668B2 (en) | Decoding data stored in solid-state memory | |
| Ho et al. | A 45nm 6b/cell charge-trapping flash memory using LDPC-based ECC and drift-immune soft-sensing engine | |
| US8947929B1 (en) | Flash-based soft information generation | |
| CN112860474B (en) | Soft bit flip decoder for fast converging low density parity check codes | |
| CN106981308B (en) | Application method for accurately acquiring LLR information | |
| CN108958963A (en) | A kind of NAND FLASH error control method based on LDPC and cyclic redundancy check code | |
| US20210328597A1 (en) | Recovering from hard decoding errors by remapping log likelihood ratio values read from nand memory cells | |
| US20250037784A1 (en) | Efficient soft decoding of error correction code via extrinsic bit information | |
| CN114333925A (en) | Adjustment method of read reference voltage in non-volatile memory device and memory system controller | |
| CN110111829B (en) | A method, device and medium for channel correction of flash memory | |
| CN112331244B (en) | Soft input soft output component code decoder for generalized low density parity check code | |
| CN107391299A (en) | A kind of method for lifting flash-memory storage system reading performance | |
| US12197283B2 (en) | Efficient hard decoding of error correction code via extrinsic bit information | |
| CN111863088A (en) | A kind of information decoding method, apparatus, electronic equipment and storage medium | |
| CN116072206A (en) | Method, device, electronic device and storage medium for testing the number of flash memory errors |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |