Decoding method and related circuit

文档序号:1187835 发布日期:2020-09-22 浏览:4次 中文

阅读说明:本技术 解码方法及相关电路 (Decoding method and related circuit ) 是由 朱唐廷 于 2019-03-13 设计创作,主要内容包括:本发明公开了一电路以及一解码方法。该电路包含有一第一存储器、一解码器以及一控制电路。在该电路的操作中,该第一存储器用以接收一数据串流;该解码器用以接收该数据串流以依序形成多个讯框,并依序对该多个讯框进行解码以分别产生对应的多个码字;以及该控制电路用以根据该解码器对于一目前讯框的至少一先前讯框在完成解码操作时所使用的迭代圈数,以决定该目前讯框进行解码时所允许的最多迭代圈数。(The invention discloses a circuit and a decoding method. The circuit includes a first memory, a decoder and a control circuit. In operation of the circuit, the first memory is configured to receive a data stream; the decoder is used for receiving the data series flow to form a plurality of frames in sequence and decoding the frames in sequence to generate a plurality of corresponding code words respectively; and the control circuit is used for determining the maximum number of iterations allowed when the decoder completes the decoding operation for at least one previous frame of a current frame.)

1. A circuit, comprising:

a first memory for receiving a data stream;

a decoder, coupled to the first memory, for receiving the data stream to sequentially form a plurality of frames, and sequentially decoding the plurality of frames to generate a plurality of corresponding codewords, respectively; and

and the control circuit is coupled with the decoder and used for determining the maximum number of iterations allowed when the decoding operation is carried out on the current frame according to the number of iterations used by the decoder when the decoding operation is completed on at least one previous frame of the current frame.

2. The circuit of claim 1, wherein the control circuit increases the maximum number of iterations allowed for decoding the current frame when the number of iterations used for the at least one previous frame in completing the decoding operation is less than a threshold.

3. The circuit of claim 2, wherein the control circuit sets the maximum number of iterations allowed for decoding the current frame to be performed longer than the first memory for receiving one frame of the data stream when the number of iterations used for the at least one previous frame in completing the decoding operation is less than the threshold.

4. The circuit of claim 2, wherein the control circuit sets the maximum number of iterations allowed for decoding the current frame to be equal to or less than the time for the first memory to receive one frame of the data stream when the number of iterations used for the at least one previous frame in completing the decoding operation is greater than the threshold.

5. The circuit of claim 1, wherein the first memory receives the data stream from outside the circuit, the decoder comprising an input buffer to receive the data stream from the first memory; wherein the input buffer receives the data stream from the first memory at a higher rate than the first memory receives the data stream from outside the circuit.

6. The circuit of claim 1, further comprising:

a second memory coupled to the decoder, wherein the second memory is used for receiving the plurality of code words corresponding to a frame from the decoder and transmitting the plurality of code words to a back-end circuit;

wherein the decoder writes the plurality of codewords into the second memory at a higher rate than the second memory transfers the plurality of codewords to the back-end circuit.

7. The circuit of claim 1, wherein the decoder is a low density parity check decoder.

8. A decoding method, comprising:

using a first memory to receive a data stream;

receiving the data stream from the first memory to sequentially form a plurality of frames, and sequentially decoding the plurality of frames to respectively generate a plurality of corresponding codewords; and

determining the maximum number of iterations allowed for decoding a current frame based on the number of iterations used to complete the decoding operation for at least one previous frame of the current frame.

9. The decoding method of claim 8, wherein the step of determining the maximum number of iterations allowed for decoding the current frame comprises:

when the number of iterations used by the at least one previous frame when the decoding operation is completed is smaller than a threshold value, setting the maximum number of iterations allowed to be executed when the current frame is decoded to be larger than the time when the first memory receives one frame in the data stream.

10. The decoding method of claim 8, wherein the step of determining the maximum number of iterations allowed for decoding the current frame comprises:

when the number of iterations used by the at least one previous frame when the decoding operation is completed is greater than a threshold value, setting the execution time of the maximum number of iterations allowed when the current frame is decoded to be equal to or less than the time of receiving one frame of the data stream by the first memory.

Technical Field

