A data processing method, apparatus, device, medium and program product

By calculating and normalizing the read reliability of floating-point type in memory read intervals and converting them to integer types, the problem of LLR value amplification is solved, and the soft decoding capability after the hard decoding of the read operation is improved.

CN119357079BActive Publication Date: 2025-06-20INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411884967.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-19
Publication Date
2025-06-20
Estimated Expiration
2044-12-19

AI Technical Summary

Technical Problem

In the prior art, all LLR values ​​recorded in the LLR table are amplified, resulting in insufficient soft decoding capabilities after the hard decoding of the read operation.

Method used

By calculating the read reliability of floating point types in multiple read intervals, normalizing them, converting them to integer types, recording the read reliability of their integer types. If hard decoding fails, the read reliability of these integer types is used for decoding and error correction.

Benefits of technology

It effectively constrains the amplitude of the read reliability of floating point types, so that it is constrained by the upper limit of the memory bit set by the hardware, and improves the soft decoding capability and success rate after the hard decoding of the read operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119357079B_ABST
    Figure CN119357079B_ABST
Patent Text Reader

Abstract

The present invention discloses a data processing method, device, equipment, medium and program product in the field of computer technology. The present invention confines the amplitude of the read reliability degree of the floating-point type within the upper limit of the storage bits set by the hardware; and the number of read intervals is calculated according to the default read operation voltage, the first read offset and the second read offset, so that more quantization points can be taken in the area with a smaller LLR amplitude, and fewer quantization points can be taken in the area with a larger LLR value, thereby improving the soft decoding ability and success rate after the hard decoding of the read operation fails.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technology, and particularly relates to a data processing method, apparatus, device, medium and program product. Background Art

[0002] Currently, the LLR (Log-Likelihood Ratio) table is used for the soft decoding process after the hard decoding of a read operation fails. The LLR table records integer-type LLR values of multiple read intervals determined based on the memory read voltage. These LLR values are either directly obtained by rounding or obtained by linearly transforming the corresponding floating-point numbers, which results in an amplification of all the LLR values recorded in the LLR table. For example: when the difference between different floating-point numbers is small, the rounding operation will eliminate the difference in LLRs of different read intervals, which may lead to the failure of soft decoding.

[0003] Therefore, how to improve the soft decoding ability after the hard decoding of a read operation fails is a problem that needs to be solved by those skilled in the art. Summary of the Invention

[0004] In view of this, the purpose of the present invention is to provide a data processing method, apparatus, device, medium and program product to improve the soft decoding ability after the hard decoding of a read operation fails. The specific solutions are as follows:

[0005] In a first aspect, the present invention provides a data processing method applied to a memory, including:

[0006] Calculating the read reliability degrees of multiple read intervals corresponding to floating-point types respectively according to the default read operation voltage, the first read offset and the second read offset;

[0007] Performing normalization processing on the read reliability degrees of each read interval corresponding to the floating-point type according to a preset storage bit upper limit;

[0008] Converting the read reliability degrees of each read interval corresponding to the floating-point type after the normalization processing into integer types, and recording the read reliability degrees of each read interval corresponding to the integer types;

[0009] If the hard decoding of any read operation on the memory fails, decoding and error correction are performed on the read operation by using the read reliability degrees of each read interval corresponding to the integer type.

[0010] Optionally, calculating the read reliability degrees of multiple read intervals corresponding to floating-point types respectively according to the default read operation voltage, the first read offset and the second read offset includes:

[0011] Determining K read voltage axes according to the read operation voltage, the first read offset and the second read offset;

[0012] Calculate the product of the number of intervals X and K corresponding to each read voltage axis to obtain XK read intervals;

[0013] Calculate the read reliability of floating-point type corresponding to each of the XK read intervals.

[0014] Optionally, perform normalization processing on the read reliability of floating-point type corresponding to each read interval according to a preset storage bit upper limit, including:

[0015] Determine the maximum value among the XK read reliabilities of floating-point type;

[0016] Calculate the ratio of each of the XK read reliabilities of floating-point type to the maximum value respectively to obtain XK ratios;

[0017] Calculate the read reliability of floating-point type corresponding to each of the XK read intervals after normalization processing according to the XK ratios and the storage bit upper limit.

[0018] Optionally, calculate the read reliability of floating-point type corresponding to each of the XK read intervals after normalization processing according to the XK ratios and the storage bit upper limit, including:

[0019] Subtract one from the storage bit upper limit to obtain a target value;

[0020] Calculate the product of the target value and the XK ratios to obtain the read reliability of floating-point type corresponding to each of the XK read intervals after normalization processing.

[0021] Optionally, calculate the read reliability of floating-point type corresponding to each of the XK read intervals, including:

[0022] Calculate the ratio of the probability of writing character 0 to the probability of writing character 1 in each of the XK read intervals respectively, and use the corresponding ratio as the read reliability of floating-point type corresponding to each of the XK read intervals.

[0023] Optionally, convert the read reliability of floating-point type corresponding to each read interval after normalization processing into an integer type, including:

[0024] Read the storage bit upper limit from the main controller of the memory;

[0025] Calculate n quantization points using the storage bit upper limit;

[0026] Calculate the maximum amplitude using the storage bit upper limit;

[0027] Construct a piecewise sign function by using the n quantization points, the maximum amplitude, and the read reliability of each read interval corresponding to the floating-point type after normalization processing;

[0028] Solve the piecewise sign function to obtain the read reliability of each read interval corresponding to the integer type.

[0029] Optionally, calculating n quantization points by using the storage bit upper limit includes:

[0030] Calculate equally spaced function values according to the first formula;

[0031] Determine n quantization points with non-uniform distribution based on the equally spaced function values;

[0032] Among them, the first formula is: ; represents the function value corresponding to the quantization point x i corresponding to, m represents the storage bit upper limit, and i = 1, 2,..., n.

[0033] Optionally, calculating the spacing between adjacent two points by using the storage bit upper limit includes:

[0034] Calculate the spacing between adjacent two points according to the second formula;

[0035] Among them, the second formula is: D = (m - 1) / n; D represents the spacing, m represents the storage bit upper limit, and n represents the number of quantization points.

[0036] Optionally, the piecewise sign function is:

[0037] ; q1, q2,..., q n represents n quantization points, i = 1, 2,..., n, represents the read reliability of each read interval corresponding to the floating-point type after normalization processing, sign() is a sign function used to identify the positive and negative of q(y), and magn represents the maximum amplitude.

[0038] Optionally, calculating the maximum amplitude by using the storage bit upper limit includes:

[0039] Calculate the maximum amplitude according to the third formula;

[0040] Among them, the third formula is: magn = 2 m-1 - 1; magn represents the maximum amplitude, and m represents the storage bit upper limit.

[0041] Optionally, recording the read reliability of each read interval corresponding to the integer type includes:

[0042] Generate a log-likelihood ratio table including read reliability degrees of integer types corresponding to respective read intervals.

[0043] Optionally, perform decoding and error correction on the read operation by using the read reliability degrees of integer types corresponding to respective read intervals, including:

[0044] Determine a read voltage corresponding to a storage cell read by the read operation and a corresponding read offset;

[0045] Read the storage cell a preset number of times by using the read voltage and the read offset to obtain a read result;

[0046] Query the read reliability degree of integer type corresponding to the read result;

[0047] Perform decoding and error correction on the read operation based on the queried read reliability degree of integer type.

[0048] Optionally, query the read reliability degree of integer type corresponding to the read result, including:

[0049] In the log-likelihood ratio table corresponding to the preset number, use the log-likelihood ratio value corresponding to the queried read result as the read reliability degree of integer type corresponding to the read result.

[0050] Optionally, further include:

