WO2022102843A1 - 비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법 - Google Patents

비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법 Download PDF

Info

Publication number
WO2022102843A1
WO2022102843A1 PCT/KR2020/016696 KR2020016696W WO2022102843A1 WO 2022102843 A1 WO2022102843 A1 WO 2022102843A1 KR 2020016696 W KR2020016696 W KR 2020016696W WO 2022102843 A1 WO2022102843 A1 WO 2022102843A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
memory
value
llr
values
Prior art date
Application number
PCT/KR2020/016696
Other languages
English (en)
French (fr)
Inventor
이영주
김영석
최정원
Original Assignee
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포항공과대학교 산학협력단 filed Critical 포항공과대학교 산학협력단
Publication of WO2022102843A1 publication Critical patent/WO2022102843A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Definitions

  • the present invention relates to an LDPC decoder, and more particularly, to a hardware structure capable of decoding NB LDPC (Non-Binary Low Density Parity Check Codes), which is one of error correction codes applied to a data communication system, with low latency and low complexity.
  • NB LDPC Non-Binary Low Density Parity Check Codes
  • LDPC low-density parity check
  • LDPC Low Density Parity Check Codes
  • Non-Binary LDPC is one of the error correction codes and is one of the technologies capable of removing errors occurring in the data communication process.
  • the NB-LDPC code has better error correction capability than binary LDPC having a similar length, and has a low error floor because it is advantageous to generate a parity check matrix with a long cycle.
  • the NB-LDPC code decoder has disadvantages in that algorithm complexity and hardware complexity are high, and it requires many cycles for decoding.
  • the present invention provides a hardware structure capable of decoding NB LDPC (Non-Binary Low Density Parity Check Codes), which is one of error correction codes applied to data communication systems, with low delay and low complexity. It is an object of the present invention to provide a non-binary low density parity check code decoder capable of simultaneously outputting two minimum values as output values in one cycle, thereby lowering complexity and significantly reducing delay time, and a decoding method using the same.
  • NB LDPC Non-Binary Low Density Parity Check Codes
  • a non-binary low-density parity check code decoder according to a feature of the present invention for achieving the above object
  • check node processing in which a plurality of elementary check nodes (ECNs), which are unit blocks, are configured to process an input variable to check (V2C) message to output a check to variable (C2V) message; and
  • ECNs elementary check nodes
  • Variable Node Processing which consists of a plurality of elementary variable nodes (EVNs), which are unit blocks, processes input C2V (check to variable) messages and outputs V2C (variable to check) messages,
  • check node processing CNP
  • variable node processing VNP
  • Each ECN includes: an input memory in which a plurality of elements including a log likelihood ratio (LLR) value and a Galois field (GF) value corresponding to the LLR value are stored in the input U memory and the input V memory;
  • LLR log likelihood ratio
  • GF Galois field
  • the first reads four pairs of LLR values and GF values from the input U memory and the input V memory at a time, transmits the LLR values to an adder, and transmits the GF values to an OR operator (XOR) divider; and
  • a pair of E1 (LLR value) and E1 gf and a pair of E2 (LLR value) and E2 gf output through the adder and the OR operator are inputted, and four pre-stored LLR values and the two newly inputted LLR values are received.
  • E1 (LLR value) and E2 (LLR value) are compared and calculated, and the first minimum value (fir_min) and the second minimum value (sec_min) among the six bubble candidates (LLR values) are simultaneously output as the result value in each cycle to output memory It is characterized in that it comprises a first sorter to store in.
  • Each EVN consists of an LLR (Log Likelihood Ratio) value and a Galois Field (GF) value corresponding to the LLR value in the input U memory that receives and stores the channel and the input V memory that receives and stores C2V messages.
  • an input memory storing a plurality of elements made up of;
  • a second divider that transmits the LLR values input from the input U memory and the input V memory to an adder and transmits the GF value as it is;
  • a pair of E1 (LLR value) and E1 gf and a pair of E2 (LLR value) and E2 gf outputted through the adder and the OR operator are input and compared, and the first minimum value (fir_min) and two It is characterized in that it includes a second sorter for simultaneously outputting the th minimum value (sec_min) as a result value and storing it in an output memory.
  • a first step of performing check node processing in which a plurality of elementary check nodes (ECNs), which are unit blocks, are configured to process an input variable to check (V2C) message and output a check to variable (C2V) message ;
  • ECNs elementary check nodes
  • a second step of performing variable node processing in which a plurality of elementary variable nodes (EVNs), which are unit blocks, are configured to process an input check to variable (C2V) message to output a variable to check (V2C) message; and
  • ESNs elementary variable nodes
  • the check node processing (CNP) and the variable node processing (VNP) further include outputting two result values of a first minimum value and a second minimum value simultaneously in one cycle, respectively.
  • the present invention has the effect of reducing the delay time without increasing the complexity by processing two result values in one cycle in the decoder.
  • CNP and VNP can be performed at the same time, so that the delay time can be reduced without degrading the error correction capability through parallelization.
  • FIG. 1 is a view showing a CNP structure when CN degree 4 according to an embodiment of the present invention.
  • ECN Electronic Check Node
  • FIG 3 is a diagram illustrating an example of an ECN operation according to an embodiment of the present invention.
  • VNP variable node processing
  • FIG. 5 is a diagram showing the structure of an EVN (Elementary Variable Node) according to an embodiment of the present invention.
  • FIG. 6 is a diagram illustrating an example of an EVN operation according to an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating a timing diagram of a decoder according to an embodiment of the present invention.
  • FER frame error rate
  • FIG. 9 is a diagram illustrating an overall control flow of a decoder according to an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating a control flow of ECN according to an embodiment of the present invention.
  • FIG. 11 is a diagram illustrating a control flow of an EVN according to an embodiment of the present invention.
  • the message passing algorithm is a general decoding method, and it is divided into a VN Processing (VNP) process that processes a V2C (variable to check) message and a CN Processing (CNP) process that processes a C2V (check to variable) message.
  • VNP VN Processing
  • CNP CN Processing
  • Decoding proceeds by repeatedly performing CNP and VNP.
  • EMS Extended Min-Sum
  • EMS Extended Min-Sum
  • FIG. 1 is a view showing a CNP structure when CN degree 4 according to an embodiment of the present invention.
  • a finite field is a sieve with a finite number of elements, and a sieve with q elements is usually defined as GF(q).
  • GF represents a Galois field.
  • a binary body with elements 0 and 1 is defined as GF(2).
  • the LDPC code is called a binary LDPC code when the elements of the parity check matrix H are composed of elements on GF(2), and is called a non-binary LDPC code when q is composed of elements on GF(q) greater than 2.
  • the LDPC code may be expressed by a Tanner Graph that visually indicates the matrix H in the decoding process.
  • Tanner graph rows of the matrix H are defined by M check nodes (CN), and columns are defined by N variable nodes (VN).
  • variable node of the non-binary LDPC code defined in the finite field GF(q) is composed of bit symbols
  • the non-binary LDPC code is decoded based on prior probabilities for each of q symbols.
  • LLRV Log Likelihood Ratio Vector
  • q LLRs Log Likelihood Ratio
  • the Forward-Backward (FB) Algorithm decomposes a specific operation into a forward process and a backward process, performs it repeatedly, and merges the results of the forward/backward operation again. carried out in a structure that
  • a plurality of elementary check nodes (ECNs) 100 that are unit blocks are configured to process an input variable to check (V2C) message to output a check to variable (C2V) message.
  • V2C input variable to check
  • C2V check to variable
  • FIG. 2 is a diagram showing the structure of an ECN (Elementary Check Node) according to an embodiment of the present invention
  • Figure 3 is a diagram showing an example of the ECN operation according to an embodiment of the present invention.
  • the ECN 100 is a unit block for performing check node processing. 1, ECN inter and ECN merge basically perform the same function.
  • ECN (100) is the message length ( ) with a matrix T as input, and an iterative counter is input, Outputs a C2V message with a value.
  • the input memory (input U memory 111 or input V memory 112) 110 reads two elements. Each element consists of an LLR (Log Likelihood Ratio) value and a Galois Field (GF) value corresponding to the corresponding LLR value.
  • LLR Log Likelihood Ratio
  • GF Galois Field
  • the first divider 120 reads four pairs of LLR values and GF values from the input U memory 111 and the input V memory 112 at a time.
  • the first divider 120 transmits the LLR value read from the input memory 110 to the adder 121 , and transmits the GF value read from the input memory 110 to the OR operator (XOR) 122 . do.
  • the first sorter 130 receives a pair of E1 (LLR value) and E1 gf and a pair of E2 (LLR value) and E2 gf output through the adder 121 and the OR operator 122 .
  • the first sorter 130 compares and calculates four pre-stored LLR values with two newly input E1 (LLR values) and E2 (LLR values), and the first minimum value among six bubble candidates (LLR values) for each cycle. (fir_min) and the second minimum value (sec_min) are simultaneously output as result values (Step1 extraction).
  • the GF value is not used in the comparison operation and is moved together with the LLR value.
  • the first sorter 130 initializes to the T(1,1), T(2,1), T(1,2) values and three maximum values, and the first sorter 130 The second minimum and the second minimum are , is extracted and stored in the output memory 140 .
  • the candidate calculator 150 calculates fir_new and sec_new, which are positions of elements to be fetched from the input memory 110 in the next cycle, by using the position information corresponding to the first minimum value fir_min and the second minimum value sec_min.
  • a method of calculating fir_new and sec_new in the candidate calculator 150 is described in Step2 candidate calculation in the ECN algorithm below.
  • the input matrix T has the input U as the horizontal axis and the input V as the vertical axis, and each element of the matrix is the sum of the LLR values of the corresponding input.
  • the LLR value of the i-th element of the input V and the LLR value of the j-th element of the input U are added to each other. denotes the size of the input memory 110 and the output memory 140 .
  • the first sorter 130 is the first minimum value and the second minimum value in Step 1 , to output
  • the candidate calculator 150 is the position of the first minimum value extracted earlier. , the position of the second minimum the position of the value to be read from the input memory 110 in the next cycle in Step 2 using , to calculate
  • the input memory 110 is the location of the value to be read from the input memory 110 in the next cycle. , read the value from class and add it to the first aligner 130 .
  • Step 4 If it is the first cycle in Step 4, the sorter initializes the maximum value temporarily inserted in the initialization step. From Step 1 to Step 4 Repeat /2 times for a total Produces an output value of
  • the ECN 100 can reduce the delay time by calculating the position of the new bubble and simultaneously outputting the first and second minimum values.
  • FIG. 3 it is an example of operation during three cycles of the ECN 100 .
  • the first sorter 130 is initialized with T(1,1), T(2,1), T(1,2), and three maximum values 31 . And among them, two minimum values T(1,1) and T(2,1) are output, and T(1,3) and T(2,2) are newly created by using their positions in the first sorter 130 is added to
  • the first sorter 130 outputs two minimum values among a total of six bubble candidates (LLR values) as a result value every cycle. In addition, the first sorter 130 calculates a position of a bubble to be newly added based on the positions of the selected bubbles (two minimum values).
  • the ECN 100 Since the bubble moves along the previously defined path, it has a simple control logic. Through this algorithm, the ECN 100 has a low complexity, and there is an effect that the number of cycles consumed in the algorithm can be reduced by about 50%.
  • VNP variable node processing
  • ENN elementary variable node
  • a plurality of elementary variable nodes (EVNs) 200 which are unit blocks, are configured to process an input check to variable (C2V) message to thereby process a variable to check (V2C) message. ) to print the message.
  • C2V input check to variable
  • V2C variable to check
  • the EVN 200 is a unit block for performing variable node processing, and the decsion is a block for calculating an estimated symbol. As a conventional algorithm, a detailed description will be omitted.
  • EVN (200) is the message length ( ) and receive a C2V message, Outputs a V2C message with a value.
  • the input memory (input U memory or input V memory) 210 reads two elements. Each element consists of an LLR (Log Likelihood Ratio) value and a Galois Field (GF) value corresponding to the corresponding LLR value.
  • LLR Log Likelihood Ratio
  • GF Galois Field
  • the input U memory 211 is a channel memory that receives and stores a channel
  • the input V memory 213 is a C2V memory that receives and stores a C2V message.
  • U CAM (Content Addressable Memory) 212 receives two GF values as inputs and outputs corresponding LLR values.
  • the input memory 210 checks the U CAM 212 to read a value that matches the value read from the input V memory 213 from the input U memory 211 .
  • the input memory 210 performs a scan operation of sequentially reading one memory from beginning to end, sequentially reading the input V memory 213 in Step 1, and sequentially reading the input U memory 211 in Step 2 come.
  • Step 1 reads the input V memory 213 in order, transmits two GF values to the input of the U CAM 212 , and outputs the corresponding LLR value if there is a GF value that matches the input U memory 211 . .
  • Step 2 reads two LLR values and two GF values from the input U memory 211 in order, and the last element ( th) reads the LLR value. Through this, four LLR values and two GF values are input to the second distributor 220 in each cycle.
  • the second divider 220 transmits the input LLR value to the adder 221 , and inputs the GF value to the second sorter 230 . In one cycle, two pairs of LLR values and GF values are input to the second aligner 230 .
  • V(i) and Vgf(i) mean the i-th LLR value and the GF value in the input V memory 213 , respectively.
  • U(j) denotes the j-th LLR value in the input U memory 211 .
  • Step 1 reads the values from the input V memory 213 in order and checks whether there is a portion in the input U memory 211 with the same GF value.
  • the input memory 210 inputs the calculated E1 and E1gf to the second aligner 230 . Since two elements are read from the input V memory 213 in one cycle, two pairs of E1 and E1gf are input to the second aligner 230 .
  • the second aligner 230 performs the process of Step 1. Repeat /2 cycles.
  • Step 2 scans the input U memory 211 in order, and an offset V is added to each U(i) while sequentially reading two from the input U memory 211 .
  • the second aligner 230 performs the process of Step 2 Repeat /2 cycles for a total Produces an output value of
  • the input memory 210 scans the input V memory 213 , which is a C2V memory, first, and inputs two values calculated in each cycle to the second aligner 230 , and when the C2V scan is completed, the channel memory The two values calculated while scanning the input U memory 211 are input to the second aligner 230 .
  • the second sorter 230 outputs the first minimum value fir_min and the second minimum value sec_min as result values at the same time and stores them in the output memory 240 . Upon completion of the scan, output values are stored in the output memory 240 .
  • the number of cycles required for EVN processing can be reduced by half.
  • the EVN algorithm described above is as follows.
  • the EVN 200 may simultaneously output the first minimum value and the second minimum value to reduce the delay time.
  • FIG. 6 is a diagram illustrating an example of an EVN operation according to an embodiment of the present invention.
  • the left figure of FIG. 6 uses a method of first scanning the channel memory with a conventional decoder. In this way, when ECN and EVN are to be performed in parallel in this way, a problem arises that a matching GF value cannot be completely found in the C2V memory because all of the C2V memories are not updated in Step 1 of EVN.
  • the decoder of the present invention uses a method of first scanning the C2V memory (input V memory 213), as shown in the right figure of FIG. Because the value is always prepared regardless of EVN, even if ECN and EVN are performed in parallel, the channel memory value matching the GF value read from the C2V memory can be found.
  • the decoder of the present invention can perform CNP and VNP simultaneously by changing the scan order, there is an effect of reducing the delay time without degrading the error correction capability through parallelization.
  • FIG. 7 is a diagram illustrating a timing diagram of a decoder according to an embodiment of the present invention
  • FIG. 8 is a diagram illustrating a comparison result of a frame error rate (FER) between a conventional decoder and a decoder of the present invention.
  • FER frame error rate
  • FIG. 7 is a timing diagram showing what function the decoder of the present invention performs in each cycle.
  • EVN is divided into Phase 1 (Step 1) and Phase 2 (Step 2), It consists of /2 cycles.
  • ECN_FB corresponds to ECNinter shown in Fig. 1
  • ECN_MERGE corresponds to ECNmerge shown in Fig. 1, It consists of /2 + 1 cycles.
  • ECN and EVN are performed in parallel, and one iteration requires 13 cycles. When the predetermined number of iterations is over, the decryption is completed.
  • the code used for the simulation is an NB-LDPC code having a 64-ary length, 160 symbols in length, and a 1/2 rate. It can be seen that the decoder of the present invention has an error correction performance that is not inferior to that of the conventional decoder.
  • FIG. 9 is a diagram illustrating an overall control flow of a decoder according to an embodiment of the present invention.
  • FIG. 9 is a flowchart of an NB-LDPC decoder in which CNP and VNP are repeatedly performed.
  • the NB-LDPC decoder of the present invention receives channel information (S100) and repeats Check Node Processing and Variable Node Processing until the number of iterations becomes 10 ((S101, S101, S102, S103).
  • CNP and VNP are divided into several ECNs and EVNs, and decoding is performed.
  • FIG. 10 is a diagram illustrating a control flow of ECN according to an embodiment of the present invention.
  • the ECN 100 receives an input message (S100), initializes the first sorter 130 (S111), and outputs the first minimum value and the second minimum value from the first sorter 130 (S112),
  • the position of a new bubble is calculated using their position (S113), and the process of adding a new bubble to the first sorter 130 using the calculated position of the new bubble is repeated (S114), and the number of iterations is The process of outputting the minimum value is repeated until the cycle becomes /2 (S115). number of cycles required It is reduced by 50% to /2.
  • FIG. 11 is a diagram illustrating a control flow of an EVN according to an embodiment of the present invention.
  • EVN 200 receives an input message (S120), scans the C2V memory (S121), adds two calculated values to the second sorter 230 (S122), and increases the number of iterations Repeat Step 1 until cycle /2 (S123).
  • the EVN 200 scans the channel memory (S124), adds two calculated values to the second sorter 230 (S125), and outputs two minimum values from the second sorter 230, (S126), the number of iterations Repeat Step 2 until cycle /2 (S127).
  • the present invention can be used in a decoder used not only in the field of memory and storage, but also in communication systems in general.
  • ECN ECN
  • 110 input memory
  • 111 input U memory
  • 112 input V memory
  • 120 first divider
  • 130 first sorter
  • 140 output memory
  • 150 candidate calculator
  • 200 EVN
  • 210 input memory
  • 220 second divider
  • 230 second aligner
  • 240 output memory.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법은 데이터 통신 시스템에 적용되는 오류정정부호 중 하나인 NB LDPC(Non-Binary Low Density Parity Check Codes)를 저지연, 저복잡으로 복호할 수 있는 하드웨어 구조를 제공하고, 한 사이클에 2개의 최솟값을 출력값으로 동시에 출력하여 복잡도를 낮추고 지연 시간을 크게 줄일 수 있다. 본 발명은 복호기에서 한 사이클에 두 개의 결과값을 처리하여 복잡도의 증가없이 지연 시간을 줄일 수 있는 효과가 있다. 본 발명은 CNP와 VNP에서 의존성이 있는 연산의 순서를 변경하면, CNP와 VNP를 동시에 진행할 수 있어 병렬화를 통해 오류 정정 능력의 저하없이 지연 시간을 줄일 수 있는 효과가 있다.

Description

비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법
본 발명은 LDPC 복호기에 관한 것으로서, 더욱 상세하게는 데이터 통신 시스템에 적용되는 오류정정부호 중 하나인 NB LDPC(Non-Binary Low Density Parity Check Codes)를 저지연, 저복잡으로 복호할 수 있는 하드웨어 구조를 제공하고, 한 사이클에 2개의 최솟값을 출력값으로 동시에 출력하여 복잡도를 낮추고 지연 시간을 크게 줄일 수 있는 비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법에 관한 것이다.
통상적으로 통신 시스템에서는 데이터의 전송 시, 전송되는 데이터를 부호화하여 전송함으로써, 전송의 안정성을 높이고 재전송을 최소화시켜 전송 효율을 향상시키고 있다. 이러한 부호화 방법 하나로 저밀도 패리티 검사(LDPC) 부호가 있다.
저밀도 패리티 검사 코드(Low Density Parity Check Codes: LDPC)는 1962년 처음으로 제안된 에러 정정코드(error correction codes)로서, 선형 블록 코드(Linear Block Code)에 속하는 전방 에러 정정 코드(forward error correction codes)의 일종이다.
비이진 저밀도 패리티 검사 코드(Non-Binary LDPC)는 오류정정부호의 하나로 데이터 통신 과정에서 발생하는 오류를 제거할 수 있는 기술 중 하나이다.
NB-LDPC 코드는 비슷한 길이를 가지는 Binary LDPC 보다 오류 정정 능력이 좋고, 사이클이 긴 패리티 검사 행렬을 생성하기 유리하여 낮은 에러 플로어를 가진다.
오류정정부호가 메모리와 통신 시스템에 사용되기 위해서는 저지연, 저복잡으로 동작하는 복호기가 요구된다.
NB-LDPC 코드 복호기는 알고리즘의 복잡도와 하드웨어의 복잡도가 높고, 복호에 많은 사이클을 요구하는 단점이 있다.
이러한 단점을 극복하기 위한 복잡도를 줄인 EMS(Extended Min-Sum) 복호기가 제안되었지만, CN Processing(CNP) 과정과 VN Processing(VNP) 과정에서 한 사이클에 최대 하나의 결과값을 출력하기 때문에 복호화 시간이 길어지는 문제점이 있었다.
참고문헌으로는, 한국 등록특허번호 제10-1657912호가 있다.
이와 같은 문제점을 해결하기 위하여, 본 발명은 데이터 통신 시스템에 적용되는 오류정정부호 중 하나인 NB LDPC(Non-Binary Low Density Parity Check Codes)를 저지연, 저복잡으로 복호할 수 있는 하드웨어 구조를 제공하고, 한 사이클에 2개의 최솟값을 출력값으로 동시에 출력하여 복잡도를 낮추고 지연 시간을 크게 줄일 수 있는 비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 특징에 따른 비이진 저밀도 패리티 검사 코드 복호기는,
단위 블럭인 ECN(Elementary Check Node)이 복수개로 구성되어 입력된 V2C(variable to check) 메시지를 처리하여 C2V(check to variable) 메시지를 출력하는 체크 노드 프로세싱(Check Node Processing); 및
단위 블록인 EVN(Elementary Variable Node)이 복수개 구성되어 입력된 C2V(check to variable) 메시지를 처리하여 V2C(variable to check) 메시지를 출력하는 변수 노드 프로세싱(Variable Node Processing)를 포함하며,
상기 체크 노드 프로세싱(CNP)과 상기 변수 노드 프로세싱(VNP)에서 한 사이클에 두 개의 결과값을 동시에 각각 출력하고, 상기 CNP와 상기 VNP를 반복적으로 진행하여 복호화를 수행하는 것을 특징으로 한다.
각각의 ECN은 입력 U 메모리와 입력 V 메모리에서 LLR(Log Likelihood Ratio) 값과 해당 LLR 값에 대응되는 갈로아 필드(Galois Field, GF)값으로 이루어진 요소를 복수개 저장한 입력 메모리;
상기 입력 U 메모리와 상기 입력 V 메모리로부터 한 번에 4쌍의 LLR 값, GF 값을 읽어오고, LLR 값을 가산기(Adder)로 전송하고, 상기 GF 값을 논리합 연산기(XOR)로 전송하는 제1 분배기; 및
상기 가산기와 상기 논리합 연산기를 거쳐서 나온 E1(LLR 값), E1gf의 한 쌍과, E2(LLR 값), E2gf의 한 쌍을 입력받고, 기저장된 4개의 LLR 값과 새로 입력된 상기 2개의 E1(LLR 값), E2(LLR 값)를 비교 연산하여 한 사이클마다 상기 6개의 버블 후보(LLR 값) 중 첫 번째 최솟값(fir_min)과 두 번째 최솟값(sec_min)을 결과값으로 동시에 출력하여 출력 메모리에 저장하는 제1 정렬기를 포함하는 것을 특징으로 한다.
각각의 EVN은 채널을 입력받아 저장한 입력 U 메모리와 C2V 메시지를 입력받아 저장한 입력 V 메모리에서 LLR(Log Likelihood Ratio) 값과 해당 LLR 값에 대응되는 갈로아 필드(Galois Field, GF)값으로 이루어진 요소를 복수개 저장한 입력 메모리;
상기 입력 U 메모리와 상기 입력 V 메모리로부터 입력된 LLR 값을 가산기(Adder)로 전송하고, 상기 GF 값을 그대로 전송하는 제2 분배기; 및
상기 가산기와 상기 논리합 연산기를 거쳐서 나온 E1(LLR 값), E1gf의 한 쌍과, E2(LLR 값), E2gf의 한 쌍을 입력받아 비교 연산하여 한 사이클마다 첫 번째 최솟값(fir_min)과 두 번째 최솟값(sec_min)을 결과값으로 동시에 출력하여 출력 메모리에 저장하는 제2 정렬기를 포함하는 것을 특징으로 한다.
본 발명의 특징에 따른 비이진 저밀도 패리티 검사 코드 복호화 방법은,
단위 블럭인 ECN(Elementary Check Node)이 복수개로 구성되어 입력된 V2C(variable to check) 메시지를 처리하여 C2V(check to variable) 메시지를 출력하는 체크 노드 프로세싱(Check Node Processing)을 수행하는 제1 단계;
단위 블록인 EVN(Elementary Variable Node)이 복수개 구성되어 입력된 C2V(check to variable) 메시지를 처리하여 V2C(variable to check) 메시지를 출력하는 변수 노드 프로세싱(Variable Node Processing)를 수행하는 제2 단계; 및
상기 제1 단계와 상기 제2 단계를 일정 횟수만큼 반복하여 복호화를 수행하는 제3 단계를 포함하는 것을 특징으로 한다.
체크 노드 프로세싱(CNP)과 상기 변수 노드 프로세싱(VNP)는 한 사이클에 첫 번째 최솟값과 두 번째 최솟값의 두 개의 결과값을 동시에 각각 출력하는 단계를 더 포함한다.
전술한 구성에 의하여, 본 발명은 복호기에서 한 사이클에 두 개의 결과값을 처리하여 복잡도의 증가없이 지연 시간을 줄일 수 있는 효과가 있다.
본 발명은 CNP와 VNP에서 의존성이 있는 연산의 순서를 변경하면, CNP와 VNP를 동시에 진행할 수 있어 병렬화를 통해 오류 정정 능력의 저하없이 지연 시간을 줄일 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 CN degree 4일 때 CNP 구조를 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 ECN(Elementary Check Node)의 구조를 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 ECN 동작의 일례를 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 VNP(Variable Node Processing) 구조를 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 EVN(Elementary Variable Node)의 구조를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 EVN 동작의 일례를 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 복호기의 타이밍 다이어그램을 나타낸 도면이다.
도 8은 종래의 복호기와 본 발명의 복호기의 FER(Frame Error Rate)을 비교한 결과를 나타낸 도면이다.
도 9는 본 발명의 실시예에 따른 복호기의 전체 제어 흐름을 나타낸 도면이다.
도 10은 본 발명의 실시예에 따른 ECN의 제어 흐름을 나타낸 도면이다.
도 11은 본 발명의 실시예에 따른 EVN의 제어 흐름을 나타낸 도면이다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
메시지 패싱 알고리즘은 일반적인 복호화 방법이며 이는 V2C(variable to check) 메시지를 처리하는 VN Processing(VNP) 과정과 C2V(check to variable) 메시지를 처리하는 CN Processing(CNP) 과정으로 나누어진다.
CNP와 VNP를 반복적으로 진행하여 복호화가 진행되며, 하드웨어 구현에 주로 사용되는 EMS(Extended Min-Sum)은 전달되는 메시지의 크기를 줄여서 복잡도를 낮춘 알고리즘이다.
도 1은 본 발명의 실시예에 따른 CN degree 4일 때 CNP 구조를 나타낸 도면이다.
유한체는 유한개의 원소를 가지는 체를 말하며, 보통 q개의 원소를 가지는 체를 GF(q)라고 정의된다. 여기서, GF는 갈로아 필드(Galois field)를 나타낸다.
예를 들어, 0과 1을 원소로 갖는 이진 체는 GF(2)로 정의된다. LDPC 코드는 패리티 검사 행렬(H)의 원소가 GF(2) 상의 원소로 구성된 경우 이진 LDPC 코드라 불리며, q가 2보다 큰 GF(q) 상의 원소로 구성된 경우 비이진 LDPC 코드라 불린다.
LDPC 코드는 복호 과정에서 행렬(H)을 시작적으로 나타낸 태너 그래프(Tanner Graph)에 의해 표현될 수 있다. 태너 그래프에서 행렬(H)의 행들은 M개의 체크 노드(Check Node, CN)로 정의되고 열들은 N개의 변수 노드(Variable Node, VN)로 정의된다.
유한체 GF(q)에서 정의되는 비이진 LDPC 코드의 변수 노드는 비트의 심볼(symbol)로 구성되기 때문에 비이진 LDPC 코드는 q개의 심볼 각각에 대한 사전 확률을 기반으로 복호된다.
비이진 LDCP 코드의 태너 그래프의 노드들 간에 교환되는 메시지는 q개의 원소 각각에 대한 확률인 q개의 LLR(Log Likelihood Ratio)을 포함하는 LLR 벡터(Log Likelihood Ratio Vector: LLRV)와 각각의 LLR과 매칭되는 원소를 나태내기 위한 GF 인덱스(GF index)로 구성된다.
전/후방 알고리즘(Forward-Backward (FB) Algorithm)은 특정 연산을 전방 연산(forward process)과 후방 연산(backward process)으로 분해하여 이를 반복적으로 수행하고 전/후방 연산의 결과를 다시 조합(merge)하는 구조로 수행된다.
체크 노드 프로세싱(Check Node Processing)는 단위 블럭인 ECN(Elementary Check Node)(100)이 복수개로 구성되어 입력된 V2C(variable to check) 메시지를 처리하여 C2V(check to variable) 메시지를 출력한다.
도 2는 본 발명의 실시예에 따른 ECN(Elementary Check Node)의 구조를 나타낸 도면이고, 도 3은 본 발명의 실시예에 따른 ECN 동작의 일례를 나타낸 도면이다.
ECN(100)은 체크 노드 프로세싱(Check Node Processing)을 수행하는 단위 블럭이다. 도 1과 같이, ECNinter와 ECNmerge는 기본적으로 수행하는 기능이 같다.
ECN(100)은 메시지 길이(
Figure PCTKR2020016696-appb-I000001
)를 가진 행렬 T를 입력받고, 반복 카운터
Figure PCTKR2020016696-appb-I000002
을 입력받으며,
Figure PCTKR2020016696-appb-I000003
값을 가진 C2V 메시지를 출력한다.
입력 메모리(입력 U 메모리(111) 또는 입력 V 메모리(112))(110)는 2개의 요소(Element)를 읽어온다. 각 요소는 LLR(Log Likelihood Ratio) 값과 해당 LLR 값에 대응되는 갈로아 필드(Galois Field, GF)값으로 이루어져 있다.
제1 분배기(120)는 입력 U 메모리(111)와 입력 V 메모리(112)로부터 한 번에 4쌍의 LLR 값, GF 값을 읽어오게 된다.
제1 분배기(120)는 입력 메모리(110)에서 읽어온 LLR 값을 가산기(Adder)(121)로 전송하고, 입력 메모리(110)에서 읽어온 GF 값을 논리합 연산기(XOR)(122)로 전송한다.
제1 정렬기(130)는 가산기(121)와 논리합 연산기(122)를 거쳐서 나온 E1(LLR 값), E1gf의 한 쌍과, E2(LLR 값), E2gf의 한 쌍을 입력받는다.
제1 정렬기(130)는 기저장된 4개의 LLR 값과 새로 입력된 2개의 E1(LLR 값), E2(LLR 값)를 비교 연산하여 한 사이클마다 6개의 버블 후보(LLR 값) 중 첫 번째 최솟값(fir_min)과 두 번째 최솟값(sec_min)을 결과값으로 동시에 출력하게 된다(Step1 extraction). 여기서, GF 값은 비교 연산에 사용되지 않고 LLR 값과 함께 이동된다.
다시 말해, 제1 정렬기(130)는 T(1,1), T(2,1), T(1,2) 값과 3개의 최대값으로 초기화하고, 제1 정렬기(130)에서 첫 번째 최소값과 두 번째 최솟값인
Figure PCTKR2020016696-appb-I000004
,
Figure PCTKR2020016696-appb-I000005
을 추출하여 출력 메모리(140)에 저장한다.
후보 계산기(150)는 첫 번째 최솟값(fir_min)과 두 번째 최솟값(sec_min)에 대응하는 위치 정보를 이용하여 다음 사이클에 입력 메모리(110)에서 가져올 요소의 위치인 fir_new, sec_new를 계산한다.
후보 계산기(150)에서 fir_new, sec_new를 계산하는 방법은 하기의 ECN 알고리즘에서 Step2 candidate calculation에 설명되어 있다.
후보 계산기(150)는 각 최솟값에 대해 가져올 다음 후보의 인덱스(index)를 계산하는데, imin = 1과 같은 경우, inew = 1, jnew = jmin + 2이고, imin = 2와 같은 경우, inew = 2, jnew = jmin + 1이고, jmin = 1과 같은 경우, inew = imin + 2, jnew = 1이고, 위의 3가지 경우가 아닌 경우, inew = imin + 1, jnew = 2가 된다.
도 3에 도시된 바와 같이, 입력 행렬 T는 입력 U를 가로축으로, 입력 V를 세로축으로 하고, 행렬의 각 요소(Element)는 해당하는 입력의 LLR 값을 더한 것이다.
예를 들어, T(i,j)이라고 하면, 입력 V의 i번째 요소의 LLR 값과 입력 U의 j번째 요소의 LLR 값을 서로 더한 것이다.
Figure PCTKR2020016696-appb-I000006
은 입력 메모리(110)와 출력 메모리(140)의 크기를 의미한다.
첫 번째 사이클에 나타난 것처럼 6개의 요소를 제1 정렬기(130)에서 초기화한다.
제1 정렬기(130)는 Step 1에서 첫 번째 최소값과 두 번째 최솟값인
Figure PCTKR2020016696-appb-I000007
,
Figure PCTKR2020016696-appb-I000008
을 출력한다.
후보 계산기(150)는 앞서 추출한 첫 번째 최솟값의 위치
Figure PCTKR2020016696-appb-I000009
, 두 번째 최솟값의 위치
Figure PCTKR2020016696-appb-I000010
를 이용해 Step 2에서 다음 사이클에 입력 메모리(110)에서 읽을 값의 위치
Figure PCTKR2020016696-appb-I000011
,
Figure PCTKR2020016696-appb-I000012
를 계산한다.
입력 메모리(110)는 다음 사이클에 입력 메모리(110)로부터 읽을 값의 위치
Figure PCTKR2020016696-appb-I000013
,
Figure PCTKR2020016696-appb-I000014
에서 값을 읽어서
Figure PCTKR2020016696-appb-I000015
Figure PCTKR2020016696-appb-I000016
을 얻고 이를 제1 정렬기(130)에 추가한다.
Step 4에서 첫 번째 사이클이라면, Sorter에서 초기화 단계에서 임시로 넣었던 최대값을 새로 초기화한다. Step 1 에서 Step 4까지
Figure PCTKR2020016696-appb-I000017
/2번 반복하면서 총
Figure PCTKR2020016696-appb-I000018
개의 출력값을 만들어낸다.
위에서 설명한 ECN 알고리즘은 다음과 같다.
Figure PCTKR2020016696-appb-I000019
ECN(100)은 새로운 버블의 위치를 계산하는 방식과 첫 번째 최솟값과 두 번째 최솟값을 동시에 출력해 지연 시간을 줄일 수 있다.
도 3에 도시된 바와 같이, ECN(100)의 3개 사이클 동안의 동작 예시이다.
첫 번째 사이클에서 T(1,1), T(2,1), T(1,2)와 3개의 최대값(maximum value) 31로 제1 정렬기(130)를 초기화한다. 그리고 그 중 2개의 최솟값인 T(1,1), T(2,1)을 출력하고 이들의 위치를 이용해 T(1,3), T(2,2)가 새롭게 제1 정렬기(130)에 추가된다.
6개의 LLR 값 중에서 2개의 최솟값 T(3,1), T(1,2)를 출력하고 이들의 위치를 이용해 T(5,1), T(1,4)가 제1 정렬기(130)에 추가된다.
제1 정렬기(130)는 총 6개의 버블 후보(LLR 값) 중에서 이 중 2개의 최솟값을 매 사이클마다 결과값으로 출력한다. 그리고 제1 정렬기(130)는 선택된 버블(2개의 최솟값)의 위치에 기반하여 새로 추가할 버블의 위치를 계산한다.
버블은 기존에 정의된 경로를 따라 이동하기 때문에 간단한 컨트롤 로직을 가진다. 이러한 알고리즘을 통해 ECN(100)은 낮은 복잡도를 가지며, 알고리즘에 소모되는 사이클의 수를 약 50% 줄일 수 있는 효과가 있다.
도 4는 본 발명의 실시예에 따른 VNP(Variable Node Processing) 구조를 나타낸 도면이고, 도 5는 본 발명의 실시예에 따른 EVN(Elementary Variable Node)의 구조를 나타낸 도면이다.
도 4에 도시된 바와 같이, 변수 노드 프로세싱(Variable Node Processing)는 단위 블록인 EVN(Elementary Variable Node)(200)이 복수개 구성되어 입력된 C2V(check to variable) 메시지를 처리하여 V2C(variable to check) 메시지를 출력한다.
EVN(200)은 변수 노드 프로세싱(Variable Node Processing)을 수행하는 단위 블록이고, Decsion은 추정된 심볼을 계산하기 위한 블록으로 종래에 존재하는 알고리즘으로 상세한 설명을 생략한다.
EVN(200)은 메시지 길이(
Figure PCTKR2020016696-appb-I000020
)를 가진 채널과 C2V 메시지를 입력받고,
Figure PCTKR2020016696-appb-I000021
값을 가진 V2C 메시지를 출력한다.
입력 메모리(입력 U 메모리 또는 입력 V 메모리)(210)는 2개의 요소를 읽어온다. 각 요소는 LLR(Log Likelihood Ratio) 값과 해당 LLR 값에 대응되는 갈로아 필드(Galois Field, GF)값으로 이루어져 있다.
입력 U 메모리(211)는 채널을 입력받아 저장하는 채널 메모리이고, 입력 V 메모리(213)는 C2V 메시지를 입력받아 저장하는 C2V 메모리이다.
U CAM(Content Addressable Memory)(212)은 2개의 GF 값을 입력으로 받아서 대응되는 LLR 값을 출력한다.
입력 메모리(210)는 입력 V 메모리(213)에서 읽어온 값과 일치하는 값을 입력 U 메모리(211)에서 읽어 오기 위해 U CAM(212)에서 확인한다.
입력 메모리(210)는 하나의 메모리를 처음부터 끝까지 순서대로 읽는 스캔 동작을 수행하고, Step 1에서 입력 V 메모리(213)을 순서대로 읽어오고, Step 2에서 입력 U 메모리(211)를 순서대로 읽어온다.
Step 1는 입력 V 메모리(213)를 순서대로 읽어서 2개의 GF 값을 U CAM(212)의 입력으로 전달하고, 입력 U 메모리(211)에 일치하는 GF 값이 있는 경우 해당하는 LLR 값을 출력한다.
Step 2는 입력 U 메모리(211)를 순서대로 2개의 LLR 값과, 2개의 GF 값을 읽어들이고, 입력 V 메모리(213)에서 마지막 요소(
Figure PCTKR2020016696-appb-I000022
번째)의 LLR 값을 읽어온다. 이를 통해 각 사이클에 4개의 LLR 값과 2개의 GF 값이 제2 분배기(220)에 입력된다.
제2 분배기(220)는 입력된 LLR 값을 가산기(Adder)(221)로 전송하고, GF 값을 제2 정렬기(230)에 입력한다. 한 사이클에 2 쌍의 LLR 값과, GF 값이 제2 정렬기(230)에 입력된다.
V(i)와 Vgf(i)는 각각 입력 V 메모리(213)에서 i번째 LLR 값과 GF 값을 의미한다.
U(j)는 입력 U 메모리(211)에서의 j번째 LLR 값을 의미한다.
Step 1는 입력 V 메모리(213)에서 값을 순서대로 읽어오면서 입력 U 메모리(211)에 GF 값이 일치하는 부분이 있는지 확인한다.
즉, 입력 메모리(210)는 입력 V 메모리(213)에서 i번째 GF 값 Vgf(i)와 같은 값이 입력 U 메모리(211)의 j번째 위치에 있는 GF 값 Ugf(j)이 있는 경우(Vgf(i) == Ugf(j)), 입력 U 메모리(211)의 j번째 위치에 있는 LLR 값인 U(j)를 V(i)와 더해준 값(E)을 제2 정렬기(230)에 입력한다. 이때, Egf는 입력 V 메모리(213)에서 i번째 GF 값 Vgf(i)가 된다(Egf = Vgf(i)).
만약, 입력 메모리(210)는 입력 V 메모리(213)에서 i번째 GF 값 Vgf(i)와 같은 값이 입력 U 메모리(211)의 j번째 위치에 있는 GF 값 Ugf(j)이 없는 경우, 입력 U 메모리(211)의
Figure PCTKR2020016696-appb-I000023
-1 번째 값인 U(
Figure PCTKR2020016696-appb-I000024
-1)을 읽어와서 offsetU를 계산하고, 계산한 offsetU와 입력 V 메모리(213)의 i번째 LLR 값 V(i)를 더해준 값(E)을 제2 정렬기(230)에 입력한다. 이때, Egf는 입력 V 메모리(213)에서 i번째 GF 값 Vgf(i)가 된다(Egf = Vgf(i)).
입력 메모리(210)는 이렇게 계산된 E1과 E1gf를 제2 정렬기(230)에 입력하게 된다. 한 사이클에 입력 V 메모리(213)에서 2개의 요소를 읽어오기 때문에 2쌍의 E1과 E1gf가 제2 정렬기(230)에 입력된다.
제2 정렬기(230)는 Step 1의 과정을
Figure PCTKR2020016696-appb-I000025
/2 사이클을 반복한다.
Step 2는 입력 U 메모리(211)를 순서대로 스캔하는데, 입력 U 메모리(211)에서 2개씩 순서대로 읽어오면서 각 U(i)에 대해서 offsetV를 더해주게 된다.
입력 U 메모리(211)의 i번째 LLR 값 U(i)와 입력 V 메모리(213)에서
Figure PCTKR2020016696-appb-I000026
-1 번째 있는 LLR(V(
Figure PCTKR2020016696-appb-I000027
-1))에 1을 더하여 계산한 offsetV를 더해준 값(E)을 제2 정렬기(230)에 입력한다. 이때, Egf는 입력 U 메모리(211)에서 i번째 GF 값 Ugf(i)가 된다(Egf = Ugf(i)).
마찬가지로 한 사이클에 입력 U 메모리(211)에서 2개의 요소를 읽어오기 때문에 2쌍의 E와 Egf가 제2 정렬기(230)에 입력되며,
Figure PCTKR2020016696-appb-I000028
+2 사이즈의 제2 정렬기(230)에서 2개의 최솟값을 동시에 출력한다. 제2 정렬기(230)는 Step 2의 과정을
Figure PCTKR2020016696-appb-I000029
/2 사이클을 반복하여 총
Figure PCTKR2020016696-appb-I000030
개의 출력값을 만들어낸다.
다시 말해, 입력 메모리(210)는 C2V 메모리인 입력 V 메모리(213)를 먼저 스캔하면서 매 사이클마다 연산된 2개의 값을 제2 정렬기(230)에 입력하고, C2V 스캔이 완료되면, 채널 메모리인 입력 U 메모리(211)를 스캔하면서 연산된 2개의 값을 제2 정렬기(230)에 입력한다. 제2 정렬기(230)는 첫 번째 최솟값(fir_min)과 두 번째 최솟값(sec_min)을 결과값으로 동시에 출력하여 출력 메모리(240)에 저장한다. 스캔을 완료하면, 총
Figure PCTKR2020016696-appb-I000031
개의 출력값을 출력 메모리(240)에 저장하게 된다.
본 발명은 한 사이클에 2개씩 처리하여 EVN 처리에 필요한 사이클의 수를 절반으로 감소할 수 있다.
위에서 설명한 EVN 알고리즘은 다음과 같다.
Figure PCTKR2020016696-appb-I000032
EVN(200)은 첫 번째 최솟값과 두 번째 최솟값을 동시에 출력해 지연 시간을 줄일 수 있다.
도 6은 본 발명의 실시예에 따른 EVN 동작의 일례를 나타낸 도면이다.
도 6의 왼쪽 그림은 종래의 복호기로 채널 메모리를 먼저 스캔하는 방식을 사용한다. 이러한 방식에서 ECN과 EVN을 병렬적으로 진행하려고 하는 경우, EVN의 Step 1에서 C2V 메모리가 모두 업데이트가 되지 않은 상태이기 때문에 C2V 메모리에서 일치하는 GF 값을 완전히 찾을 수 없는 문제점이 발생한다.
이러한 문제점을 극복하기 위하여 본 발명의 복호기는 도 6의 오른쪽 그림과 같이, C2V 메모리(입력 V 메모리(213))를 먼저 스캔하는 방식을 사용하여 채널 메모리(입력 U 메모리(211))가 ECN, EVN에 관계없이 항상 값이 준비되어 있기 때문에 ECN, EVN을 병렬적으로 진행하더라도 C2V 메모리에서 읽어온 GF 값과 일치하는 채널 메모리의 값을 찾을 수 있다.
이와 같이, 본 발명의 복호기는 스캔 순서를 변경하여 CNP와 VNP를 동시에 진행할 수 있어 병렬화를 통해 오류 정정 능력의 저하없이 지연 시간을 줄일 수 있는 효과가 있다.
도 7은 본 발명의 실시예에 따른 복호기의 타이밍 다이어그램을 나타낸 도면이고, 도 8은 종래의 복호기와 본 발명의 복호기의 FER(Frame Error Rate)을 비교한 결과를 나타낸 도면이다.
도 7은 본 발명의 복호기가 각 사이클에 어떤 기능을 수행하는지 나타낸 타이밍 다이어그램이다.
EVN은 Phase 1(Step 1), Phase 2(Step2)로 나누어져 있고,
Figure PCTKR2020016696-appb-I000033
/2 사이클로 구성된다. ECN_FB는 도 1에 도시된 ECNinter에 대응되고, ECN_MERGE는 도 1에 도시된 ECNmerge에 대응되고,
Figure PCTKR2020016696-appb-I000034
/2 + 1 사이클로 구성된다.
ECN과 EVN은 병렬적으로 수행되고, 하나의 iteration에 13개의 사이클이 필요하다. 미리 지정된 iteration 횟수가 끝나면, 복호화가 완료된다.
ECN과 EVN은 각각 한 사이클에 2개의 결과값을 출력하기 때문에 CNP와 VNP에 소모되는 사이클의 수가 약 50% 감소된다.
도 8에 도시된 바와 같이, 시뮬레이션에 사용한 코드는 64-ary, 길이 160 심볼, 1/2 rate을 가지는 NB-LDPC 코드이다. 본 발명의 복호기는 종래의 복호기에 비해 떨어지지 않는 오류 정정 성능을 가지는 것을 볼 수 있다.
도 9는 본 발명의 실시예에 따른 복호기의 전체 제어 흐름을 나타낸 도면이다.
도 9는 CNP와 VNP가 반복적으로 진행되는 NB-LDPC 복호기의 플로우 차트이다.
본 발명의 NB-LDPC 복호기는 채널 정보를 입력받아(S100), 체크 노드 프로세싱(Check Node Processing)와 변수 노드 프로세싱(Variable Node Processing)을 iteration의 횟수가 10이 될 때까지 반복한다((S101, S102, S103).
CNP와 VNP는 여러 개의 ECN과 EVN으로 나누어져 복호화가 진행된다.
도 10은 본 발명의 실시예에 따른 ECN의 제어 흐름을 나타낸 도면이다.
ECN(100)은 입력 메시지를 입력받고(S100), 제1 정렬기(130)를 초기화하고(S111), 제1 정렬기(130)에서 첫 번째 최솟값과 두 번째 최솟값을 출력하고(S112), 이들의 위치를 이용해 새로운 버블의 위치를 계산하고(S113), 계산한 새로운 버블의 위치를 이용해 새로운 버블을 제1 정렬기(130)에 추가하는 과정을 반복하며(S114), iteration의 횟수가
Figure PCTKR2020016696-appb-I000035
/2 사이클이 될 때까지 최솟값 출력 과정을 반복한다(S115). 필요한 사이클의 수가
Figure PCTKR2020016696-appb-I000036
/2로 50% 정도 감소한다.
도 11은 본 발명의 실시예에 따른 EVN의 제어 흐름을 나타낸 도면이다.
EVN(200)은 입력 메시지를 입력받고(S120), C2V 메모리를 스캔하는 과정(S121)과, 제2 정렬기(230)에 연산된 값 2개를 추가하고(S122), iteration의 횟수가
Figure PCTKR2020016696-appb-I000037
/2 사이클이 될 때까지 Step 1 과정을 반복한다(S123).
EVN(200)은 채널 메모리를 스캔하는 과정(S124)과, 제2 정렬기(230)에 연산된 값 2개를 추가하고(S125), 제2 정렬기(230)에서 2개의 최솟값을 출력하며(S126), iteration의 횟수가
Figure PCTKR2020016696-appb-I000038
/2 사이클이 될 때까지 Step 2 과정을 반복한다(S127).
본 발명은 메모리 및 스토리지 분야 뿐만 아니라 통신 시스템 전반에 사용되는 복호기에 사용될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
도면에서 100: ECN, 110: 입력 메모리, 111: 입력 U 메모리, 112: 입력 V 메모리, 120: 제1 분배기, 130: 제1 정렬기, 140: 출력 메모리, 150: 후보 계산기, 200: EVN, 210: 입력 메모리, 220: 제2 분배기, 230: 제2 정렬기, 240: 출력 메모리를 의미할 수 있다.

Claims (12)

  1. 단위 블럭인 ECN(Elementary Check Node)이 복수개로 구성되어 입력된 V2C(variable to check) 메시지를 처리하여 C2V(check to variable) 메시지를 출력하는 체크 노드 프로세싱(Check Node Processing); 및
    단위 블록인 EVN(Elementary Variable Node)이 복수개 구성되어 입력된 C2V(check to variable) 메시지를 처리하여 V2C(variable to check) 메시지를 출력하는 변수 노드 프로세싱(Variable Node Processing)를 포함하며,
    상기 체크 노드 프로세싱(CNP)과 상기 변수 노드 프로세싱(VNP)에서 한 사이클에 두 개의 결과값을 동시에 각각 출력하고, 상기 CNP와 상기 VNP를 반복적으로 진행하여 복호화를 수행하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호기.
  2. 제1항에 있어서,
    상기 각각의 ECN은 입력 U 메모리와 입력 V 메모리에서 LLR(Log Likelihood Ratio) 값과 해당 LLR 값에 대응되는 갈로아 필드(Galois Field, GF)값으로 이루어진 요소를 복수개 저장한 입력 메모리;
    상기 입력 U 메모리와 상기 입력 V 메모리로부터 한 번에 4쌍의 LLR 값, GF 값을 읽어오고, LLR 값을 가산기(Adder)로 전송하고, 상기 GF 값을 논리합 연산기(XOR)로 전송하는 제1 분배기; 및
    상기 가산기와 상기 논리합 연산기를 거쳐서 나온 E1(LLR 값), E1gf의 한 쌍과, E2(LLR 값), E2gf의 한 쌍을 입력받고, 기저장된 4개의 LLR 값과 새로 입력된 상기 2개의 E1(LLR 값), E2(LLR 값)를 비교 연산하여 한 사이클마다 상기 6개의 버블 후보(LLR 값) 중 첫 번째 최솟값(fir_min)과 두 번째 최솟값(sec_min)을 결과값으로 동시에 출력하여 출력 메모리에 저장하는 제1 정렬기를 포함하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호기.
  3. 제2항에 있어서,
    상기 첫 번째 최솟값의 위치
    Figure PCTKR2020016696-appb-I000039
    , 두 번째 최솟값의 위치
    Figure PCTKR2020016696-appb-I000040
    를 이용해 다음 사이클에 다음 사이클에 상기 입력 메모리에서 읽을 값의 위치
    Figure PCTKR2020016696-appb-I000041
    ,
    Figure PCTKR2020016696-appb-I000042
    를 계산하는 후보 계산기를 더 포함하며,
    상기 입력 메모리는 다음 사이클에 상기 입력 메모리로부터 읽을 값의 위치
    Figure PCTKR2020016696-appb-I000043
    ,
    Figure PCTKR2020016696-appb-I000044
    에서 값을 읽어서
    Figure PCTKR2020016696-appb-I000045
    Figure PCTKR2020016696-appb-I000046
    을 얻고 이를 상기 제1 정렬기에 추가하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호기.
  4. 제1항에 있어서,
    상기 각각의 EVN은 채널을 입력받아 저장한 입력 U 메모리와 C2V 메시지를 입력받아 저장한 입력 V 메모리에서 LLR(Log Likelihood Ratio) 값과 해당 LLR 값에 대응되는 갈로아 필드(Galois Field, GF)값으로 이루어진 요소를 복수개 저장한 입력 메모리;
    상기 입력 U 메모리와 상기 입력 V 메모리로부터 입력된 LLR 값을 가산기(Adder)로 전송하고, 상기 GF 값을 그대로 전송하는 제2 분배기; 및
    상기 가산기와 상기 논리합 연산기를 거쳐서 나온 E1(LLR 값), E1gf의 한 쌍과, E2(LLR 값), E2gf의 한 쌍을 입력받아 비교 연산하여 한 사이클마다 첫 번째 최솟값(fir_min)과 두 번째 최솟값(sec_min)을 결과값으로 동시에 출력하여 출력 메모리에 저장하는 제2 정렬기를 포함하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호기.
  5. 제4항에 있어서,
    상기 입력 메모리는 상기 C2V 메모리인 입력 V 메모리를 스캔하면서 매 사이클마다 연산된 2개의 제1 값을 상기 제2 정렬기에 입력하고, 상기 채널 메모리인 입력 U 메모리를 스캔하면서 연산된 2개의 제2 값을 상기 제2 Sorter에 입력하며, 상기 채널 메모리인 입력 U 메모리의 스캔보다 상기 C2V 메모리인 입력 V 메모리의 스캔을 먼저 수행하여 상기 체크 노드 프로세싱(CNP)과 상기 변수 노드 프로세싱(VNP)를 병렬화하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호기.
  6. 제5항에 있어서,
    상기 입력 메모리는 상기 입력 V 메모리에서 값을 순서대로 읽어오고, 상기 입력 V 메모리에서 i번째 GF 값 Vgf(i)와 같은 값이 상기 입력 U 메모리의 j번째 위치에 있는 GF 값 Ugf(j)이 있는 경우(Vgf(i) == Ugf(j)), 상기 입력 U 메모리의 j번째 위치에 있는 LLR 값 U(j)를 상기 입력 V 메모리의 i번쩨 위치에 있는 LLR 값 V(i)와 더해준 값(E)을 상기 제2 정렬기에 입력하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호기.
  7. 제4항에 있어서,
    상기 입력 메모리는 상기 입력 V 메모리에서 값을 순서대로 읽어오고, 상기 입력 V 메모리에서 i번째 GF 값 Vgf(i)와 같은 값이 상기 입력 U 메모리의 j번째 위치에 있는 GF 값 Ugf(j)이 없는 경우, 상기 입력 U 메모리의
    Figure PCTKR2020016696-appb-I000047
    -1 번째 값인 U(
    Figure PCTKR2020016696-appb-I000048
    -1)을 읽어와서 offsetU를 계산하고, 상기 offsetU와 상기 입력 V 메모리의 i번째 LLR 값 V(i)를 더해준 값(E)을 상기 제2 정렬기에 입력하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호기.
  8. 제4항에 있어서,
    상기 입력 메모리는 상기 입력 U 메모리에서 값을 순서대로 읽어오고, 상기 입력 U 메모리의 i번째 LLR 값 U(i)와 상기 입력 V 메모리에서
    Figure PCTKR2020016696-appb-I000049
    -1 번째 있는 LLR(V(
    Figure PCTKR2020016696-appb-I000050
    -1))에 1을 더하여 계산한 offsetV를 더해준 값(E)을 상기 제2 정렬기에 입력하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호기.
  9. 단위 블럭인 ECN(Elementary Check Node)이 복수개로 구성되어 입력된 V2C(variable to check) 메시지를 처리하여 C2V(check to variable) 메시지를 출력하는 체크 노드 프로세싱(Check Node Processing)을 수행하는 제1 단계;
    단위 블록인 EVN(Elementary Variable Node)이 복수개 구성되어 입력된 C2V(check to variable) 메시지를 처리하여 V2C(variable to check) 메시지를 출력하는 변수 노드 프로세싱(Variable Node Processing)를 수행하는 제2 단계; 및
    상기 제1 단계와 상기 제2 단계를 일정 횟수만큼 반복하여 복호화를 수행하는 제3 단계를 포함하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호화 방법.
  10. 제9항에 있어서,
    상기 체크 노드 프로세싱(CNP)과 상기 변수 노드 프로세싱(VNP)는 한 사이클에 첫 번째 최솟값과 두 번째 최솟값의 두 개의 결과값을 동시에 각각 출력하는 단계를 더 포함하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호화 방법.
  11. 제9항에 있어서,
    상기 체크 노드 프로세싱(Check Node Processing)을 수행하는 제1 단계는,
    입력 U 메모리와 입력 V 메모리에서 LLR(Log Likelihood Ratio) 값과 해당 LLR 값에 대응되는 갈로아 필드(Galois Field, GF)값으로 이루어진 요소를 복수개 저장한 입력 메모리로부터 E1(LLR 값), E1gf의 한 쌍과, E2(LLR 값), E2gf의 한 쌍을 입력받고, 기저장된 4개의 LLR 값과 새로 입력된 상기 2개의 E1(LLR 값), E2(LLR 값)를 비교 연산하여 한 사이클마다 상기 6개의 버블 후보(LLR 값) 중 첫 번째 최솟값(fir_min)과 두 번째 최솟값(sec_min)을 결과값으로 동시에 출력하여 출력 메모리에 저장하는 단계;
    상기 첫 번째 최솟값의 위치
    Figure PCTKR2020016696-appb-I000051
    , 두 번째 최솟값의 위치
    Figure PCTKR2020016696-appb-I000052
    를 이용해 다음 사이클에 다음 사이클에 상기 입력 메모리에서 읽을 값의 위치
    Figure PCTKR2020016696-appb-I000053
    ,
    Figure PCTKR2020016696-appb-I000054
    를 계산하는 단계; 및
    상기 입력 메모리는 상기 다음 사이클에 상기 입력 메모리로부터 읽을 값의 위치
    Figure PCTKR2020016696-appb-I000055
    ,
    Figure PCTKR2020016696-appb-I000056
    에서 값을 읽어서
    Figure PCTKR2020016696-appb-I000057
    )과
    Figure PCTKR2020016696-appb-I000058
    을 얻고 이를 상기 제1 정렬기에 추가하는 단계를 더 포함하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호화 방법.
  12. 제9항에 있어서,
    상기 변수 노드 프로세싱(Variable Node Processing)를 수행하는 제2 단계는,
    상기 각각의 EVN은 채널을 입력받아 저장한 입력 U 메모리와 C2V 메시지를 입력받아 저장한 입력 V 메모리에서 LLR(Log Likelihood Ratio) 값과 해당 LLR 값에 대응되는 갈로아 필드(Galois Field, GF)값으로 이루어진 요소를 복수개 저장한 입력 메모리로부터 E1(LLR 값), E1gf의 한 쌍과, E2(LLR 값), E2gf의 한 쌍을 입력받아 비교 연산하여 한 사이클마다 첫 번째 최솟값(fir_min)과 두 번째 최솟값(sec_min)을 결과값으로 동시에 출력하여 출력 메모리에 저장하는 단계; 및
    상기 입력 메모리는 상기 입력 V 메모리를 스캔하면서 매 사이클마다 연산된 2개의 제1 값을 제2 정렬기에 입력하고, 상기 입력 U 메모리를 스캔하면서 연산된 2개의 제2 값을 상기 제2 정렬기에 입력하며, 상기 입력 U 메모리의 스캔보다 상기 입력 V 메모리의 스캔을 먼저 수행하여 상기 체크 노드 프로세싱(CNP)과 상기 변수 노드 프로세싱(VNP)를 병렬화하는 단계를 더 포함하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 복호화 방법.
PCT/KR2020/016696 2020-11-11 2020-11-24 비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법 WO2022102843A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200150417A KR102476160B1 (ko) 2020-11-11 2020-11-11 비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법
KR10-2020-0150417 2020-11-11

Publications (1)

Publication Number Publication Date
WO2022102843A1 true WO2022102843A1 (ko) 2022-05-19

Family

ID=81602429

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/016696 WO2022102843A1 (ko) 2020-11-11 2020-11-24 비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법

Country Status (2)

Country Link
KR (1) KR102476160B1 (ko)
WO (1) WO2022102843A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014127129A1 (en) * 2013-02-13 2014-08-21 Qualcomm Incorporated Ldpc design using quasi-cyclic constructions and puncturing for high rate, high parallelism, and low error floor
KR20150033863A (ko) * 2013-09-25 2015-04-02 삼성전자주식회사 비이진 ldpc 부호를 사용하는 수신기에서 데이터를 복호하는 방법 및 장치
KR20150137430A (ko) * 2014-05-29 2015-12-09 삼성전자주식회사 통신 시스템에서 비-이진 ldpc 부호를 복호화하는 방법 및 장치
KR20180133727A (ko) * 2017-06-07 2018-12-17 한국전자통신연구원 이진 로그를 사용하는 저밀도 패리티 검사 복호기 및 그것의 복호 방법
KR102092634B1 (ko) * 2018-10-12 2020-04-23 고려대학교 산학협력단 Ldpc 부호 복호기 및 복호 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101657912B1 (ko) 2015-11-23 2016-09-19 충남대학교산학협력단 비이진 저밀도 패리티 검사 코드의 복호화 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014127129A1 (en) * 2013-02-13 2014-08-21 Qualcomm Incorporated Ldpc design using quasi-cyclic constructions and puncturing for high rate, high parallelism, and low error floor
KR20150033863A (ko) * 2013-09-25 2015-04-02 삼성전자주식회사 비이진 ldpc 부호를 사용하는 수신기에서 데이터를 복호하는 방법 및 장치
KR20150137430A (ko) * 2014-05-29 2015-12-09 삼성전자주식회사 통신 시스템에서 비-이진 ldpc 부호를 복호화하는 방법 및 장치
KR20180133727A (ko) * 2017-06-07 2018-12-17 한국전자통신연구원 이진 로그를 사용하는 저밀도 패리티 검사 복호기 및 그것의 복호 방법
KR102092634B1 (ko) * 2018-10-12 2020-04-23 고려대학교 산학협력단 Ldpc 부호 복호기 및 복호 방법

Also Published As

Publication number Publication date
KR102476160B1 (ko) 2022-12-08
KR20220064187A (ko) 2022-05-18

Similar Documents

Publication Publication Date Title
WO2011142570A2 (en) Apparatus and method for layered decoding in a communication system using low-density partiy-check codes
WO2014092502A1 (en) Encoding method and apparatus using crc code and polar
WO2009110722A2 (en) Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes
CN108352846B (zh) 用于低误差底限状况的ldpc后处理器架构及方法
EP1118159B1 (en) Turbo product code decoder
Truong et al. A VLSI design for a trace-back Viterbi decoder
WO2011139133A2 (en) Method and apparatus for channel coding and decoding in a communication system using a low-density parity-check code
WO2015012572A1 (en) Apparatus and method for receiving signal in communication system supporting low density parity check code
US6865710B2 (en) Butterfly processor for telecommunications
WO2017213409A1 (en) Channel decoding method and apparatus using structured priori information of preamble
WO2010068017A2 (en) Contention-free parallel processing multimode ldpc decoder
Barg et al. On the complexity of minimum distance decoding of long linear codes
KR20080011631A (ko) 디코딩 방법 및 디코더
WO2022102843A1 (ko) 비이진 저밀도 패리티 검사 코드 복호기 및 이를 이용한 복호화 방법
Sheikh et al. On low-complexity decoding of product codes for high-throughput fiber-optic systems
US7020214B2 (en) Method and apparatus for path metric processing in telecommunications systems
WO2013015548A2 (ko) Ldpc 부호화, 복호화 방법 및 그 방법을 이용하는 장치
Xie et al. Reduced-complexity key equation solvers for generalized integrated interleaved BCH decoders
US20100269020A1 (en) Ldpc decoder
KR20200067963A (ko) 신드롬 정보를 이용하는 메시지-전달에 기초한 복호기와 이에 관련된 방법들
Petrovic et al. Cryptanalysis of the A5/2 Algorithm
CN110380735B (zh) 一种基于单指令多数据流的软件实现qc-ldpc译码方法
CN109245775B (zh) 一种译码器及其实现译码的方法
WO2018203661A1 (ko) 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
CN111541457A (zh) 一种低时延低复杂度极化码串行抵消列表译码方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20961713

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20961713

Country of ref document: EP

Kind code of ref document: A1