The present invention relates to decoders, and more particularly to a circuit including a Low-density parity-check (LDPC) decoder.

Background

An error correction decoder (error correction decoder) is usually provided in a data transmission system to eliminate errors caused by noise/interference (noise/interference) in a channel during transmission. For the LDPC decoder, it is characterized by having iterative and belief propagation (belief propagation) to calculate new node probability information (also called external information) after exchanging the probability information of neighboring nodes with intrinsic information (intrinsic message) containing probability information according to the rule of specific interworking; then, the intrinsic information and the extrinsic information are integrated to determine whether the decoding is correct, if the decoding is correct, the decoding operation is terminated and a correct codeword (codeword) is generated, and if the decoding is incorrect, the iteration operation is continued until zero error (error free).

Theoretically, for frames (frames) with no intrinsic information trapped in trapping sets and more transmission interference errors, the LDPC decoder needs to perform a plurality of iterations to completely debug. However, in practice, limited by the transmission delay time in different specifications, the maximum number of iterations (iteration count) allowed by the LDPC decoder in the decoding process for each frame is limited, for example, 7 to 8 times, as the maximum decoding time for each frame. However, as shown by experimental statistics, most of the frames without severe interference can be decoded successfully (i.e. with zero errors) only by 2-3 iterations, and the number of iterations required for the frames with severe interference may exceed the maximum number of iterations allowed, so that using a fixed number of iterations for decoding may make a few of the frames with severe interference unable to be decoded correctly, thereby increasing bit errors (bit errors) in the decoded codeword, and reducing the decoding efficiency.

Disclosure of Invention

Therefore, an objective of the present invention is to provide a decoding method and related circuit, which can dynamically adjust the maximum number of iterations allowed by an LDPC decoder for decoding each frame, so as to increase the probability of successful decoding of a severely interfered frame, thereby improving the decoding capability of the LDPC decoder to solve the problems described in the prior art.

In one embodiment of the present invention, a circuit is disclosed, which includes a first memory, a decoder, and a control circuit. In operation of the circuit, the first memory is configured to receive a data stream; the decoder is used for receiving the data series flow to form a plurality of frames in sequence and decoding the frames in sequence to generate a plurality of corresponding code words respectively; and the control circuit is used for determining the maximum number of iterations allowed when the decoder completes the decoding operation for at least one previous frame of a current frame.

In another embodiment of the present invention, a decoding method is disclosed, which comprises the steps of: using a first memory to receive a data stream; receiving the data stream from the first memory to sequentially form a plurality of frames, and sequentially decoding the plurality of frames to respectively generate a plurality of corresponding codewords; and determining the maximum number of iterations allowed for decoding a current frame according to the number of iterations used for completing the decoding operation for at least one previous frame of the current frame.

Drawings

FIG. 1 is a schematic diagram of a circuit according to an embodiment of the invention.

Fig. 2 is a flowchart of a decoding method according to an embodiment of the invention.

FIG. 3 is a timing diagram of a circuit receiving and processing multiple frames of a data stream according to an embodiment of the invention.

FIG. 4 is a timing diagram of a circuit receiving and processing multiple frames of a data stream according to another embodiment of the invention.

Description of the symbols

100 circuit

110 decoder

112 input buffer

114 decoding circuit

116 output buffer

120 first memory

130 second memory

140 control circuit

Din data stream

S200 to S218

F0-F3 frames

CW 0-CW 2 code word

Detailed Description

Fig. 1 is a schematic diagram of a circuit 100 according to an embodiment of the invention. As shown in fig. 1, the circuit 100 includes a decoder 110, a first memory 120, a second memory 130, and a control circuit 140, wherein the decoder 110 includes an input buffer 112, a decoding circuit 114, and an output buffer 116. In the embodiment, the decoder 110 is an LDPC decoder, the decoding circuit 114 is an LDPC decoding circuit, and the circuit 100 can be applied to any electronic device that needs to receive and decode a data stream, such as a network card.