[0051] If the decoding and error correction fails, and the maximum adjustment number is not reached, adjust the preset number, and based on the adjusted preset number, execute the steps: read the storage cell a preset number of times by using the read voltage and the read offset to obtain a read result; query the read reliability degree of integer type corresponding to the read result; perform decoding and error correction on the read operation based on the queried read reliability degree of integer type.

[0052] Optionally, further include:

[0053] If the decoding and error correction is successful, feedback the data read by the read operation to the corresponding client.

[0054] Optionally, further include:

[0055] If the decoding and error correction fails, and the maximum adjustment number is reached, perform corresponding data recovery operations.

[0056] Optionally, further include:

[0057] Statistically calculate the decoding and error correction failure probability within a period of time;

[0058] If the decoding and error correction failure probability is greater than a preset probability threshold, adjust the read operation voltage, the first read offset, and / or the second read offset.

[0059] In a second aspect, the present invention provides a data processing device, which is applied to a memory and includes:

[0060] A calculation module, configured to calculate the read reliability degrees of multiple read intervals corresponding to floating-point types respectively according to a default read operation voltage, a first read offset, and a second read offset;

[0061] A normalization module, configured to perform normalization processing on the read reliability degrees of floating-point types corresponding to each read interval respectively according to a preset storage bit upper limit;

[0062] A conversion module, configured to convert the read reliability degrees of floating-point types corresponding to each read interval after the normalization processing into integer types, and record the read reliability degrees of integer types corresponding to each read interval respectively;

[0063] A read processing module, configured to, if hard decoding fails for any read operation on the memory, perform decoding and error correction on the read operation by using the read reliability degrees of integer types corresponding to each read interval respectively.

[0064] Optionally, the calculation module is specifically configured to:

[0065] Determine K read voltage axes according to the read operation voltage, the first read offset, and the second read offset;

[0066] Calculate the product of the number of intervals X corresponding to each read voltage axis and K to obtain XK read intervals;

[0067] Calculate the read reliability degrees of floating-point types corresponding to the XK read intervals respectively.

[0068] Optionally, the normalization module is specifically configured to:

[0069] Determine the maximum value among the XK read reliability degrees of floating-point types;

[0070] Calculate the ratio of each of the XK read reliability degrees of floating-point types to the maximum value respectively to obtain XK ratios;

[0071] Calculate the read reliability degrees of floating-point types corresponding to the XK read intervals after the normalization processing according to the XK ratios and the storage bit upper limit.

[0072] Optionally, the normalization module is specifically configured to:

[0073] Subtract one from the storage bit upper limit to obtain a target value;

[0074] Calculate the product of the target value and the XK ratios to obtain the read reliability of the floating-point type corresponding to each of the XK read intervals after normalization processing.

[0075] Optionally, the calculation module is specifically configured to:

[0076] Calculate the ratio of the probability of writing character 0 to the probability of writing character 1 in each of the XK read intervals, and use the corresponding ratio as the read reliability of the floating-point type corresponding to each of the XK read intervals.

[0077] Optionally, the conversion module is specifically configured to:

[0078] Read the storage bit upper limit from the main controller of the memory;

[0079] Calculate n quantization points using the storage bit upper limit;

[0080] Calculate the maximum amplitude using the storage bit upper limit;

[0081] Construct a piecewise sign function using the n quantization points, the maximum amplitude, and the read reliability of the floating-point type corresponding to each read interval after normalization processing;

[0082] Solve the piecewise sign function to obtain the read reliability of the integer type corresponding to each read interval.

[0083] Optionally, the conversion module is specifically configured to:

[0084] Calculate equally spaced function values according to the first formula;

[0085] Determine n non-uniformly distributed quantization points based on the equally spaced function values;

[0086] Wherein, the first formula is: ; represents the function value corresponding to the quantization point x i m represents the storage bit upper limit, and i = 1, 2,..., n.

[0087] Optionally, the conversion module is specifically configured to:

[0088] Calculate the spacing between adjacent two points according to the second formula;

[0089] Wherein, the second formula is: D = (m - 1) / n; D represents the spacing, m represents the storage bit upper limit, and n represents the number of quantization points.

[0090] Optionally, the piecewise sign function is:

[0091] ; q1, q2,..., q nDenote n quantization points, where i = 1, 2, …, n, Denote the read reliability of each read interval after normalization, where sign() is a sign function for identifying the positive or negative of q(y), and magn represents the maximum amplitude.

[0092] Optionally, the conversion module is specifically configured to:

[0093] Calculate the maximum amplitude according to the third formula;

[0094] where the third formula is: magn = 2 m-1 - 1; magn represents the maximum amplitude, and m represents the upper limit of the storage bits.

[0095] Optionally, the conversion module is specifically configured to:

[0096] Generate a log-likelihood ratio table including the read reliability of each read interval corresponding to an integer type.

[0097] Optionally, the read processing module is specifically configured to:

[0098] Determine the read voltage and the corresponding read offset of the storage unit read by the read operation;

[0099] Read the storage unit a preset number of times by using the read voltage and the read offset to obtain a read result;

[0100] Query the read reliability of the integer type corresponding to the read result;

[0101] Decode and correct errors of the read operation based on the queried read reliability of the integer type.

[0102] Optionally, the read processing module is specifically configured to:

[0103] In the log-likelihood ratio table corresponding to the preset number, use the log-likelihood ratio value corresponding to the queried read result as the read reliability of the integer type corresponding to the read result.

[0104] Optionally, it further includes:

[0105] A loop module, configured to, if the decoding and error correction fails and the maximum adjustment times are not reached, adjust the preset number, and execute the steps based on the adjusted preset number: read the storage unit a preset number of times by using the read voltage and the read offset to obtain a read result; query the read reliability of the integer type corresponding to the read result; decode and correct errors of the read operation based on the queried read reliability of the integer type.

[0106] Optionally, it further includes:

[0107] A decoding success module, configured to feed back the data read by the read operation to the corresponding client if the decoding and error correction are successful.

[0108] Optionally, it further includes:

[0109] A decoding failure module, configured to perform corresponding data recovery operations when the maximum adjustment times are reached if the decoding and error correction fail.

[0110] Optionally, it further includes:

[0111] An adjustment module, configured to count the decoding and error correction failure probability within a period of time; if the decoding and error correction failure probability is greater than a preset probability threshold, adjust the read operation voltage, the first read offset, and / or the second read offset.

[0112] In a third aspect, the present invention provides an electronic device, including:

[0113] A memory, configured to store a computer program;

[0114] A processor, configured to execute the computer program to implement the data processing method disclosed above.

[0115] In a fourth aspect, the present invention provides a non-volatile storage medium for storing a computer program, wherein the computer program, when executed by a processor, implements the data processing method disclosed above.

[0116] In a fifth aspect, the present invention provides a computer program product, including computer programs / instructions, and when the computer programs / instructions are executed by a processor, the steps of the data processing method disclosed above are implemented.

[0117] As can be seen from the above solutions, the present invention provides a data processing method, which is applied to a memory and includes: calculating the read reliability of multiple read intervals corresponding to floating-point types respectively according to a default read operation voltage, a first read offset, and a second read offset; performing normalization processing on the read reliability of floating-point types corresponding to each read interval respectively according to a preset storage bit upper limit; converting the read reliability of floating-point types corresponding to each read interval after normalization processing into an integer type, and recording the read reliability of integer types corresponding to each read interval respectively; if the hard decoding of any read operation for the memory fails, using the read reliability of integer types corresponding to each read interval respectively to perform decoding and error correction on the read operation.

[0118] It can be seen that the beneficial effects of the present invention are as follows: after calculating the read reliability degrees of multiple read intervals corresponding to floating-point types according to the default read operation voltage, the first read offset, and the second read offset, normalization processing is performed on the read reliability degrees of floating-point types corresponding to each read interval according to the preset storage bit upper limit, so that the amplitude of the read reliability degree of the floating-point type is constrained by the storage bit upper limit. Then, the read reliability degrees of floating-point types corresponding to each read interval after the normalization processing are converted into integer types, and the read reliability degrees of integer types corresponding to each read interval are recorded; if the hard decoding of any read operation on the memory fails, the read reliability degrees of integer types corresponding to each read interval are used to perform decoding error correction on the read operation. This solution constrains the amplitude of the read reliability degree of the floating-point type to the storage bit upper limit set by the hardware; and the number of read intervals is calculated according to the default read operation voltage, the first read offset, and the second read offset. More quantization points can be taken in the area with a smaller LLR amplitude, and fewer quantization points can be taken in the area with a larger LLR value, which improves the soft decoding ability and success rate after the hard decoding of the read operation fails.

[0119] Correspondingly, a data processing device, equipment, medium, and program product provided by the present invention also have the above technical effects. BRIEF DESCRIPTION OF THE DRAWINGS

[0120] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only the embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained according to the provided drawings without creative efforts.

[0121] Figure 1 It is a flowchart of a data processing method disclosed by the present invention;

[0122] Figure 2 It is a schematic diagram of reading data using voltage disclosed by the present invention;

[0123] Figure 3 It is a schematic diagram of a function disclosed by the present invention;

[0124] Figure 4 It is a schematic diagram of a read operation processing flow disclosed by the present invention;

[0125] Figure 5 It is a schematic diagram of an electronic device disclosed by the present invention;

[0126] Figure 6 It is a server structure diagram provided by the present invention;

[0127] Figure 7A terminal structure diagram provided by the present invention. Specific implementation manner

[0128] Next, the technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only a part of the embodiments of the present invention, rather than all the embodiments. All other examples obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative work shall fall within the protection scope of the present invention.

[0129] Currently, the LLR table is used for the soft decoding process after the hard decoding of the read operation fails. The LLR table records integer-type LLR values of multiple read intervals determined based on the memory read voltage. These LLR values are either directly rounded or linearly changed from the corresponding floating-point numbers, which results in an amplification of all the LLR values recorded in the LLR table. For example: when the differences between different floating-point numbers are small, the rounding operation will eliminate the differences in the LLRs of different read intervals, which may lead to the failure of soft decoding. For this reason, the present invention provides a data processing solution that can improve the soft decoding ability after the hard decoding of the read operation fails.

[0130] See Figure 1 As shown, an embodiment of the present invention discloses a data processing method applied to a memory, including:

[0131] S101. Calculate the read reliability degrees of multiple read intervals corresponding to floating-point types respectively according to the default read operation voltage, the first read offset, and the second read offset.

[0132] In an implementation manner, calculating the read reliability degrees of multiple read intervals corresponding to floating-point types respectively according to the default read operation voltage, the first read offset, and the second read offset includes: determining K read voltage axes according to the read operation voltage, the first read offset, and the second read offset; calculating the product of the number of intervals X corresponding to each read voltage axis and K to obtain XK read intervals; calculating the read reliability degrees of the XK read intervals corresponding to floating-point types respectively.

[0133] S102. Perform normalization processing on the read reliability degrees of multiple read intervals corresponding to floating-point types respectively according to the preset storage bit upper limit.

[0134] In an implementation manner, performing normalization processing on the read reliability degrees of multiple read intervals corresponding to floating-point types respectively according to the preset storage bit upper limit includes: determining the maximum value among the XK read reliability degrees of floating-point types; calculating the ratios of the XK read reliability degrees of floating-point types to the maximum value respectively to obtain XK ratios; calculating the read reliability degrees of the XK read intervals corresponding to floating-point types after normalization processing according to the XK ratios and the storage bit upper limit.

[0135] In one embodiment, according to the XK ratios and the storage bit upper limit, calculating the read reliability degrees of the XK read intervals after normalization processing, each corresponding to a floating-point type, includes: subtracting one from the storage bit upper limit to obtain a target value; calculating the product of the target value and the XK ratios to obtain the read reliability degrees of the XK read intervals after normalization processing, each corresponding to a floating-point type.

[0136] In one embodiment, calculating the read reliability degrees of the XK read intervals, each corresponding to a floating-point type, includes: respectively calculating the ratios of the probability of writing character 0 to the probability of writing character 1 in the XK read intervals, and using the corresponding ratios as the read reliability degrees of the XK read intervals, each corresponding to a floating-point type.

[0137] S103. Converting the read reliability degrees of the respective read intervals after normalization processing, each corresponding to a floating-point type, into an integer type, and recording the read reliability degrees of the respective read intervals, each corresponding to an integer type.

[0138] In one embodiment, converting the read reliability degrees of the respective read intervals after normalization processing, each corresponding to a floating-point type, into an integer type includes: reading the storage bit upper limit from the main controller of the memory; calculating n quantization points using the storage bit upper limit; calculating the maximum amplitude using the storage bit upper limit; constructing a piecewise sign function using the n quantization points, the maximum amplitude, and the read reliability degrees of the respective read intervals after normalization processing, each corresponding to a floating-point type; and solving the piecewise sign function to obtain the read reliability degrees of the respective read intervals, each corresponding to an integer type.

[0139] S104. If the hard decoding of any read operation on the memory fails, then using the read reliability degrees of the respective read intervals, each corresponding to an integer type, to perform decoding error correction on the read operation.

[0140] In one embodiment, calculating equally spaced function values according to a first formula; determining non-uniformly distributed n quantization points based on the equally spaced function values; wherein the first formula is: ; represents the function value corresponding to the quantization point x i corresponding thereto, m represents the storage bit upper limit, and i = 1, 2,..., n. As Figure 3 shown, a plurality of function values are equally spacedly taken on the Y axis, and the corresponding X axis values are non-uniformly distributed. Moreover, the larger the Y axis value, the denser the X axis value distribution, and the smaller the Y axis value, the sparser the X axis value distribution. Thus, non-uniform n quantization points are realized.

[0141] In one embodiment, calculating the spacing between adjacent two points by using the storage bit upper limit and n includes: calculating the spacing between adjacent two points according to the second formula; wherein, the second formula is: D = (m - 1) / n; D represents the spacing, m represents the storage bit upper limit, and n represents the number of quantization points.

[0142] In one embodiment, the piecewise sign function is: ; q1, q2, …, q n represents n quantization points, i = 1, 2, …, n, represents the read reliability of each read interval corresponding to the floating-point type after normalization processing, sign() is the sign function used to identify the positive and negative of q(y), and magn represents the maximum amplitude.

[0143] In one embodiment, calculating the maximum amplitude by using the storage bit upper limit includes: calculating the maximum amplitude according to the third formula; wherein, the third formula is: magn = 2 m-1 - 1; magn represents the maximum amplitude, and m represents the storage bit upper limit.

[0144] In one embodiment, recording the read reliability of each read interval corresponding to the integer type includes: generating a log-likelihood ratio table including the read reliability of each read interval corresponding to the integer type.

[0145] In one embodiment, decoding and error correcting the read operation by using the read reliability of each read interval corresponding to the integer type includes: determining the read voltage and the corresponding read offset of the storage unit read by the read operation; reading the storage unit a preset number of times by using the read voltage and the read offset to obtain a read result; querying the read reliability of the integer type corresponding to the read result; and decoding and error correcting the read operation based on the queried read reliability of the integer type.

[0146] In one embodiment, querying the read reliability of the integer type corresponding to the read result includes: in the log-likelihood ratio table corresponding to the preset number, using the log-likelihood ratio value corresponding to the queried read result as the read reliability of the integer type corresponding to the read result.

