A decoding method and apparatus for a memory

By using historical LLR values ​​to correct and calculate transition probabilities in memory, the problem of high decoding failure rate in multi-level cell memory devices is solved, decoding speed and accuracy are improved, and the performance of flash memory devices is enhanced.

CN115035936BActive Publication Date: 2026-07-03INST OF MICROELECTRONICS CHINESE ACAD OF SCI LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INST OF MICROELECTRONICS CHINESE ACAD OF SCI LTD
Filing Date
2022-07-07
Publication Date
2026-07-03

AI Technical Summary

Technical Problem

In existing technologies, multi-level cell memory devices have a high probability of decoding failure after reading data, and it takes a long time to read data multiple times to adjust the LLR value of the decoding failure, which reduces the performance of flash memory devices.

Method used

By reading data from multiple memory cells in the memory in units of pages, the historical log-likelihood ratio (LLR) value is used to correct the read data, the transition probability of the target page is calculated and the LLR value is updated to assist the decoding process.

Benefits of technology

This increases the probability of successful decoding, reduces the time required to re-decode after a decoding failure, and improves the performance of flash memory devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115035936B_ABST
    Figure CN115035936B_ABST
Patent Text Reader

Abstract

This application provides a decoding method and apparatus for a memory. The method involves reading data from multiple memory cells in the memory in page units, obtaining first data from a target page, and then using second data (including the correctly decoded portion) corrected by historical LLR values ​​and the first data read from the target page to obtain a transition probability for the correctly decoded second data to become the first data. A new target LLR value is calculated using this transition probability. This method of calculating the target LLR value has high computational speed and low computational overhead, eliminates the need for multiple data reads, reduces the time required for re-decoding after decoding failure, and the updated target LLR value can assist in decoding the second data, thereby increasing the probability of successful decoding, improving decoding performance, and enhancing the performance of the flash memory device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of semiconductor devices, and in particular to a decoding method and apparatus for a memory. Background Technology

[0002] Semiconductor memory devices can be volatile or non-volatile. While volatile semiconductor memory devices can perform read and write operations at high speeds, the data stored in them is lost when power is off. Conversely, non-volatile semiconductor memory devices retain their stored data regardless of whether power is applied. Flash memory is a typical example of a non-volatile semiconductor memory device, and it is widely used as a data storage medium.

[0003] With the increasing demand for high-capacity storage devices, multi-level cell (MLC) memory devices or multi-bit memory devices that store multiple bits per cell are being widely used. In multi-level cell memory devices, different threshold voltages can be obtained by injecting different numbers of electrons into the floating gate or charge trapping layer, thereby representing different logic states. Taking multi-level cell (MLC) NAND Flash as an example, when reading data, three different read voltages are applied to the gate to distinguish four logic states.

[0004] However, as the number of logical states increases, the probability of decoding failure after reading data also gradually increases. After a decoding failure, several additional read operations can be performed to read the data again, thereby reducing the probability of subsequent decoding failures and achieving better decoding performance.

[0005] However, reading data multiple times using several additional read operations takes a long time, reducing the performance of flash memory devices. Summary of the Invention

[0006] In view of this, the purpose of this application is to provide a decoding method and apparatus for memory, which can reduce the time required to decode again after a decoding failure, improve decoding performance, and improve the performance of flash memory devices.

[0007] To achieve the above objectives, this application provides the following technical solution:

[0008] This application provides a memory decoding method, including:

[0009] The system reads data from multiple memory cells in the memory in units of pages, and obtains the first data of the target page.

[0010] The first data read from the target page is corrected using the historical log-likelihood ratio (LLR) value to obtain the corrected second data.

[0011] Based on the first data and the second data, determine the transition probability of the second data being converted into the first data;

[0012] Using the transition probability, the target LLR value of the target page is calculated;

[0013] The second data of the target page is decoded based on the target LLR value.

[0014] Optionally, the first data includes a first codeword, the second data includes a second codeword, and the second codeword is the correct codeword after the first codeword is corrected;

[0015] The step of determining the transition probability of the second data becoming the first data based on the first data and the second data includes:

[0016] Based on the first codeword and the second codeword, determine the transition probability of the second codeword being transformed into the first codeword.

[0017] Optionally, the transition probability includes a first transition probability and a second transition probability, and the target LLR value includes a first target LLR value and a second target LLR value;

[0018] The step of determining the transition probability of the second codeword to the first codeword based on the first codeword and the second codeword includes:

