Codeword decoding method and device, storage medium and electronic device
By moving the error bits in the LDPC check matrix to the target physical page position, the problem of high decoding delay when the LDPC codeword spans multiple pages is solved, and more efficient soft information reading and decoding is achieved process.
Patent Information
- Application Number
- CN202411173755.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-26
- Publication Date
- 2024-12-20
- Estimated Expiration
- 2044-08-26
AI Technical Summary
In NAND FLASH, when LDPC codewords span 2 or more physical pages, multiple soft information readings are required to be performed on all physical pages, resulting in excessive decoding delay, and the prior art has failed to effectively solve this problem.
By moving the position with a high frequency of error bit occurrence in the check matrix of the low-density parity code LDPC to the position corresponding to the target physical page, the target verification matrix is obtained, so that only the softness of the target physical page is passed when decoding is required. Decode the information.
It reduces the decoding delay of LDPC codewords, improves the reading performance of NAND FLASH, and reduces the delay of soft information acquisition.
Smart Images

Figure CN118694380B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of storage technology, and more specifically, to a codeword decoding method and device, a storage medium, and an electronic device. Background Art
[0002] With the continuous development of non-volatile memory cell flash memory (NAND Flash Memory, referred to as NAND FLASH) technology, the storage medium capacity and performance continue to improve, the number of 3D FLASH stacking layers continues to increase, and the storage cell density is also constantly improving. These technological developments have a significant impact on the reliability and durability of storage particles. The bit error rate in the NAND read and write process has increased significantly. In order to ensure the reliability of NAND read and write data, it is necessary to introduce error correction technology in the data read and write channel.
[0003] In the field of flash memory, the industry generally uses low-density parity check code (LDPC) as the error correction technology for flash memory master chips. LDPC codewords usually use a decoding mode that combines hard decoding and soft decoding. As the bit error rate increases, the LDPC hard decoding performance may be difficult to meet the error correction requirements. At this time, the LDPC soft decoding mode is started. In the soft decoding mode, all physical pages (pages) covered by the LDPC codeword need to be read multiple times for soft information, and the soft information reading has a greater impact on the LDPC decoding delay. When the soft information is read for LDPC codewords spanning 2 or more pages, the data reading delay will undoubtedly increase further.
[0004] In the prior art, when an LDPC codeword spans two or more physical pages, it is necessary to perform multiple soft information readings on all physical pages where the LDPC codeword is located, resulting in a high decoding delay problem, which has not yet been effectively solved. Summary of the invention
[0005] The embodiments of the present application provide a codeword decoding method and device, a storage medium, and an electronic device, so as to at least solve the problem in the prior art that when an LDPC codeword spans two or more physical pages, it is necessary to perform multiple soft information readings on all physical pages where the LDPC codeword is located, resulting in high decoding delay.
[0006] According to one embodiment of the present application, a method for decoding a codeword is provided, comprising: moving data at a first position in a check matrix of a low-density parity-check code LDPC to a second position to obtain a target check matrix, wherein the first position is a position in the check matrix where an error bit occurrence frequency is higher than a preset frequency, and the second position corresponds to a target physical page in a storage unit, the storage unit comprising: a plurality of physical pages for storing codewords encoded by the target check matrix, the plurality of physical pages including a target physical page; encoding the data to be encoded by the target check matrix to obtain the codeword; and when the codeword needs to be decoded, decoding the codeword by using soft information of the target physical page.
[0007] In an exemplary embodiment, data at a first position in a check matrix of a low-density parity-check code LDPC is moved to a second position to obtain a target check matrix, including: pre-analyzing the check matrix to determine the first position in the check matrix; determining a second position pre-selected by a target object in the check matrix; and moving the data at the first position in the check matrix to the second position to obtain a target check matrix.
[0008] In an exemplary embodiment, the check matrix is pre-analyzed to determine the first position in the check matrix, including: analyzing the column weight of the check matrix to determine a third position in the check matrix where the column weight is lower than a first threshold; and determining the third position as the first position.
[0009] In an exemplary embodiment, pre-analyzing the check matrix to determine the first position in the check matrix includes: analyzing the trap sets of the check matrix to determine a fourth position in the check matrix where the trap set density is higher than a second threshold; and determining the fourth position as the first position.
[0010] In an exemplary embodiment, determining a second position of a target object pre-selected in the check matrix includes: determining a mapping relationship between the check matrix and each physical page of the multiple physical pages; obtaining a target mapping relationship selected by the target object from the multiple mapping relationships; and determining a fifth position indicated by the target mapping relationship in the check matrix as the second position.
[0011] In an exemplary embodiment, the data at the first position in the check matrix is moved to the second position to obtain a target check matrix, including: when the first position and the second position correspond to columns of the check matrix, performing a column transformation on the data at the first position to move the data at the first position to a sixth position, wherein the sixth position is a position in the second position that has not been subjected to a column transformation.
[0012] In an exemplary embodiment, the codeword is decoded using the soft information of the target physical page, including: hard decoding the codeword to obtain hard decoding information corresponding to the multiple physical pages, and hard decoding results; when the hard decoding result indicates a hard decoding failure, determining the target physical page corresponding to the second position, and obtaining the soft information of the target physical page; decoding the codeword using the hard decoding information and the soft information corresponding to other physical pages, wherein the other physical pages are physical pages other than the target physical page among the multiple physical pages.
[0013] In an exemplary embodiment, obtaining the soft information of the target physical page includes: adjusting a control electrode reference voltage of the storage unit to read the bit data of the target physical page multiple times; calculating a first probability that the target physical page is a first value through the multiple bit data, and calculating a second probability that the target physical page is a second value through the multiple bit data; and determining the first probability and the second probability as the soft information.
[0014] In an exemplary embodiment, decoding the codeword using the hard decoding information and the soft information respectively corresponding to other physical pages includes: determining the hard decoding information and the soft information respectively corresponding to the other physical pages as initial values for soft decoding of the codeword; and soft decoding the codeword using the initial values to decode the codeword.
[0015] In an exemplary embodiment, after soft decoding the codeword using the initial value, the method further includes: determining a soft decoding result of soft decoding the codeword; when the soft decoding result indicates that the soft decoding is successful, saving a decoding result of decoding the codeword; when the soft decoding result indicates that the soft decoding fails, obtaining multiple soft information corresponding to the multiple physical pages, and soft decoding the codeword again using the multiple soft information.
[0016] In an exemplary embodiment, obtaining multiple soft information corresponding to the multiple physical pages includes: adjusting the control electrode reference voltage of the storage unit for the multiple physical pages respectively to read the bit data of each physical page in the multiple physical pages multiple times; determining the soft information of each physical page through the bit data of each physical page read multiple times to obtain the multiple soft information.
[0017] In an exemplary embodiment, after the codeword is soft-decoded again using the multiple soft information, the method further includes: in case the soft decoding fails again, obtaining soft decoding process information, wherein the soft decoding process information includes at least one of the following: the target check matrix, the codeword, and the multiple soft information; generating an alarm event using the soft decoding process information, and sending the alarm event to a target object.
[0018] In an exemplary embodiment, after determining a soft decoding result of soft decoding the codeword, the method further includes: when the soft decoding result indicates a soft decoding failure, determining a first index of a physical page corresponding to the soft information, and determining a second index of a physical page corresponding to the second position; when the first index is inconsistent with the second index, updating the soft information by target soft information of the physical page indicated by the second index; and decoding the codeword by the updated soft information and the hard decoding information corresponding to other physical pages respectively.
[0019] According to another embodiment of the present application, a decoding device for a codeword is provided, comprising: a moving module, used to move data at a first position in a check matrix of a low-density parity-check code LDPC to a second position to obtain a target check matrix, wherein the first position is a position in the check matrix where the frequency of occurrence of error bits is higher than a preset frequency, and the second position corresponds to a target physical page in a storage unit, and the storage unit comprises: a plurality of physical pages for storing codewords encoded by the target check matrix, the plurality of physical pages including a target physical page; an encoding module, used to encode the encoded data by the target check matrix to obtain the codeword; and a decoding module, used to decode the codeword by soft information of the target physical page when the codeword needs to be decoded.
[0020] According to another embodiment of the present application, a computer-readable storage medium is provided, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above method embodiments when run.
[0021] According to another embodiment of the present application, an electronic device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.
[0022] According to another embodiment of the present application, a computer program product is provided, including a computer program, and when the computer program is executed by a processor, the steps in any of the above method embodiments are implemented.
[0023] Through the present application, the data at the first position in the check matrix of the low-density parity check code LDPC is moved to the second position to obtain a target check matrix, wherein the first position is a position where the frequency of occurrence of error bits in the check matrix is higher than a preset frequency, and the second position corresponds to a target physical page in a storage unit, and the storage unit includes: a plurality of physical pages for storing codewords obtained by encoding the target check matrix, the plurality of physical pages including a target physical page; encoding the coded data by the target check matrix to obtain the codeword; when the codeword needs to be decoded, the codeword is decoded by the soft information of the target physical page. That is to say, the data at the first position where the frequency of occurrence of error bits in the check matrix is higher is moved to the second position corresponding to the target physical page to obtain the target check matrix, so that when the codeword obtained by encoding the target check matrix needs to be decoded, the codeword can be decoded only by the soft information of the target physical page. Therefore, the problem in the prior art that, when an LDPC codeword spans two or more physical pages, it is necessary to read the soft information of all physical pages where the LDPC codeword is located multiple times, resulting in high decoding delay, can be solved. The decoding delay of LDPC codewords is reduced. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Figure 1 It is a hardware structure block diagram of a computer terminal of a codeword decoding method according to an embodiment of the present application;
[0025] Figure 2 is a flowchart of a codeword decoding method according to an embodiment of the present application;
[0026] Figure 3 is a schematic diagram of the correspondence between code words and physical pages of storage units according to a code word decoding method according to an embodiment of the present application;
[0027] Figure 4 is another flow chart of a codeword decoding method according to an embodiment of the present application;
[0028] Figure 5 is another flow chart of a codeword decoding method according to an embodiment of the present application;
[0029] Figure 6 It is a structural block diagram of a codeword decoding device according to an embodiment of the present application. DETAILED DESCRIPTION
[0030] The embodiments of the present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0031] It should be noted that the terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
[0032] The method embodiments provided in the embodiments of the present application can be executed in a mobile terminal, a computer terminal or a similar computing device. Taking running on a computer terminal as an example, Figure 1 1 is a hardware structure block diagram of a computer terminal of a codeword decoding method according to an embodiment of the present application. Figure 1 As shown, the computer terminal may include one or more ( Figure 1 Only one is shown in the figure) a processor 102 (the processor 102 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a memory 104 for storing data, wherein the above-mentioned computer terminal may also include a transmission device 106 and an input and output device 108 for communication functions. It can be understood by those skilled in the art that Figure 1 The structure shown is only for illustration and does not limit the structure of the above-mentioned computer terminal. Figure 1 More or fewer components as shown, or with Figure 1 Different configurations shown.
[0033] The memory 104 can be used to store computer programs, for example, software programs and modules of application software, such as the computer program corresponding to the method for allocating load resources in the embodiment of the present application. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, the above method is implemented. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include a memory remotely arranged relative to the processor 102, and these remote memories may be connected to the computer terminal via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0034] The transmission device 106 is used to receive or send data via a network. The specific example of the above network may include a wireless network provided by a communication provider of a computer terminal. In one example, the transmission device 106 includes a network adapter (Network Interface Controller, referred to as NIC), which can be connected to other network devices through a base station so as to communicate with the Internet. In one example, the transmission device 106 can be a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.
[0035] Figure 2 is a flowchart of a codeword decoding method according to an embodiment of the present application, such as Figure 2 As shown, the process includes the following steps:
[0036] Step S202, moving data at a first position in a check matrix of a low-density parity check code LDPC to a second position to obtain a target check matrix, wherein the first position is a position in the check matrix where an error bit occurrence frequency is higher than a preset frequency, and the second position corresponds to a target physical page in a storage unit, and the storage unit includes: a plurality of physical pages for storing codewords obtained by encoding the target check matrix, and the plurality of physical pages include a target physical page;
[0037] Step S204, encoding the data to be encoded by using the target check matrix to obtain the codeword;
[0038] Step S206: When the codeword needs to be decoded, the codeword is decoded using the soft information of the target physical page.
[0039] Through the above steps, the data at the first position in the check matrix of the low-density parity check code LDPC is moved to the second position to obtain the target check matrix, wherein the first position is the position where the frequency of occurrence of the error bit in the check matrix is higher than the preset frequency, and the second position corresponds to the target physical page in the storage unit, and the storage unit includes: multiple physical pages for storing the codewords obtained by encoding the target check matrix, and the multiple physical pages include the target physical page; the target check matrix is used to encode the data to be encoded to obtain the codeword; when the codeword needs to be decoded, the codeword is decoded by the soft information of the target physical page. That is to say, the data at the first position with a higher frequency of occurrence of the error bit in the check matrix is moved to the second position corresponding to the target physical page to obtain the target check matrix, so that when the codeword obtained by encoding the target check matrix needs to be decoded, the codeword can be decoded only by the soft information of the target physical page. Therefore, the problem in the prior art that when an LDPC codeword spans 2 or more physical pages, it is necessary to read the soft information of all physical pages where the LDPC codeword is located multiple times, resulting in high decoding delay, can be solved. The decoding delay of LDPC codewords is reduced.
[0040] There are multiple implementation methods for the above-mentioned step S202. In an optional embodiment, the data at a first position in the check matrix of the low-density parity-check code LDPC is moved to a second position to obtain a target check matrix, including: pre-analyzing the check matrix to determine the first position in the check matrix; determining a second position pre-selected by a target object in the check matrix; and moving the data at the first position in the check matrix to the second position to obtain the target check matrix.
[0041] It can be understood that, through pre-analysis, a first position in the check matrix where the frequency of occurrence of error bits is higher than a preset frequency is determined, and the data at the first position is uniformly and / or sequentially moved to a second position corresponding to a target physical page in a plurality of physical pages of the storage unit, thereby obtaining a target check matrix. Moving the data at the first position to the second position can be regarded as a preprocessing operation on the check matrix. It should be noted that the pre-analysis and preprocessing operations are performed in a decoding failure scenario.
[0042] In the embodiment of the present application, the data of the first position which is prone to error in the decoding failure scenario is concentrated to the second position by pre-analyzing and pre-processing the check matrix. In the process of soft decoding the codeword obtained by encoding the target check matrix, only the soft information of the second position is read, thereby reducing the delay required for obtaining the soft information, improving the soft decoding efficiency, and improving the reading performance of NAND FLASH.
[0043] Optionally, pre-analyzing the check matrix to determine the first position in the check matrix includes two real-time solutions:
[0044] In an exemplary embodiment, the check matrix is pre-analyzed to determine the first position in the check matrix, including: analyzing the column weight of the check matrix to determine a third position in the check matrix where the column weight is lower than a first threshold; and determining the third position as the first position.
[0045] In another exemplary embodiment, pre-analyzing the check matrix to determine the first position in the check matrix includes: analyzing the trap set of the check matrix to determine a fourth position in the check matrix where the trap set density is higher than a second threshold; and determining the fourth position as the first position.
[0046] It can be understood that the pre-analysis method provided in the embodiment of the present application includes: analyzing the column weight of the check matrix, finding the third position where the column weight is relatively low (i.e., lower than the first threshold), and then determining the third position as the first position; or analyzing the trap set of the check matrix, finding the fourth position where the trap set is relatively concentrated (i.e., the density is higher than the second threshold), and then determining the fourth position as the first position.
[0047] In an optional embodiment, after determining the third position where the column weight is relatively low and determining the fourth position where the trap set is relatively concentrated, the pre-analysis method further includes:
[0048] The seventh position in the check matrix is determined as the first position, wherein the third position and the fourth position both include the seventh position; that is, the seventh position is both a position with a relatively low column weight and a position where the trap set is relatively concentrated;
[0049] Determine the eighth position in the check matrix as the first position, wherein the eighth position includes: the third position and the fourth position; that is, the eighth position is the union of the third position and the fourth position;
[0050] Obtain a first analysis result of analyzing the column weight of the check matrix, and obtain a second analysis result of analyzing the trap set of the check matrix; assign a first weight to the first analysis result, and assign a second weight to the second analysis result; determine a first product of the first analysis result and the first weight, and a second product of the second analysis result and the second weight; determine the sum of the first product and the second product; determine the ninth position whose sum is higher than the third threshold as the first position; wherein the sum of the first weight and the second weight is equal to 1.
[0051] Therefore, the embodiments of the present application provide a variety of solutions for determining the first position, so that the first position can be located more accurately, so that the codeword decoding method provided by the present application can be applicable to a variety of decoding scenarios.
[0052] In an exemplary embodiment, determining a second position of a target object pre-selected in the check matrix includes: determining a mapping relationship between the check matrix and each physical page of the multiple physical pages; obtaining a target mapping relationship selected by the target object from the multiple mapping relationships; and determining a fifth position indicated by the target mapping relationship in the check matrix as the second position.
[0053] It can be understood that transforming the check matrix to obtain the target check matrix only involves exchanging column data, so the number of rows and columns of the check matrix and the target check matrix is the same. The number of multiple subcode blocks included in the codeword encoded by the check matrix or the target check matrix is the same as the number of multiple physical pages used to store the codeword in the storage unit, and the multiple subcode blocks correspond to the multiple physical pages one by one. There is a mapping relationship between the check matrix and each physical page in the multiple physical pages. Therefore, after the target object selects the target mapping relationship, the fifth position indicated by the target mapping relationship in the check matrix is the second position.
[0054] Taking the LDPC codeword (codeword) length as 16KB and the size of a physical page as 4KB as an example, the LDPC codeword is divided into 4 sub-code blocks according to the size of the page, and each sub-code block corresponds to a page one by one when stored, such as Figure 3 As shown, each physical page corresponds to 4KB consecutive columns in the check matrix.
[0055] Optionally, the data at the first position in the check matrix is moved to the second position to obtain a target check matrix, including: when the first position and the second position correspond to columns of the check matrix, performing a column transformation on the data at the first position to move the data at the first position to a sixth position, wherein the sixth position is a position in the second position that has not been subjected to a column transformation.
[0056] In an exemplary embodiment, the codeword is decoded using the soft information of the target physical page, including: hard decoding the codeword to obtain hard decoding information corresponding to the multiple physical pages, and hard decoding results; when the hard decoding result indicates a hard decoding failure, determining the target physical page corresponding to the second position, and obtaining the soft information of the target physical page; decoding the codeword using the hard decoding information and the soft information corresponding to other physical pages, wherein the other physical pages are physical pages other than the target physical page among the multiple physical pages.
[0057] The process of decoding the codeword obtained by encoding the target check matrix includes:
[0058] First, the codeword is hard-decoded. During hard decoding, multiple physical pages in the storage unit are read once to obtain hard decoding information, and hard decoding decoding iterations are performed based on the hard decoding information. The hard decoding results obtained include: hard decoding success or hard decoding failure.
[0059] Secondly, in the case of hard decoding failure, the soft decoding process is started. The soft decoding process in the embodiment of the present application includes: determining that the first position where the error bit is prone to appear is moved to the second position; determining the soft information of the target physical page corresponding to the second position; and executing the soft decoding process through the soft information of the target physical page and the hard decoding information corresponding to other physical pages.
[0060] Finally, the soft decoding is successful and the decoding result is obtained.
[0061] Furthermore, obtaining the soft information of the target physical page includes: adjusting the control electrode reference voltage of the storage unit to read the bit data of the target physical page multiple times; calculating a first probability that the target physical page is a first value through multiple bit data, and calculating a second probability that the target physical page is a second value through multiple bit data; and determining the first probability and the second probability as the soft information.
[0062] It should be noted that the hard decoding information is obtained by adjusting the reference voltage of the control electrode of the storage cell to a fixed voltage, reading multiple physical pages in the storage cell once, and obtaining the hard decoding information. The soft information of the target physical page or each physical page is obtained by adjusting the reference voltage of the control electrode of the storage cell multiple times around the fixed voltage, reading the target physical page or each physical page multiple times, and determining the soft information based on the bit data obtained from each reading.
[0063] Furthermore, the codeword is decoded using the hard decoding information and the soft information respectively corresponding to other physical pages, including: determining the hard decoding information and the soft information respectively corresponding to the other physical pages as initial values for soft decoding of the codeword; and soft decoding the codeword using the initial values to decode the codeword.
[0064] In an exemplary embodiment, after soft decoding the codeword using the initial value, the method further includes: determining a soft decoding result of soft decoding the codeword; when the soft decoding result indicates that the soft decoding is successful, saving a decoding result of decoding the codeword; when the soft decoding result indicates that the soft decoding fails, obtaining multiple soft information corresponding to the multiple physical pages, and soft decoding the codeword again using the multiple soft information.
[0065] If the codeword is soft-decoded using the soft information of the target physical page and the hard decoding information corresponding to other physical pages, and the obtained soft decoding result indicates that the soft decoding fails, the codeword is soft-decoded again using multiple soft information of multiple physical pages.
[0066] Therefore, in the case where the soft information decoding of the target physical page fails, the embodiment of the present application can continue to decode the codeword again through multiple soft information corresponding to multiple physical pages, thereby improving the success rate of decoding the codeword.
[0067] Furthermore, obtaining multiple soft information corresponding to the multiple physical pages includes: adjusting the control electrode reference voltage of the storage unit for the multiple physical pages respectively to read the bit data of each physical page in the multiple physical pages multiple times; determining the soft information of each physical page through the bit data of each physical page read multiple times to obtain the multiple soft information.
[0068] In an exemplary embodiment, after the codeword is soft-decoded again using the multiple soft information, the method further includes: in case the soft decoding fails again, obtaining soft decoding process information, wherein the soft decoding process information includes at least one of the following: the target check matrix, the codeword, and the multiple soft information; generating an alarm event using the soft decoding process information, and sending the alarm event to a target object.
[0069] It is understandable that, in the case of a second soft decoding failure, an alarm event is generated through the soft decoding process information to warn the target object. The alarm event carries the soft decoding process information. Optionally, the soft decoding process information may include all information used in the two previous soft decoding processes, including but not limited to the target check matrix, codeword, multiple soft information, soft information of the target physical page, hard decoding information of multiple physical pages, etc.
[0070] Therefore, the present application provides an alarm scheme, which can send the decoding process information to the target object in the event of multiple decoding failures, so that the target object can review the decoding process and more accurately determine the cause of the decoding failure.
[0071] In an exemplary embodiment, after determining a soft decoding result of soft decoding the codeword, the method further includes: when the soft decoding result indicates a soft decoding failure, determining a first index of a physical page corresponding to the soft information, and determining a second index of a physical page corresponding to the second position; when the first index is inconsistent with the second index, updating the soft information by target soft information of the physical page indicated by the second index; and decoding the codeword by the updated soft information and the hard decoding information corresponding to other physical pages respectively.
[0072] In one possible case, the soft decoding failure may be that the physical page corresponding to the second position is inconsistent with the physical page corresponding to the soft information. That is, the collected soft information is not the soft information of the target physical page corresponding to the second position, or the soft information of the target physical page is collected, but the second position does not actually correspond to the second physical page. Therefore, the embodiment of the present application can assign an index to the physical page, and when it is determined that the first index of the physical page corresponding to the soft information is inconsistent with the second index of the physical page corresponding to the second position, the soft information is updated by the target soft information of the physical page corresponding to the second index.
[0073] Therefore, in the case of soft decoding failure, the embodiment of the present application also provides a self-checking method to eliminate the situation of soft information acquisition errors during the decoding process, thereby improving the success rate of decoding. In addition, the simple self-checking takes a short time, which also reduces the decoding delay to a certain extent.
[0074] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes a number of instructions for a terminal device (which can be a mobile phone, computer, server, or network device, etc.) to execute the methods described in each embodiment of the present application.
[0075] In order to better understand the process of the above-mentioned codeword decoding method, the implementation process of the above-mentioned codeword decoding method is described below in combination with an optional embodiment, but it is not used to limit the technical solution of the embodiment of the present application.
[0076] As a forward error correction technology, LDPC has excellent error correction capability, and its error correction capability can approach the Shannon limit. The excellent error correction capability of LDPC makes it a widely used error correction code in the current SSD storage field. However, with the continuous increase in the number of 3DFLASH stacking layers and the increase in storage unit density, the increase in NAND read and write bit error rate, the error correction capability requirements for LDPC codewords are also increasing. In practical applications, LDPC codewords usually use a decoding mode that combines hard decoding and soft decoding. Hard decoding has a lower decoding delay and can provide good error correction capability in scenarios with relatively low bit error rates. However, as the bit error rate increases, the LDPC hard decoding performance may be difficult to meet the error correction requirements, and the LDPC soft decoding mode is started at this time. Compared with the hard decoding mode, soft decoding can provide higher error correction capability to ensure data reliability in high bit error rate scenarios. LDPC soft decoding reads the stored data of the storage unit multiple times by adjusting the reference voltage value applied to the NAND control electrode, and calculates the probability of the stored data being 0 or 1 through the data values obtained by multiple readings. The multiple reading delays of the storage unit are large. Therefore, while LDPC soft decoding provides higher error correction performance, it also introduces higher decoding delays, affecting the NAND data reading efficiency. At the same time, with the continuous improvement of the requirements for LDPC error correction performance, the industry has begun to move towards high code rate and large codewords. As the LDPC codeword increases, an LDPC codeword may span two or more physical pages. At this time, the soft decoding mode requires soft information reading for all pages covered by the LDPC codeword, and the soft information reading has a greater impact on the LDPC decoding delay. When soft information is read for multiple pages, the data reading delay is undoubtedly further increased.
[0077] That is to say, the LDPC soft decoding method of the related art needs to read the soft information of all bits of the LDPC codeword. When an LDPC codeword spans 2 or more pages, it is necessary to read the soft information of all pages where the LDPC is located. LDPC soft information acquisition is usually completed by adjusting the reference voltage of the NAND control electrode, that is, adjusting the reference voltage value applied to the NAND control electrode, and obtaining the data stored in the current storage cell by whether the storage cell is turned on. In the process of obtaining soft information, the control electrode reference voltage is usually adjusted multiple times to obtain the conduction status of the storage cell under different voltages, so as to realize multiple readings of NAND to obtain soft information, and use the soft information to perform LDPC iterative decoding, thereby realizing LDPC soft decoding.
[0078] When the acquisition of LDPC soft information requires multiple adjustments to the control electrode voltage of the storage unit, that is, the storage unit needs to be read multiple times, for NAND FLASH, it will cause a large NAND FLASH reading delay, and the corresponding delay for multiple readings will further increase. That is, during the soft decoding process, the delay required for soft information acquisition is already very large. For application scenarios with long LDPC codewords, when an LDPC codeword may span 2 or more pages, different pages need to be read multiple times. The soft information acquisition delay is large, which seriously affects the decoding efficiency and thus affects the NAND FLASH reading performance.
[0079] In order to solve the problem of high decoding delay caused by the need to adjust the control electrode voltage of different pages for multiple readings to obtain soft information when starting LDPC soft decoding, an optional embodiment of the present application proposes an on-demand reading method for LDPC soft information (equivalent to the decoding method for codewords in the above embodiment) for the scenario in the related art where the LDPC codeword spans two or more pages. By preprocessing and pre-analyzing the LDPC check matrix, the error-prone position is adjusted to within the range of a page (equivalent to the adjustment to the second position corresponding to the target physical page in the above embodiment). When the soft decoding mode is started, soft information is only obtained for the page where the error-prone position is located (equivalent to the target physical page), and after the soft information of the page is obtained, the LDPC soft decoding is started.
[0080] The method provided in the optional embodiment of the present application is aimed at application scenarios where the LDPC codeword is long and spans 2 or more pages. It only performs multiple reads on the page where the error-prone information is located, which can improve the efficiency of obtaining valid soft information (here, the soft information corresponding to the error-prone position is defined as valid soft information, and the soft information at other positions is defined as invalid soft information), reduce the delay consumed by obtaining invalid soft information, and thus improve the decoding efficiency of soft decoding and enhance the NAND FLASH read performance.
[0081] Specifically, the optional embodiment of the present application performs pre-analysis and pre-processing of the check matrix, and the process of encoding and decoding the check matrix after pre-analysis and pre-processing as follows: Figure 4 As shown, including:
[0082] Step S41: Obtain an LDPC check matrix (equivalent to the check matrix in the above embodiment).
[0083] Step S42: Pre-analyze the check matrix to obtain the position where the error bit is likely to appear in the decoding failure scenario (equivalent to the first position).
[0084] The preliminary analysis of the check matrix includes analyzing the column weight of the check matrix to find out the position where the column weight is relatively low; and also includes analyzing the trap set of the check matrix to find out the position where the trap set is relatively concentrated.
[0085] Step S43: preprocessing of the check matrix, migrating the check matrix column vector corresponding to the error-prone position (equivalent to the data at the first position) to a specific position (equivalent to the second position) through matrix column transformation.
[0086] Step S44: (after column transformation of the above check matrix, the target check matrix in the above embodiment is obtained), LDPC encoding is performed on the data to be encoded by the target check matrix to obtain an LDPC codeword (equivalent to the codeword in the above embodiment).
[0087] Specifically, the optional embodiment of the present application takes the LDPC codeword length of 16KB and the page size of 4KB as an example, and reads the soft information required for LDPC soft decoding on demand. The LDPC codeword is divided into 4 subcode blocks according to the size of the page, and each subcode block corresponds to a page one by one when stored, such as Figure 3 shown. Figure 3 Indicates the correspondence between codewords and physical pages in a scenario where the LDPC code length is 16KB and the physical page size is 4KB.
[0088] The LDPC check matrix is pre-analyzed and pre-processed. The pre-analysis can obtain the position where the error bit is likely to appear when the hard decoding of the LDPC codeword fails. The error-prone position is in a one-to-one correspondence with the column index of the check matrix. Then, based on the pre-analysis, the check matrix is pre-processed. The pre-processing refers to the column transformation of the column data of the check matrix corresponding to the error-prone position obtained by the pre-analysis, and moving it to the end position of the check matrix (equivalent to the second position). For example, Figure 3 In the scenario shown in , the subcode block 4 position is the end position, which corresponds to page#4 (ie, the target physical page) in the NAND FLASH storage.
[0089] On the encoding side, LDPC encoding is performed based on the preprocessed check matrix (ie, the target check matrix), and the specific encoding method is not limited in the optional embodiments of the present application.
[0090] In the case where it is necessary to decode the codeword obtained by encoding the preprocessed check matrix, the decoding process includes:
[0091] First, hard decoding is performed. During hard decoding, the system reads all pages corresponding to the LDPC codeword once, and performs decoding iterations of LDPC hard decoding based on the read data. In the case of hard decoding failure, the LDPC soft decoding process is started. Specifically, the soft decoding process in the optional embodiment of the present application is as follows: Figure 5 As shown, it includes steps S51 to S57:
[0092] Step S51: Start LDPC soft decoding.
[0093] Step S52: adjusting the control electrode reference voltage of the storage unit for multiple times for the physical page where the error-prone position is located, and performing multiple readings.
[0094] Combination Figure 3 , according to the position of the subcode block selected during preprocessing, determine the page where soft information needs to be read, that is, page#4. For page#4, adjust the control electrode reference voltage of the storage unit, read page#4 multiple times, and determine the probability of the current position being 1 and 0 based on the bit data obtained during each reading. For example, 4 reads are performed, 3 of which are 1 and 1 is 0, then the probability of the position being 1 is 0.75, and the probability of being 0 is 0.25. After obtaining soft information for page#4, the soft information of the subcode block 4 position can be obtained. The soft information of the subcode blocks 1, 2, and 3 positions uses the information obtained when the storage unit is read once during hard decoding (equivalent to the hard decoding information in the above embodiment), and all soft information (including the soft information of the target physical page and the hard decoding information corresponding to other physical pages) is used as the initial value for iterative decoding of LDPC soft decoding.
[0095] Step S53: based on multiple reads, the decoded soft information of the physical page where the error-prone position is located is obtained, and the soft information of other physical pages adopts the soft information (ie, hard decoding information) obtained by a single read of the physical page.
[0096] Step S54: LDPC soft decoding.
[0097] Step S55: Determine whether the decoding is successful. If yes, the decoding ends; if not, execute step S56.
[0098] If the soft decoding is successful, the process ends; if the soft decoding iterative decoding fails, step S56 is executed.
[0099] Step S56: adjusting the control electrode reference voltage of the storage unit for multiple times for all physical pages where the LDPC codeword is located, and performing multiple readings.
[0100] In the case that the soft decoding fails in step S54, the soft information of the complete LDPC codeword is obtained, that is, the soft information reading of page#1, page#2, and page#3 is started. The reading process is consistent with (3-d), and the soft information of the subcode blocks 1, 2, and 3 is re-obtained.
[0101] Step S57: LDPC soft decoding secondary decoding.
[0102] A secondary decoding (equivalent to soft decoding again) is performed based on all the soft information of the LDPC codeword obtained in step S56. At this point, the process ends regardless of whether the decoding is successful or not.
[0103] The probability that the stored data is 0 or 1 is calculated by reading the data values obtained multiple times (this probability value is called soft information), and the probability value is used for LDPC iterative decoding, thereby realizing LDPC soft decoding.
[0104] It should be noted that the decoding algorithm used in the above decoding process can be minimum sum decoding or belief propagation decoding algorithm, and the optional embodiments of the present application do not limit this.
[0105] It should be noted that in the LDPC decoding process, the control electrode reference voltage of the storage cell can be adjusted multiple times, and then the output results under different control electrode reference voltages can be observed when reading the data in the storage cell. By comparing the difference in the output results under different control electrode reference voltages, it can be determined that the soft information of a specific physical page is read. Specifically, different pattern data can be written in the storage cell, and then the control electrode reference voltage can be adjusted when reading to observe the change in the output result. By analyzing the difference in the output results under different control electrode reference voltages, it can be determined which specific physical page's soft information is read. This method can be used to determine which specific physical page's soft information is read, thereby helping to improve decoding efficiency and accuracy during the LDPC decoding process.
[0106] In an optional embodiment of the present application, in a scenario where the LDPC codeword spans 2 or more pages, the error-prone position in the decoding failure scenario is adjusted to a specific area by pre-analyzing and pre-processing the check matrix. The area occupies a single page when the LDPC codeword is stored. The number of pages that need to read soft information during the soft information acquisition process during decoding can be reduced, and the soft information acquisition delay can be significantly reduced, thereby improving the LDPC decoding efficiency and the NAND FLASH reading performance. It can be compatible with the traditional soft decoding process while performing low-latency soft decoding. In the event of failure of the low-latency soft decoding method provided in the optional embodiment of the present application, it can be restored to the traditional soft decoding process to ensure that the final soft decoding performance is not affected.
[0107] In the present embodiment, a decoding device for codewords is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions thereof will not be repeated. As used below, the term "module" may implement a combination of software and / or hardware of a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and contemplated.
[0108] Figure 6 is a structural block diagram of a codeword decoding device according to an embodiment of the present application, such as Figure 6 As shown, the device comprises:
[0109] A moving module 62 is used to move data at a first position in a check matrix of a low-density parity check code LDPC to a second position to obtain a target check matrix, wherein the first position is a position in the check matrix where an error bit occurrence frequency is higher than a preset frequency, and the second position corresponds to a target physical page in a storage unit, and the storage unit includes: a plurality of physical pages for storing codewords obtained by encoding the target check matrix, and the plurality of physical pages include a target physical page;
[0110] An encoding module 64, configured to encode the data to be encoded by using the target check matrix to obtain the codeword;
[0111] The decoding module 66 is configured to decode the codeword by using the soft information of the target physical page when the codeword needs to be decoded.
[0112] Through the above-mentioned device, the data at the first position in the check matrix of the low-density parity check code LDPC is moved to the second position to obtain the target check matrix, wherein the first position is the position where the frequency of occurrence of the error bit in the check matrix is higher than the preset frequency, and the second position corresponds to the target physical page in the storage unit, and the storage unit includes: multiple physical pages for storing the codewords obtained by encoding the target check matrix, and the multiple physical pages include the target physical page; the target check matrix is used to encode the data to be encoded to obtain the codeword; when the codeword needs to be decoded, the codeword is decoded by the soft information of the target physical page. That is to say, the data at the first position with a higher frequency of occurrence of the error bit in the check matrix is moved to the second position corresponding to the target physical page to obtain the target check matrix, so that when the codeword obtained by encoding the target check matrix needs to be decoded, the codeword can be decoded only by the soft information of the target physical page. Therefore, the problem in the prior art that when an LDPC codeword spans 2 or more physical pages, it is necessary to read the soft information of all physical pages where the LDPC codeword is located multiple times, resulting in high decoding delay, can be solved. The decoding delay of LDPC codewords is reduced.
[0113] In an exemplary embodiment, the moving module 62 is also used to: pre-analyze the check matrix to determine the first position in the check matrix; determine the second position of the target object pre-selected in the check matrix; move the data at the first position in the check matrix to the second position to obtain the target check matrix.
[0114] In an exemplary embodiment, the moving module 62 is further used to: analyze the column weight of the check matrix to determine a third position in the check matrix where the column weight is lower than a first threshold; and determine the third position as the first position.
[0115] In an exemplary embodiment, the moving module 62 is further configured to: analyze the trapping sets of the check matrix to determine a fourth position in the check matrix where the trapping set density is higher than a second threshold; and determine the fourth position as the first position.
[0116] In an exemplary embodiment, the moving module 62 is also used to: determine the mapping relationship between the check matrix and each physical page of the multiple physical pages; obtain a target mapping relationship selected from the multiple mapping relationships of the target object; and determine the fifth position indicated by the target mapping relationship in the check matrix as the second position.
[0117] In an exemplary embodiment, the moving module 62 is also used to: when the first position and the second position correspond to columns of the check matrix, perform a column transformation on the data at the first position to move the data at the first position to a sixth position, wherein the sixth position is a position in the second position that has not undergone a column transformation.
[0118] In an exemplary embodiment, the decoding module 66 is further used to: hard-decode the codeword to obtain hard decoding information corresponding to the multiple physical pages, and hard decoding results; when the hard decoding result indicates that the hard decoding fails, determine the target physical page corresponding to the second position, and obtain the soft information of the target physical page; decode the codeword using the hard decoding information and the soft information corresponding to other physical pages, wherein the other physical pages are physical pages other than the target physical page in the multiple physical pages.
[0119] In an exemplary embodiment, the decoding module 66 is further used to: adjust the control electrode reference voltage of the storage unit to read the bit data of the target physical page multiple times; calculate a first probability that the target physical page is a first value through multiple bit data, and calculate a second probability that the target physical page is a second value through multiple bit data; determine the first probability and the second probability as the soft information.
[0120] In an exemplary embodiment, the decoding module 66 is further used to: determine the hard decoding information and the soft information respectively corresponding to the other physical pages as initial values for soft decoding of the codeword; and soft decode the codeword using the initial values to decode the codeword.
[0121] In an exemplary embodiment, after the codeword is soft-decoded using the initial value, the decoding module 66 is further used to: determine a soft decoding result of the codeword; if the soft decoding result indicates that the soft decoding is successful, save the decoding result of the codeword; if the soft decoding result indicates that the soft decoding fails, obtain multiple soft information corresponding to the multiple physical pages, and soft-decode the codeword again using the multiple soft information.
[0122] In an exemplary embodiment, the decoding module 66 is further used to: adjust the control electrode reference voltage of the storage unit for the multiple physical pages respectively, so as to read the bit data of each physical page in the multiple physical pages multiple times; determine the soft information of each physical page through the bit data of each physical page read multiple times, so as to obtain the multiple soft information.
[0123] In an exemplary embodiment, after the codeword is soft-decoded again using the multiple soft information, the decoding module 66 is further used to: in case the soft decoding fails again, obtain soft decoding process information, wherein the soft decoding process information includes at least one of the following: the target check matrix, the codeword, and the multiple soft information; generate an alarm event using the soft decoding process information, and send the alarm event to the target object.
[0124] In an exemplary embodiment, after determining the soft decoding result of the codeword, the decoding module 66 is further used to: determine the first index of the physical page corresponding to the soft information and determine the second index of the physical page corresponding to the second position when the soft decoding result indicates that the soft decoding fails; update the soft information by the target soft information of the physical page indicated by the second index when the first index is inconsistent with the second index; and decode the codeword by the updated soft information and the hard decoding information corresponding to other physical pages respectively.
[0125] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above method embodiments when running.
[0126] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk.
[0127] An embodiment of the present application further provides an electronic device, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.
[0128] In an exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.
[0129] An embodiment of the present application further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the steps in any one of the above method embodiments are implemented.
[0130] An embodiment of the present application further provides another computer program product, including a non-volatile computer-readable storage medium, wherein the non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps in any of the above method embodiments are implemented.
[0131] An embodiment of the present application also provides a computer program, which includes computer instructions stored in a computer-readable storage medium; a processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the steps in any one of the above method embodiments.
[0132] For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary implementation modes, and this embodiment will not be described in detail herein.
[0133] Obviously, those skilled in the art should understand that the above modules or steps of the present application can be implemented by a general computing device, they can be concentrated on a single computing device, or distributed on a network composed of multiple computing devices, they can be implemented by a program code executable by a computing device, so that they can be stored in a storage device and executed by the computing device, and in some cases, the steps shown or described can be executed in a different order from that herein, or they can be made into individual integrated circuit modules, or multiple modules or steps therein can be made into a single integrated circuit module for implementation. Thus, the present application is not limited to any specific combination of hardware and software.
[0134] The above description is only the preferred embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the principles of the present application shall be included in the protection scope of the present application.
Claims
1. A codeword decoding method, characterized in that: include: Move data at a first position in a check matrix of a low-density parity check code LDPC to a second position to obtain a target check matrix, wherein the first position is a position in the check matrix where an error bit occurs at a frequency higher than a preset frequency, and the second position corresponds to a target physical page in a storage unit, the storage unit comprising: a plurality of physical pages for storing codewords obtained by encoding the target check matrix, the plurality of physical pages including a target physical page; Encoding the data to be encoded by using the target check matrix to obtain the codeword; When the codeword needs to be decoded, the codeword is decoded using the soft information of the target physical page.
2. The method according to claim 1, characterized in that The method moves data at a first position in a check matrix of a low-density parity check code LDPC to a second position to obtain a target check matrix, including: Pre-analyzing the check matrix to determine the first position in the check matrix; Determine a second position of the target object pre-selected in the check matrix; The data at the first position in the check matrix is moved to the second position to obtain a target check matrix.
3. The method according to claim 2, characterized in that Pre-analyzing the check matrix to determine the first position in the check matrix includes: Analyzing the column weight of the check matrix to determine a third position in the check matrix where the column weight is lower than a first threshold; The third position is determined as the first position.
4. The method according to claim 2, characterized in that: Pre-analyzing the check matrix to determine the first position in the check matrix includes: Analyzing the trap sets of the check matrix to determine a fourth position in the check matrix where the trap set density is higher than a second threshold; The fourth position is determined as the first position.
5. The method according to claim 2, characterized in that: Determining a second position of the target object pre-selected in the check matrix includes: Determine a mapping relationship between the check matrix and each physical page of the plurality of physical pages; Obtain a target mapping relationship selected by a target object from a plurality of said mapping relationships; The fifth position indicated by the target mapping relationship in the check matrix is determined as the second position.
6. The method according to claim 2, characterized in that Moving the data at the first position in the check matrix to the second position to obtain a target check matrix includes: When the first position and the second position correspond to columns of the check matrix, column transformation is performed on the data at the first position to move the data at the first position to a sixth position, wherein the sixth position is a position in the second position that has not been subjected to column transformation.
7. The method according to claim 1, characterized in that Decoding the codeword using soft information of the target physical page includes: Hard decoding the codeword to obtain hard decoding information corresponding to the multiple physical pages and hard decoding results; When the hard decoding result indicates that the hard decoding fails, determining the target physical page corresponding to the second position, and acquiring the soft information of the target physical page; The codeword is decoded by using the hard decoding information and the soft information respectively corresponding to other physical pages, wherein the other physical pages are physical pages other than the target physical page among the multiple physical pages.
8. The method according to claim 7, characterized in that Acquiring the soft information of the target physical page includes: Adjusting a control electrode reference voltage of the storage unit to read the bit data of the target physical page multiple times; Calculating a first probability that the target physical page is a first value through the plurality of bit data, and calculating a second probability that the target physical page is a second value through the plurality of bit data; The first probability and the second probability are determined as the soft information.
9. The method according to claim 7, characterized in that: Decoding the codeword using the hard decoding information and the soft information respectively corresponding to other physical pages includes: Determine the hard decoding information and the soft information respectively corresponding to the other physical pages as initial values for soft decoding of the codeword; The codeword is soft-decoded by using the initial value to decode the codeword.
10. The method according to claim 9, characterized in that After soft decoding the codeword using the initial value, the method further includes: Determining a soft decoding result of soft decoding the codeword; When the soft decoding result indicates that the soft decoding is successful, saving a decoding result of decoding the codeword; When the soft decoding result indicates that the soft decoding fails, a plurality of soft information corresponding to the plurality of physical pages is obtained, and the codeword is soft-decoded again using the plurality of soft information.
11. The method according to claim 10, characterized in that Acquiring multiple soft information corresponding to the multiple physical pages, including: Adjusting the control electrode reference voltage of the storage unit for the multiple physical pages respectively, so as to read the bit data of each physical page in the multiple physical pages for multiple times; The soft information of each physical page is determined by reading the bit data of each physical page for multiple times to obtain the multiple soft information.
12. The method according to claim 10, characterized in that After soft decoding the codeword again using the multiple soft information, the method further includes: In the case where the soft decoding fails again, obtaining soft decoding process information, wherein the soft decoding process information includes at least one of the following: the target check matrix, the codeword, and the plurality of soft information; An alarm event is generated through the soft decoding process information, and the alarm event is sent to a target object.
13. The method according to claim 10, characterized in that After determining a soft decoding result of soft decoding the codeword, the method further includes: When the soft decoding result indicates that the soft decoding fails, determining a first index of a physical page corresponding to the soft information, and determining a second index of a physical page corresponding to the second position; When the first index is inconsistent with the second index, updating the soft information by using the target soft information of the physical page indicated by the second index; The codeword is decoded by using the updated soft information and the hard decoding information corresponding to other physical pages.
14. A codeword decoding device, characterized in that: include: A moving module, used to move data at a first position in a check matrix of a low-density parity check code LDPC to a second position to obtain a target check matrix, wherein the first position is a position in the check matrix where an error bit occurrence frequency is higher than a preset frequency, and the second position corresponds to a target physical page in a storage unit, and the storage unit includes: a plurality of physical pages for storing codewords obtained by encoding the target check matrix, and the plurality of physical pages include a target physical page; An encoding module, used for encoding the data to be encoded by using the target check matrix to obtain the codeword; A decoding module is used to decode the codeword by using the soft information of the target physical page when the codeword needs to be decoded.
15. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program implements the steps of the method described in any one of claims 1 to 13 when executed by a processor.
16. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method described in any one of claims 1 to 13 are implemented.
17. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the computer program implements the steps of the method described in any one of claims 1 to 13, or implements the steps of the method described in any one of claims 1-13.
