Technical Field
The disclosure relates in general to a method and a device for performing an error-correcting procedure, and more particularly to a method and a device for performing a polar codes channel-aware procedure on a plurality of bit-channels having a polar code construction which is dynamic.
Description of the Related Art
Polar code is an advanced error-correcting code. In the case of storage (or communication), polar code polarizes some memory cells (or communication channels) into high reliable bit-channels and polarizes some memory cells (or communication channels) into low reliable bit-channels. The information is stored (or sent) via the high reliable bit-channels. Therefore, the bit error rate (BER) can be greatly reduced to achieve excellent reliability.
The disclosure is directed to a method and a device for performing a polar codes channel-aware procedure. The polar codes channel-aware procedure is provided for improving the error-correcting performance.
According to a first aspect of the present disclosure, a method for performing a polar codes channel-aware procedure is provided. A plurality of bit-channels have a polar code construction which is dynamic. The method includes the following steps. A plurality of reliability indices of some of the bit-channels are ranked. Whether an updating condition is satisfied is determined according to a ranking sequence of the reliability indices. If the updating condition is satisfied, the polar code construction is updated according to the ranking sequence of the reliability indices.
According to a second aspect of the present disclosure, a device for performing a polar codes channel-aware procedure is provided. A plurality of bit-channels have a polar code construction which is dynamic. The device includes a database and a controlling circuit. The database is for storing a plurality of reliability indices of some of the bit-channels. The controlling circuit is for updating the reliability indices according some of a plurality of output codes received from a decoding circuit, ranking the reliability indices, and updating the polar code construction according to a ranking sequence of the reliability indices, if an updating condition is satisfied.
The above and other aspects of the disclosure will become better understood with regard to the following detailed description of the non-limiting embodiment(s). The following description is made with reference to the accompanying drawings.
Preferred embodiments are disclosed below for elaborating the invention. A polar codes channel-aware procedure is provided for improving error-correcting performance. The following embodiments are for the purpose of elaboration only, not for limiting the scope of protection of the invention. Besides, secondary elements are omitted in the following embodiments to highlight the technical features of the invention.
Please referring to
X1=U1⊕U2⊕U3⊕U4⊕U5⊕U6⊕U7⊕U8 (1)
X2=U5⊕U6⊕U7⊕U8 (2)
X3=U3⊕U4⊕U7⊕U8 (3)
X4=U7⊕U8 (4)
X5=U2⊕U4⊕U6⊕U8 (5)
X6=U6⊕U8 (6)
X7=U4⊕U8 (7)
X8=U8 (8)
According to the equations (1) to (8), the bit-channels B4, B6, B7, B8 have high reliability and the bit-channels B1, B2, B3, B5 have low reliability. Therefore, each of the bit-channels B4, B6, B7, B8 can be set at a data state which is used to be inputted an information, and each of the bit-channels B1, B2, B3, B5 can be set at a frozen state which is not used to be inputted the information. The setting of the data state and the frozen state on the bit-channels B1 to B8 is a polar code construction.
The polar code construction is channel-specific on the cells construction. A polar code construction which is suitable for one cells construction may not be suitable for another cells construction.
Concretely, once the state of the cells W1 to W8 changes, the polar code construction which is the setting of the data state and the frozen state on the bit-channels B1 to B8 may need to be changed as well to keep the error-correcting performance high. If the state of the cells W1 to W8 is not always identical and the polar code construction is not changed accordingly, part of the information may be stored via the bit-channels having low reliability and it will cause performance loss.
For example, a threshold voltage distribution of cells in a NAND flash memory may change as the number of P/E cycles increases or as the time passes by. Please refer to
However, the estimation of the threshold voltage distribution of cells is quite difficult. In the case of storage, inaccurate programming, retention error, cell-to-cell interference, read disturb, program disturb and even temperature are the noise sources, precise estimation of the threshold voltage distribution of cells is almost impossible.
For increasing the performance, a method and a device for performing the polar codes channel-aware procedure are provided. Please refer to
As shown in
In step S110, an encoding circuit 130 encodes the input codes U1 to U8 to be the encoded codes X1 to X8.
In step S120, a writing circuit 140 writes the encoded codes X1 to X8 into the cells W1 to W8 in a storage circuit 150.
In step S130, a decoding circuit 170 decodes the read codes Y1 to Y8, which are read from the cells W1 to W8 by a reading circuit 160, to get the output codes Û1 to Û8, and the decoding circuit 170 updates the reliability indices LLR2-LLR7 of the input codes U2 to U7 to the controlling circuit 110 for updating the reliability of the bit-channels B2 to B7 when the updating condition is satisfied. Each of the reliability indices LLR2-LLR7 for input code U2 to U7 is an average of absolute value of a plurality of log-likelihood ratios for U2 to U7. The absolute value of the log-likelihood ratio for each bit-channel B2 to B7 can be viewed as a confidence coefficient. The reliability indices LLR2 to LLR7 are stored in the database 120.
In one embodiment, each of the read codes Y1 to Y8 is a soft information which is a combination of a plurality of read results via a plurality of different read voltages.
In step S140, the controlling circuit 110 determines whether the storage procedure is completed. If the storage procedure is completed, then the process is terminated; if the storage procedure is not completed, then the process proceeds to step S150.
In step S150, the controlling circuit 110 determines whether the number of the newly performed writing cycles reaches a predetermined number. In one writing cycle, all of the cells W1 to W8 are written one set of encoded codes X1 to X8. If the number of the newly performed writing cycles reaches the predetermined number, then the process proceeds to step S160; if the number of the newly performed writing cycles does not reach the predetermined number, then the process proceeds to step S110.
In step S160, the controlling circuit 110 ranks the reliability indices LLR2 to LLR7 of the bit-channels B2 to B7.
In step S170, the controlling circuit 110 determines whether an updating condition is satisfied according to a ranking sequence of the reliability indices LLR2 to LLR7. If the updating condition is satisfied, then the process proceeds to step S180; if the updating condition is not satisfied, then the process proceeds to step S110.
In this step, the updating condition is that the ranking sequence of the reliability indices LLR2 to LLR7 is changed and kept for a predetermined number of times, such as two times. That is to say, if the updating condition is satisfied, the change of the ranking sequence of the reliability indices LLR2 to LLR7 can be firmly confirmed.
In step S180, the controlling circuit 110 updates the polar code construction according to the ranking sequence of the reliability indices LLR2 to LLR7. For example, the previous ranking sequence of the reliability indices LLR2 to LLR7 is “LLR7, LLR6, LLR4, LLR5, LLR3, LLR2.” The reliability indices LLR7, LLR6, LLR4 of the bit-channel B7, B6, B4 are higher than the reliability indices LLR5, LLR3, LLR2 of the bit-channel B5, B3, B2, then the bit-channels B7, B6, B4 are set as the data state and the bit-channels B5, B3, B2 are set as the frozen state.
If the current ranking sequence of the reliability indices LLR2 to LLR7 is “LLR7, LLR6, LLR5, LLR4, LLR3, LLR2”, then the bit-channels B7, B6, B5 are set as the data state, and the bit-channels B4, B3, B2 are set as the frozen state. The bit-channel B4 is changed from the data state to the frozen state, and the bit-channel B5 is changed from the frozen state to the data state.
That is to say, the polar codes channel-aware procedure empirically modifies the polar code construction according to the reliability indices LLR2 to LLR7. Since the polar code construction matches the current states of the cells W1 to W8, it can improve error-correcting performance.
Please refer to
In other embodiment, the polar codes channel-aware procedure can be performed in the case of communication. In the case of communication, the prediction of channel states is much more difficult, since all obstacles, such as rain, temperature and moisture, are noise sources and make the channel state being changed. The inaccurate estimation of channel hurts the performance as well. Please refer to
As shown in
In step S220, a sending circuit 240 sends the encoded codes X1 to X8 via a plurality of communication channels C1 to C8 in a network 250.
In step S230, a decoding circuit 270 decodes the read codes Y1 to Y8, which are read from the communication channels C1 to C8 by a receiving circuit 260, to get the output codes Û1 to Û8, and the decoding circuit 270 updates the reliability indices LLR-LLR7 of the input codes U2 to U7 to the controlling circuit 210 through to a controlling circuit 210B of a device 200B for updating the reliability of the bit-channels B2 to B7 when the updating condition is satisfied.
In step S240, the controlling circuit 210 determines whether the communication procedure is completed. If the communication procedure is completed, then the process is terminated; if the communication procedure is not completed, then the process proceeds to step S250.
In step S250, the controlling circuit 210 determines whether the number of the newly performed communication cycles reaches a predetermined number. In one communication cycle, one set of encoded codes X1 to X8 are transmitted via the communication channels C1 to C8. If the number of the newly performed communication cycles reaches the predetermined number, then the process proceeds to step S260; if the number of the newly performed communication cycles does not reach the predetermined number, then the process proceeds to step S210.
In step S260, the controlling circuit 210 ranks the reliability indices LLR2 to LLR7 of the bit-channels B2 to B7.
In step S270, the controlling circuit 210 determines whether the updating condition is satisfied according to the ranking sequence of the reliability indices LLR2 to LLR7. If the updating condition is satisfied, then the process proceeds to step S280; if the updating condition is not satisfied, then the process proceeds to step S210.
In step S280, the controlling circuit 210 updates the polar code construction according to the ranking sequence of the reliability indices LLR2 to LLR7.
That is to say, in the case of communication, the polar codes channel-aware procedure also empirically modifies the polar code construction according to the reliability indices LLR2 to LLR7. Since the polar code construction matches the current states of the communication channels C1 to C8, it can improve error-correcting performance.
While the disclosure has been described by way of example and in terms of the exemplary embodiment(s), it is to be understood that the disclosure is not limited thereto. On the contrary, it is intended to cover various modifications and similar arrangements and procedures, and the scope of the appended claims therefore should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements and procedures.
This application claims the benefit of U.S. provisional application Ser. No. 62/241,793, filed Oct. 15, 2015, the subject matter of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62241793 | Oct 2015 | US |