[0019] Determine the number of 0s and 1s in the first codeword and the second codeword, respectively;

[0020] Determine the first transition probability of 0 in the second codeword becoming 1 in the first codeword and the second transition probability of 1 in the second codeword becoming 0 in the first codeword;

[0021] The calculation of the target LLR value using the transition probability includes:

[0022] Using the first transition probability and the second transition probability, the first target LLR value corresponding to 1 and the second target LLR value corresponding to 0 in the target page are calculated respectively.

[0023] Optionally, the plurality of pages includes low-level pages, middle-level pages, and high-level pages;

[0024] If the target page is the lower-level page and the higher-level page, then calculating the first target LLR value corresponding to 1 and the second target LLR value corresponding to 0 in the target page using the first transition probability and the second transition probability respectively includes:

[0025] The first target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability;

[0026] The second target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability;

[0027] If the target page is the middle-layer page, then calculating the first target LLR value corresponding to 1 and the second target LLR value corresponding to 0 in the target page using the first transition probability and the second transition probability respectively includes:

[0028] The first target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability;

[0029] The second target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability.

[0030] Optionally, after decoding the second data of the target page according to the target LLR value, third data is obtained, the third data including error codewords;

[0031] The method further includes:

[0032] Based on the first data and the third data, determine the transition probability of the third data being converted into the first data;

[0033] The update LLR value of the target page is calculated using the transition probability of the third data being transferred to the first data.

[0034] The third data of the target page is further decoded based on the updated LLR value.

[0035] This application provides a memory decoding device, comprising:

[0036] The read unit is used to perform data read operations on multiple storage units in the memory in units of pages, and to read the first data of the target page.

[0037] The correction unit is used to correct the first data read from the target page using the historical log-likelihood ratio (LLR) value to obtain the corrected second data.

[0038] The first determining unit is configured to determine the transition probability of the second data being converted into the first data based on the first data and the second data.

[0039] The first calculation unit is used to calculate the target LLR value of the target page using the transition probability;

[0040] The first decoding unit is used to decode the second data of the target page according to the target LLR value.

[0041] Optionally, the first data includes a first codeword, the second data includes a second codeword, and the second codeword is the correct codeword after the first codeword is corrected;

[0042] The first determining unit is specifically used for:

[0043] Based on the first codeword and the second codeword, determine the transition probability of the second codeword being transformed into the first codeword.

[0044] Optionally, the transition probability includes a first transition probability and a second transition probability, and the target LLR value includes a first target LLR value and a second target LLR value;

[0045] The first determining unit is specifically used for:

[0046] Determine the number of 0s and 1s in the first codeword and the second codeword, respectively;

[0047] Determine the first transition probability of 0 in the second codeword becoming 1 in the first codeword and the second transition probability of 1 in the second codeword becoming 0 in the first codeword;

[0048] The first computing unit is specifically used for:

[0049] Using the first transition probability and the second transition probability, the first target LLR value corresponding to 1 and the second target LLR value corresponding to 0 in the target page are calculated respectively.

[0050] Optionally, the plurality of pages includes low-level pages, middle-level pages, and high-level pages;

[0051] If the target page is both the lower-level page and the higher-level page, then the first calculation unit is specifically used for:

[0052] The first target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability;

[0053] The second target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability;

[0054] If the target page is the middle-level page, then the first calculation unit is specifically used for:

[0055] The first target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability;

[0056] The second target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability.

[0057] Optionally, after decoding the second data of the target page according to the target LLR value, third data is obtained, the third data including error codewords;

[0058] The device further includes:

[0059] The second determining unit is used to determine the transition probability of the third data being converted into the first data based on the first data and the third data.

[0060] The second calculation unit is used to calculate the updated LLR value of the target page using the transition probability of the third data being transferred to the first data.

[0061] The second decoding unit is used to continue decoding the third data of the target page based on the updated LLR value.

[0062] This application provides a memory decoding method and apparatus. It performs data reading operations on multiple memory cells in the memory in units of pages, reading first data of a target page. Using historical log-likelihood ratio (LLR) values, the first data read from the target page is corrected to obtain corrected second data, which includes the correctly decoded portion. Based on the first and second data, a transition probability is determined for the second data to become the first data. Using the transition probability, a target LLR value for the target page is calculated. The second data of the target page is decoded based on the target LLR value. In other words, this application can use the corrected second data (including the correctly decoded portion) and the first data read from the target page, corrected using historical LLR values, to obtain the transition probability for the second data (including the correctly decoded portion) to become the first data. A new target LLR value is then calculated using the transition probability. This method of calculating the target LLR value has high computational speed and low computational overhead, eliminates the need for multiple data reads, reduces the time spent re-decoding after decoding failure, and the updated target LLR value can assist in decoding the second data, increasing the probability of successful decoding, improving decoding performance, and enhancing the performance of the flash memory device. Attached Figure Description