[0147] In one embodiment, if decoding and error correction fail, then, when the maximum adjustment count has not been reached, adjust the preset quantity, and based on the adjusted preset quantity, perform the steps: read the storage unit the preset number of times using a read voltage and a read offset to obtain a read result; query the integer-type read reliability level corresponding to the read result; and perform decoding and error correction on the read operation based on the queried integer-type read reliability level. Thus, cyclic decoding and error correction can be achieved. If decoding and error correction succeed, then feed back the data read by the read operation to the corresponding client. If decoding and error correction fail, then, when the maximum adjustment count has been reached, perform corresponding data recovery operations.

[0148] In one embodiment, it further includes: statistically calculating the decoding and error correction failure probability over a period of time; if the decoding and error correction failure probability is greater than a preset probability threshold, then adjust the read operation voltage, the first read offset, and / or the second read offset. Thus, the decoding and error correction failure probability can be reduced.

[0149] It can be seen that in this embodiment, after calculating the floating-point type read reliability levels respectively corresponding to multiple read intervals according to the default read operation voltage, the first read offset, and the second read offset, according to the preset storage bit upper limit, perform normalization processing on the floating-point type read reliability levels respectively corresponding to each read interval, such that the amplitude of the floating-point type read reliability levels is constrained by the storage bit upper limit, and then convert the floating-point type read reliability levels respectively corresponding to each read interval after the normalization processing into integer types, and record the integer-type read reliability levels respectively corresponding to each read interval; if the hard decoding of any read operation on the memory fails, then perform decoding and error correction on the read operation using the integer-type read reliability levels respectively corresponding to each read interval. This solution constrains the amplitude of the floating-point type read reliability levels by the storage bit upper limit set by the hardware; and the number of read intervals is calculated according to the default read operation voltage, the first read offset, and the second read offset, and more quantization points can be taken in the region where the LLR amplitude is small, and a small number of quantization points can be taken in the region where the LLR value is large, improving the soft decoding ability and success rate after the hard decoding of the read operation fails.

[0150] It should be noted that the NAND flash read recovery technology relies on ECC (Error Correction Code), such as the currently mainstream LDPC (Low Density Parity Check), which includes the hard decoding and soft decoding of LDPC codes. Before data is written to the flash memory, LDPC encoding is performed. When reading, for the data read from the flash memory, the hard decoding operation of LDPC is first executed to recover. When the number of error bits during reading is within the decoding error correction range of the LDPC code, that is, the RBER is less than the decoding error tolerance rate, the decoding operation can successfully decode and send the data to the host. However, when the threshold voltage shifts, broadens, etc., resulting in an increase in the overlapping region between two adjacent states or the original read voltage axis is not accurate enough, and thus the RBER (Raw Bit Error Rate) read out exceeds the error correction ability of LDPC, the data cannot be recovered through hard decoding, and the SSD (Solid State Drives) controller will execute the soft decoding of LDPC to recover the data.

[0151] Soft decoding requires the NAND flash to support the rereading operation. By performing left and right offset reads on the offset axis based on the original voltage axis, after multiple reads, the threshold voltage axis is divided into multiple intervals. Taking a voltage axis as an example, as Figure 2 shown. The original voltage axis RL is used to perform a normal read, and the left and right offset voltage axes and are read. The voltage axis is divided into 4 intervals, which can be represented by the results of three reads. If the results of the three reads are the same, that is, in the non-overlapping regions on both sides (111 or 000 regions), it is considered that the read result of this storage unit is highly reliable; if the results of the three reads are different, it is considered that the bit data may fall into the overlapping region (101 or 001 regions). For each interval, the reliability of each interval is identified by the log-likelihood ratio (LLR, Log-Likelihood Ratio), expressed as:

[0152]

[0153] The reliability of an interval is specifically: the ratio of the probability of writing 0 falling into this interval to the probability of writing 1 falling into this interval. The larger the amplitude of the LLR value, the higher the reliability of this interval; conversely, the smaller the amplitude of the LLR, the closer it is to 0, the closer the probabilities of writing 0 and writing 1 in this interval are, the greater the ambiguity, that is, the higher the error probability. The SSD controller will maintain an LLR table corresponding to the LLR values of each interval. When performing soft decoding, the results of multiple reads are used to determine which interval the current storage unit falls into, and then the corresponding LLR value is obtained by looking up the table, and then the soft decoding of LDPC is performed.

[0154] The configuration of the LLR has a great influence on the decoding result of soft decoding. An accurate LLR configuration can not only improve the error correction ability of LDPC soft decoding, but also effectively reduce the decoding iteration times of LDPC codes and reduce the read latency. For the overlapping region of the two-state threshold voltages, since this region is the main area where read errors occur, the accuracy of the LLR configuration in this region has a greater impact on the decoding result, and the offset value and The selection of also affects the calculation of the LLR. Due to hardware limitations, when configuring the LLR table, the actually calculated floating-point numbers are quantized and represented by finite-bit integers and stored in the LLR table for soft decoding. The quantization operation reduces the accuracy of the LLR representation, thereby reducing the performance of LDPC soft decoding.

[0155] In the operation of converting a floating-point number to an integer, rounding up or down, or rounding can be used; when the actual value of the LLR is greater than the maximum value represented by a finite bit, a clipping operation is directly performed, that is: the calculated floating-point number is brought into the following formula:

[0156] Thereby converting the floating-point number to an integer, represents rounding up for , represents the maximum amplitude of the integer represented by the finite-bit hardware. If bits are used in the hardware, then , The first bit in the bits is the sign bit.

[0157] If the operation is not directly performed on in the above formula (2), but a linear transformation is first performed on the LLR calculated for all intervals:

[0158]

[0159] and are parameters in the linear transformation, usually takes 1, can be adjusted according to different NANDs, and the adjustment parameter requirements are such that the situation of does not occur. Thus, the quantization formula is modified to:

[0160]

[0161] Due to the flash read characteristics, the overlapping interval between two adjacent states is an area with a high incidence of errors. The actually calculated LLR with a small amplitude has a great impact on the decoding result. In formula (2), a rounding operation is directly performed; in the scheme of formula (4), a linear transformation is first performed on the floating-point numbers to amplify all the calculated LLR values, and no special treatment is given to the LLR with a small amplitude. Especially when the difference between floating-point numbers is small, the difference in LLR in different regions is eliminated through the rounding operation.

[0162] Accordingly, this embodiment provides a quantization scheme for LLR corresponding to soft decoding in SSD read operations. This scheme takes into account the decoding characteristics of LDPC and the characteristics of the actually calculated LLR values in the flash memory, and uses the idea of non-uniform quantization to quantize the actually calculated LLR floating-point numbers, thereby constructing an LLR table. On the basis of this scheme, considering the characteristics of LDPC, the requirements for the offset voltage configuration of left and right offset reads in soft decoding are correspondingly given.

[0163] The LDPC code is often used in the current SSD host controller. The LDPC code is an error-correcting code with excellent error-correcting performance. Its characteristic is that the parity-check matrix has a low density. The parity-check matrix of the LDPC code is a sparse matrix. The M rows of the parity-check matrix correspond to M check nodes, and the N columns correspond to N variable nodes. The decoding of the LDPC code is usually an iterative message passing between the variable nodes and the check nodes. Each iteration in the decoding algorithm includes three parts: the update of the variable nodes, the update of the check nodes, and the decision. Among them, the update of the check nodes is the most complex and is completed by the following formula:

[0164] represents the LLR value passed from the th variable node after calculation to the th check node. is the LLR value obtained by the th variable node from the other check nodes connected to it except the th check node in the previous iteration, that is, . is the set of all check nodes connected to the th variable node, represents taking out node from this set. To simplify the calculation, is written as two parts: sign and magnitude, and then calculated separately. Let:

[0165]

[0166] where . represents the sign function, indicating its positive or negative; represents its amplitude. Therefore, the update formula (5) is rewritten as:

[0167]

[0168] where:

[0169]

[0170] In the mainstream implementation of the SSD controller, let:

[0171]

[0172] That is, by using the function characteristics of , substituting formula (9) into formula (7), the update formula is further simplified to:

[0173]

[0174] The above formula (10) is actually the check node update formula of the most commonly used min-sum algorithm (msa) in the current controller.

[0175] As can be seen from formula (9) in the principle of the LDPC code min-sum decoding algorithm above, compared with the actual sum-product decoding, in the min-sum decoding algorithm, is used to replace, that is, the LLR with the smallest amplitude dominates the update of the check node. In addition, in the overlapping area where errors are prone to occur during NAND flash reading, the LLR value is usually small. From the above two points, it can be seen that the LLR value with a small amplitude has an important impact on LDPC decoding. Therefore, the core idea of the non-uniform quantization scheme proposed in the present invention is to take several quantization points in the area where the LLR amplitude is small and take a small number of quantization points in the area where the LLR value is large.

[0176] If the hardware limitation uses bits to represent the LLR value, then the maximum amplitude of the LLR is:

[0177]

[0178] The highest bit in the bits is the sign bit. Represented by an integer, there are amplitude options available, including amplitude 0. Therefore, the present invention uses n-bit non-uniform quantization for the LLR, from the calculated floating-point number to the integer

[0179]

[0180] denotes quantization points, is the sign function, identifying positive or negative, is the transformation formula applied to

[0181] Based on the above quantization formula, the quantization sub-case proposed in this embodiment is divided into two parts. One part is the determination of quantization points, and the other part is the calculation of . Since the simplification of the minimum sum algorithm is based on function, the smaller the larger, and as decreases, increases sharply. Therefore, in this invention, function is used to determine the quantization points.

[0182] The quantization scheme is based on the idea of equally spaced linear approximation, that is, equally spaced points are taken in the Y-axis direction for division, and the corresponding points on the X-axis are the selected quantization points. Specifically, for the LLR configuration with bits, where the highest bit is the sign bit and the effective bits of the amplitude are a total of bits. On , points are taken at equal intervals, , that is:

[0183]

[0184] As Figure 3 shown in . Set , . Therefore, the corresponding value range is . Since when , but function is symmetric along , so in this embodiment, it is defined as . Therefore, the corresponding value points are . Furthermore, in this embodiment, the calculated division interval is defined as the quantization interval. As Figure 3As shown, multiple function values are taken at equal intervals on the Y-axis, and the corresponding X-axis values are distributed non-uniformly. Moreover, the larger the value on the Y-axis, the denser the distribution of the X-axis values, and the smaller the value on the Y-axis, the sparser the distribution of the X-axis values. Thus, non-uniform quantization is achieved.

[0185]

[0186] Based on the quantization point determination scheme proposed above, in this embodiment, in formula (12) is calculated as follows:

[0187]

[0188] is the vector of all actually calculated floating-point numerical values, is the maximum value of the amplitudes of all floating-point numerical values. Therefore, is the normalization process of the actually calculated values within the amplitude range. For the obtained after normalization, using the calculated quantization points, the quantization operation of LLR floating-point numbers to finite integers can be performed using formula (12).

[0189] In LDPC code decoding, if LLR = 0, it means that the initial probabilities of writing 0 and writing 1 at this point are the same. In coding, in this case, this variable node is called "erased". It can be seen from the update formula of the check node in the min-sum decoding that the amplitude is the minimum amplitude of all the connected variable nodes. If one of the connected variable nodes is erased, the other check nodes update their LLR values to 0 in this iteration, and the LLR information of the other variable nodes connected to this check node cannot be quickly and directly transmitted, which will increase the probability of decoding failure. In addition, according to the concept of the stopping set in LDPC codes, the erased nodes in the stopping set will affect the correct decoding of the variable nodes on the entire stopping set. Therefore, the appearance of 0 values in the initial configuration of LLR should be avoided. This problem can be avoided by adjusting the offsets and .

[0190] From formula (12), when , . From and and formula (15), to avoid LLR being 0 after quantization, it is necessary to satisfy:

[0191]

[0192] That is, by adjusting the offsets and , the actually calculated floating-point LLR values need to satisfy:

[0193] is the inverse function of, and has the mathematical property that: , and can be calculated by looking up a table.

[0194] In one example, a specific implementation step may include:

[0195] 1) Determine the voltage axis offset value: Obtain the NAND threshold voltage distribution through testing, and adjust the offset and such that for the current offset setting, all actually calculated floating-point values satisfy formula (17), thereby determining and . Each voltage axis contains a pair of offset values, and the calculated offset values can be stored in the main controller.

[0196] 2) Calculate the LLR value based on the actual test results: Based on the set and and the threshold voltage distribution, calculate the LLR floating-point value for each interval on the threshold voltage axis. As Figure 2 shown, for each voltage axis offset reading, 4 intervals are divided. If the currently read flash memory page contains voltage axes, the threshold voltage axis will be divided into intervals, and calculate the LLR value for each interval according to formula (1), denoted as .

[0197] 3) According to the hardware limitation requirements, the main controller provides the value of m and calculates the quantization points in the quantization scheme: If the hardware limits the LLR storage bit to bits, with the first bit being the sign bit to identify positive and negative. Then for the function, take equally spaced points on the axis , , and the spacing between every two points is . That is:

[0198]

[0199] Based on determine to obtain ; Look up the function table to obtain , and according to formula (14), the quantization point can be obtained.

[0200] 4) Normalize to obtain : For the floating-point LLR vector calculated in step 2 , the quantized result is calculated using formula (15): .

[0201] 5) Quantize the floating-point number to an integer: Using the quantization points calculated in step 3) and the normalized LLR floating-point values calculated in step 4), calculate the quantized integer LLR value using formula (12) and store it in the LLR table maintained in the main control.

[0202] 6) When the SSD reads data, after hard decoding fails both after normal reading and repeated reading, enter soft decoding. Soft decoding will perform multiple read operations such as normal reading and left and right offsets. The left and right offsets are relative to the voltage axis during normal reading, and the voltage axis offset value is obtained from the main control and obtain a new voltage axis ( and ) to perform multiple reads, and use the read results to indicate which interval of the threshold voltage axis the voltage of the currently read storage unit is located in, that is, obtain the interval index value. Use the index value to correspondingly obtain the LLR value from the LLR table for LDPC soft decoding. For details, please refer to Figure 4 .

[0203] 7) The above calculation of LLR is performed offline outside the SSD disk. Based on the results of pre-measured threshold voltage distributions, a LLR table is constructed after calculation and stored in the DDR of the main control. Therefore, the above calculation operations will not increase the computational complexity and latency of SSD read operations.

[0204] In another example, if there are hardware limitations , and the amplitude can only be represented using 3 bits, , then calculate the right side of inequality (17) by looking up the table , that is, the voltage axis offset value and are set so that the deviation of the calculated actual floating-point values cannot be too large, and the maximum value among all calculated floating-point values does not exceed 20 times the minimum value; according to the actual NAND test results, calculate the LLR value for each interval. Assume that there are four intervals of LLR in the LLR floating-point vector as , where the maximum value among all interval values is 13.5. Calculate the quantization points according to formula 3) and formula (18): that is, insert 7 points from , which are respectively: , look up function table to get: The voltage axis offset of the read is restricted, aiming at reasonable configuration to eliminate the occurrence of "erase".

[0205] Next, a data processing device provided by an embodiment of the present invention will be introduced. The data processing device described below can be referred to each other with other embodiments described herein.

[0206] An embodiment of the present invention discloses a data processing device, which is applied to a memory and includes:

[0207] A calculation module, configured to calculate the read reliability degrees of multiple read intervals corresponding to floating-point types respectively according to a default read operation voltage, a first read offset, and a second read offset;

[0208] A normalization module, configured to perform normalization processing on the read reliability degrees of floating-point types corresponding to each read interval respectively according to a preset storage bit upper limit;

[0209] A conversion module, configured to convert the read reliability degrees of floating-point types corresponding to each read interval after normalization processing into integer types, and record the read reliability degrees of integer types corresponding to each read interval respectively;

[0210] A read processing module, configured to, if the hard decoding of any read operation on the memory fails, perform decoding error correction on the read operation by using the read reliability degrees of integer types corresponding to each read interval respectively.

[0211] In one embodiment, the calculation module is specifically configured to:

[0212] Determine K read voltage axes according to the read operation voltage, the first read offset, and the second read offset;

[0213] Calculate the product of the number of intervals X corresponding to each read voltage axis and K to obtain XK read intervals;

[0214] Calculate the read reliability degrees of floating-point types corresponding to the XK read intervals respectively.

[0215] In one embodiment, the normalization module is specifically configured to:

[0216] Determine the maximum value among the XK read reliability degrees of floating-point types;

[0217] Calculate the ratios of the XK read reliability degrees of floating-point types to the maximum value respectively to obtain XK ratios;

[0218] Calculate the read reliability degrees of floating-point types corresponding to the XK read intervals after normalization processing according to the XK ratios and the storage bit upper limit.

[0219] In one embodiment, the normalization module is specifically configured to:

[0220] Subtract one from the storage bit upper limit to obtain a target value;

[0221] Calculate the product of the target value and the XK ratios to obtain the read reliability degrees of floating-point types corresponding to the XK read intervals after normalization processing.

[0222] In one embodiment, the calculation module is specifically configured to:

[0223] Calculate the ratio of the probability of writing character 0 to the probability of writing character 1 in each of the XK read intervals respectively, and use the corresponding ratio as the read reliability of the floating-point type corresponding to each of the XK read intervals.

[0224] In one embodiment, the conversion module is specifically configured to:

[0225] Read the storage bit upper limit from the main controller of the memory;

[0226] Calculate n quantization points using the storage bit upper limit;

[0227] Calculate the maximum amplitude using the storage bit upper limit;

[0228] Construct a piecewise sign function using the n quantization points, the maximum amplitude, and the read reliability of the floating-point type corresponding to each of the normalized read intervals;

[0229] Solve the piecewise sign function to obtain the read reliability of the integer type corresponding to each of the read intervals.

[0230] In one embodiment, the conversion module is specifically configured to:

[0231] Calculate equidistant function values according to the first formula;

[0232] Determine n non-uniformly distributed quantization points based on the equidistant function values;

[0233] Wherein, the first formula is: ; represents the function value corresponding to the quantization point x i , m represents the storage bit upper limit, and i = 1, 2,..., n.

[0234] In one embodiment, the conversion module is specifically configured to:

[0235] Calculate the distance between adjacent two points according to the second formula;

[0236] Wherein, the second formula is: D = (m - 1) / n; D represents the distance, m represents the storage bit upper limit, and n represents the number of quantization points.

[0237] In one embodiment, the piecewise sign function is:

[0238] ; q1, q2,..., q n represent n quantization points, i = 1, 2,..., n, Indicates the read reliability of each read interval after normalization, where sign() is the sign function used to identify the positive or negative of q(y), and magn represents the maximum amplitude.

[0239] In one embodiment, the conversion module is specifically configured to:

[0240] Calculate the maximum amplitude according to the third formula;

[0241] Wherein, the third formula is: magn = 2 m-1 -1; magn represents the maximum amplitude, and m represents the upper limit of the storage bit.

[0242] In one embodiment, the conversion module is specifically configured to:

[0243] Generate a log-likelihood ratio table including the read reliability of each read interval corresponding to the integer type.

[0244] In one embodiment, the read processing module is specifically configured to:

[0245] Determine the read voltage and the corresponding read offset of the storage unit read by the read operation;

[0246] Read the storage unit a preset number of times by using the read voltage and the read offset to obtain a read result;

[0247] Query the read reliability of the integer type corresponding to the read result;

[0248] Decode and correct errors for the read operation based on the queried read reliability of the integer type.

[0249] In one embodiment, the read processing module is specifically configured to:

[0250] In the log-likelihood ratio table corresponding to the preset number, use the log-likelihood ratio value corresponding to the queried read result as the read reliability of the integer type corresponding to the read result.

[0251] In one embodiment, it further includes:

[0252] A loop module, configured to, if the decoding and error correction fails, and when the maximum adjustment times is not reached, adjust the preset number, and execute the steps based on the adjusted preset number: read the storage unit a preset number of times by using the read voltage and the read offset to obtain a read result; query the read reliability of the integer type corresponding to the read result; decode and correct errors for the read operation based on the queried read reliability of the integer type.

[0253] In one embodiment, it further includes:

[0254] A decoding success module, configured to, if the decoding and error correction is successful, feedback the data read by the read operation to the corresponding client.

[0255] In one embodiment, it further includes:

[0256] A decoding failure module, configured to perform corresponding data recovery operations when the decoding error correction fails and the maximum adjustment times are reached.

[0257] In one embodiment, it further includes:

[0258] An adjustment module, configured to count the decoding error correction failure probability within a period of time; if the decoding error correction failure probability is greater than a preset probability threshold, adjust the read operation voltage, the first read offset, and / or the second read offset.

[0259] Among them, for the more specific working processes of each module and unit in this embodiment, reference may be made to the corresponding content disclosed in the foregoing embodiments, and details will not be elaborated herein.

[0260] It can be seen that this embodiment provides a data processing device. In this solution, the amplitude of the read reliability of the floating-point type is constrained by the storage bit upper limit set by the hardware; and the number of read intervals is calculated based on the default read operation voltage, the first read offset, and the second read offset. More quantization points can be taken in the area with a smaller LLR amplitude, and fewer quantization points can be taken in the area with a larger LLR value, improving the soft decoding ability and success rate after a hard decoding failure of the read operation.

[0261] Next, an electronic device provided by an embodiment of the present invention will be introduced. The electronic device described below can be mutually referred to with other embodiments described herein.

[0262] See Figure 5 As shown, an embodiment of the present invention discloses an electronic device, including:

[0263] A memory 501, configured to store a computer program;

[0264] A processor 502, configured to execute the computer program to implement the method disclosed in any of the foregoing embodiments.

[0265] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: Calculate the read reliability of multiple read intervals corresponding to floating-point types according to the default read operation voltage, the first read offset, and the second read offset; perform normalization processing on the read reliability of floating-point types corresponding to each read interval according to the preset storage bit upper limit; convert the read reliability of floating-point types corresponding to each read interval after normalization processing into an integer type, and record the read reliability of integer types corresponding to each read interval; if the hard decoding of any read operation on the memory fails, use the read reliability of integer types corresponding to each read interval to perform decoding error correction on the read operation.

[0266] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: Determine K read voltage axes according to the read operation voltage, the first read offset, and the second read offset; calculate the product of the number of intervals X corresponding to each read voltage axis and K to obtain XK read intervals; calculate the read reliability of floating-point types corresponding to the XK read intervals.

[0267] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: Determine the maximum value among the XK read reliabilities of floating-point types; calculate the ratios of the XK read reliabilities of floating-point types to the maximum value respectively to obtain XK ratios; calculate the read reliability of floating-point types corresponding to the XK read intervals after normalization processing according to the XK ratios and the storage bit upper limit.

[0268] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: Subtract one from the storage bit upper limit to obtain a target value; calculate the product of the target value and the XK ratios to obtain the read reliability of floating-point types corresponding to the XK read intervals after normalization processing.

[0269] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: Calculate the ratios of the probability of writing character 0 to the probability of writing character 1 in the XK read intervals respectively, and use the corresponding ratios as the read reliability of floating-point types corresponding to the XK read intervals.

[0270] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: reading the storage bit upper limit from the main controller of the memory; calculating n quantization points by using the storage bit upper limit; calculating the maximum amplitude by using the storage bit upper limit; constructing a piecewise sign function by using the n quantization points, the maximum amplitude, and the floating-point type read reliability corresponding to each read interval after normalization processing; and solving the piecewise sign function to obtain the integer type read reliability corresponding to each read interval.

[0271] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: calculating the distance between adjacent two points according to the second formula; where the second formula is: D = (m - 1) / n; D represents the distance, m represents the storage bit upper limit, and n represents the number of quantization points.

[0272] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: calculating the maximum amplitude according to the third formula; where the third formula is: magn = 2 m-1 - 1; magn represents the maximum amplitude, and m represents the storage bit upper limit.

[0273] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: generating a log-likelihood ratio table including the integer type read reliability corresponding to each read interval.

[0274] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: determining the read voltage and the corresponding read offset of the storage unit read by the read operation; reading the storage unit a preset number of times by using the read voltage and the read offset to obtain a read result; querying the integer type read reliability corresponding to the read result; and performing decoding and error correction on the read operation based on the queried integer type read reliability.

[0275] In this embodiment, when the processor executes the computer program stored in the memory, the following steps can be specifically implemented: in the log-likelihood ratio table corresponding to the preset number, using the log-likelihood ratio value corresponding to the queried read result as the integer type read reliability corresponding to the read result.

[0276] In this embodiment, when the processor executes the computer program stored in the memory, the following steps may be specifically implemented: If decoding and error correction fail, and the maximum adjustment count has not been reached, adjust a preset quantity, and based on the adjusted preset quantity, execute the steps: Read the storage unit a preset number of times using a read voltage and a read offset to obtain a read result; query the integer-type read reliability corresponding to the read result; perform decoding and error correction on the read operation based on the queried integer-type read reliability.

[0277] In this embodiment, when the processor executes the computer program stored in the memory, the following steps may be specifically implemented: If decoding and error correction are successful, feed back the data read by the read operation to the corresponding client.

[0278] In this embodiment, when the processor executes the computer program stored in the memory, the following steps may be specifically implemented: If decoding and error correction fail, and the maximum adjustment count has been reached, perform corresponding data recovery operations.

[0279] In this embodiment, when the processor executes the computer program stored in the memory, the following steps may be specifically implemented: Statistically calculate the decoding and error correction failure probability over a period of time; if the decoding and error correction failure probability is greater than a preset probability threshold, adjust the read operation voltage, the first read offset, and / or the second read offset.

[0280] Furthermore, an embodiment of the present invention also provides an electronic device. Among them, the above-mentioned electronic device can be either a Figure 6 server as shown, or a Figure 7 terminal as shown. Figure 6 and Figure 7 are both structural diagrams of an electronic device shown according to an exemplary embodiment, and the content in the figure cannot be considered as any limitation on the scope of use of the present invention.

[0281] Figure 6 This is a schematic structural diagram of a server provided by an embodiment of the present invention. The server may specifically include: at least one processor, at least one memory, a power supply, a communication interface, an input / output interface, and a communication bus. Among them, the memory is used to store a computer program, and the computer program is loaded and executed by the processor to implement the relevant steps in the data processing disclosed in any of the foregoing embodiments.

[0282] In this embodiment, the power supply is used to provide operating voltages for various hardware devices on the server; the communication interface can create a data transmission channel between the server and external devices, and the communication protocol it follows can be any communication protocol applicable to the technical solution of the present invention, and no specific limitation is imposed thereon here; the input / output interface is used to obtain external input data or output data to the outside world, and its specific interface type can be selected according to specific application requirements, and no specific limitation is imposed here.

[0283] In addition, the memory, as a carrier for resource storage, can be a read-only memory, a random access memory, a magnetic disk, an optical disk, etc. The resources stored thereon include an operating system, computer programs, data, etc., and the storage method can be temporary storage or permanent storage.

[0284] Among them, the operating system is used to manage and control various hardware devices and computer programs on the server to enable the processor to perform operations and processing on the data in the memory, and it can be Windows Server, Netware, Unix, Linux, etc. In addition to the computer programs that can be used to complete the data processing methods disclosed in any of the foregoing embodiments, the computer programs can further include computer programs that can be used to complete other specific tasks. In addition to data such as update information of application programs, the data can also include data such as developer information of application programs.

[0285] Figure 7 FIG. is a schematic structural diagram of a terminal provided by an embodiment of the present invention. The terminal may specifically include, but is not limited to, a smart phone, a tablet computer, a notebook computer, a desktop computer, etc.

[0286] Generally, the terminal in this embodiment includes a processor and a memory.

[0287] Among them, the processor may include one or more processing cores, such as a 4-core processor, an 8-core processor, etc. The processor may be implemented in at least one hardware form of DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), or PLA (Programmable Logic Array). The processor may also include a main processor and a coprocessor. The main processor is a processor used to process data in the wake state, also known as the CPU (Central Processing Unit); the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, the processor may be integrated with a GPU (Graphics Processing Unit), and the GPU is responsible for rendering and drawing the content to be displayed on the display screen. In some embodiments, the processor may also include an AI (Artificial Intelligence) processor, and the AI processor is used to process computational operations related to machine learning.

[0288] The memory may include one or more computer non-volatile storage media, and the computer non-volatile storage media may be non-transitory. The memory may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices and flash storage devices. In this embodiment, the memory is at least used to store the following computer programs. After the computer programs are loaded and executed by the processor, they can implement the relevant steps in the data processing method executed by the terminal side disclosed in any of the foregoing embodiments. In addition, the resources stored in the memory may also include an operating system and data, etc., and the storage method may be temporary storage or permanent storage. Among them, the operating system may include Windows, Unix, Linux, etc. The data may include, but is not limited to, update information of the application program.

[0289] In some embodiments, the terminal may further include a display screen, an input / output interface, a communication interface, sensors, a power supply, and a communication bus.

[0290] Those skilled in the art can understand that Figure 7 the structure shown in

[0291] does not constitute a limitation on the terminal, and it may include more or fewer components than shown in the figure.

[0292] A non-volatile storage medium for storing a computer program, wherein the computer program, when executed by a processor, implements the data processing method disclosed in the foregoing embodiments. The non-volatile storage medium is a computer-readable non-volatile storage medium. As a carrier for storing resources, it can be a read-only memory, a random access memory, a magnetic disk, or an optical disc, etc. The resources stored thereon include an operating system, a computer program, and data, etc. The storage method can be transient storage or permanent storage.

[0293] Next, a computer program product provided by an embodiment of the present invention will be introduced. The computer program product described below can be referred to each other with other embodiments described in this article.

[0294] A computer program product includes computer programs / instructions, and when the computer programs / instructions are executed by a processor, the steps of the data processing method disclosed above are implemented.

[0295] The embodiments in this specification are described in a progressive manner. Each embodiment focuses on the differences from other embodiments. The same or similar parts among the embodiments can be referred to each other.

[0296] The steps of the method or algorithm described in combination with the embodiments disclosed in this article can be directly implemented by hardware, a software module executed by a processor, or a combination of the two. The software module can be placed in a random access memory (RAM), memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, register, hard disk, removable disk, CD-ROM, or any other form of non-volatile storage medium well-known in the technical field.

[0297] Specific examples are used in this article to elaborate on the principles and implementation manners of the present invention. The description of the above embodiments is only used to help understand the method and its core idea of the present invention; at the same time, for those of ordinary skill in the art, according to the idea of the present invention, there will be changes in the specific implementation manners and application scopes. In summary, the content of this specification should not be construed as a limitation to the present invention.

Claims

1. A data processing method, characterized in that: Applied to memory, including: Calculating the read reliability of the floating-point type corresponding to the plurality of read intervals according to the default read operation voltage, the first read offset and the second read offset; According to the preset storage bit upper limit, the read reliability of the floating point type corresponding to each read interval is normalized; Convert the read reliability of the floating point type corresponding to each read interval after normalization into an integer type, and record the read reliability of the integer type corresponding to each read interval; If hard decoding of any read operation of the memory fails, decoding and error correction are performed on the read operation using the integer-type read reliability corresponding to each read interval; The floating-point read reliability corresponding to the plurality of read intervals is calculated based on the default read operation voltage, the first read offset, and the second read offset, including: Determine K read voltage axes according to the read operation voltage, the first read offset and the second read offset; Calculate the product of the number of intervals X and K corresponding to each reading voltage axis to obtain XK reading intervals; Calculate the read reliability of the floating-point type corresponding to each of the XK read intervals.

2. The method according to claim 1, characterized in that According to the preset storage bit upper limit, the read reliability of the floating-point type corresponding to each read interval is normalized, including: Determine the maximum read reliability of XK floating point types; Calculate the ratios of the read reliability of XK floating point types to the maximum value respectively, and obtain XK ratios; According to the XK ratios and the storage bit upper limit, the read reliability of the floating-point type corresponding to the XK read intervals after normalization is calculated.

3. The method according to claim 2, characterized in that According to the XK ratios and the storage bit upper limit, the read reliability of the floating-point type corresponding to the XK read intervals after normalization is calculated, including: Subtract one from the upper limit of the storage bit to obtain a target value; The product of the target value and the XK ratios is calculated to obtain the read reliability of the floating-point type corresponding to the normalized XK read intervals.

4. The method according to claim 1, characterized in that: Calculate the read reliability of the floating-point type corresponding to each of the XK read intervals, including: The ratios of the probability of writing character 0 to the probability of writing character 1 in the XK read intervals are calculated respectively, and the corresponding ratios are used as the read reliability of the floating-point type corresponding to the XK read intervals respectively.

5. The method according to claim 1, characterized in that Convert the read reliability of the floating-point type corresponding to each read interval after normalization into an integer type, including: Reading the storage bit upper limit from the main controller of the memory; Calculated using the storage bit upper limit n Quantitative points; Calculating a maximum amplitude using the storage bit upper limit; Using the n The quantization point, the maximum amplitude and the reading reliability of the floating point type corresponding to each reading interval after normalization are constructed to obtain a segmented symbol function; The piecewise symbol function is solved to obtain the integer type reading reliability corresponding to each reading interval.

6. The method according to claim 5, characterized in that Calculated using the storage bit upper limit n quantitative points, including: Using the storage bit upper limit and n Calculate the distance between two adjacent points; According to the first formula, the function values ​​with equal spacing are calculated; Determine the non-uniform distribution based on equally spaced function values n Quantitative points; Among them, the first formula is: ; Indicates quantization point x i The corresponding function value is m Indicates the upper limit of the storage bit, i =1,2,…, n .

7. The method according to claim 6, characterized in that Using the storage bit upper limit and n Calculate the distance between two adjacent points, including: The distance between two adjacent points is calculated according to the second formula; Wherein, the second formula is: D=( m -1) / n ; D represents the spacing, m Indicates the upper limit of the storage bit, n Indicates the number of quantization points.

8. The method according to claim 5, characterized in that The piecewise symbol function is: ; q 1, q 2,…, q n express n Quantitative points, i =1,2,…, n , Indicates the read reliability of the floating-point type corresponding to each read interval after normalization. sign () is used for identification q ( y ) positive and negative sign functions, magn represents the maximum magnitude.

9. The method according to claim 5, characterized in that The maximum amplitude is calculated using the storage bit upper limit, including: The maximum amplitude is calculated according to the third formula; Wherein, the third formula is: magn =2 m-1 -1; magn represents the maximum amplitude, m Indicates the upper limit of the storage bit.

10. The method according to claim 1, characterized in that Record the read reliability of the integer type corresponding to each read interval, including: A log-likelihood ratio table including integer-type read reliability corresponding to each read interval is generated.

11. The method according to any one of claims 1 to 10, characterized in that: Using the integer type read reliability corresponding to each read interval, the read operation is decoded and error corrected, including: Determining a read voltage and a corresponding read offset corresponding to a storage unit read by the read operation; Reading the storage unit a preset number of times using the read voltage and the read offset to obtain a read result; Query the read reliability of the integer type corresponding to the read result; The read operation is decoded and error corrected based on the queried read reliability of the integer type.

12. The method according to claim 11, characterized in that Querying the read reliability of the integer type corresponding to the read result includes: In the log-likelihood ratio table corresponding to the preset number, the log-likelihood ratio value corresponding to the read result queried is used as the integer type read reliability corresponding to the read result.

13. The method according to claim 11, characterized in that Also includes: If the decoding error correction fails, the preset number is adjusted if the maximum adjustment number is not reached, and the steps are performed based on the adjusted preset number: the storage unit is read a preset number of times using the read voltage and the read offset to obtain a read result; and a read reliability of an integer type corresponding to the read result is queried; The read operation is decoded and error corrected based on the queried read reliability of the integer type.

14. The method according to claim 13, characterized in that Also includes: If the decoding and error correction are successful, the data read by the read operation is fed back to the corresponding client.

15. The method according to claim 13, characterized in that Also includes: If the decoding error correction fails, the corresponding data recovery operation is performed when the maximum number of adjustments is reached.

16. The method according to any one of claims 1 to 12, characterized in that: Also includes: Count the probability of decoding error correction failure within a period of time; If the decoding error correction failure probability is greater than a preset probability threshold, the read operation voltage, the first read offset and / or the second read offset are adjusted.

17. A data processing device, characterized in that: Applied to memory, including: A calculation module, used for calculating the read reliability of the floating-point type corresponding to the plurality of read intervals respectively according to a default read operation voltage, a first read offset and a second read offset; A normalization module, used to normalize the read reliability of the floating-point type corresponding to each read interval according to a preset storage bit upper limit; A conversion module, used to convert the reading reliability of the floating point type corresponding to each reading interval after normalization into an integer type, and record the reading reliability of the integer type corresponding to each reading interval; a read processing module, configured to decode and correct any read operation of the memory by using the read reliability of integer type corresponding to each read interval if hard decoding of the read operation fails; The calculation module is specifically used for: Determine K read voltage axes according to the read operation voltage, the first read offset and the second read offset; Calculate the product of the number of intervals X and K corresponding to each reading voltage axis to obtain XK reading intervals; Calculate the read reliability of the floating-point type corresponding to each of the XK read intervals.

18. An electronic device, characterized in that: include: Memory for storing computer programs; A processor, configured to execute the computer program to implement the method according to any one of claims 1 to 16.

19. A non-volatile storage medium, characterized in that: Used to store a computer program, wherein when the computer program is executed by a processor, the method according to any one of claims 1 to 16 is implemented.

20. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the method according to any one of claims 1 to 16 is implemented.

Citation Information

Patent Citations

  • Method and apparatus for using DRAM as cache of byte-addressable memory

    CN117743205A

  • Flash memory reading method and device, computer equipment and storage medium

    CN118280423A