LDPC SHUFFLE DECODER WITH INITIALIZATION CIRCUIT COMPRISING ORDERED SET MEMORY

20170288697 ยท 2017-10-05

    Inventors

    Cpc classification

    International classification

    Abstract

    A low-density parity check (LDPC) decoding apparatus for performing shuffle decoding includes: an input wrapper, for receiving input data and padding the input data; an LDPC decoder, coupled to the input wrapper, for receiving the padded input data, performing a plurality of iterations of LDPC decoding upon the padded input data to generate channel values corresponding to the padded input data, and outputting a hard decision channel value in a final iteration; and an initialization circuit, coupled to the LDPC decoder, for receiving the input data in a first iteration of the plurality of iterations, storing the input data into an ordered set data, and immediately sending the ordered set data to the LDPC decoder.

    Claims

    1. A low-density parity check (LDPC) decoding apparatus for performing shuffle decoding, comprising: an input wrapper, for receiving input data comprising a plurality of codewords and error-correction information, and padding the input data; an LDPC decoder, coupled to the input wrapper, for receiving the padded input data, performing a plurality of iterations of LDPC decoding upon the padded input data according to the error-correction information to generate channel values, and outputting a hard decision channel value in a final iteration; and an initialization circuit, coupled to the LDPC decoder, for receiving the input data in a first iteration of the plurality of iterations, storing the input data into an ordered set data, and immediately sending the ordered set data to the LDPC decoder, so that the error-correction information can be used to perform LDPC decoding upon the padded input data in the first iteration.

    2. The LDPC decoding apparatus of claim 1, wherein in the first iteration, a sign of the input data is directly input to the LDPC decoder.

    3. The LDPC decoding apparatus of claim 1, wherein the initialization circuit comprises: a multiplexer, for multiplexing the input data into the ordered set data; and an ordered set memory, for storing the multiplexed input data as the ordered set data and transmitting the ordered set data to the LDPC decoder.

    4. The LDPC decoding apparatus of claim 3, wherein the LDPC decoder comprises an ordered set memory for receiving the ordered set data from the ordered set memory of the initialization circuit.

    5. The LDPC decoding apparatus of claim 4, wherein the ordered set memory of the LDPC decoder is initially empty before the first iteration, and is then updated in each subsequent iteration.

    6. The LDPC decoding apparatus of claim 1, wherein a bus width of the input data is much smaller than a bus width inside the LDPC decoder.

    7. A method for performing shuffle decoding in a low-density parity check (LDPC) decoding apparatus, comprising: receiving input data comprising a plurality of codewords and error-correction information; padding the input data; performing a plurality of iterations of LDPC decoding upon the padded input data according to the error-correction information to generate channel values, wherein in a first iteration, the method further comprises: utilizing an initialization circuit to store the input data into an ordered set data; and immediately sending the ordered set data to an LDPC decoder of the LDPC decoding apparatus; and outputting a hard decision channel value in a final iteration.

    8. The method of claim 7, wherein in the first iteration, the method further comprises: directly inputting a sign of the input data to the LDPC decoder.

    9. The method of claim 7, wherein the step of storing the input data into an ordered set data further comprises: multiplexing the input data into the ordered set data; and storing the ordered set data into an ordered set memory of the initialization circuit.

    10. The method of claim 9, wherein the LDPC decoder comprises an ordered set memory for receiving the ordered set data from the ordered set memory of the initialization circuit.

    11. The method of claim 10, wherein the ordered set memory of the LDPC decoder is initially empty before the first iteration, and is then updated in each subsequent iteration.

    12. The method of claim 7, wherein a bus width of the input data is much smaller than a bus width inside the LDPC decoder.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0012] The FIGURE is a block diagram of the shuffle decoder according to an exemplary embodiment of the present invention.

    DETAILED DESCRIPTION

    [0013] In order to solve the problem of the prior art, the invention aims to use pre-update circuits.

    [0014] Refer to the FIGURE, which illustrates a block diagram of a shuffle decoder 100 according to an exemplary embodiment of the present invention. The shuffle decoder 100 comprises an initialization circuit 110, which comprises an update circuit 115, an ordered set memory 118 and a multiplexer 113. The shuffle decoder 100 further comprises an input wrapper 120 and an LDPC decoder 130, which comprises a channel value memory 135, a computation unit block 140 and an ordered set memory 150.

    [0015] The input wrapper 120 is for padding the codeword with sufficient bytes for the LDPC decoder 130. For example, the input data may contain 8 bytes, but the LDPC decoder 130 requires 48 bytes of data to operate. This is merely one example.

    [0016] During a first iteration of decoding, the input data is input to the input wrapper 120, and padded. The padded data is then divided into groups G and stored to the channel value memory 135. In the conventional art, this is all that would occur in the first iteration. In the system of the exemplary embodiment, however, the input data is also input to the initialization circuit 110, where it will first be stored in the update circuit 115 and then multiplexed to the ordered set memory 118. As the bus width of the input data is much smaller than the bus width inside the LDPC decoder 130, the input data can be quickly stored in the ordered set memory 118. This allows the data stored therein to be passed to the ordered set memory 150 within the LDPC decoder 130 by the time the codeword has been stored in the channel value memory 135.

    [0017] As shuffle decoding uses data obtained within a first iteration, the data stored in the channel value memory 135 can be updated within the first iteration.

    [0018] Therefore, a number of useful iterations will be increased by 1, and the LDPC decoder can operate at near 100% efficiency, rather than 80%.

    [0019] The multiplexer 113 in the initialization circuit 110 is for grouping the data together into an ordered set to be stored into the ordered set memory 118. In the first iteration, the sign of the data is directly input to the LDPC decoder 130. This is because it is harder to perform a one-shot update of the memory circuits. In the following iterations, the sign will be calculated by the LDPC decoder 135.

    [0020] The circuitry required for the above is not complicated and can be easily implemented by one skilled in the art. As well as the initialization circuit 110, the computation unit 140 in the LDPC decoder 130 only requires extra adders for receiving the sign of the data in the first iteration. This is so that the sign and the received codeword can be used by the computation unit 140 to calculate channel values.

    [0021] The present invention therefore improves the latency for an LDPC decoder by the simple addition of initialization circuits, ensuring that decoding can begin in a first iteration.

    [0022] Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.