[0063] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0064] Figure 1 A schematic diagram of data storage is shown;

[0065] Figure 2A flowchart illustrating a memory decoding method provided in an embodiment of this application is shown.

[0066] Figure 3 A schematic diagram of the structure of a memory decoding device provided in an embodiment of this application is shown. Detailed Implementation

[0067] To make the above-mentioned objectives, features and advantages of this application more apparent and understandable, the specific embodiments of this application will be described in detail below with reference to the accompanying drawings.

[0068] Many specific details are set forth in the following description in order to provide a full understanding of this application. However, this application may also be implemented in other ways different from those described herein. Those skilled in the art can make similar extensions without departing from the spirit of this application. Therefore, this application is not limited to the specific embodiments disclosed below.

[0069] Secondly, this application provides a detailed description in conjunction with schematic diagrams. When detailing the embodiments of this application, for ease of explanation, the cross-sectional views illustrating the device structure may be partially enlarged, not adhering to the usual scale. Furthermore, the schematic diagrams are merely examples and should not limit the scope of protection of this application. In addition, actual fabrication should include three-dimensional spatial dimensions of length, width, and depth.

[0070] Semiconductor memory devices can be volatile or non-volatile. While volatile semiconductor memory devices can perform read and write operations at high speeds, the data stored in them is lost when power is off. Conversely, non-volatile semiconductor memory devices retain their stored data regardless of whether power is applied. Flash memory is a typical example of a non-volatile semiconductor memory device, and it is widely used as a data storage medium.

[0071] To facilitate understanding of the decoding method provided in the embodiments of this application, the specific application scenarios of the embodiments of this application are first introduced. Non-volatile memory includes multiple storage cells arranged in an array for storing data. Each storage cell is divided into several blocks, and each block is further divided into several pages. Operations such as reading, writing, verifying, and clearing of the non-volatile memory can all be performed on a page-by-page basis.

[0072] Non-volatile memory includes a cell array, control logic, a page buffer (PB), a word line voltage generator, and a word line decoder. Each column of cells in the cell array is connected to the page buffer via a bit line (BL), and the gate of each row of cells is connected to the word line decoder via a word line (WL). The control logic controls the word line voltage generator and the page buffer. During a read operation, the control logic controls the word line voltage generator to apply a read voltage to the selected word line. After applying a read pass voltage to the unselected word lines, the control logic controls the page buffer to sense the data stored in the corresponding bit line cell according to different read operation methods, thereby reading the data stored in the non-volatile memory.

[0073] Non-volatile memory is mainly divided into several types, including SLC (Single-Level Cell), MLC (Mini-Level Cell), TLC (Trinary-Level Cell), and QLC (Quad-Level Cell). SLC stands for 1 bit / cell, where each memory cell stores 1 bit of data and has only two storage states: "0" and "1". MLC stands for 2 bits / cell, where each memory cell stores 2 bits of data and has four storage states: "00", "01", "10", and "11". TLC stands for 3 bits / cell, where each memory cell stores 3 bits of data and has eight storage states: "000", "001", "010", "011", "100", "101", "110", and "111". It can be understood that non-volatile memory cells can also store more than 3 bits of data. QLC, or 4 bits / cell, means that each storage unit stores 4 bits of data and there are 16 storage states for each storage unit: "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", and "1111".

[0074] To determine the storage state of a memory cell and thus read its stored data, for SLC-type non-volatile memory, a read operation is performed on the selected word line, applying a read voltage to the word line and sensing the data to retrieve the data stored in the corresponding memory cell. However, for MLC and TLC non-volatile memory, which store multiple bits of data per cell, since each memory cell has more than two storage states, multiple consecutive read operations are required on the same memory cell. Multiple read voltages of different magnitudes are applied to the word line and sensing the stored data are then necessary to determine the actual storage state of the memory cell and read the data stored in the non-volatile memory.

