CN108322225B - LDPC decoding method and device based on mutual information - Google Patents

LDPC decoding method and device based on mutual information Download PDF

Info

Publication number
CN108322225B
CN108322225B CN201710030720.6A CN201710030720A CN108322225B CN 108322225 B CN108322225 B CN 108322225B CN 201710030720 A CN201710030720 A CN 201710030720A CN 108322225 B CN108322225 B CN 108322225B
Authority
CN
China
Prior art keywords
data
processes
combination
read
mutual information
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
Application number
CN201710030720.6A
Other languages
Chinese (zh)
Other versions
CN108322225A (en
Inventor
王金一
路向峰
孙清涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201710030720.6A priority Critical patent/CN108322225B/en
Publication of CN108322225A publication Critical patent/CN108322225A/en
Application granted granted Critical
Publication of CN108322225B publication Critical patent/CN108322225B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-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

Abstract

LDPC decoding method and apparatus based on mutual information are provided. A method of obtaining a combination of processes for LDPC decoding, wherein the combination of processes is used to obtain soft information for error correction soft decoding, comprising: obtaining multiple sets of data from the NVM chip using multiple processes; calculating mutual information of each group of read data and data stored in the NVM chip to obtain a plurality of mutual information; finding the maximum mutual information with the maximum value in the plurality of mutual information; and recording a combination of processes that result in the maximum mutual information.

Description

LDPC decoding method and device based on mutual information
Technical Field
The present application relates to low density parity check code (Low Density Parity Check Code, LDPC) decoding methods and apparatus, and more particularly, to obtaining soft information for LDPC soft decoding based on mutual information.
Background
The LDPC code is an error correction code, and compared with other error correction codes, the LDPC code has the characteristics of strong error correction capability and fast convergence speed under the same code rate, so that the LDPC code is an error correction code which is optimal in the field of SSD (solid state drive ) controllers in the present stage.
The LDPC code is a binary block code, and an ultra-sparse matrix is adopted as a check matrix. Non-zero elements in each row (column) of the check matrix are rare. For any legitimate codeword V, the product of codeword V and the check matrix H is zero.
Common LDPC decoding algorithms include: belief propagation algorithms (Belief Propagation, BP), minimum Sum algorithms (Min-Sum) and Bit inversion algorithms (Bit Flip), etc. And the minimum sum algorithm and the improved algorithm based on the minimum sum algorithm are widely adopted in the SSD controller field due to the fact that the hardware is simple to realize, and the error correction performance is good enough.
LDPC decoding includes hard decoding and soft decoding in which a decoder performs iterative decoding using soft information (also referred to as soft bit metrics).
To obtain soft information, soft information such as log likelihood ratios (LLRs, logarithmic Likelihood Ratio) is obtained using the result of reading data multiple times by reading data from a memory cell using a plurality of different decision voltages. In some NVM chips, the decision voltage used in a read operation may be specified. Some flash memory chips provide "Read-redo" (Read-Retry) techniques or commands. The threshold voltage used in a read operation is selected by indicating different parameters for the read operation.
Disclosure of Invention
To obtain soft information, it is necessary to read out data from the memory cells using different decision voltages. This also increases the number of times data is read out, data throughput, takes up flash channel bandwidth, increases the time to acquire data, and consumes more power. It is desirable to reduce the number of times data is read from a memory cell and obtain optimal or superior soft information. It is thus necessary to identify a combination of data readout modes or a combination of decision voltages that can obtain optimal or superior soft information.
The application is based on the following basic idea:
1, N treatment process combinations Ti;
2, processing the random variable X by a certain processing procedure combination Ti to obtain a random variable Y, and calculating mutual information Mi of the random variable X and the random variable Y at the moment;
3, finding out the maximum mutual information Mi and combining Ti with the corresponding processing process;
4, ti is considered to be the combination of processes that is most advantageous for recovering the random variable X from the random variable Y.
According to a first aspect of the present application, there is provided a method of obtaining a combination of processes according to the first aspect of the present application, wherein the combination of processes is used to obtain soft information for error correction soft coding, comprising: obtaining multiple sets of data from the NVM chip using multiple processes; calculating mutual information of each group of data and data stored in the NVM chip to obtain a plurality of mutual information; finding the maximum mutual information with the maximum value in the plurality of mutual information; and recording a combination of processes that result in the maximum mutual information.
According to a method of the first obtaining process combination of the first aspect of the present application, there is provided a method of the second obtaining process combination of the first aspect of the present application, wherein each set of data of the plurality of sets of data comprises one or more sets of data, each set of data being data read from the NVM chip by one of the plurality of processes.
According to a method of the first or second obtaining a combination of processes according to the first aspect of the present application, there is provided a method of the third obtaining a combination of processes according to the first aspect of the present application, wherein each set of data of the plurality of sets of data comprises one or more sets of data, each set of data being data obtained by error correction decoding data read from the NVM chip by one of the plurality of processes.
According to a method of the first obtaining process combination of the first aspect of the present application, there is provided a method of the fourth obtaining process combination of the first aspect of the present application, wherein each set of data of the plurality of sets of data comprises one or more sets of data, each set of data being data read from the NVM chip by a read command having a different parameter.
According to a method of the first or fourth obtaining a combination of processes of the first aspect of the present application, there is provided a method of the fifth obtaining a combination of processes of the first aspect of the present application, wherein each set of data of the plurality of sets of data comprises one or more sets of data, each set of data being data obtained by error correction decoding data read from the NVM chip by a read command having a different parameter.
According to a method of the first obtaining process combination of the first aspect of the present application, there is provided a method of the sixth obtaining process combination of the first aspect of the present application, wherein each set of data of the plurality of sets of data comprises one or more sets of data, each set of data being data read from the NVM chip by a read command having a different parameter; and the plurality of sets of data includes a set of data read from the NVM chip by a normal read command.
According to a method of the first or sixth obtaining combination of processes of the first aspect of the present application, there is provided a method of the seventh obtaining combination of processes of the first aspect of the present application, wherein each set of data of the plurality of sets of data comprises one or more sets of data, each set of data being data obtained by error correction decoding data read from the NVM chip by a read command having a different parameter; and the plurality of sets of data includes a set of data obtained by error correction decoding of data read from the NVM chip by a normal read command.
According to any one of the methods of the first to seventh obtaining combinations of processes of the first aspect of the present application, there is provided the method of the eighth obtaining combination of processes of the first aspect of the present application, wherein each set of data of the plurality of sets of data includes a specified number of copies of data.
According to any of the methods of the first through eighth combinations of acquisition processes of the first aspect of the present application, there is provided a method of the ninth combination of acquisition processes of the first aspect of the present application, wherein calculating mutual information of each set of read data and data stored in the NVM chip comprises: for a first set of read data in the each set of read data, counting a joint probability of each symbol of the read data with each symbol of the stored data in the NVM chip; calculating information entropy of a random variable Y representing a symbol of the read data; calculating information entropy of a random variable X representing symbols of stored data in the NVM chip; calculating the joint information entropy of the random variable X and the random variable Y; and calculating the sum of the information entropy of the random variable X and the information entropy of the random variable Y and the difference of the combined information entropy of the random variable X and the random variable Y to obtain mutual information of the first group of read data and the data stored in the NVM chip.
According to any of the methods of the ninth obtaining process combination of the first aspect of the present application, there is provided the method of the tenth obtaining process combination of the first aspect of the present application, wherein calculating mutual information of each set of read data and data stored in the NVM chip further comprises: calculating the edge probability of each symbol of the read data and the edge probability of each symbol of the data stored in the NVM chip according to the joint probability of each symbol of the read data and each symbol of the data stored in the NVM chip; calculating the information entropy of a random variable Y representing the symbol of the read data according to the edge probability of each symbol of the read data; and calculating the information entropy of the random variable X representing the symbols of the stored data in the NVM chip according to the edge probability of each symbol of the stored data in the NVM chip.
According to any one of the methods of the first to tenth obtaining combinations of processes of the first aspect of the present application, there is provided the method of the eleventh obtaining combination of processes of the first aspect of the present application, wherein the data stored in the NVM chip is data stored in a physical page of a specified type of the NVM chip.
According to any one of the methods of the first to eleventh obtaining combinations of processes of the first aspect of the present application, there is provided a method of the twelfth obtaining combination of processes according to the first aspect of the present application, wherein the recorded combination of processes does not include a process using a common read command.
According to a second aspect of the present application, there is provided a first decoding method according to the second aspect of the present application, comprising: acquiring a first set of data from the NVM chip using the recorded combination of processes; providing the first set of data to a decoder for soft decoding; wherein the combination of treatments is obtained according to any one of the methods provided in the first aspect of the present application.
According to a third aspect of the present application, there is provided a first decoding method according to the third aspect of the present application, including: reading the first data from the NVM chip using a normal read command; if the error correction decoding of the first data fails, acquiring a first set of data from the NVM chip using the recorded combination of processes; providing the first set of data to a decoder for soft decoding; wherein the combination of treatments is obtained according to any one of the methods provided in the first aspect of the present application.
According to a fourth aspect of the present application, there is provided a first decoding method according to the fourth aspect of the present application, comprising: reading the first data from the NVM chip using a normal read command; if the error correction decoding of the first data fails, acquiring a first set of data from the NVM chip using the recorded combination of processes; providing the first data and the first group of data to a decoder for soft decoding; wherein the combination of treatments is obtained according to any one of the methods provided in the first aspect of the present application.
According to a first decoding method of a fourth aspect of the present application, there is provided a second decoding method according to the fourth aspect of the present application, wherein the first set of data does not include data read out from the NVM chip using a common read command.
According to a second aspect, a third aspect and a fourth aspect of the present application, there is provided a third decoding method according to the fourth aspect of the present application, including: and acquiring soft information of the stored data in the NVM chip from the first group of data, and performing soft decoding on the soft information.
According to a second, third, and fourth aspect of the present application, there is provided a decoding method, and there is provided a fourth decoding method according to the fourth aspect of the present application, wherein the decoder is an LDPC decoder, a Turbo code decoder, or a polar code decoder.
According to a fifth aspect of the present application, there is provided an apparatus for obtaining a combination of processes for obtaining soft information for error correction soft coding according to the first aspect of the present application, the apparatus comprising: a data acquisition module for acquiring multiple sets of data from the NVM chip using multiple processes; the mutual information calculation module is used for calculating mutual information of each group of read data and data stored in the NVM chip to obtain a plurality of pieces of mutual information; the maximum mutual information acquisition module is used for finding out the maximum mutual information with the maximum value in the plurality of mutual information; and the recording module is used for recording the combination of the processing procedures for obtaining the maximum mutual information.
According to a sixth aspect of the present application, there is provided a first decoding apparatus according to the sixth aspect of the present application, comprising: a data acquisition module for acquiring a first set of data from the NVM chip using the recorded combination of processes; the soft decoding module is used for providing the first group of data for a decoder to perform soft decoding; wherein said combination of processes is obtained according to the first means for obtaining a combination of processes of the fifth aspect of the present application.
According to a seventh aspect of the present application, there is provided a first decoding device according to the seventh aspect of the present application, comprising: a first data acquisition module for reading first data from the NVM chip using a normal read command; the second data acquisition module is used for acquiring a first group of data from the NV M chip by utilizing the recorded combination of the processing procedures if the error correction decoding of the first data fails; the soft decoding module is used for providing the first group of data for a decoder to perform soft decoding; wherein said combination of processes is obtained according to the first means for obtaining a combination of processes of the fifth aspect of the present application.
According to an eighth aspect of the present application, there is provided a first decoding device according to the eighth aspect of the present application, comprising: a first data acquisition module for reading first data from the NVM chip using a normal read command; the second data acquisition module is used for acquiring a first group of data from the NV M chip by utilizing the recorded combination of the processing procedures if the error correction decoding of the first data fails; the soft decoding module is used for providing the first data and the first group of data for a decoder to carry out soft decoding; wherein said combination of processes is obtained according to the first means for obtaining a combination of processes of the fifth aspect of the present application.
According to a ninth aspect of the present application there is provided a first solid state storage device according to the ninth aspect of the present application comprising, a controller, a decoder and a non-volatile memory; in response to a read command from the information processing device, the controller is configured to retrieve a first set of data from the nonvolatile memory using the recorded combination of processes; and the controller is used for providing the first group of data to the decoder for soft decoding.
According to a tenth aspect of the present application there is provided a first solid state storage device according to the tenth aspect of the present application comprising, a controller, a decoder and a non-volatile memory; in response to a read command from an information processing apparatus, the controller is configured to read out first data from a nonvolatile memory using a normal read command; in response to the decoder indicating an error correction decoding failure for the first data, the controller is configured to obtain a first set of data from the NVM chip using the recorded combination of processes; and the controller is used for providing the first group of data to the decoder for soft decoding.
Drawings
The invention, as well as a preferred mode of use and further objectives and advantages thereof, will best be understood by reference to the following detailed description of illustrative embodiments when read in conjunction with the accompanying drawings, wherein:
FIG. 1 is a schematic diagram of a system according to an embodiment of the present application;
FIG. 2 is a flow chart of a process for obtaining a preferred combination of processes according to an embodiment of the present application;
FIG. 3 is a schematic diagram of a system according to yet another embodiment of the present application; and
fig. 4 is a flow chart of a coding process according to an embodiment of the present application.
Detailed Description
Fig. 1 is a schematic diagram of a system according to an embodiment of the present application.
Data x is written into NVM chip 110. The written data is read from NVM chip 110 through one or more processes. In fig. 1, three kinds of reading processes (a reading process 141, a reading process 142, and a reading process 143) are shown as an example, and data read out by the reading process 141 is denoted as y1, data read out by the reading process 142 is denoted as y2, and data read out by the reading process 143 is denoted as y3. In the example of fig. 1, the difference between each read process is that either a different decision voltage is used, or a read redo command with different parameters is used. The data (y 1, y2, y 3) read out through the three reading processes are supplied to an ECC (error correction code) decoding section 120 for generating soft information and performing error correction decoding based on the soft information. Various error correction codes including LDPC (low density parity check code), turbo code, polar (Polar) code, etc. can be decoded using soft information. Embodiments of the present application are applicable to such error correction coding that can utilize soft information coding. And although in the embodiment of fig. 1 3 read processes are used to obtain 3 read data and to obtain soft information, it will be appreciated that 1, 2, 4, and other numbers of read processes may be used to obtain soft information.
In fig. 1, three read processes for reading out data (y 1, and y 1) constitute a combination of read processes. And also calculates mutual information of the data written to NVM chip 110 and the data resulting from the combined processing of the read processes.
Mutual Information (MI) is calculated in the Mutual Information calculation module 130 based on the known data x written to the NVM chip 110 and the data read from the NVM chip 110 by the read process combination (e.g., y1, y2 and y 3). And calculating combined mutual information of other read processes. And compares a plurality of mutual information obtained from a plurality of combinations of the read processes. And selecting the read process combination with the maximum mutual information to obtain soft information, thereby improving the success rate of error correction decoding.
Fig. 2 is a flowchart of a process according to an embodiment of the present application. One purpose of the embodiment shown in fig. 2 is to obtain a combination of processes with maximum mutual information. At step 210, multiple sets of data are obtained from the NVM chip using multiple processes. Taking the example of reading data from an NVM chip, there are a variety of processes for reading data. By way of example, read rework, with parameter r, is one of the processes of reading data from an NVM chip. The read-redo parameter r has, for example, 3 different values (e.g., r1, r2, r 3), then 7 combinations of processes for reading data are shown in table 1, each combination being represented by a combination of values of the read-redo parameter employed. Also, each combination of processes may have different parameters and/or a different number of processes. Through each set of combinations of processes, multiple sets of data are read from the NVM chip. Referring to table 1, the read data is indicated by y, the subscript of y corresponding to the subscript of the parameter r of the read redo. The read data yi with index i is read by a read redo with parameter having the same index i.
In step 220, the mutual information between each set of read data and the data stored in the NVM chip is calculated to obtain a plurality of mutual information. For example, for a set of read data y1, the mutual information of the set including data y1 and the stored data x in the NVM chip is calculated. In another example, for a set of read data y1 and y2, the mutual information of the set including read data y1 and y2 and the stored data x in the NVM chip is calculated.
Hereinafter, a method of calculating mutual information will be described by way of example.
To obtain data x, the data written into the NVM chip may be known data x. As another example, even if data x is unknown, after data y1, y2, and/or y3 is read out from NVM chip 110, the read out data y1, y2, and/or y3 is error correction decoded by ECC unit 120 (see fig. 1) to obtain data x written into the NVM chip.
In step 230, the mutual information (maximum mutual information) having the largest value among the plurality of mutual information is found for the mutual information calculated based on each set of read data. And at step 240, a combination of processes that yields the maximum mutual information (e.g., a combination of read and rework of parameters r1, r2, r3, respectively) is determined. Generally, a combination comprising more processing will result in greater mutual information. In an embodiment according to the present invention, for a combination of processes, the processes are classified by the number of processes contained therein, and for each number category, a process combination having the largest mutual information is determined (for example, in table 1, the processes are combined in 3 categories, including 1 process, 2 processes, and 3 processes, respectively).
In step 240, a combination of processes that yields the maximum mutual information is obtained. Next, when soft decoding with soft information is desired, it is advantageous to use the combination of processes with the maximum mutual information obtained in step 240 to obtain a set of read data from the NVM chip. In step 250, a set of read data is obtained from the NVM chip using the combination of processes with the greatest mutual information obtained in step 240 (e.g., a combination of read and rework of parameters r1, r2, r3, respectively). And providing the set of read data obtained in step 250 to an LDPC decoder for obtaining soft information and performing soft decoding in step 260. It will be appreciated that steps 250 and 260 may also be applied to error correction decoding processes that can utilize soft information, such as Turbo codes, polar codes, and the like.
TABLE 1
Process set Reading out data
r1 y1
r2 y2
r3 y3
r1,r2 y1,y2
r1,r3 y1,y3
r2,r3 y2,y3
r1,r2,r3 y1,y2,y3
In embodiments according to the present application, the implementation of steps 210 through 240 and the implementation of steps 250 through 260 may occur at different times and/or locations. For example, steps 210 through 240 are in the research/development stage of the product (solid state disk, NVM chip, controller chip, ECC decoder, etc.), while steps 250 through 260 are performed when the user uses the product. The resulting combination of processes with the maximum mutual information of step 240 may be recorded in the NVM chip of the solid-state storage device. Or by a control module of the solid state storage device, such as program code or circuitry, to apply the resulting combination of processes with the greatest mutual information of step 240 when soft decoding is to be performed.
As yet another embodiment, steps 210 through 260 occur at adjacent times. The solid state storage device thus obtains the process combination with the largest mutual information at run-time by performing steps 210 through 240 and uses the obtained process combination by performing steps 250 and 260 when soft decoding is subsequently required.
The following describes the acquisition process of mutual information. In the embodiment according to the present application, the random variable X is processed through various processing procedures T, the result of the processing is taken as a random variable Y, and mutual information I (X, Y) of X and Y is calculated according to formulas (1) and (2).
H(X)=-∑ x∈X p(x)log 2 p(x)(1)
I(X,Y)=H(X)+H(Y)-H(X,Y) (2)
The random variable X represents the original data, e.g., data written in NVM.
The random variable Y represents data obtained by subjecting the random variable X to a process T, such as data read from an NVM chip.
By way of example, X represents the original data written to the NVM chip, while process T is a read rework with parameter r, and Y represents the data read from the NVM chip.
H (X) is the information entropy of the random variable X, calculated from the edge probability of X (formula (1)); h (Y) is the information entropy of the random variable Y, calculated from the edge probability of Y (formula (1)), H (X, Y) is the joint information entropy of the random variable X and Y, H (X, Y) = - Σ (x,y)∈(X,Y) p(x,y)log 2 p(x,y)。
X is one possible value (also called sign) of the random variable X. Y is one possible value (also called sign) of the random variable Y. p (X) is the edge probability of X, X ε X, p (Y) is the edge probability of Y, Y ε Y. p (x, y) is the probability that x and y occur simultaneously (joint probability of x and y). By way of example, if X represents the original data written to the NVM chip, the possible values of the data stored in the NVM chip are "0" and "1", and the possible values of the data read from the NVM chip are "0" and "1". Thus { "0", "1" } is a set of values of x/y.
TABLE 2
Figure BDA0001210898140000081
/>
In table 2, X0 and X1 are two possible values of the random variable X, and y0, y1, …, yn are values obtained by processing one value of the random variable X by one of the plurality of processing procedures T, respectively. And p (x 0, y 0) in table 2 represents the probability that x0 and y0 occur simultaneously (joint probability of x0 and y 0). Table 2 is constructed by statistics of random variables X and Y, and the mutual information I (X, Y) of X and Y is calculated according to formulas (1) and (2).
Table 3 shows statistics for random variables X and Y in one example. The value X of the random variable X represents 1 bit of information stored in the NVM chip and the value Y of the random variable Y represents the result of processing X according to a particular process (e.g., read-redo with parameter 0). The information stored in the NVM chip is read multiple times with a read redo with parameter 0 to construct table 3. Through multiple experiments, the number of times of reading data "0" is 999 when data "0" is stored in the NVM chip (x takes a value of 0), the number of times of reading data "1" is 1 when data "0" is stored in the NVM chip, the number of times of reading data "0" is 2 when data "1" is stored in the NVM chip (x takes a value of 1), and the number of times of reading data "1" is 998 when data "1" is stored in the NVM chip. And the total number of experiments was 2000 (999+1+998+2).
TABLE 3 Table 3
y\x 0 1
0 999 2
1 1 998
From the experimental results in table 3, the probability of simultaneous occurrence of x and y p (x, y) (joint probability of x and y), p (0, 0) =999/2000, p (0, 1) =2/2000, p (1, 0) =1/2000, p (1, 1) =998/2000 can be obtained.
Next, p (X) and H (X) are calculated:
p(0)=p(0,0)+p(0,1),
p (1) =p (1, 0) +p (1, 1), and
H(X)=-p(0)log 2 p(0)-p(1)log 2 p(1)。
next, p (Y) and H (X, Y) are calculated:
p(0)=p(0,0)+p(1,0),
p(1)=p(0,1)+p(1,1),
H(Y)=-p(0)log 2 p(0)-p(1)log 2 p (1)
H(X,Y)=-p(0,0)log 2 p(0,0)-p(0,1)log 2 p(0,1)-p(1,0)log 2 p(1,0)-p(1,1)log 2 p (1, 1). And can calculate the mutual information I (X, Y) =h (X) +h (Y) -H (X, Y) of X and Y when processing with the read repetition of parameter 0.
Reading data X stored in the NVM chip to obtain read data Y, and calculating mutual information I of X and Y in the read-redo processing process Ti Ti (X,Y)。
The statistical experiments required to construct table 3 may be performed in the laboratory prior to delivery of the solid state storage device for use, or may be performed in the use of the solid state storage device. Optionally, after table 3 is obtained and mutual information I (X, Y) is calculated, statistics may be continued on X and Y to update table 3 and corresponding mutual information I (X, Y).
It will be appreciated that to construct Table 3 and obtain mutual information I (X, Y), it is necessary to obtain statistics (joint probabilities of X and Y) of all possible values of (X, Y) for process Ti.
The mutual information acquisition process according to still another example of the present application is described in conjunction with table 4. Table 4 shows statistics for random variables X and Y in one example. The value X of the random variable X represents 1 bit of information stored in the NVM chip, and the value Y of the random variable Y represents the result (denoted by r0 and r1 respectively) obtained by processing X twice according to the read-redo with parameter 0 and the read-redo with parameter 1. The information stored in the NVM chip is read multiple times with a read redo with parameter 0 and a read redo with parameter 1 to construct table 4. Through multiple experiments, the number of times of reading data as "00" through twice reading and repeating is 999 times when the data "0" is stored in the NVM chip (the value of x is 0), the number of times of reading data as "01" through twice reading and repeating is 1 time when the data "0" is stored in the NVM chip, the number of times of reading data as "10" through twice reading and repeating is a times, and the number of times of reading data as "11" through twice reading and repeating is b times. Also shown in table 4 are the number of different y values read out by the two read redos when data "1" is stored in the NVM chip. And the total number of times is the sum of the items in the numerical parts in table 3.
And from the statistics in table 4, the probability of x and y simultaneous occurrence p (x, y) (the joint gai rate of x and y) can be calculated. Obtaining the edge probability p (X) of X, the information entropy H (X) of the random variable X, the edge probability p (Y) of Y, the information entropy H (Y) of the random variable Y, and obtaining the processing process combination T of reading and redoing the data twice by reading and redoing with the parameter 0 and the parameter 1 r0r1 Mutual information I of X and Y Tr0r1 (X,Y)。
For other processes, e.g. a process combination T of reading data twice with a read redo of parameter 1 and a read redo of parameter 2 r1r2 Processing procedure combination T of reading and redoing with parameter 0 and reading and redoing with parameter 2 and reading data twice 01r2 Processing (combination) T for reproducing read-once data with read of parameter 1 r1 And the like, the mutual information of X and Y can be calculated respectively under each processing procedure combination.
TABLE 4 Table 4
Figure BDA0001210898140000091
Figure BDA0001210898140000101
The mutual information shows the correlation of the random variable X and the random variable Y. The higher the mutual information, the stronger the correlation of Y with X. And selecting a processing procedure combination which is used for obtaining the maximum mutual information from the plurality of processing procedures as the processing procedure combination adopted when the soft information is acquired. More information can be obtained from the combination of the processing procedures, and the success rate of soft decoding is improved.
Alternatively, a selection is made among a plurality of possible combinations of processes, while a complex, costly combination of processes is discarded. For example, for a combination of processes for reading data from an NVM chip, the number of times data is read using read redo is limited to 3 times or less when soft decoding is performed. So that in case of reading and redoing m parameters, the optional process is combined with
Figure BDA0001210898140000102
(from the read-redo of m parameters, select any 3 reads)/(3 reads)>
Figure BDA0001210898140000103
(from the reading and reworking of m parameters, arbitrary 2 read-out data are selected)/(>
Figure BDA0001210898140000104
(from the reading and redoing of m parameters, arbitrary 1 read data are selected). In another example, the selected combination of processes is specified to include a process of reading data with a read redo (normal read command) of parameter 0 (and optionally a process of reading data with a read redo of other parameter values), so that the data obtained during the hard decoding phase can be utilized in performing the soft decoding.
In the embodiment according to fig. 3 of the present application, the process includes reading data from the NVM chip and error correction decoding the read data.
In the embodiment of fig. 3, data x is written into NVM chip 310. The written data is read from NVM chip 310 through one or more processes. In fig. 3, three kinds of reading processes (a reading process 341, a reading process 342, and a reading process 343) are shown as an example, and data read out by the reading process 341 is denoted as y4, data read out by the reading process 342 is denoted as y5, and data read out by the reading process 343 is denoted as y6. In the example of fig. 3, the difference between each read process is that either a different decision voltage is used, or a read redo command with different parameters is used.
The data (y 4, y5, y 6) read out through the three reading processes are supplied to an ECC (error correction code) decoding section 320, and output data y4', y5', and y6' are obtained, respectively, through error correction decoding. It will be appreciated that for ECC decoding, the input provided to the ECC unit 320 is a codeword (comprising a plurality of bits) rather than 1 bit of information. Whereas in the embodiments according to the present application, data x, data y are both, for example, 1 bit of information contained in a codeword for the sake of clarity. Codeword c is decoded by ECC module 320 by reading codeword c from NVM chip 310, and the decoded result (y) for each bit (x) of codeword c is obtained. According to one embodiment of the present application, the decoding of codeword c by the ECC module 320 may fail, and the ECC module 320 still provides the decoding result c' of codeword c. Although there is an error in the decoded result c', each bit therein is still the processing result (y) obtained according to an alternative embodiment of the present application.
Based on the data x written to NVM chip 310 and the data (y 4', y5' and y6 ') read from NVM chip 310 by different read processes and decoded by ECC module 320, mutual Information (MI) between the data written to NVM chip 310 and the data read from NVM chip 310 and decoded by ECC module 320 is calculated in Mutual Information calculation module 330.
In fig. 3, three read processes for reading out data (y 4, y5 and y 6) constitute a combination of read processes. And also calculates mutual information of the data written to NVM chip 310 and the data processed by the combination of other read processes (other than the combination of the three read processes in fig. 3). And compares a plurality of mutual information obtained from a plurality of combinations of the read processes. And selecting the read process combination with the maximum mutual information for acquiring the soft information, thereby improving the success rate of error correction decoding.
The data (e.g., y1, y2, y 3) read out through the three read processes is supplied to an ECC (error correction coding) section 120, and is also used to generate soft information and perform error correction decoding based on the soft information.
And although in the embodiment of fig. 3 read processes are used to obtain 3 read data and to obtain mutual information and soft information, it will be appreciated that 1, 2, 4, and other numbers of combinations of read processes may be used to obtain soft information.
TABLE 5
y=r0r1r2\x 0 1
000 999 2
001 1 998
010 C(0,010) C(1,010)
100 C(0,100) C(1,100)
101 C(0,101) C(1,101)
110 C(0,110) C(1,110)
111 C(0,111) C(1,111)
The mutual information acquisition process according to still another example of the present application is described in conjunction with table 5. Table 5 shows statistics for random variables X and Y in one example. The value X of the random variable X represents 1 bit of information stored in the NVM chip, and the value Y of the random variable Y represents results obtained by performing three processes X on the read-and-redo with the parameter 0, the read-and-redo with the parameter 1 and the read-and-redo with the parameter 2 through ECC decoding (respectively represented by r0, r1 and r 2). And reading the information stored in the NVM chip for a plurality of times by using the reading and repeating of the parameter 0, the reading and repeating of the parameter 1 and the reading and repeating of the parameter 2, and performing ECC decoding to construct the table 5. In table 5, table entry C (0,010) indicates that in a plurality of experiments, when the NVM chip stores (1 bit) data "0" (x takes a value of 0), the number of times of reading x by the three reading and repeating operations and obtaining "010" by ECC decoding is C (0,010). And the total number of experiments is the sum of the entries in the numerical section of table 5.
And from the statistics in table 5, the probability of x and y occurring simultaneously p (x, y) can be calculated. Obtaining the edge probability p (X) of X, the information entropy H (X) of the random variable X, the edge probability p (Y) of Y, the information entropy H (Y) of the random variable Y, and obtaining the process combination T of reading data three times of reading data of reading and redoing with the parameter of 0, reading and redoing with the parameter of 1 and reading and redoing with the parameter of 2 and respectively decoding by ECC r0r1r2 Mutual information I of X and Y Tr0r1r2 (X,Y)。
For other combinations of processes, e.g. read-redo with parameter 1 and parameter 2Reading and redoing the read data twice and respectively processing the read data by ECC decoding to form a processing procedure combination T r1r2 Processing procedure combination T of performing reading data twice by reading and reproducing with parameter 0 and reading and reproducing with parameter 2 and performing ECC decoding respectively 01r2 Processing combination T of reproducing one-time read data by read with parameter 1 and decoding by ECC r1 And the like, the mutual information of X and Y can be calculated respectively under each processing procedure combination.
In accordance with yet another embodiment of the present application, the results of processing data in the NVM chip from multiple combinations of processes and mutual information of the data stored in the NVM chip are obtained under different scenarios. For example, for an NVM chip or physical page of MLC (Multi-Level Cell) type, two bits (e.g., MSB (Most Significant Bit, most significant bit) and LSB (Least Significant Bit )) in each memory Cell (Cell) are distinguished. In acquiring mutual information, the random variable X represents only data from the MSB or LSB, while avoiding including both data from the MSB and data from the LSB. Similarly, for a TLC (Triple-Level Cell) type NVM chip or physical page, when acquiring mutual information, 3 bits in each memory Cell (Cell) are distinguished.
In an embodiment according to the present application, a combination of processes that yields the maximum mutual information is identified, such as process combination T. Alternatively, among the set of combinations of processes, a combination of processes that yields the largest mutual information, such as a combination of processes Ts, is identified. The process combination T or the process combination Ts is recorded in the solid-state storage device.
In accordance with yet another embodiment of the present application, in using the solid state storage device, the solid state storage device processes the read command, for example, in response to receiving the read command from the host to the solid state storage device.
FIG. 4 is a flow chart of a solid state storage device processing IO commands according to an embodiment of the present invention.
To process a read command, solid state storage according to embodiments of the present application first reads data from a specified address of the NVM chip using a read redo (also referred to as a "normal read command") with a parameter of 0 (410). ECC decoding is performed on the read data. If the ECC hard decoding is successful (420), the correct read data is obtained for responding to the read command. If ECC hard decoding fails (420), data is retrieved from the NVM using the recorded process combination T or process combination Ts with the largest mutual information (430). By way of example, the process combination T or the process combination Ts is for example to read data from the NVM twice with a read rework of parameter 1 and a read rework of parameter 2. In another example, the process combination Ts is to read data from the NVM chip three times with a read-redo of parameter 0, a read-redo of parameter 1, and a read-redo of parameter 2. Due to the normal read command used in step 410 (i.e., the read redo with parameter 0), in step 430, data is read from the NVM chip with only the read redo with parameter 1 and the read redo with parameter 2 twice, and the data read from the NVM chip with the normal read command in step 410 is reused. And combines the data read out in step 410 with the data read out twice in step 430 into data read out three times from the NVM chip by the process combination Ts, thereby omitting one process of reading out data from the NVM chip. And advantageously, in the acquisition process combination Ts, the process combination Ts is made to include a process of reading data from the NVM chip with a read rework of parameter 0, so that the data acquired in step 410 can be utilized during the decoding process.
Next, the data read out with the processing combination T or the processing combination Ts is sent to the ECC module for ECC soft decoding.
In the embodiment according to the present application, since the process combination T or the process combination Ts having the largest mutual information is obtained, the data obtained with the process combination T or the process combination Ts has a higher or highest success rate in soft decoding. Thus, when ECC hard decoding fails (420), instead of attempting to read data from the NVM chip with read rework having the parameters, data is read from the NVM chip directly using the process combination T or the process combination Ts and soft decoded. Therefore, the process of searching for the read redo with each parameter that the read data can be correctly decoded is omitted, the error processing time after ECC hard decoding fails (420) is reduced, the performance of the solid state storage device for processing the read command is improved, and the power consumption is reduced.
In yet another embodiment according to the present application, step 410 and step 420 are omitted in the event that a higher probability of decoding failure will be encountered with a normal read command is identified, and in response to a read command from a host or user, data is obtained from the NVM chip directly with process combination T or process combination Ts and soft decoded. To further reduce processing delay and improve efficiency.
For ECC soft decoding, the data arriving by process combination T or process combination Ts is fed to an ECC decoding section (e.g., ECC decoding section 320 of fig. 3) which calculates its log likelihood ratio (LLR, log Likelihood Ratio) from the input data. An LLR table is provided in the ECC decoding unit. The input data is used as an index, the LLR table is inquired to obtain the log-likelihood ratio corresponding to the input data, and soft decoding is carried out according to the log-likelihood ratio as soft information.
In addition to obtaining the LLR table according to prior art schemes, in embodiments according to the present application, methods of obtaining the LLR table are also provided. By way of example, the process combination Ts includes reading data from the NVM chip with a read-redo of parameter a, a read-redo of parameter b, and a read-redo of parameter c. For 1 bit stored in the NVM chip, three read redos each read out 3 bits. In table 6, the 3 bits read out are represented by "bit 2", "bit 1" and "bit 0", respectively, and the values thereof are "RRb", "RRa" and "RRc", respectively.
TABLE 6
Bit 2 Bit 1 Bit 0
RRb RRa RRc
Table 7 shows statistics for data (x) stored in the NVM chip and data (y) read out with the process combination Ts in the examples according to the present application. The data item p (x, y) in table 7 is the probability that x and y occur simultaneously (joint probability of x and y). Also shown in table 7 is a table of the resulting LLRs calculated with p (x, y).
In table 7, the values of LLR (011) and LLR (100) are 0, and LLR (n) =ln (p (0, n)/p (1, n)). Where n is the bit sequence (RRb, RRa, RRc) or a decimal representation of the bit sequence (RRb, RRa, RRc).
And optionally providing an upper limit value and a lower limit value for the value of LLR (n). If the calculated ln (p (0, n 1)/p (1, n 1)) is greater than the upper limit value, the LLR (n 1) is set to the upper limit value. And if the calculated ln (p (0, n 2)/p (1, n 2)) is smaller than the lower limit value, setting the LLR (n 2) to the lower limit value.
TABLE 7
Figure BDA0001210898140000141
The LDPC decoding method according to the embodiment of the present invention may be implemented by software, hardware, firmware, FPGA (field programmable gate array ) and/or ASIC (application specific integrated circuit, application Specific Integrated Circuit), or the like. The LDPC decoding method according to the embodiment of the invention can be applied to solid state storage equipment based on an NVM (non-volatile memory) chip, including but not limited to a solid state disk, a U disk and an SD card, and can also be applied to portable electronic equipment such as a mobile phone, a tablet computer and the like, and other various electronic equipment which uses an NVM chip (such as a NAND flash memory) and needs to store information. The decoding method according to the embodiment of the invention can also be applied to equipment or services using error correction codes, such as communication, magnetic storage, optical storage and the like.
Although the present invention has been described with reference to examples, which are intended for purposes of illustration only and not to be limiting of the invention, variations, additions and/or deletions to the embodiments may be made without departing from the scope of the invention.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these embodiments pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

Claims (9)

1. A method of obtaining a combination of processes for obtaining soft information for error correction soft coding, comprising:
obtaining multiple sets of data from the NVM chip using each set of combinations of multiple processes; the plurality of processing procedures comprise a plurality of reading procedures, wherein the plurality of reading procedures use different judging voltages or read and redo commands with different parameters;
Wherein each set of data of the plurality of sets of data includes one or more sets of data, each set of data being data read from the NVM chip by one of the plurality of processes;
calculating mutual information of each group of data and data stored in the NVM chip to obtain a plurality of mutual information;
finding the maximum mutual information with the maximum value in the plurality of mutual information; and
recording the combination of the processing procedures for obtaining the maximum mutual information; a combination of processes of the maximum mutual information is selected to obtain soft information, wherein the combination of processes of the maximum mutual information is classified by the number of contained processes, and a combination of processes with the maximum mutual information is determined for each number class.
2. The method of claim 1, wherein each set of data of the plurality of sets of data comprises one or more sets of data, each set of data being data resulting from error correction decoding of data read from the NVM chip by one of the plurality of processes.
3. The method of one of claims 1-2, wherein calculating mutual information for each set of read data and data stored in the NVM chip comprises:
for a first set of read data out of said each set of read data,
counting the joint probability of each symbol of the read data and each symbol of the stored data in the NVM chip;
Calculating information entropy of a random variable Y representing a symbol of the read data;
calculating information entropy of a random variable X representing symbols of stored data in the NVM chip;
calculating the joint information entropy of the random variable X and the random variable Y;
and calculating the sum of the information entropy of the random variable X and the information entropy of the random variable Y and the difference of the combined information entropy of the random variable X and the random variable Y to obtain mutual information of the first group of read data and the data stored in the NVM chip.
4. The method according to one of claims 1-2, wherein
The data stored in the NVM chip is data stored in a designated type of physical page of the NVM chip.
5. A method of decoding, comprising:
acquiring a first set of data from the NVM chip using the recorded combination of processes;
providing the first set of data to a decoder for soft decoding;
wherein the combination of treatments is obtained according to the method of any one of claims 1-4.
6. A method of decoding, comprising:
reading the first data from the NVM chip using a normal read command;
if the error correction decoding of the first data fails, acquiring a first set of data from the NVM chip using the recorded combination of processes;
providing the first data and the first group of data to a decoder for soft decoding;
Wherein the combination of treatments is obtained according to the method of any one of claims 1-4.
7. An apparatus for obtaining a combination of processes for obtaining soft information for error correction soft coding, the apparatus comprising:
a data acquisition module for acquiring multiple sets of data from the NVM chip using each set of combinations of multiple processes; the plurality of processing procedures comprise a plurality of reading procedures, wherein the plurality of reading procedures use different judging voltages or read and redo commands with different parameters;
the mutual information calculation module is used for calculating mutual information of each group of read data and data stored in the NVM chip to obtain a plurality of pieces of mutual information;
the maximum mutual information acquisition module is used for finding out the maximum mutual information with the maximum value in the plurality of mutual information; and
the recording module is used for recording the combination of the processing procedures for obtaining the maximum mutual information;
wherein a combination of processes of the maximum mutual information is selected to obtain the soft information, wherein the combination of processes of the maximum mutual information is classified by the number of contained processes, and a combination of processes having the maximum mutual information is determined for each number class.
8. A decoding device, comprising:
a data acquisition module for acquiring a first set of data from the NVM chip using the recorded combination of processes;
the soft decoding module is used for providing the first group of data for a decoder to perform soft decoding;
wherein said combination of processes is obtained according to the device for obtaining a combination of processes of claim 7.
9. A solid state memory device includes a controller, a decoder, and a nonvolatile memory;
in response to a read command from an information processing device, the controller being configured to retrieve a first set of data from a nonvolatile memory using a combination of the processes recorded by the method of one of claims 1-4; and
the controller is configured to provide the first set of data to the decoder for soft decoding.
CN201710030720.6A 2017-01-16 2017-01-16 LDPC decoding method and device based on mutual information Active CN108322225B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710030720.6A CN108322225B (en) 2017-01-16 2017-01-16 LDPC decoding method and device based on mutual information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710030720.6A CN108322225B (en) 2017-01-16 2017-01-16 LDPC decoding method and device based on mutual information

Publications (2)

Publication Number Publication Date
CN108322225A CN108322225A (en) 2018-07-24
CN108322225B true CN108322225B (en) 2023-05-16

Family

ID=62891790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710030720.6A Active CN108322225B (en) 2017-01-16 2017-01-16 LDPC decoding method and device based on mutual information

Country Status (1)

Country Link
CN (1) CN108322225B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412843A (en) * 2011-07-28 2012-04-11 清华大学 Adaptive normalized minimum sum LDPC (Low Density Parity Check Code) decoding method and decoder
CN104464822A (en) * 2014-11-21 2015-03-25 湖南大学 LDPC error correction encoding method based on flash memory error section

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8693257B2 (en) * 2011-10-18 2014-04-08 Seagate Technology Llc Determining optimal read reference and programming voltages for non-volatile memory using mutual information
US8917540B2 (en) * 2011-10-27 2014-12-23 Agency For Science, Technology And Research Memory device with soft-decision decoding
US9489257B2 (en) * 2014-09-28 2016-11-08 Apple Inc. Correcting soft reliability measures of storage values read from memory cells

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412843A (en) * 2011-07-28 2012-04-11 清华大学 Adaptive normalized minimum sum LDPC (Low Density Parity Check Code) decoding method and decoder
CN104464822A (en) * 2014-11-21 2015-03-25 湖南大学 LDPC error correction encoding method based on flash memory error section

Also Published As

Publication number Publication date
CN108322225A (en) 2018-07-24

Similar Documents

Publication Publication Date Title
US10707899B2 (en) Bit-flipping decoder for G-LDPC codes with syndrome-decoding for component codes
US9209832B2 (en) Reduced polar codes
KR101968746B1 (en) Reading method of reading data from storage device, error correcting device and storage system including error correcting code decoder
TWI508082B (en) Decoding method, memory storage device and memory controlling circuit unit
US10122382B2 (en) VSS LDPC decoder with improved throughput for hard decoding
US9529666B2 (en) Decoding method, memory storage device and memory controlling circuit unit
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
CN106169308A (en) Memory Controller and operational approach thereof
CN109753376B (en) Memory system and operating method thereof
US20160098316A1 (en) Error processing method, memory storage device and memory controlling circuit unit
US9274891B2 (en) Decoding method, memory storage device, and memory controlling circuit unit
US9553612B2 (en) Decoding based on randomized hard decisions
US10522234B2 (en) Bit tagging method, memory control circuit unit and memory storage device
US10205469B2 (en) Low latency soft decoder architecture for generalized product codes
KR102543059B1 (en) Method of decoding low density parity check (LDPC) code, decoder and system performing the same
TW201939902A (en) Soft chip-kill recovery for multiple wordlines failure
CN110415753B (en) Error correction circuit and method for operating the same
US10193569B2 (en) Decoding method, memory storage device and memory control circuit unit
JP2019125910A (en) Memory system
JP2019057752A (en) Memory system
US20150149856A1 (en) Decoding with log likelihood ratios stored in a controller
US10326473B2 (en) Symbol-based coding for NAND flash devices
JP2019160014A (en) Memory system
US9236886B1 (en) Universal and reconfigurable QC-LDPC encoder
CN107872231B (en) LDPC decoding method and device

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
CB02 Change of applicant information

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 Room 302, 3 / F, building B-2, Dongsheng Science Park, 66 xixiaokou Road, Haidian District, Beijing

Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant