Low-density parity-check decoder and decoding method
Patent Information
- Application Number
- TW114105105
- Authority / Receiving Office
- TW · TW
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-02-12
- Publication Date
- 2026-08-16
- Estimated Expiration
- 2045-02-11
AI Technical Summary
As flash memory technology advances with increased storage density, the probability of errors rises, necessitating improved error correction capabilities, especially with the transition from 2K to 4K codeword low-density parity-check codes, which existing algorithms struggle to optimize effectively.
A low-density parity check decoder with a retry mechanism that employs multiple decoding algorithms, including bit-flipping and min-sum algorithms, and a retry controller to manage decoding attempts, adjusting parameters and adding perturbations to improve error correction performance.
Enhances error correction performance by reducing the error floor and improving decoding success rates, particularly in high-error scenarios, through a combination of hardware-driven retries and software backup.
Smart Images

Figure TWG2TA001072231_001 
Figure TWG2TA001072231_002 
Figure TWG2TA001072231_003
Abstract
Description
[Technical Field]
[0001] The specification discloses a low-density parity check decoding circuit and method, particularly a low-density parity check decoder and decoding method that uses codes for decoding and a retry mechanism. [Previous Technology]
[0002] In order to ensure the correctness of stored data, it is conventional to use an error correction code (ECC) algorithm to perform error correction on the data block by a decoder that runs a specific algorithm for different error bits. Algorithms that require higher computing resources have better error correction capabilities.
[0003] As flash memory moves towards a three-dimensional process and the number of stacked layers increases, its storage density also increases, leading to a higher probability of errors in flash memory. Therefore, the requirements for error correction are also becoming more stringent. Furthermore, the transition from 2K codeword low-density parity-check codes to 4K codeword low-density parity-check codes necessitates the urgent optimization of low-density parity-check decoding algorithms. [Summary of the Invention]
[0004] The disclosure proposes a low-density parity check decoder and a decoding method, wherein the characteristics of the low-density parity check decoder are used to optimize the decoding algorithm.
[0005] In one embodiment, the density parity check decoder includes a computing core and a retry controller, the retry controller being used to control the computing core to execute the decoding method.
[0006] According to the implementation of the decoding method, the encoded signal is first obtained from the memory, that is, a first decoding algorithm is executed on the encoded signal using a low-density parity check decoder. Based on the decoding result of the first decoding algorithm, it is determined whether the decoding is successful. In response to the failure of the first decoding algorithm, if a first retry condition related to the degree of codeword error generated during decoding is met, it is decided to execute the first retry decoding procedure.
[0007] The first decoding algorithm is a bit-flipping algorithm. The degree of codeword error corresponds to the relationship between the error bits per codeword obtained by executing the bit-flipping algorithm and the frame error rate. Based on this, it can be determined whether to start retrying the bit-flipping algorithm based on the relationship between the error bits per codeword obtained by executing the bit-flipping algorithm and the frame error rate.
[0008] Further, the perturbation of the encoded signal is performed by flipping bits of multiple predetermined bits of the codeword, wherein the multiple predetermined bits are the beginning, end or random bits of the codeword.
[0009] Further, if the decoding fails and the first retry condition is not met, the second decoding algorithm can be executed based on the result of executing the first decoding algorithm again or multiple times. The complexity of the second decoding algorithm is higher than that of the first decoding algorithm.
[0010] Similarly, after executing the second decoding algorithm, when the second retry condition is met, it is decided to execute the second retry decoding program. In this second retry decoding program, the parameters of the second decoding algorithm are adjusted, and the second decoding algorithm with the modified parameters is executed again.
[0011] Further, the second decoding algorithm can be a minimum sum algorithm. The algorithm determines whether to start retrying the bit flipping algorithm based on the relationship between the error bits of each codeword obtained by executing the minimum sum algorithm and the frame error rate.
[0012] Further, when the low-density parity check decoder cannot complete the decoding by retrying the second decoding algorithm and does not meet the second retry condition, then the decoding is performed by software decoding.
[0013] To further understand the features and technical content of the present invention, please refer to the following detailed description and drawings of the present invention. However, the drawings provided are for reference and illustration only and are not intended to limit the present invention.
Implementation Method
[0014] The following describes the implementation of the present invention through specific embodiments. Those skilled in the art can understand the advantages and effects of the present invention from the content disclosed in this specification. The present invention can be implemented or applied through other different specific embodiments, and various details in this specification can also be modified and changed based on different viewpoints and applications without departing from the concept of the present invention. In addition, the accompanying drawings of the present invention are only simple illustrations and are not depictions based on actual dimensions, as stated in advance. The following embodiments will further describe the relevant technical content of the present invention in detail, but the disclosed content is not intended to limit the scope of protection of the present invention.
[0015] It should be understood that although terms such as “first,” “second,” and “third” may be used herein to describe various components or signals, these components or signals should not be limited by these terms. These terms are primarily used to distinguish one component from another, or one signal from another. Furthermore, the term “or” as used herein may, as appropriate, include any combination of one or more of the associated listed items.
[0016] The disclosure proposes a low-density parity check decoder and a decoding method. The decoding method used is a decoding process based on an improved low-density parity check code (LDPC). One of its purposes is to improve the overall error correction performance of the low-density parity check code. Low-density parity check decoders are widely used in communication systems and storage devices.
[0017] The architecture of the LDPC decoder 100 and the decoding method running therein can be referred to Figure 1, which shows a schematic diagram of an embodiment of the LDPC decoder architecture. The LDPC decoder 100 performs signal decoding in two ways: hardware decoding and software decoding. The decoding method disclosed herein uses a high-performance hardware decoding method. While obtaining the encoded signal from the flash memory 12, it simultaneously receives the codeword (i.e., the aforementioned n-bit codeword). After decoding by the decoding algorithm, error correction is performed based on the obtained codeword. It can also determine whether the correction check target is met based on the codeword. If it is met, the decoding is successful.
[0018] The LDPC decoder 100 shown in the figure has an input buffer 11 and an output buffer 13, and an operating core for executing decoding algorithms. The operating core may include a first operating core 113 and a second operating core 123, that is, the first operating core 113 and the second operating core 123 provide a first decoding algorithm and a second decoding algorithm. Furthermore, a retry controller is also provided, which is electrically connected to the operating core. The retry controller is used to control the first operating core 113 and the second operating core 123 to perform retry decoding.
[0019] When the decoding method is executed, the LDPC decoder 100 obtains the encoded signal from the flash memory 12 and temporarily stores it in the input buffer 21. The LDPC decoder 100 runs at least two decoding algorithms (which can be divided into a first decoding algorithm and a second decoding algorithm) by hardware or hardware-software co-implementation components. Under performance requirements, the decoding algorithm can be executed by the circuit hardware in the LDPC decoder 100. The decoded methods executed can retry the decoding program at least once according to different retry conditions.
[0020] According to an embodiment, a retry controller (such as a first retry controller 111 and a second retry controller 121) is added before the computational cores (such as the first computational core 113 and the second computational core 123) that execute the first decoding algorithm and the second decoding algorithm, so as to control the hardware components in the LDPC decoder to automatically enter the retry procedure. This retry mechanism is hardware-driven and does not require the intervention of software or flash memory controllers, thus effectively saving time costs and the computing power required to execute software. In actual operation, another implementation scheme can use software decoding as a backup after hardware decoding fails.
[0021] The illustrated example shows that in the LDPC decoder 100, the first retry controller 111 controls the first processing core 113 to execute the first decoding algorithm. If the decoding process meets the first retry condition for the first decoding algorithm, the illustration uses "retry the first decoding algorithm 115" to represent the program of executing the second or more retry decoding. If the codeword is checked and the decoding is confirmed to be successful, the decoded signal can be transmitted to the output buffer 13 and then output to the data buffer 103 of the storage control circuit. According to the embodiment, if the first decoding algorithm still fails to decode successfully after retry decoding, the second decoding algorithm will then be used for decoding. In this embodiment, the complexity of the second decoding algorithm is higher than that of the first decoding algorithm.
[0022] According to an embodiment, in the LDPC decoder 100, the second retry controller 121 controls the second processing core 123 to execute the second decoding algorithm. Similarly, if the decoding process meets the second retry condition for the second decoding algorithm, the second retry condition is also related to the degree of codeword error generated during decoding. Thus, the second decoding algorithm 125 is retried, which involves adjusting the parameters of the second decoding algorithm and executing the second decoding algorithm again. The program for retrying decoding a second time or more can be executed. If decoding is confirmed to be successful, the signal indicating successful decoding can be transmitted to the output buffer 13 and then output to the data buffer 103 of the storage control circuit. In one case, if the LDPC decoder 100 still cannot complete hard decoding by retrying the second decoding algorithm and does not meet the second retry condition, then a soft decoding method can be sought for decoding.
[0023] It is worth mentioning that, according to the embodiments, the LDPC decoder 100 runs at least two algorithms, such as the Bit-Flipping Algorithm (BFA) and the MinSum algorithm, respectively. The decoding method disclosed in the document proposes an automatic condition judgment program that can determine whether the corresponding retry conditions (such as the first retry condition and the second retry condition) are met after executing the first decoding algorithm or the second decoding algorithm. The judgment criteria for the first retry condition and the second retry condition are related to the degree of codeword error generated during decoding. If the retry condition is met, a mechanism such as adding self-adjusting scrambling (such as injecting errors, i.e., changing the value of some bits of the codeword) or adjusting the parameters of the low-density parity check decoding algorithm will be automatically executed in different decoding algorithms to initiate retry decoding. Due to the statistical characteristics of the LDPC decoder 100 itself, experiments have shown that, in cases where the error bit rate is not particularly high, appropriately adding perturbations to the encoded signal or adjusting the parameters of the low-density parity check decoding algorithm can allow codewords that were originally impossible to correct to be corrected.
[0024] Based on the above-mentioned storage control circuit and the architecture of the LDPC decoder capable of running at least two decoding algorithms, one of the decoding methods proposed in the disclosure can be referred to the flowchart of the first decoding algorithm embodiment shown in Figure 2.
[0025] The LDPC decoder first reads the encoded signal from the flash memory (step S201), executes the first decoding algorithm using the first processing core in the LDPC decoder (step S203), and determines whether the decoding is successful based on the information provided by the codeword used for error correction in the result of the first decoding algorithm (step S205). If the decoding is confirmed to be successful (yes), the decoded signal is output after the decoding is completed (step S207); otherwise, if the first decoding algorithm fails to decode (no), it further determines whether the first retry condition is met (step S209). The first retry condition for determining whether to retry the first decoding algorithm can be referred to the waterfall diagram shown in Figure 3.
[0026] In the judgment step of step S209, when the first decoding algorithm fails to decode and the first retry condition is not met (No) according to the current situation, the second decoding algorithm can be executed (step S217) according to the decoding method embodiment disclosed in the disclosure; if the first retry condition of retrying the first decoding algorithm is met (Yes) according to the current situation, the first retry decoding procedure is executed. At this time, in the first retry decoding procedure, perturbation is added to the codeword in the first decoding algorithm (or the parameters of the low-density parity check decoding algorithm can be adjusted) (step S211), the first decoding algorithm is executed a second time (step S213), and it is judged again whether the decoding is successful (step S215).
[0027] When the first decoding algorithm is executed for the second time, the decoding method adds a perturbation (such as injecting a small number of erroneous bits) to the first decoding algorithm formula with a certain probability of successful decoding to retry decoding and attempt to decode successfully. The perturbation added to the encoded signal involves bit flipping of multiple predetermined bits of the codeword. These predetermined bits can refer to the beginning, end, or multiple random bits of the codeword. Thus, according to the embodiment, the first decoding algorithm, such as the bit flipping algorithm, can form a perturbation in the algorithm by flipping (i.e., converting bit 0 to bit 1, or converting bit 1 to bit 0) the beginning, end, or multiple random bits of the codeword in the bit flipping algorithm. For example, it can be flipping the first 10 bits of the codeword in the first decoding algorithm; or flipping the last 10 bits of the codeword in the first decoding algorithm; or randomly flipping any 10 bits of the codeword in the first decoding algorithm.
[0028] In the decoding method, according to the embodiment, at least one retry is performed through the first decoding algorithm with added perturbation, and it is determined whether the decoding is completed. Furthermore, after the decoding fails, it is repeatedly confirmed whether the first retry condition is met and the first decoding algorithm is retried by adding perturbation.
[0029] In the process, if decoding fails and the first retry condition is not met, the second decoding algorithm is executed (step S217); if decoding is confirmed to be successful, a decoding signal is output after decoding is completed (step S207).
[0030] According to an embodiment, the first decoding algorithm may employ a bit-flipping algorithm (BFA) for first decoding correction. In the bit-flipping algorithm, taking a 4K-byte LDPC code as an example, the syndrome value of the codeword obtained by the LDPC decoder is first calculated, and the flipped bit values in the codeword are calculated. These are then compared with a pre-set threshold to determine whether to flip the bit values in the codeword (e.g., changing a bit from 0 to 1 or from 1 to 0). Next, the flipped syndrome value in the codeword is calculated again to determine whether the codeword that has been flipped within a specific number of recursions is a correct codeword. If so, the algorithm stops.
[0031] In step S209 of Figure 2, which determines whether the first retry condition is met, the first decoding algorithm is a bit-flipping algorithm. The degree of codeword error corresponds to the relationship between the number of error bits per codeword obtained by executing the bit-flipping algorithm and the frame error rate. This is used to determine whether to initiate a retry of executing the bit-flipping algorithm. When the first decoding algorithm (such as the bit-flipping algorithm) fails to decode, according to the example shown in Figure 3, the relationship between the number of error bits per codeword and the frame error rate described in the waterfall plot shown therein can be used to determine whether to retry the first decoding algorithm.
[0032] The waterfall plot shown in Figure 3 represents the frame error rate on the vertical axis and the number of error bits per codeword on the horizontal axis. Two curves are plotted: curve 301 without retry and curve 302 with retry enabled. Curves 301 and 302 show that the larger the number of error bits per codeword, the larger the frame error rate. When the number of error bits per codeword reaches a certain amount, such as 250, the frame error rate tends towards 1. Furthermore, this waterfall plot shows that the area further to the right indicates a stronger decoding capability of the decoder, thus demonstrating that a higher number of error bits per codeword and a higher frame error rate result in better retry decoding capability.
[0033] According to the example shown in the figure, the conditions for retrying the bit-flipping algorithm are defined by the non-retry curve 301 and the retry-initiation curve 302. When the LDPC decoder executes the bit-flipping algorithm, it judges the erroneous bits of each codeword obtained from the decoded signal and calculates the corresponding frame error rate. By comparing the non-retry curve 301 and the retry-initiation curve 302 set in Figure 3, if the calculated frame error rate corresponding to each erroneous bit in the codeword conforms to the non-retry curve 301, it means that the conditions for retrying the bit-flipping algorithm are not met; if the calculated frame error rate corresponding to each erroneous bit in the codeword conforms to the retry-initiation curve 302, it means that the conditions for retrying the bit-flipping algorithm are met.
[0034] In the judgment of step S209 in Figure 2, if the first retry condition is not met, or if the decoding still fails after executing the first decoding algorithm a second time (or multiple times), the process will proceed as in step S217 to execute the second decoding algorithm.
[0035] Refer to the flowchart of an embodiment of the decoding method shown in Figure 4, which executes the second decoding algorithm. Based on the storage control circuit described in the above embodiment, the LDPC decoder runs at least two decoding algorithms, the second decoding algorithm being a minimum sum (MinSum) algorithm.
[0036] After the LDPC decoder executes the second decoding algorithm (step S401), it determines whether the decoding is successful based on the codeword generated during decoding (step S403). If the decoding is successful (yes), the decoding is completed and the decoded signal is output (step S405); otherwise, if the decoding fails (no), it determines whether the second retry condition is met based on the degree of error of the codeword generated during decoding (step S407).
[0037] According to an embodiment, the second decoding algorithm is a minimum sum algorithm. Whether to initiate a retry of the minimum sum algorithm is determined based on the relationship between the error bits per codeword and the frame error rate obtained from executing the minimum sum algorithm. The second retry condition for determining whether to retry the minimum sum algorithm is the relationship between the error bits per codeword and the frame error rate obtained from executing the minimum sum algorithm. Refer to Figure 6 for the waterfall diagram illustrating the determination of whether to initiate a retry of the second decoding algorithm.
[0038] In step S407, if decoding fails and it is determined that the second retry condition cannot be met (No), according to the system's preset backup, software decoding can be performed (step S415) to complete the decoding (step S405); conversely, if decoding fails but the second retry condition is met (Yes), the second decoding algorithm is executed a second time (step S411). During the second (or multiple) execution of the second decoding algorithm, the parameters of the algorithm equation are changed, such as the parameters shown in Equation 1, and Table 1 shows an example of modifying the parameters in the minimum sum algorithm (step S409). The second (or multiple) second decoding algorithm is then executed again, and the codeword of the decoding result is used to determine whether the decoding was successful (step S413). In the above decoding process, if the second retry condition is still met after multiple decoding failures, decoding can still be retried by repeatedly modifying the parameters in the second decoding algorithm.
[0039] If decoding is successful after the second or more retries (yes), the decoding is completed and the decoding result is output (step S405), and the process is terminated; if decoding still fails after the second or more retries (no), and the second retry condition is not met, the system returns to the backup set, that is, software decoding is performed to decode (step S415).
[0040] Taking the min-sum algorithm as an example, the min-sum algorithm only performs the minimum value judgment in the check node operation, which can simplify the LDPC decoding algorithm. The formula is shown in Equation 1. Where "m" is the check node number in the min-sum algorithm; "n" is the variable node number; "" represents the information from the check node with number m to the variable node with number n; the variable "α" is a scaling parameter; "" represents the information from the variable node with codeword number "" to the check node with number "m", such as the log-likelihood ratio (LLR); the symbol function "sign()" returns 0, 1 or -1 depending on whether the value "" in the function is 0, positive or negative, and is divided into two parameters, αn and αp, depending on the result of sign(q). The choice of parameters depends on the encoder's computing power; "" represents the value of the variable node to the check node. Thus, when the second (or more) decoding algorithm is executed, the two parameters αn and αp are modified to retry the decoding, attempting decoding based on a certain probability of successful decoding.
[0041] Equation 1: ; ; .
[0042] Table 1 shows an example of modifying the parameters in the minimum sum algorithm. The decoding process achieves the purpose of decoding by gradually adjusting the parameters and repeatedly executing the minimum sum algorithm.
[0043] Table 1: Parameter group αn αp First decoding parameters 0.6875 0.8125 Second decoding parameters 0.625 0.75
[0044] According to the waterfall plot shown in Figure 5, which is used to determine whether to start retrying the second decoding algorithm (such as the minimum sum algorithm), the waterfall plot depicts the relationship between the error bits per codeword and the frame error rate. It shows the curve 501 for not starting retry and the curve 502 for starting retry. The trend shown by the curves is that the larger the error bits per codeword, the larger the frame error rate. When the number of error bits per codeword reaches a certain amount, such as 350, the frame error rate tends to 1.
[0045] Thus, the retry coding method defines the conditions for retrying the minimum sum algorithm by using the non-retry curve 501 and the retry-initiation curve 502. When the LDPC decoder executes the minimum sum algorithm, it determines the error bits of each codeword obtained from the decoded signal and calculates the corresponding frame error rate. Referring to the waterfall plot shown in Figure 5, if the calculated frame error rate corresponding to each error bit in the codeword conforms to the non-retry-initiation curve 501, it indicates that the conditions for retrying the minimum sum algorithm are not met; if the calculated frame error rate corresponding to each error bit in the codeword conforms to the retry-initiation curve 502, it indicates that the conditions for retrying the minimum sum algorithm are met.
[0046] Further, according to the process shown in Figure 4, if decoding still fails after the second decoding algorithm is executed for the first, second or more times, and the second retry condition is not met, soft decoding can be performed (Figure 4, step S415).
[0047] In summary, based on the embodiments of the low-density parity check decoder and decoding method described above, the decoding method utilizes the characteristics of the low-density parity check code decoding algorithm. On the basis of the original low-density parity check code decoding algorithm, it improves the hard decoding performance of low-density parity check code error correction, thereby reducing the error floor of the low-density parity check code and simultaneously improving the performance of the waterfall region before the performance suddenly drops when a certain signal-to-noise ratio (SNR) is reached. Furthermore, the decoding method provides a retry decoding mechanism, which can effectively improve the success rate of LDPC decoding, while reducing the impact of the retry decoding mechanism on the performance of the LDPC decoder through an appropriate retry judgment mechanism.
[0048] The content disclosed above is only a preferred and feasible embodiment of the present invention, and is not intended to limit the scope of the patent application of the present invention. Therefore, all equivalent technical changes made using the contents of the present invention specification and drawings are included in the scope of the patent application of the present invention. [Simplified Explanation of the Diagram]
[0049] Figure 1 shows a schematic diagram of an embodiment of a low-density parity check decoder using a decoding method;
[0050] Figure 2 shows a flowchart of an embodiment of the first decoding algorithm being executed in the decoding method;
[0051] Figure 3 shows a waterfall diagram illustrating whether to initiate a retry of the first decoding algorithm;
[0052] Figure 4 shows a flowchart of an embodiment of the second decoding algorithm being executed in the decoding method; and
[0053] Figure 5 shows a waterfall diagram of an example of whether to start retrying the second decoding algorithm.
Claims
1. A decoding method, executed in a low-density parity-checking decoder, comprising: Obtain the encoded signal from a memory; execute a first decoding algorithm on the encoded signal; Based on the decoding result of the first decoding algorithm, it is determined whether the decoding was successful. In response to the failure of the first decoding algorithm, a first retry condition related to the degree of codeword error generated during decoding is met, and a first retry decoding procedure is executed. The first retry decoding procedure includes: adding perturbation to the encoded signal or adjusting the parameters of the low-density parity check decoding algorithm; and executing the first decoding algorithm again.
2. The decoding method as described in claim 1, wherein the first decoding algorithm is a bit-flipping algorithm, and the degree of codeword error corresponds to the relationship between the error bits per codeword and the frame error rate obtained by performing the bit-flipping algorithm.
3. The decoding method as described in claim 1, wherein, The perturbation of the encoded signal is achieved by flipping bits in multiple predetermined bits of the codeword, wherein the multiple predetermined bits are the beginning, end, or random bits of the codeword.
4. The decoding method as described in any one of claims 1 to 3, wherein, In response to the failure of the first decoding algorithm and the failure to meet a first retry condition, a second decoding algorithm is executed; wherein the complexity of the second decoding algorithm is higher than that of the first decoding algorithm.
5. The decoding method as described in claim 4, wherein, After executing the second decoding algorithm, if a second retry condition is met, a second retry decoding procedure is executed; wherein the second retry condition is related to the degree of codeword error generated during decoding; wherein the second retry decoding procedure includes: adjusting the parameters of the second decoding algorithm; and executing the second decoding algorithm again.
6. The decoding method as described in claim 5, wherein, If the low-density parity check decoder cannot complete the decoding by retrying the second decoding algorithm and the second retry condition is not met, then software decoding is used for decoding.
7. A low-density parity-checking decoder, comprising: One core operation; The system also includes a retry controller electrically connected to the computing core for controlling the computing core to execute a decoding method. The decoding method includes: acquiring an encoded signal from a memory; executing a first decoding algorithm on the encoded signal; if the first decoding algorithm fails, determining to retry decoding based on the degree of codeword errors generated during decoding; adding a perturbation to the codewords in the first decoding algorithm and then re-executing the first decoding algorithm with the perturbation; and determining whether decoding is complete based on the result of re-executing the first decoding algorithm, and if decoding fails, confirming whether retry decoding is satisfied and continuing to retry executing the first decoding algorithm by adding a perturbation.
8. The low-density parity check decoder as described in claim 7, wherein the first decoding algorithm is a bit-flipping algorithm, and whether to initiate a retry of the bit-flipping algorithm is determined based on the relationship between the error bits per codeword obtained by executing the bit-flipping algorithm and the frame error rate.
9. The low-density parity-checking decoder as described in claim 7 or 8, wherein, If the decoding fails and a first retry condition is not met, a second decoding algorithm is executed based on the result of executing the first decoding algorithm again or multiple times.
10. The low-density parity-checking decoder as described in claim 9, wherein, After executing the second decoding algorithm, if the decoding fails based on the decoded codeword, the algorithm will then be retried with modified parameters based on the degree of codeword error generated during decoding.
11. The low-density parity check decoder as described in claim 10, wherein the second decoding algorithm is a min-sum algorithm, and whether to initiate a retry of the bit-flipping algorithm is determined based on the relationship between the error bits per codeword obtained by executing the min-sum algorithm and the frame error rate.
12. The low-density parity-checking decoder as described in claim 10, wherein, If the low-density parity check decoder cannot complete the decoding by retrying the second decoding algorithm and does not meet a second retry condition, then software decoding is used for decoding.