[0075] With the increasing demand for high-capacity storage devices, multi-level cell (MLC) memory devices or multi-bit memory devices that store multiple bits per cell are being widely used. In multi-level cell memory devices, different threshold voltages can be obtained by injecting different numbers of electrons into the floating gate or charge trapping layer, thereby representing different logic states. Taking multi-level cell (MLC) NAND Flash as an example, when reading data, three different read voltages are applied to the gate to distinguish four logic states.

[0076] However, as the number of logical states increases, the probability of decoding failure after reading data also gradually increases.

[0077] refer to Figure 1 The diagram shows a data storage schematic. The horizontal axis represents the threshold voltage, and the vertical axis represents the number of storage cells. Taking a TLC flash memory device as an example, the diagram includes eight threshold voltage distribution states: E, P1, P2, ..., P7. The solid lines in the diagram represent the threshold voltage distribution states formed by the threshold voltage of data written to the storage cells of the flash memory. Vread1, Vread2, ..., Vread7 correspond to the data read voltages between different distribution states.

[0078] TLC flash memory devices include at least lower pages, middle pages, and upper pages. When performing data read operations on a page-by-page basis, sequential data read operations can be performed, meaning data is read in the order of lower, middle, and upper pages, or random data read operations can be performed, meaning data is read randomly from the lower, middle, and upper pages. Lower pages can be sensed twice to obtain data D1 and D2; middle pages can be sensed three times to obtain data D3, D4, and D5; and upper pages can be sensed twice to obtain data D6 and D7.

[0079] Each page of data in a flash memory device includes multiple codewords. For example, a page may contain 18 codewords. When decoding a flash memory device, the 18 codewords read from a certain page need to be decoded. If all the codewords are decoded correctly, the decoding is successful; otherwise, the decoding fails.

[0080] TLC flash memory devices have a high probability of decoding failure after data reading due to the presence of numerous distributed states. Therefore, various auxiliary decoding operations have been developed to enhance decoding performance. The most commonly used auxiliary decoding operation is the log likelihood ratio (LLR) correction algorithm. This is because the accuracy of the LLR value affects the probability of successful decoding during data decoding; therefore, adjusting the LLR value can increase the probability of successful decoding.

[0081] Currently, several additional read operations can be performed to adjust the LLR value when decoding codewords that failed to decode. Then, the data decoding operation can be performed again using the new LLR value to reduce the probability of decoding failure and obtain better decoding performance.

[0082] However, calculating a new LLR value using several additional read operations takes a long time and reduces the performance of the flash memory device.

[0083] Based on this, embodiments of this application provide a memory decoding method and apparatus. The method involves reading data from multiple memory cells in the memory in page units, obtaining first data from a target page, and correcting the first data read from the target page using historical log-likelihood ratio (LLR) values ​​to obtain corrected second data, which includes the correctly decoded portion. Based on the first and second data, a transition probability is determined for the second data to become the first data. Using this transition probability, a target LLR value for the target page is calculated. The second data of the target page is then decoded based on the target LLR value. In other words, this application utilizes the corrected second data (including the correctly decoded portion) and the first data read from the target page, obtained using historical LLR values, to determine the transition probability for the second data (including the correctly decoded portion) to become the first data. A new target LLR value is then calculated using this transition probability. This method of calculating the target LLR value has high computational speed and low computational overhead, eliminates the need for multiple data reads, reduces the time required for re-decoding after decoding failure, and the updated target LLR value can assist in decoding the second data, thereby increasing the probability of successful decoding, improving decoding performance, and enhancing the performance of the flash memory device.

[0084] To better understand the technical solution and effects of this application, the specific embodiments will be described in detail below with reference to the accompanying drawings.

[0085] It should be noted that the decoding method and apparatus for memory provided in this application are not only applicable to NAND flash memory, but also to other non-volatile memories such as magnetoresistive random access memory (MRAM), phase-change random access memory (PCRAM), phase-change random access memory and a switch (PCMS), resistive memory, ferroelectric RAM (FRAM), spin torque transfer (STT), thermally assisted switching memory (TAS), millipede memory, floating junction gate RAM (FJG RAM), and battery backup RAM. Each memory cell in this memory can store 2 bits or more of data.

[0086] refer to Figure 2 The diagram shown is a flowchart of a memory decoding method provided in an embodiment of this application. The method includes the following steps:

[0087] S101, performs data reading operations on multiple storage units in the memory in units of pages, and obtains the first data of the target page.