In the embodiment, the circuit 100 is used for receiving a data stream Din to sequentially generate a plurality of code words (codewords) to the back-end circuit, and the control circuit 140 can dynamically determine the maximum number of iterations allowed by the decoding circuit 114 for decoding each frame by the special access method for the first memory 120 and the second memory 130, so as to improve the decoding capability of the LDPC decoder. In detail, referring to the circuit architecture of fig. 1 and the flowchart of the decoding method shown in fig. 2, the process starts in step S200. In step S202, the circuit 100 starts to receive a data stream Din and store the data stream Din in the first memory 120, and the control circuit 140 continuously monitors the amount of data stored in the first memory 120. In step S204, when the data amount in the first memory 120 is higher than a threshold value, the control circuit 140 sends a message to the decoder 110, so that the decoder 110 uses a higher reading rate to read the data in the first memory 120 and store the data in the input buffer 112. For example, in steps S202 and S204, assuming that the writing rate of the data stream 120 into the first memory 120 is fs and the size of a decoding unit (a frame) of the decoding circuit 114 is n intrinsic messages (for example, in the related art of 10G BASE-T ethernet LDPC decoder, a frame size is 2048 Log-likelihood Ratio (LLR) with organic rate information), when the amount of data stored in the first memory 120 is half of the frame (i.e., the threshold is n/2 intrinsic messages), the decoder 110 may use the reading rate of 2 fs to read the intrinsic messages in the first memory 120, where n is a positive integer. It should be noted that fs, 2 x fs and the threshold n/2 intrinsic messages are only used as an example and not a limitation of the present invention, as long as the decoder 110 starts to read data when the amount of data in the first memory 120 is higher than the threshold, and the input buffer 112 receives the data stream Din from the first memory 120 at a higher rate than the first memory 120 receives the data stream Din from the outside, and the related rate and the threshold may be set differently according to actual conditions.

In step S206, when the input buffer 112 stores a frame (e.g., 2048 intrinsic messages) and there is room in the output buffer 116 to store codewords generated by decoding the frame, the decoding circuit 114 may perform an iterative decoding operation on the frame, in which the decoding circuit 114 calculates new node probability information after exchanging the intrinsic messages containing probability information for adjacent node probability information according to the rules of a specific interconnection to generate modified intrinsic messages. In step 208, the decoding circuit 114 determines whether the current iteration is successful in decoding (i.e., zero errors) according to the modified intrinsic messages, and if the decoding is successful, the process goes to step S212; if the decoding fails, the process proceeds to step S210. In step S210, the decoding circuit 114 determines whether the number of iterative operations performed on the frame has reached the maximum number of iterations allowed, if so, the process goes to step S212; if not, the process returns to step S206 to perform the next iteration on the frame for decoding.

In step S212, the decoding circuit 114 generates a plurality of codewords corresponding to the frame according to the decoding result. In step S214, a plurality of codewords corresponding to the frame are temporarily stored in the output buffer 116. In step S216, the decoder 110 transmits the codewords stored in the output buffer 116 to the second memory 130, and the codewords stored in the second memory 130 are sequentially transmitted to a back-end circuit when appropriate. In the present embodiment, the rate at which the decoder 110 writes the codewords into the second memory 130 is higher than the rate at which the second memory 130 transmits the codewords to the back-end circuit.

In step S218, the control circuit 140 determines the maximum number of iterations allowed by the decoding circuit 114 when decoding the next frame according to the number of iterations used by the decoding circuit 114 when completing the decoding operation for the frame. In one embodiment, the control circuit 140 may determine the maximum number of iterations allowed for the (N + K +1) th frame during decoding according to the number of iterations used for the (N) th to (N + K) th frames during the decoding operation, where K may be any suitable positive integer, for example, K may be equal to 1, 2, or 3. Specifically, assuming that the total number of iterations used by the nth to (N + K) th frames when the decoding operation is completed is smaller than a threshold, the control circuit 140 may increase the maximum number of iterations allowed by the nth to (N + K) th frames when the decoding operation is performed, for example, setting the execution time of the maximum number of iterations allowed when the (N + K +1) th frames are decoded to be larger than the time of receiving one frame of the data stream Din by the first memory 120. In addition, assuming that the sum of the iteration turns used by the nth to (N + K) th frames when the decoding operation is completed is greater than the threshold, the control circuit 140 may set the execution time of the maximum iteration turns allowed when the (N + K +1) th frame is decoded to be equal to or less than the time of receiving one frame of the data stream Din by the first memory 120.

Fig. 3 is a timing diagram of the circuit 100 receiving and processing a plurality of frames of the data stream Din according to an embodiment of the present invention, wherein the embodiment assumes that the time required for decoding of each frame is less than the time required for receiving one frame by the first memory 120, and the time for receiving each frame by the first memory 120 is substantially the same. As shown in fig. 3, at time t0, the first memory 120 receives the first frame F0 at a rate fs, and the decoder 110 reads the first frame F0 from the first memory 120 using a rate 2 fs when the amount of data stored in the first memory 120 is above a threshold. In the present embodiment, the first memory 120 receives the complete first frame F0 at the time point t1, and the input buffer 112 in the decoder 110 also receives the complete first frame F0 after the time point t 1. Then, at time t1, the decoding circuit 114 decodes the first frame F0 and generates a corresponding plurality of codewords CW0, and writes the plurality of codewords CW0 into the second memory 130 at time t2 at a rate of 2 × fs. Then, at time points t 3-t 4, the plurality of codewords CW0 in the second memory 130 are transmitted to the back-end circuit at the rate fs.

Similarly, at time t1, the first memory 120 receives the second frame F1 at the rate fs, and the decoder 110 reads the second frame F1 from the first memory 120 using the rate 2 fs when the amount of data stored in the first memory 120 is above the threshold. In the present embodiment, the first memory 120 receives the complete second frame F1 at time t2, and the input buffer 112 in the decoder 110 also receives the complete second frame F1 after time t 2. Then, at time t2, the decoding circuit 114 decodes the second frame F1 and generates a corresponding plurality of codewords CW1, and writes the plurality of codewords CW1 into the second memory 130 at time t3 at a rate of 2 × fs. Then, at time points t 4-t 5, the plurality of codewords CW1 in the second memory 130 are transmitted to the back-end circuit at the rate fs.

The third frame F2 and the following frames operate similarly to the first frame F0 and the second frame F1, and therefore the details are not repeated.

In the embodiment of fig. 3, since the time required for decoding each frame is less than the time for receiving one frame from the first memory 120, i.e., the number of iterations used by the decoding circuit 114 in successfully decoding each frame is less than a predetermined value (in the embodiment, the predetermined value is the number of iterations that the decoding circuit 114 can perform during the time for receiving one frame from the first memory 120), the control circuit 140 can increase the maximum number of iterations allowed for decoding a subsequent frame. For example, assuming that the preset value of the iteration number is "8", the control circuit 140 may control the decoding circuit 114 such that the fourth frame F3 allows the number of iteration numbers to be "16" during decoding, i.e. 16 iterations at most.

Fig. 4 is a timing diagram of the circuit 100 receiving and processing a plurality of frames of a data stream Din according to another embodiment of the present invention, wherein the embodiment assumes that the first frame F0 suffers from severe interference and cannot be successfully decoded within the time of receiving one frame by the first memory 120, the number of iterations allowed for the first frame F0 in decoding is close to the time of receiving two frames by the first memory 120, and the time of receiving each frame by the first memory 120 is substantially the same. As shown in fig. 4, at time t0, the first memory 120 receives the first frame F0 at a rate fs, and the decoder 110 reads the first frame F0 from the first memory 120 using a rate 2 fs when the amount of data stored in the first memory 120 is above a threshold. In the present embodiment, the first memory 120 receives the complete first frame F0 at the time point t1, and the input buffer 112 in the decoder 110 also receives the complete first frame F0 after the time point t 1. Then, at time t1, the decoding circuit 114 decodes the first frame F0 and generates a corresponding plurality of codewords CW0, and since the first frame F0 is severely interfered and the decoding is not completed until time t3, the decoder 110 does not write the plurality of codewords CW0 into the second memory 130 at time t3 at the rate 2 x fs. Simultaneously, in order to continuously and smoothly transmit the code words, at the time point t3, the second memory 130 also transmits the plurality of code words CW0 just received from the decoder 110 to the back-end circuit at the rate fs.

Since the decoding time of the first frame F0 exceeds the time when the first memory 120 receives one frame, that is, the number of iterations used in the decoding process of the first frame F0 is higher than the preset value, the control circuit 140 controls the decoding circuit 114 so that the number of iterations allowed to be used in the decoding process of the second frame F1 is smaller than or equal to the preset value (in the embodiment, the preset value is the number of iterations that the decoding circuit 114 can perform during the time when the first memory 120 receives one frame).

With respect to the second frame F1, at time t1, the first memory 120 receives the second frame F1 at a rate fs, and the decoder 110 reads the second frame F1 from the first memory 120 using a rate 2 fs when the amount of data stored in the first memory 120 is above a threshold. In the present embodiment, the first memory 120 receives the complete second frame F1 at time t2, and the input buffer 112 in the decoder 110 also receives the complete second frame F1 after time t 2. Since the decoding time of the first frame F0 is t 1-t 3, the decoding circuit 114 starts decoding the second frame F1 at time t3 and generates a plurality of corresponding codewords CW1, and writes the codewords CW1 into the second memory 130 at time t4 at a rate of 2 x fs. Simultaneously, in order to continuously and smoothly transmit the code words, at the time point t4, the second memory 130 also transmits the plurality of code words CW1 just received from the decoder 110 to the back-end circuit at the rate fs.

It should be noted that, since the number of iterations allowed for the second frame F1 during decoding is less than or equal to the predetermined value (i.e., the time for receiving one frame by the first memory 120 is not allowed to exceed), the decoding circuit 114 must transmit the plurality of codewords CW1 to the second memory 130 even if the second frame F1 is not successfully decoded at the time t 4.

In addition, since the decoding time of the first frame F0 is t1 t3, at time t2 t3, even though the first memory 120 has received the complete third frame F2, the decoder 110 starts to sequentially fetch the third frame F2 and the fourth frame F3 from the first memory 120 at the rate 2 fs only at time t3 in consideration of the space problem of the input buffer 112, and the decoding circuit 114 starts to decode the third frame F2 at time t4 and generates the corresponding codewords CW2 and writes the codewords CW2 into the second memory 130 at time t5 at the rate 2 fs. Simultaneously, in order to continuously and smoothly transmit the code words, at the time point t5, the second memory 130 also transmits the plurality of code words CW2 just received from the decoder 110 to the back-end circuit at the rate fs.

It should be noted that, in the embodiment of fig. 3, the time for the decoder 110 to transmit the codewords CW0, CW1, CW2 to the second memory 130 can be dynamically adjusted according to the decoding completion time of the first frame F0, the second frame F1, and the third frame F2, respectively. Specifically, if the first frame F0 is successfully decoded before time t2, the decoder 110 may transmit a plurality of codewords CW0 to the second memory 130 before time t 2.

As shown in fig. 4, since the maximum number of iterations allowed to be used in decoding the first frame F0 is increased, the probability of successful decoding of the first frame F0 can be increased. In addition, the time point of outputting the code words CW 0-CW 2 in the embodiment shown in fig. 4 is the same as the time point of outputting the code words CW 0-CW 2 in the embodiment shown in fig. 3, which also indicates that the embodiment of dynamically adjusting the number of iterations shown in fig. 4 does not affect the output timing of the code words.

It should be noted that, in the embodiment of fig. 4, the time for the decoder 110 to transmit the codewords CW0, CW1, CW2 to the second memory 130 can be dynamically adjusted according to the decoding completion time of the first frame F0, the second frame F1, and the third frame F2, respectively. Specifically, if the second frame F1 is successfully decoded before time t5, the decoder 110 may transmit a plurality of codewords CW1 to the second memory 130 before time t 5.

Briefly summarized, in the decoding method and related circuit of the present invention, the maximum number of iterations allowed by the decoder to decode each frame is dynamically adjusted according to the decoding condition of the previous frame, so as to increase the successful probability of decoding the frame with serious interference to improve the decoding capability of the decoder.

The above-mentioned embodiments are only preferred embodiments of the present invention, and all equivalent changes and modifications made by the claims of the present invention should be covered by the scope of the present invention.

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:面向无线数能同传的一元编码调制符号概率的分析方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类