[0088] In memory, especially in three-dimensional memory, multiple layers of memory cells can be included, stacked vertically. Each layer can include multiple memory cells, thus forming a three-dimensional structure. This allows for a larger storage capacity and improved storage efficiency within a limited device area. Typically, in a block, the gate of each layer's memory cell is connected to a word line decoder via a word line, forming a page. In the embodiments of this application, the three-dimensional memory can be one of MLC, TLC, or QLC, and its memory cells have multiple threshold voltage distribution states.

[0089] A memory cell typically has multiple threshold voltage distribution states, each with a different threshold voltage and a different read voltage. Taking a TLC flash memory device as an example, it includes eight threshold voltage distribution states: E, P1, P2, ..., P7. Vread1(V1), Vread2(V2), ..., Vread7(V7) correspond to the data read voltages between different distribution states.

[0090] In the embodiments of this application, data reading operations can be performed on multiple storage units in the memory in units of pages. Specifically, the multiple pages in the memory include lower pages, middle pages, and upper pages, wherein the multiple pages include a target page, that is, the target page can be any one of the lower pages, middle pages, or upper pages.

[0091] When performing data reading operations on a page-by-page basis, sequential data reading operations can be performed, that is, data is read in the order of low-level pages, middle-level pages, and high-level pages, or random data reading operations can be performed, that is, data is read randomly from low-level pages, middle-level pages, and high-level pages.

[0092] After performing data reading operations on each page, the sensing data of each page can be obtained, including the first data of the target page.

[0093] Specifically, if the target page is a lower page, the lower page can be sensed twice to obtain the first data, which includes D1 and D2. If the target page is a middle page, the middle page can be sensed three times to obtain the first data, which includes D3, D4 and D5. If the target page is an upper page, the upper page can be sensed twice to obtain the first data, which includes D6 and D7.

[0094] S102, using the historical log-likelihood ratio (LLR) value, correct the first data read from the target page to obtain the corrected second data.

[0095] In the embodiments of this application, after reading data from multiple pages using data reading operations, the first data read from the target page can be decoded. During decoding, the first data is automatically corrected using historical LLR values ​​to obtain the second data after decoding correction.

[0096] In practical applications, the first data is the data read using a read operation, and the second data can be the data after the first data has been corrected using a traditional decoding correction algorithm. The second data can be data that is fully decoded correctly or data that is partially decoded correctly.

[0097] Historical LLR values ​​can be pre-set empirical values ​​or LLR values ​​calculated based on a Gaussian model.

[0098] In the embodiments of this application, the first data may include multiple codewords, and the first codeword may be any one of the multiple codewords in the first data. The second data may also include multiple codewords, and the multiple codewords in the second data include a second codeword. The second codeword is the correct codeword after the first codeword is corrected. That is, the first codeword is corrected to the correct second codeword by using historical LLR values ​​to assist in decoding. The second codeword is the codeword that was successfully decoded.

[0099] S103, Based on the first data and the second data, determine the transition probability of the second data being transferred to the first data.

[0100] In the embodiments of this application, the first data is the data obtained by reading data from the target page, and the first data is the data actually read. The second data is the corrected data obtained by decoding the first data, that is, the second data is the data including the correct codewords obtained after decoding. In this way, based on the first data and the second data after correcting the first data, the transition probability of the second data turning into the first data can be obtained, that is, the transition probability of the corrected data turning into the data actually read can be obtained.

[0101] Specifically, since the first data includes a first codeword and the second data includes a second codeword, and the second codeword is the correctly decoded codeword, the transition probability of the correctly decoded second codeword transitioning to the actually read first codeword can be obtained based on the first and second codewords. Calculating the transition probability using the correctly decoded second codeword and the actually read first codeword can improve the accuracy of the calculated transition probability.

[0102] In practical applications, the first codeword and the second codeword contain 0 and 1 respectively. The number of 0 and 1 in the first codeword and the second codeword can be determined respectively. Then, the first transition probability of 0 in the second codeword being transformed into 1 in the first codeword and the second transition probability of 1 in the second codeword being transformed into 0 in the first codeword can be calculated respectively. In other words, the first transition probability of 0 in the second codeword being misread as 1 and the second transition probability of 1 in the second codeword being misread as 0 can be calculated.

[0103] As an example, the first transition probability can be represented using RBER01, and the second transition probability can be represented using RBER10.

[0104] S104. Using the transition probability, the target LLR value of the target page is calculated.

[0105] In the embodiments of this application, after calculating the transition probability of the second data being converted into the first data, the target LLR value of the target page can be calculated using the transition probability, so that the target LLR value can be used to assist in subsequent decoding.

[0106] Specifically, the transition probabilities include the first transition probability of a 0 in the second codeword transitioning to a 1 in the first codeword and the second transition probability of a 1 in the second codeword transitioning to a 0 in the first codeword. The first target LLR value corresponding to a 1 in the target page and the second target LLR value corresponding to a 0 in the target page can be calculated separately. In other words, the first target LLR value and the second target LLR value for decoding the auxiliary second data can be calculated using the first and second transition probabilities in the target page, respectively.

[0107] In practical applications, multiple pages include low-level pages, middle-level pages, and high-level pages. The transition probabilities and target LLR values ​​of different pages may differ, and the methods for calculating the target LLR using the transition probabilities may also differ. The following is a detailed introduction:

[0108] If the target page is a low-level page or a high-level page, then the first target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability, and the second target LLR value is equal to the logarithm of the ratio of the difference between 1 and the first transition probability to the second transition probability.

[0109] As an example, the first target LLR value LLR.LP(1) and the second target LLR value LLR.LP(0) of the lower-level page can be calculated using the following formula:

[0110] LLR.LP(1)=log2(RBER01 / (1-RBER10))

[0111] LLR.LP(0)=log2((1-RBER01) / RBER10)

[0112] As an example, the first target LLR value LLR.UP(1) and the second target LLR value LLR.UP(0) of the high-level page can be calculated using the following formula:

[0113] LLR.UP(1)=log2(RBER01 / (1-RBER10))

[0114] LLR.UP(0)=log2((1-RBER01) / RBER10)

[0115] If the target page is a mid-level page, then the first target LLR value is equal to the logarithm of the ratio of the difference between 1 and the first transition probability and the second transition probability, and the second target LLR value is equal to the logarithm of the ratio of the first transition probability and the difference between 1 and the second transition probability.

[0116] As an example, the first target LLR value LLR.MP(1) and the second target LLR value LLR.MP(0) of the middle-level page can be calculated using the following formula:

[0117] LLR.MP(1)=log2((1-RBER01) / RBER10)

[0118] LLR.MP(0)=log2(RBER01 / (1-RBER10))

[0119] In other words, the transition probability can be calculated using the first and second data of each page, and the target LLR value of each page can be obtained using the transition probability.

[0120] S105, decode the second data of the target page according to the target LLR value.

[0121] In the embodiments of this application, after the target LLR value is calculated by the transition probability, the target LLR value can be used to decode the second data of the target page again, that is, the adjusted target LLR value is used to continue to assist in the decoding of the second data.

[0122] In practical applications, if the second data has fewer erroneous codewords and more correct codewords, the accuracy of the adjusted target LLR will be higher, and the probability of successful decoding of the second data will be higher.

[0123] In the embodiments of this application, if the second data has many erroneous codewords and few correct codewords, and decoding the second data of the target page based on the target LLR value still fails, then the third data, corrected using the target LLR value, is obtained. The third data includes erroneous codewords and correct codewords. At this point, the transition probability of the third data becoming the first data can be obtained based on the first data and the third data. Using the transition probability of the third data becoming the first data, the updated LLR value of the target page is calculated. The third data of the target page is then decoded based on the updated LLR value. In other words, if the second data fails to decode successfully, the decoding method provided in the embodiments of this application is used to determine the transition probability based on the corrected third data and the actually read first data. Then, the updated LLR value is recalculated using the transition probability so that the third data can be decoded using the updated LLR value.

[0124] In other words, if the target page fails to be decoded, the transition probability can be continuously calculated based on the corrected data and the actual data read, and then the updated LLR value can be calculated. With each adjustment of the LLR value, the number of correct codewords included in each page increases, and the accuracy of the calculated transition probability and LLR value also increases, and the probability of successful decoding also increases.

[0125] If decoding of the first data fails, the second data obtained from the decoding process can be checked to see if there is a correctly decoded codeword. If a correctly decoded codeword exists, the target LLR value can be obtained by using the correctly decoded codeword in the second data and the codeword actually read from the first data. The second data can then be decoded again using the adjusted target LLR value until decoding is successful.

[0126] The decoding method provided in this application, which calculates the transition probability using first and second data and then uses the transition probability to calculate the target LLR value, has no additional storage overhead and lower computational overhead compared to calculating the target LLR value using a Gaussian model. This significantly improves the speed of calculating the target LLR value, reduces the time spent re-decoding after decoding failure, and eliminates the need for multiple data reads to adjust the target LLR, further shortening the decoding success time. Furthermore, compared to LLR values ​​calculated using a Gaussian model or empirical values ​​obtained from historical data, the updated target LLR value in this application has higher accuracy, increasing the probability of successful decoding of the second data, improving decoding performance, and enhancing the performance of the flash memory device.

[0127] This application provides a memory decoding method and apparatus. It performs data reading operations on multiple memory cells in the memory in units of pages, reading first data of a target page. Using historical log-likelihood ratio (LLR) values, the first data read from the target page is corrected to obtain corrected second data, which includes the correctly decoded portion. Based on the first and second data, a transition probability is determined for the second data to become the first data. Using the transition probability, a target LLR value for the target page is calculated. The second data of the target page is decoded based on the target LLR value. In other words, this application can use the corrected second data (including the correctly decoded portion) and the first data read from the target page, corrected using historical LLR values, to obtain the transition probability for the second data (including the correctly decoded portion) to become the first data. A new target LLR value is then calculated using the transition probability. This method of calculating the target LLR value has high computational speed and low computational overhead, eliminates the need for multiple data reads, reduces the time spent re-decoding after decoding failure, and the updated target LLR value can assist in decoding the second data, increasing the probability of successful decoding, improving decoding performance, and enhancing the performance of the flash memory device.

[0128] Based on the memory decoding method provided in the above embodiments, this application also provides a memory decoding apparatus, referencing... Figure 3 The diagram shown is a structural schematic of a memory decoding device provided in an embodiment of this application. The memory decoding device 300 provided in this embodiment includes:

[0129] The reading unit 310 is used to perform data reading operations on multiple storage units in the memory in units of pages, and to read the first data of the target page.

[0130] The correction unit 320 is used to correct the first data read from the target page using the historical log-likelihood ratio (LLR) value to obtain the corrected second data.

[0131] The first determining unit 330 is used to determine the transition probability of the second data being converted into the first data based on the first data and the second data.

[0132] The first calculation unit 340 is used to calculate the target LLR value of the target page using the transition probability;

[0133] The first decoding unit 350 is used to decode the second data of the target page according to the target LLR value.

[0134] Optionally, the first data includes a first codeword, the second data includes a second codeword, and the second codeword is the correct codeword after the first codeword is corrected;

[0135] The first determining unit is specifically used for:

[0136] Based on the first codeword and the second codeword, determine the transition probability of the second codeword being transformed into the first codeword.

[0137] Optionally, the transition probability includes a first transition probability and a second transition probability, and the target LLR value includes a first target LLR value and a second target LLR value;

[0138] The first determining unit is specifically used for:

[0139] Determine the number of 0s and 1s in the first codeword and the second codeword, respectively;

[0140] Determine the first transition probability of 0 in the second codeword becoming 1 in the first codeword and the second transition probability of 1 in the second codeword becoming 0 in the first codeword;

[0141] The first computing unit is specifically used for:

[0142] Using the first transition probability and the second transition probability, the first target LLR value corresponding to 1 and the second target LLR value corresponding to 0 in the target page are calculated respectively.

[0143] Optionally, the plurality of pages includes low-level pages, middle-level pages, and high-level pages;

[0144] If the target page is both the lower-level page and the higher-level page, then the first calculation unit is specifically used for:

[0145] The first target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability;

[0146] The second target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability;

[0147] If the target page is the middle-level page, then the first calculation unit is specifically used for:

[0148] The first target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability;

[0149] The second target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability.

[0150] Optionally, after decoding the second data of the target page according to the target LLR value, third data is obtained, the third data including error codewords;

[0151] The device further includes:

[0152] The second determining unit is used to determine the transition probability of the third data being converted into the first data based on the first data and the third data.

[0153] The second calculation unit is used to calculate the updated LLR value of the target page using the transition probability of the third data being transferred to the first data.

[0154] The second decoding unit is used to continue decoding the third data of the target page based on the updated LLR value.

[0155] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the apparatus embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions of the method embodiments.

[0156] The above description is merely a preferred embodiment of this application. Although this application has disclosed preferred embodiments above, it is not intended to limit this application. Any person skilled in the art can make many possible variations and modifications to the technical solutions of this application using the methods and techniques disclosed above, or modify them into equivalent embodiments with equivalent changes, without departing from the scope of the technical solutions of this application. Therefore, any simple modifications, equivalent changes, and modifications made to the above embodiments based on the technical essence of this application without departing from the content of the technical solutions of this application shall still fall within the protection scope of the technical solutions of this application.

Claims

1. A decoding method of a memory, characterized by, include: The system reads data from multiple memory cells in the memory in units of pages, and obtains the first data of the target page. The first data includes the first codeword; The first data read from the target page is corrected using the historical log-likelihood ratio (LLR) value to obtain the corrected second data; the second data includes a second codeword, which is the corrected codeword of the first codeword. Based on the first codeword and the second codeword, determine the transition probability of the second codeword being converted into the first codeword; the transition probability includes the first transition probability and the second transition probability; The step of determining the transition probability of the second codeword to the first codeword based on the first codeword and the second codeword includes: determining the number of 0s and 1s in the first codeword and the second codeword, respectively; determining the first transition probability of 0 in the second codeword to 1 in the first codeword and the second transition probability of 1 in the second codeword to 0 in the first codeword; Using the transition probabilities, the target LLR value of the target page is calculated; the target LLR value includes a first target LLR value and a second target LLR value; the calculation of the target LLR value using the transition probabilities includes: using the first transition probabilities and the second transition probabilities to calculate the first target LLR value corresponding to 1 and the second target LLR value corresponding to 0 in the target page, respectively; The second data of the target page is decoded based on the target LLR value.

2. The method according to claim 1, characterized in that, The multiple pages include low-level pages, middle-level pages, and high-level pages; If the target page is the lower-level page and the higher-level page, then calculating the first target LLR value corresponding to 1 and the second target LLR value corresponding to 0 in the target page using the first transition probability and the second transition probability respectively includes: The first target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability; The second target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability; If the target page is the middle-layer page, then calculating the first target LLR value corresponding to 1 and the second target LLR value corresponding to 0 in the target page using the first transition probability and the second transition probability respectively includes: The first target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability; The second target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability.

3. The method according to any one of claims 1-2, characterized in that, After decoding the second data of the target page according to the target LLR value, the third data is obtained, which includes error codewords; The method further includes: Based on the first data and the third data, determine the transition probability of the third data being converted into the first data; The update LLR value of the target page is calculated using the transition probability of the third data being transferred to the first data. The third data of the target page is further decoded based on the updated LLR value.

4. A decoding device for a memory, characterized in that, include: The read unit is used to perform data read operations on multiple storage units in the memory in units of pages, and to read the first data of the target page. The first data includes the first codeword; The correction unit is used to correct the first data read from the target page using the historical log-likelihood ratio (LLR) value to obtain the corrected second data; the second data includes a second codeword, which is the corrected codeword of the first codeword. The first determining unit is configured to determine, based on the first codeword and the second codeword, the transition probability of the second codeword becoming the first codeword; the transition probability includes a first transition probability and a second transition probability; the first determining unit is specifically configured to: determine the number of 0s and 1s in the first codeword and the second codeword respectively; determine the first transition probability of 0 in the second codeword becoming 1 in the first codeword and the second transition probability of 1 in the second codeword becoming 0 in the first codeword; The first calculation unit is used to calculate the target LLR value of the target page using the transition probability; the target LLR value includes a first target LLR value and a second target LLR value. The first calculation unit is specifically used to: calculate the first target LLR value corresponding to 1 and the second target LLR value corresponding to 0 in the target page using the first transition probability and the second transition probability, respectively; The first decoding unit is used to decode the second data of the target page according to the target LLR value.

5. The apparatus according to claim 4, characterized in that, The multiple pages include low-level pages, middle-level pages, and high-level pages; If the target page is both the lower-level page and the higher-level page, then the first calculation unit is specifically used for: The first target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability; The second target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability; If the target page is the middle-level page, then the first calculation unit is specifically used for: The first target LLR value is equal to the logarithm of the difference between 1 and the first transition probability and the ratio of the second transition probability; The second target LLR value is equal to the logarithm of the ratio of the first transition probability to the difference between 1 and the second transition probability.

6. The apparatus according to any one of claims 4-5, characterized in that, After decoding the second data of the target page according to the target LLR value, the third data is obtained, which includes error codewords; The device further includes: The second determining unit is used to determine the transition probability of the third data being converted into the first data based on the first data and the third data. The second calculation unit is used to calculate the updated LLR value of the target page using the transition probability of the third data being transferred to the first data. The second decoding unit is used to continue decoding the third data of the target page based on the updated LLR value.