KR20120096627A - Ldpc decoder for mobile wimax - Google Patents

Ldpc decoder for mobile wimax Download PDF

Info

Publication number
KR20120096627A
KR20120096627A KR1020110015815A KR20110015815A KR20120096627A KR 20120096627 A KR20120096627 A KR 20120096627A KR 1020110015815 A KR1020110015815 A KR 1020110015815A KR 20110015815 A KR20110015815 A KR 20110015815A KR 20120096627 A KR20120096627 A KR 20120096627A
Authority
KR
South Korea
Prior art keywords
value
memory
parity check
matrix
minimum
Prior art date
Application number
KR1020110015815A
Other languages
Korean (ko)
Other versions
KR101206137B1 (en
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 금오공과대학교 산학협력단
Priority to KR1020110015815A priority Critical patent/KR101206137B1/en
Publication of KR20120096627A publication Critical patent/KR20120096627A/en
Application granted granted Critical
Publication of KR101206137B1 publication Critical patent/KR101206137B1/en

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/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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
    • H03M13/6505Memory efficient implementations
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)

Landscapes

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

Abstract

PURPOSE: An LDPC(Low Density Parity Check) decoder for a mobile WI-MAX(Worldwide Interoperability for Microwave Access) is provided to reduce the number of clocks which decodes a single layer by eliminating an inserted stall. CONSTITUTION: An LDPC decoder(10) for a mobile Wi-Max includes a first memory(12) which stores a determination variable value and a second memory(11) which stores a check node value. The LDPC decoder includes a parity check matrix storage(131) which stores information about a basic parity check matrix supporting a code rate defined by IEEE(Institute of Electrical and Electronics Engineers) 802.16e standard. The LDPC decoder includes a cycle shift value generation unit(14) which generates a cycle shift value of a parity check matrix about a plurality of action modes according to a block length and a code rate. The LDPC decoder includes a substitution unit(15) which cyclically shifts data decoded according to the parity check matrix about a plurality of action modes. The LDPC decoder includes a decoding function unit(16) which performs decoding calculation.

Description

모바일 와이맥스용 LDPC 복호기{LDPC DECODER FOR MOBILE WiMAX}LDPC decoder for mobile WiMAX {LDPC DECODER FOR MOBILE WiMAX}

본 발명은, LDPC(Low Density Parity Check) 복호기에 관한 것으로, 더욱 상세하게는 모바일 와이맥스(WiMAX) 표준인 IEEE 802.16e에 따른 LDPC 부호어를 효율적으로 복호화할 수 있는 모바일 와이맥스용 LDPC 복호기에 관한 것이다.
The present invention relates to a low density parity check (LDPC) decoder, and more particularly, to an LDPC decoder for mobile WiMAX capable of efficiently decoding an LDPC codeword according to IEEE 802.16e, which is a mobile WiMAX standard. .

일반적으로, 와이맥스(Worldwide Interoperability for Microwave Access; WiMAX)는 점대점 연결에서 완전한 휴대형 접근에 이르기까지 다양한 방식으로 먼 거리를 걸쳐 무선으로 자료를 제공하는 것을 목표로 하는 전자 통신 기술이다. WirelessMAN이라고도 불리는 IEEE 802.16 표준에 기반을 두고 있다. "와이맥스"라는 이름은 표준의 상호 운용성과 순응을 제고시키기 위해 와이맥스 포럼이 2001년 6월에 만든 것이다. 이 포럼은 와이맥스를 "케이블, DSL의 대안으로서 라스트 마일(last mile)의 무선 광역 접근 전달을 가능하게 하는 표준 기반의 기술"로 설명하고 있다. 특히, IEEE 802.16의 개정판인 IEEE 802.16e는 이동성을 지원하므로 모바일 와이맥스라 불리고 있다.In general, Worldwide Interoperability for Microwave Access (WiMAX) is an electronic communication technology that aims to provide data over long distances in a variety of ways, from point-to-point connections to fully portable access. It is based on the IEEE 802.16 standard, also called WirelessMAN. The name "WiMAX" was created in June 2001 by the WiMAX Forum to promote interoperability and compliance of standards. The forum describes WiMAX as "a standards-based technology that enables the delivery of last-mile wireless wide-area access as an alternative to cable and DSL." In particular, IEEE 802.16e, a revised version of IEEE 802.16, is called mobile WiMAX because it supports mobility.

이러한 모바일 와이맥스의 표준인 IEEE 802.16e에 따르면, 채널부호 방식의 옵션으로 LDPC 부호가 지정되어 있으며, IEEE 802.16e의 LDPC 부호는 i×j 크기의 패리티 검사 행렬 H로 정의되고 있다.According to the IEEE 802.16e standard of the mobile WiMAX, the LDPC code is designated as an option of the channel coding scheme, and the LDPC code of the IEEE 802.16e is defined by the parity check matrix H having an i × j size.

당 기술분야에서는 이러한 모바일 와이맥스의 표준인 IEEE 802.16e에서 지정하고 있는 LDPC 부호를 효율적으로 복호화할 수 있는 기술이 요구되고 있다.
There is a need in the art for a technology capable of efficiently decoding the LDPC code specified in the IEEE 802.16e standard of the mobile WiMAX.

본 발명은, 모바일 와이맥스의 표준인 IEEE 802.16e에서 지정하고 있는 LDPC 부호를 효율적으로 복호화할 수 있는 모바일 와이맥스용 LDPC 복호기를 제공하는 것을 해결하고자 하는 기술적 과제로 한다.
An object of the present invention is to provide an LDPC decoder for mobile WiMAX capable of efficiently decoding an LDPC code specified by IEEE 802.16e, which is a standard for mobile WiMAX.

상기 기술적 과제를 해결하기 위한 수단으로서, 본 발명은,As a means for solving the above technical problem, the present invention,

IEEE 802.16e 표준에 따른 LDPC 부호화 데이터를 복호화하는 LDPC 복호기에 있어서, In the LDPC decoder for decoding LDPC coded data according to the IEEE 802.16e standard,

결정변수값을 저장하는 제1 메모리;A first memory for storing a decision variable value;

검사노드값을 저장하는 제2 메모리;A second memory for storing a test node value;

IEEE 802.16e 표준에 정의된 부호율을 지원하는 기본 패리티 검사 행렬에 대한 정보를 저장하는 패리티 검사 행렬 저장부;A parity check matrix storage unit for storing information about a basic parity check matrix supporting a code rate defined in the IEEE 802.16e standard;

상기 기본 패리티 검사 행렬을 사용하여, IEEE 802.16e 표준에 의해 정의되는 블록길이 및 부호율에 따른 복수의 동작모드에 대한 패리티 검사 행렬의 순환이동값을 생성하는 순환이동값 생성부;A cyclic shift value generator for generating a cyclic shift value of the parity check matrix for a plurality of operation modes according to a block length and a code rate defined by the IEEE 802.16e standard using the basic parity check matrix;

상기 복수의 동작모드에 대한 패리티 검사 행렬에 따라 복호화되는 데이터를 순환이동시키는 치환부;A replacement unit for circularly moving the decoded data according to the parity check matrix for the plurality of operation modes;

상기 복수의 레이어 각각의 부행렬에 따른 상기 결정변수값 및 검사노드값을 이용하여 복호 연산을 수행하는 복호 기능 유닛을A decoding function unit for performing a decoding operation using the decision variable value and the check node value according to the sub-matrix of each of the plurality of layers;

포함하는 모바일 와이맥스용 LDPC 복호기를 포함할 수 있다.
It may include an LDPC decoder for mobile WiMAX.

본 발명의 일실시형태에서, 상기 제2 메모리는, 상기 레이어의 영행렬을 제외한 유효 부행렬의 갱신 후 최소값/준최소값의 부호를 나타내는 하나의 비트와 및 갱신 후 최소값/준최소값 여부를 나타내는 하나의 비트를 포함하는 두 비트를 저장하는 메모리와, 상기 레이어에 포함된 부행렬의 최소값 및 준최소값을 저장하는 메모리를 포함할 수 있다.
In one embodiment of the present invention, the second memory includes one bit indicating a sign of a minimum value / minimum value after the update of the effective sub-matrix except for the zero matrix of the layer, and one indicating whether the minimum / min minimum value after the update is performed. And a memory for storing two bits including a bit and a memory for storing a minimum value and a quasi minimum value of a sub-matrix included in the layer.

본 발명의 일실시형태에서, 상기 패리터 검사 행렬 저장부는, 상기 기본 패리티 검사 행렬에서 영 행렬을 제외한 부행렬들의 위치 정보 및 순환이동 값을 저장할 수 있다.
In one embodiment of the present invention, the parity check matrix storage unit may store the position information and the cyclic shift value of the sub-matrix except the zero matrix in the basic parity check matrix.

본 발명의 일실시형태에서, 상기 제1 메모리부 및 제2 메모리부는, 읽기 동작 및 쓰기 동작이 동시에 수행되는 듀얼 포트 메모리일 수 있다.In one embodiment of the present invention, the first memory unit and the second memory unit may be a dual port memory in which a read operation and a write operation are simultaneously performed.

이 실시형태에서, 상기 제1 메모리부 및 제2 메모리부는, 상기 읽기 동작 및 쓰기 동작이 레이어 단위로 지연되어 각각 순차적으로 이루어지며, 읽기 동작 및 쓰기 동작의 억세스 중복을 방지하기 위해 레이어 내 부행렬의 순서를 재정렬하여 어드레싱될 수 있다.In this embodiment, each of the first memory unit and the second memory unit is sequentially performed with the read operation and the write operation delayed in units of layers, and in order to prevent duplication of access of the read operation and the write operation. Can be addressed by rearranging the order of

이 실시형태는, 읽기 동작 및 쓰기 동작이 중복되는 변수에 대해 상기 제2 메모리부 대신 상기 치환부에 해당 데이터를 입력할 수 있다.
In this embodiment, corresponding data can be input to the replacement unit instead of the second memory unit for a variable in which a read operation and a write operation are duplicated.

본 발명의 일실시형태에 있어서, 상기 복호 기능 유닛은, 상기 검사노드값와 상기 결정변수값을 뺄셈 연산하여 출력하는 뺄셈기; 상기 뺄셈기의 출력을 부호와 크기로 분리하는 제1 수체계 변환기; 상기 제1 수체계 변환기에서 분리된 부호를 순차적으로 곱셈하는 XOR 논리 연산부; 상기 제1 수체계 변환기에서 분리된 크기를 순차적으로 입력받아 최소값 및 준최소값을 검출하는 최소값 검출부; 상기 뺄셈기의 출력을 순차적으로 저장하고 지연 출력하는 선입선출 메모리부; 상기 선입선출 메모리부의 출력을 부호와 크기로 분리하는 제2 수체계 변환기; 상기 제2 수체계 변환기에서 분리된 크기와 상기 최소값을 비교하는 비교기; 상기 비교기의 비교결과, 상기 제2 수체계 변환기에서 분리된 크기와 상기 최소값이 동일하면 상기 준최소값을 새로운 검사노드값의 크기로 갱신 출력하고, 상기 제2 수체계 변환기에서 분리된 크기와 상기 최소값이 상이하면 상기 최소값을 새로운 검사노드값의 크기로 갱신 출력하는 먹스; 상기 먹스의 출력을 크기로 하고 상기 XOR 논리 연산부의 곱셈 결과를 부호로 하는 값을 2의 보수 수체계 변환하여 출력하는 제3 수체계 변환기; 및 상기 제3 수체계 변환기의 출력과 상기 선입선출 메모리부의 출력을 합산하여 새로운 결정변수값을 출력하는 덧셈 연산부를 포함할 수 있다.
In one embodiment of the present invention, the decoding function unit includes: a subtractor for subtracting and outputting the check node value and the decision variable value; A first number system converter that separates the output of the subtractor into a sign and a magnitude; An XOR logic operator that sequentially multiplies the separated codes by the first number system converter; A minimum value detector configured to sequentially receive the sizes separated by the first number system converter and detect minimum and quasi minimum values; A first-in, first-out memory unit that sequentially stores and outputs the output of the subtractor; A second number system converter that separates an output of the first-in, first-out memory unit into a code and a size; A comparator for comparing the minimum value with the magnitude separated in the second water system transducer; As a result of the comparison of the comparator, if the size separated from the second number system converter is equal to the minimum value, the quasi minimum value is updated and output to the size of a new test node value, and the size and the minimum value separated from the second number system converter are output. If different, mux to update the minimum value to the size of the new test node value; A third number system converter for converting the output of the mux to a magnitude and converting a value of a multiplication result of the XOR logic operation unit as a sign to a two's complement number system; And an addition operation unit configured to add the output of the third numerical system converter and the output of the first-in first-out memory unit to output a new decision variable value.

본 발명에 따르면, 검사노드 메모리의 용량을 현저히 감소시킬 수 있다.According to the present invention, the capacity of the test node memory can be significantly reduced.

또한, 본 발명에 따르면, 레이어 간의 메모리 쓰기/읽기 과정에서 데이터 해저드가 자주 발생하게 되어 삽입되는 스톨을 제거할 수 있으며, 그에 따라 하나의 레이어를 복호하는 클록 수가 감소되어 동작속도를 향상시킬 수 있다.In addition, according to the present invention, data hazards are frequently generated during memory writing / reading between layers, thereby eliminating stalls that are inserted. Accordingly, the number of clocks decoding one layer can be reduced, thereby improving operation speed. .

또한, 본 발명에 따르면, 패리티 검사 행렬에 포함된 영행렬을 제외하고 기본행렬을 저장하므로 하드웨어를 최소화 할 수 있다.
According to the present invention, since the base matrix is stored except for the zero matrix included in the parity check matrix, hardware can be minimized.

도 1은 IEEE 802.16e의 부호율에 따른 패리티 검사 행렬의 예들을 도시한 도면이다.
도 2의 (a)는 패리티 검사 행렬(PCM)의 일례를 도시한 도면이며, (b)는 (a)의 패리티 검사 행렬에 따른 태너 그래프(Tanner graph) 상의 변수노드(variable node)와 검사노드(check node) 사이에서 반복적인 메시지 전달과정을 도시한 도면이다.
도 3은 태너 그래프 상에서 수행되는 LDPC 부호의 복호과정에서 반복부호로 등가된 변수노드 연산을 도시한 도면이다.
도 4는 태너 그래프 상에서 수행되는 LDPC 부호의 복호과정에서 단일 패리티 검사 부호로 등가된 검사노드 연산을 설명하는 도면이다.
도 5는 본 발명의 일실시형태에 따른 모바일 와이맥스용 LDPC 복호기의 블록 구성도이다.
도 6의 (a)는 종래의 LDPC 복호기에서 검사노드 갱신값의 메모리 저장방식ㅇ을 도시한 도면이며, (b)는 본 발명의 LDPC 복호기에서 검사노드 갱신값의 메모리 저장방식을 도시한 도면이다.
도 7은 본 발명에 따른 LDPC 복호기의 검사노드 메모리 내 저장되어 있는 부호 정보와 최솟값/준최소값 여부 정보를 이용하여 검사노드값을 생성하는 회로를 도시한 블록도이다.
도 8은 IEEE 802.16e 표준에 정의된 6가지 부호율에 대한 종래의 검사노드 메모리와 제안하는 검사노드 메모리의 용량을 비교한 도면이다.
도 9는 LDPC 복호기의 레이어 간 메모리 어드레싱 타이밍도로서, (a)는 데이터 해저드가 발생하는 예를 도시하며, (b)는 데이터 해저드를 억제하기 위해 스톨(stall)을 사용한 종래 기술을 도시하며, (c)는 본 발명에 따라 재정렬 기법을 적용한 예를 도시한다.
도 10은 본 발명의 LDPC 복호기의 메모리 제정렬(reordering) 및 결정변수 메모리의 억세스(access) 감소 방법을 도시한 도면이다.
도 11은 본 발명에 따른 복호 기능 유닛(Decoding Function Unit: DFU)의 구조를 도시한 블록 구성도이다.
도 12는 본 발명의 LDPC 복호기에서 복호 기능 유닛(DFU) 연산의 동작 타이밍의 예를 도시한 타이밍도이다.
도 13은 도 11에 도시된 복호 기능 유닛에 적용되는 수체계 변환기의 구체적인 구조를 도시한 회로도이다.
도 14는 도 11에 도시된 복호 기능 유닛에 적용되는 수체계 변환기의 구체적인 구조를 도시한 회로도이다.
도 15는 도 11에 도시된 복호 기능 유닛에 적용되는 최솟값 검출기의 구체적인 구조를 도시한 회로도이다.
도 16의 (a)는 종래의 패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM)) 저장 기법을 도시한 도면이며, (b)는 본 발명에 따른 패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM)) 저장 기법을 도시한 도면이다.
도 17은 본 발명의 LDPC 복호기에 적용되는 패리티 검사행렬의 순환이동값 생성부의 블록 구성도이다.
1 is a diagram illustrating examples of a parity check matrix according to a code rate of IEEE 802.16e.
FIG. 2A is a diagram illustrating an example of a parity check matrix PCM, and b is a variable node and a check node on a Tanner graph according to the parity check matrix of (a). A diagram illustrating a repetitive message transfer process between check nodes.
3 is a diagram illustrating a variable node operation that is equivalent to an iteration code in the decoding process of an LDPC code performed on a Tanner graph.
4 is a diagram illustrating a check node operation equivalent to a single parity check code in the decoding process of an LDPC code performed on a Tanner graph.
5 is a block diagram of an LDPC decoder for mobile WiMAX according to an embodiment of the present invention.
FIG. 6A is a diagram illustrating a memory storing method of test node update values in a conventional LDPC decoder, and (b) is a diagram illustrating a memory storing method of test node update values in an LDPC decoder of the present invention. .
FIG. 7 is a block diagram illustrating a circuit for generating a test node value using code information and minimum / minimum value information stored in the test node memory of the LDPC decoder according to the present invention.
8 is a diagram comparing the capacity of a conventional check node memory and a proposed check node memory for six code rates defined in the IEEE 802.16e standard.
9 is an inter-layer memory addressing timing diagram of an LDPC decoder, (a) shows an example of generating a data hazard, (b) shows a conventional technique using a stall to suppress the data hazard, (c) shows an example of applying the reordering technique according to the present invention.
FIG. 10 is a diagram illustrating a memory reordering and a method of reducing access of a decision variable memory of the LDPC decoder according to the present invention.
11 is a block diagram illustrating a structure of a decoding function unit (DFU) according to the present invention.
12 is a timing chart showing an example of operation timing of a decoding function unit (DFU) operation in the LDPC decoder of the present invention.
FIG. 13 is a circuit diagram showing a specific structure of a water system converter applied to the decoding functional unit shown in FIG.
FIG. 14 is a circuit diagram showing a specific structure of a water system converter applied to the decoding function unit shown in FIG.
FIG. 15 is a circuit diagram showing a specific structure of the minimum detector applied to the decoding functional unit shown in FIG.
FIG. 16A illustrates a conventional parity check matrix storage unit (parity check matrix storage unit (H-ROM)) storage scheme, and (b) illustrates a parity check matrix storage unit (parity check) according to the present invention. A matrix storage unit (H-ROM) storage scheme is shown.
17 is a block diagram illustrating a cyclic shift value generator of a parity check matrix applied to the LDPC decoder of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시형태를 보다 상세하게 설명한다. 그러나, 본 발명의 실시형태는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명되는 실시형태로 한정되는 것은 아니다. 본 발명의 실시형태는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에 도시된 구성요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다는 점을 유념해야 할 것이다.
Various embodiments of the present invention will now be described in detail with reference to the accompanying drawings. However, embodiments of the present invention may be modified in various other forms, and the scope of the present invention is not limited to the embodiments described below. The embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Accordingly, it should be noted that the shapes, sizes, etc. of the components shown in the drawings may be exaggerated for clarity.

본 발명의 구체적인 구성 및 작용 효과를 설명하기에 앞서, 모바일 와이맥스(WiMAX) 표준인 IEEE 802.16e에 사용되는 LDPC(Low Density Parity Check) 부호 및 LDPC 복호 알고리듬의 일반적인 기술 특징에 대해 설명한다.
Before describing the specific configuration and operation effects of the present invention, the general technical features of the Low Density Parity Check (LDPC) code and the LDPC decoding algorithm used in the IEEE 802.16e mobile WiMAX standard will be described.

LDPC 부호는 패리티 검사 행렬 (Parity Check Matrix; PCM) 로 정의되며, 이 패리티 검사 행렬은 대부분이 0으로 채워지고, 일부분만 1을 갖는 행렬이다. The LDPC code is defined as a parity check matrix (PCM), which is a matrix most of which is filled with zeros and has only one part.

2005년에 공개된 모바일 WiMAX 표준인 IEEE 802.16e에는 채널부호 방식의 옵션으로 LDPC 부호가 지정되어 있다. IEEE 802.16e의 LDPC 부호는 i×j 크기의 패리티 검사 행렬 H로 정의된다. 여기서 i는 부호어의 블록길이를 나타내고, j는 패리티 검사 비트의 길이를 나타낸다. In IEEE 802.16e, a mobile WiMAX standard published in 2005, LDPC codes are designated as an option of channel coding. The LDPC code of IEEE 802.16e is defined by a parity check matrix H of size i × j. Where i represents the block length of the codeword and j represents the length of the parity check bit.

패리티 검사 행렬 H는 하기 식 1과 같이 정의될 수 있다.The parity check matrix H may be defined as in Equation 1 below.

[식 1][Formula 1]

Figure pat00001
Figure pat00001

상기 식 1에서,

Figure pat00002
Figure pat00003
크기의 치환행렬(permutation matrix) 또는 영 행렬(zero matrix)을 나타내며, 이를 부행렬(sub-matrix)이라고 한다. IEEE 802.16e의 패리티 검사 행렬 H는
Figure pat00004
의 이진 기저행렬(binary base matrix) 로부터 확장될 수 있으며,
Figure pat00005
이고
Figure pat00006
이며,
Figure pat00007
로 고정된 값이다. IEEE 802.16e는 19가지 블록길이와 각각의 블록길이에 대해 6가지 부호율을 지원하도록 규정되어 있어 총 114가지의 동작모드를 갖는다. In Formula 1,
Figure pat00002
The
Figure pat00003
A permutation matrix or zero matrix of size is referred to as a sub-matrix. Parity check matrix H of IEEE 802.16e is
Figure pat00004
Can be extended from the binary base matrix of
Figure pat00005
ego
Figure pat00006
Is,
Figure pat00007
Fixed value IEEE 802.16e is defined to support 19 block lengths and 6 code rates for each block length, and has a total of 114 operation modes.

하기의 표 1은 IEEE 802.16e 표준에 정의된 114가지의 LDPC 부호의 파라미터를 보이고 있다. 여기서 f는 LDPC 부호의 블록길이 인덱스를 나타내고,

Figure pat00008
범위의 값을 갖는다. 따라서 부행렬의 크기는
Figure pat00009
로 정의된다.Table 1 below shows the parameters of 114 LDPC codes defined in the IEEE 802.16e standard. Where f represents a block length index of the LDPC code,
Figure pat00008
It has a range of values. Therefore, the size of the submatrix
Figure pat00009
.

[표 1][Table 1]

Figure pat00010
Figure pat00010

치환행렬은

Figure pat00011
크기의 단위행렬(identity matrix)을 지정된 값
Figure pat00012
만큼 오른쪽으로 순환이동(circular right shift)시킨 행렬이다. 블록길이에 따른 오른쪽 순환이동 값
Figure pat00013
는 하기 식 2와 같이 정의되며, 부호율 2/3A인 경우에만 하기 식 3으로 정의된다. 하기 식 2 및 식 3에서
Figure pat00014
(통상
Figure pat00015
로 표시됨)은 영 행렬을 나타낸다. z0는 최대 부행렬 크기를 나타내며, 블록길이 2304 비트에 대해
Figure pat00016
의 값을 갖는다. The substitution matrix is
Figure pat00011
The identity matrix of the specified value
Figure pat00012
Is a matrix that is circularly right shifted by. Right circular shift value according to block length
Figure pat00013
Is defined as in Equation 2 below, and is defined in Equation 3 only when the code rate is 2 / 3A. In the following expressions 2 and 3
Figure pat00014
(Normal
Figure pat00015
Denotes a zero matrix. z 0 represents the maximum submatrix size, and for block length 2304 bits
Figure pat00016
Has the value of.

[식 2][Formula 2]

Figure pat00017
Figure pat00017

[식 3][Equation 3]

Figure pat00018
Figure pat00018

도 1은 IEEE 802.16e의 부호율에 따른 패리티 검사 행렬의 예들을 도시한 도면이다. IEEE 802.16e의 부호율에 따른 패리티 검사 행렬(PCM)은 도 1과 같으며, 주어진 값

Figure pat00019
Figure pat00020
크기의 단위행렬에 대한 오른쪽 순환이동 값을 나타낸다. 도 1에서
Figure pat00021
는 패리티 검사 행열의 각 열의 유효한 부행렬의 수를 나타내며,
Figure pat00022
은 레이어 당 유효 부행렬의 수,
Figure pat00023
는 PCM 전체의 유효 부행렬의 수를 나타낸다.
1 is a diagram illustrating examples of a parity check matrix according to a code rate of IEEE 802.16e. The parity check matrix (PCM) according to the code rate of IEEE 802.16e is shown in FIG.
Figure pat00019
silver
Figure pat00020
Represents a right-hand circular shift value for a unit matrix of size. In Figure 1
Figure pat00021
Represents the number of valid submatrices of each column of the parity check matrix,
Figure pat00022
Is the number of valid submatrices per layer,
Figure pat00023
Represents the number of valid submatrices of the entire PCM.

LDPCLDPC 복호  Decryption 알고리듬Algorithm

본 명세서에서, LDPC 복호 알고리듬을 정의하기 위해 다음과 같이 표기한다.In the present specification, to define an LDPC decoding algorithm, it is expressed as follows.

Figure pat00024
: 결정변수
Figure pat00024
Determinant

Figure pat00025
: 검사노드
Figure pat00025
: Inspection node

Figure pat00026
: 변수노드
Figure pat00026
Variable node

Figure pat00027
: 수신된 부호어에 대한 경판정 값
Figure pat00027
: Hard decision value for received codeword

Figure pat00028
: 검사노드에서 변수노드로 전달된 정보
Figure pat00028
: Information passed from check node to variable node

Figure pat00029
: 변수노드에서 검사노드로 전달된 정보
Figure pat00029
: Information passed from variable node to check node

Figure pat00030
: 변수노드
Figure pat00031
에 연결된 검사노드의 집합
Figure pat00030
Variable node
Figure pat00031
Set of check nodes connected to

Figure pat00032
: 검사노드
Figure pat00033
를 제외한 집합 변수노드
Figure pat00034
에 연결된 검사노드의 집합
Figure pat00032
: Inspection node
Figure pat00033
Set variable nodes except
Figure pat00034
Set of check nodes connected to

Figure pat00035
: 검사노드
Figure pat00036
에 연결된 변수노드의 집합
Figure pat00035
: Inspection node
Figure pat00036
Set of variable nodes connected to

Figure pat00037
: 변수노드
Figure pat00038
를 제외한 집합 검사노드
Figure pat00039
에 연결된 변수노드의 집합
Figure pat00037
Variable node
Figure pat00038
Set checking node except
Figure pat00039
Set of variable nodes connected to

도 2의 (a)는 패리티 검사 행렬(PCM)의 일례를 도시한 도면이며, (b)는 (a)의 패리티 검사 행렬에 따른 태너 그래프(Tanner graph) 상의 변수노드(variable node)와 검사노드(check node) 사이에서 반복적인 메시지 전달과정을 도시한 도면이다.FIG. 2A is a diagram illustrating an example of a parity check matrix PCM, and b is a variable node and a check node on a Tanner graph according to the parity check matrix of (a). A diagram illustrating a repetitive message transfer process between check nodes.

도 2에 도시된 바와 같이, LDPC 부호의 복호는, 패리티 검사 행렬에 의해 구성되는 태너 그래프 상의 변수노드(variable node)와 검사노드(check node) 사이에서 반복적인 메시지 전달과정을 통해 이루어진다. 이러한 노드 사이의 메시지 전달과정에 따라 다양한 복호방법이 존재할 수 있다. 태너 그래프는 LDPC 부호의 패리티 검사 행렬 H의 행과 열을 각각 태너 그래프의 검사노드와 변수노드로 매핑시킨 이분 그래프(bipartite graph) 이다. 변수노드와 검사노드 사이의 연결은 패리티 검사 행렬에서 1의 위치에 의해 결정된다. 어떤 행렬의 원소

Figure pat00040
이면, 태너 그래프 상에서 변수노드 i는 검사노드 j와 연결된 것을 나타낸다. 예를 들어, 도 2는
Figure pat00041
인 LDPC 부호의 패리티 검사 행렬과 태너 그래프를 도시한 것이다.As shown in FIG. 2, the decoding of the LDPC code is performed through an iterative message transfer process between a variable node and a check node on a Tanner graph formed by a parity check matrix. Various decoding methods may exist according to the message transfer process between the nodes. The Tanner graph is a bipartite graph in which the rows and columns of the parity check matrix H of the LDPC code are mapped to the check node and the variable node of the Tanner graph, respectively. The connection between the variable node and the check node is determined by the position of 1 in the parity check matrix. Element of a matrix
Figure pat00040
, The variable node i on the Tanner graph indicates that it is connected to the check node j. For example, Figure 2
Figure pat00041
A parity check matrix and a Tanner graph of an LDPC code are shown.

태너 그래프 상에서 수행되는 LDPC 부호의 복호과정에서 변수노드는 반복부호로, 검사노드는 단일 패리티 검사 부호로 볼 수 있다. In the decoding process of the LDPC code performed on the Tanner graph, the variable node may be regarded as an iterative code, and the test node may be regarded as a single parity check code.

도 3은 태너 그래프 상에서 수행되는 LDPC 부호의 복호과정에서 반복부호로 등가된 변수노드 연산을 도시한 도면이다. 도 3에 도시된 바와 같이,

Figure pat00042
는 수신된 부호어에 대한 경판정 값으로 변수노드에 입력된다. 또한,
Figure pat00043
는 해당 검사노드에서 변수노드로 전달된 정보인
Figure pat00044
를 제외한 변수노드에 전달된 나머지 모든 정보에 대한 함수이다. 왜냐하면,
Figure pat00045
는 해당 검사노드에서 변수노드로 전달한 정보이기 때문에 검사노드에서는 해당 정보를 이미 알고 있기 때문이다. 그리고 변수노드에서 복호한 추정 비트는 하기 식 4와 같이 표현 할 수 있다.3 is a diagram illustrating a variable node operation that is equivalent to an iteration code in the decoding process of an LDPC code performed on a Tanner graph. As shown in FIG. 3,
Figure pat00042
Is input to the variable node as a hard decision value for the received codeword. Also,
Figure pat00043
Is the information passed from the check node to the variable node.
Figure pat00044
All other information passed to the variable node except for. because,
Figure pat00045
This is because the check node already knows the information because it is the information passed from the check node to the variable node. The estimated bit decoded in the variable node can be expressed as Equation 4 below.

[식 4][Formula 4]

Figure pat00046
Figure pat00046

상기 식 4는 수신된 부호어에 대한 경판정 값

Figure pat00047
와 해당 변수노드에서 검사노드로 전달된 정보
Figure pat00048
그리고 검사노드에서 변수노드로 전달된 검사노드들의 모든 정보를 모두 취합(
Figure pat00049
)하여 복호 비트를 추정한다는 의미이다.Equation 4 is a hard decision value for the received codeword
Figure pat00047
And information passed from the variable node to the check node
Figure pat00048
And all the information of test nodes passed from test node to variable node are collected.
Figure pat00049
To estimate the decoding bit.

채널코딩은 어떠한 정보를 전달할 때 정보에 덧붙임(Redundancy)을 추가하여 오류를 정정하는 기술이다. LDPC는 블록 부호의 일종으로 패리티 비트를 덧붙혀 오류를 정정한다. 패리티 검사 부호는 특정 정보에서 1의 개수가 홀수인지 짝수인지를 판단하여 패리티 비트를 덧붙혀 정보의 참?거짓을 판단할 수 있게 한다. 만약 전송 시스템이 짝수 패리티를 사용한다면, 정보열에 존재하는 1의 개수를 세어 홀수이면 패리티 비트 1을 덧붙혀서 송신한다. 수신 측에서는 정보를 받아서 정보열의 1의 개수를 파악하여 패리티 비트와 비교하여 서로 같을 때에는 수신한 정보열에 오류가 없다고 판단하고, 서로 다를 때는 오류가 있다고 판단한다. 만약 전송 시스템이 홀수 패리티를 사용한다면 정보열에서 1의 개수를 세어 짝수이면 패리티 비트 1을 덧붙혀서 송신한다. Channel coding is a technique for correcting errors by adding redundancy to information when delivering certain information. LDPC corrects an error by adding a parity bit as a block code. The parity check code determines whether the number of 1s in the specific information is odd or even and adds a parity bit to determine whether the information is true or false. If the transmission system uses even parity, the number of 1s present in the information string is counted and transmitted with the parity bit 1 appended to the odd number. The receiving side receives the information, grasps the number of 1s in the information string, compares it with the parity bits, and determines that there is no error in the received information strings when they are the same. If the transmission system uses odd parity, it counts the number of 1s in the information string and if it is even, transmits with the parity bit 1.

이러한 패리티 검사 방법은 동시에 2개 이상의 오류가 발생하면 오류를 정정할 수 없게 된다. 이러한 패리티 부호를 단일 패리티 검사 부호라고 한다. 태너 그래프 상에서 수행되는 LDPC 복호 과정에서 검사노드 연산은 단일 패리티 검사 부호라고 볼 수 있다.This parity check method cannot correct an error if two or more errors occur at the same time. This parity code is called a single parity check code. In the LDPC decoding process performed on the Tanner graph, the check node operation may be regarded as a single parity check code.

도 4는 태너 그래프 상에서 수행되는 LDPC 부호의 복호과정에서 단일 패리티 검사 부호로 등가된 검사노드 연산을 설명하는 도면이다. 도 4를 참조하면, 전술한 원리와 동일한 이유로 해당 변수노드에서 검사노드로 전달된 정보를 제외한 모든 정보가 검사노드에서 변수노드로 전달된다. 이러한 변수노드에서 검사노드로 전달과 역으로 검사노드에서 변수노드로 전달이 계속해서 일어나면서 반복복호가 이루어질 수 있다.
4 is a diagram illustrating a check node operation equivalent to a single parity check code in the decoding process of an LDPC code performed on a Tanner graph. Referring to FIG. 4, all the information except for the information transferred from the variable node to the check node is transferred from the check node to the variable node for the same reason as described above. The transfer from the variable node to the check node and the reverse from the check node to the variable node can be repeated and repeated.

전술한 모바일 와이맥스 표준인 IEEE 802.16e에 사용되는 LDPC 부호 및 LDPC 복호 알고리듬의 일반적인 기술 특징을 바탕으로 본 발명에 따른 모바일 와이맥스용 LDPC 복호기에 대해 상세하게 설명하기로 한다.
The LDPC decoder for mobile WiMAX according to the present invention will be described in detail based on general technical features of the LDPC code and LDPC decoding algorithm used in the IEEE 802.16e mobile WiMAX standard.

도 5는 본 발명의 일실시형태에 따른 모바일 와이맥스용 LDPC 복호기의 블록 구성도이다.5 is a block diagram of an LDPC decoder for mobile WiMAX according to an embodiment of the present invention.

도 5에 도시한 바와 같이, 본 발명의 일실시형태에 따른 모바일 와이맥스용 LDPC 복호기(10)는, 결정변수값을 저장하는 제1 메모리(12)와, 검사노드값을 저장하는 제2 메모리(11)와, IEEE 802.16e 표준에 정의된 부호율을 지원하는 기본 패리티 검사 행렬에 대한 정보를 저장하는 패리티 검사 행렬 저장부(131)와, 상기 기본 패리티 검사 행렬을 사용하여, IEEE 802.16e 표준에 의해 정의되는 블록길이 및 부호율에 따른 복수의 동작모드에 대한 패리티 검사 행렬의 순환이동값을 생성하는 순환이동값 생성부(14)와, 상기 복수의 동작모드에 대한 패리티 검사 행렬에 따라 복호화되는 데이터를 순환이동시키는 치환부(15) 및 상기 복수의 레이어 각각의 부행렬에 따른 상기 결정변수값 및 검사노드값을 이용하여 복호 연산을 수행하는 복호 기능 유닛(16)을 포함하여 구성될 수 있다.As shown in FIG. 5, the LDPC decoder 10 for mobile WiMAX according to an embodiment of the present invention includes a first memory 12 for storing a decision variable value and a second memory for storing a test node value ( 11), a parity check matrix storage unit 131 for storing information about a basic parity check matrix that supports a code rate defined in the IEEE 802.16e standard, and the basic parity check matrix, using the parity check matrix. A cyclic shift value generation unit 14 for generating a cyclic shift value of the parity check matrix for the plurality of operation modes according to the block length and the code rate defined by the block length and the code rate, and decoded according to the parity check matrix for the plurality of operation modes. And a decoding function unit 16 which performs a decoding operation using the decision variable value and the check node value according to the sub-matrix of each of the plurality of layers. .

그 외, 신호나 데이터를 선택하거나 분할하여 출력하는 먹스와 디먹스(17 내지 19)를 포함할 수 있다.
In addition, it may include a mux and demux (17 to 19) for selecting or dividing the signal or data output.

본 발명은, IEEE 802.16e 표준의 19가지 블록길이와 각 블록길이에 대한 6가지 부호율 1/2, 2/3(A,B), 3/4(A,B), 5/6을 지원하는 다중모드용 LDPC 복호기에 관한 것이다. IEEE 802.16e 표준에서 114가지 패리티 검사 행렬의 부행렬 크기는 블록길이에 따라

Figure pat00050
가 된다. 또한, QC-LDPC 방식으로 구성된 패리티 검사 행렬의 대부분은 영 (zero) 행렬로 이루어져 있다. 영 행렬은 검사노드와 변수노드 사이에 어떠한 연결도 형성하지 않기 때문에 필요한 연산이 존재하지 않는다. 따라서 LDPC 복호기는 영 행렬을 무시하고 연산을 수행할 수 있다. 본 발명에서 영 행렬을 효율적으로 무시하기 위해 부행렬 단위로 연산을 수행하는 블록-직렬 구조로 설계하여
Figure pat00051
개의 LLR(Log-Likelihood Ratio)이 동시에 연산되도록 한다. 각각의 DFU는 변수노드 연산과 결정변수 계산을 위한 가산기 2개, 검사노드 연산을 위한 최솟값/준최솟값 검출기 그리고 결정변수 계산을 위해 연산결과를 지연시키는 레지스터로 구성된다. 치환부(Permuter)는 패리티 검사 행렬상의 오른쪽 순환이동 값에 따라 검사노드와 변수노드 사이에 연결을 형성하는 블록이다.
The present invention supports 19 block lengths of the IEEE 802.16e standard and 6 code rates 1/2, 2/3 (A, B), 3/4 (A, B), and 5/6 for each block length. The present invention relates to a multimode LDPC decoder. In the IEEE 802.16e standard, the sub-matrix size of 114 parity check matrices depends on the block length.
Figure pat00050
. In addition, most of the parity check matrix constructed by the QC-LDPC method consists of a zero matrix. Since the zero matrix does not form any connection between the check node and the variable node, no operation is required. Therefore, the LDPC decoder can ignore the zero matrix and perform the operation. In the present invention, in order to efficiently ignore the zero matrix is designed in a block-serial structure that performs operations in sub-matrix unit
Figure pat00051
Log-Likelihood Ratio (LLR) is calculated at the same time. Each DFU consists of a variable node operation, two adders for the calculation of the decision variable, a minimum / quasi-minimum detector for the check node operation, and a register that delays the calculation results for the calculation of the decision variable. The permuter is a block that forms a connection between the check node and the variable node according to the right circular shift value on the parity check matrix.

메모리(11, 12)는 결정변수 값(

Figure pat00052
)을 저장하는 결정변수(APP: A Posteriori Probability) 메모리(12)와 검사노드값(
Figure pat00053
)을 저장하는 검사노드(CN: Check Node) 메모리(11)가 사용된다. 이 두 메모리(11, 12)는 듀얼 포트 메모리로 구현될 수 있다.The memories 11 and 12 store the decision variable values (
Figure pat00052
) And a test node value (APP) for storing a determinant variable (APP: A Posteriori Probability).
Figure pat00053
A check node (CN) memory 11 that stores C) is used. The two memories 11 and 12 may be implemented as dual port memories.

검사노드 메모리(11)는 변수노드에서 연산된 정보를 저장할 수 있다. 본 발명에서는 최소합 알고리듬의 특징을 이용하여 검사노드 메모리(11) 용량을 효율적으로 감소시키는 방법이 제공된다. 더하여, 본 발명에서는 패리티 검사 행렬(H-matrix)의 재정렬(reordering)을 통한 결정변수 메모리(12)의 억세스를 감소시키는 방법에 제공된다.The test node memory 11 may store information calculated in the variable node. In the present invention, a method of efficiently reducing the capacity of the test node memory 11 by using the features of the minimum sum algorithm is provided. In addition, the present invention provides a method for reducing access of the decision variable memory 12 through reordering of the parity check matrix H-matrix.

복호 기능 유닛(DFU, 16)은 각 노드에 해당하는 정보를 메모리로부터 읽어와 복호연산을 수행하고 다시 메모리에 쓰는 동작을 수행하며, 읽기동작과 쓰기동작을 중첩하여 수행한다. 복호 기능 유닛(DFU, 16)은 복호연산을 마치면 복호된 정보를 메모리에 쓰는 동시에 새롭게 복호할 정보를 메모리로부터 읽어온다. 따라서 본래 DFU가 1개의 레이어를 복호하기 위해

Figure pat00054
클록 사이클이 필요하지만 읽기와 쓰기가 중첩되므로
Figure pat00055
클록 사이클로 감소될 수 있다. 그러나 첫 번째 반복복호의 첫 번째 레이어 연산은 정보를 읽어오는 연산만 수행되고 마지막 반복복호의 마지막 레이어 연산은 정보를 쓰는 연산만 수행되기 때문에 읽기와 쓰기를 중첩시키지 못한다. 따라서
Figure pat00056
개의 레이어를 연산하기 위해서는
Figure pat00057
클록 사이클이 소요된다. 1개의 레이어 복호를 위해
Figure pat00058
클록 사이클이 소요되고,
Figure pat00059
개의 레이어로 이루어진 1회의 반복복호는 총
Figure pat00060
클록 사이클이 필요하다.
The decoding function unit (DFU) 16 reads the information corresponding to each node from the memory, performs the decoding operation, writes the data back into the memory, and overlaps the read operation and the write operation. The decoding function unit (DFU) 16 writes the decoded information into the memory when the decoding operation is completed, and reads information to be newly decoded from the memory. So in order for the original DFU to decode one layer,
Figure pat00054
Requires clock cycles, but because reads and writes overlap
Figure pat00055
Can be reduced in clock cycles. However, the first layer operation of the first iteration decodes only the information-reading operation, and the last layer operation of the last iteration decodes only the information-writing operation. therefore
Figure pat00056
To compute two layers
Figure pat00057
It takes a clock cycle. For one layer decoding
Figure pat00058
Clock cycles,
Figure pat00059
One iterative decoding of 4 layers
Figure pat00060
Clock cycles are required.

검사노드Inspection node 메모리의 용량 감소 기법 Memory Reduction Techniques

LDPC 복호기의 검사노드 메모리에는 변수노드에서의 연산결과

Figure pat00061
가 저장된다. 이 때,
Figure pat00062
의 크기
Figure pat00063
는 하기 식 5에 의해
Figure pat00064
의 최솟값으로 갱신되며, 최솟값이 발생한
Figure pat00065
번째
Figure pat00066
은 최솟값을 제외한 나머지
Figure pat00067
의 최솟값으로 갱신된다. 이는
Figure pat00068
가 다수의 최솟값과 하나의 준최솟값으로 갱신됨을 의미한다.In the check node memory of the LDPC decoder, the result of the calculation in the variable node.
Figure pat00061
Is stored. At this time,
Figure pat00062
Size
Figure pat00063
By the following formula 5
Figure pat00064
Is updated to the minimum of
Figure pat00065
th
Figure pat00066
Is except for the minimum
Figure pat00067
It is updated to the minimum value of. this is
Figure pat00068
Is updated with multiple minimums and one quasi minimum.

[식 5][Equation 5]

Figure pat00069
Figure pat00069

하기 표 2는

Figure pat00070
가 갱신되는 예를 든 것이다. 표 2의 (a)는
Figure pat00071
값중 1이 최솟값이고 2가 준최솟값이 된다. 따라서 1의 위치에는 준최솟값인 2로 갱신되고 나머지
Figure pat00072
값들은 최솟값인 1로 갱신된다. 표 2의 (b)는
Figure pat00073
값중 최솟값이 2이며 준최솟값도 2이기 때문에 모두 2로 갱신된다. Table 2 below
Figure pat00070
Is an example of updating. (A) of Table 2
Figure pat00071
One of the values is the minimum and 2 is the quasi minimum. Therefore, the position of 1 is updated to the quasi minimum value of 2 and the rest
Figure pat00072
The values are updated to the minimum value of 1. (B) of Table 2
Figure pat00073
Since the minimum value is 2 and the quasi minimum value is 2, they are all updated to 2.

[표 2][Table 2]

Figure pat00074
Figure pat00074

또한, 상기 식 5에서

Figure pat00075
Figure pat00076
의 부호비트들의 곱셈으로 사용되어 양수와 음수를 나타낸다. 따라서
Figure pat00077
은 최솟값과 준최솟값 그리고 각각의 부호만으로 갱신될 수 있으며, 하기 식 6과 같은 4가지 경우로 정리될 수 있다.Also, in Equation 5
Figure pat00075
silver
Figure pat00076
Used to multiply the sign bits of to represent positive and negative numbers. therefore
Figure pat00077
Can be updated with only the minimum value, the quasi-minimum value, and each sign, and can be summarized into four cases as shown in Equation 6 below.

[식 6][Equation 6]

Figure pat00078
Figure pat00078

본 발명에서는 검사노드 메모리(CN memory)를 크게 두 영역으로 나누고, 그 중 하나는 검사 노드 크기(CNM: Check Node Magnitude) 메모리로서 레이어별로 검출된 최솟값과 준최솟값을 저장하고, 나머지 하나는 부호/크기 (SM: Sign/Magtype) 메모리로 최솟값/준최솟값의 여부 1비트와 부호 1비트를 저장하여 각 노드는 2비트의 용량으로 갱신될 값을 저장할 수 있다.In the present invention, CN memory is divided into two regions, one of which is Check Node Magnitude (CNM) memory, which stores the minimum and quasi minimum values detected for each layer, and the other is a code / Sign / Magtype (SM) memory stores one bit and one sign of minimum / minimum value, and each node can store a value to be updated with a capacity of 2 bits.

하기 표 3은 최솟값/준최솟값의 여부와 부호비트를 2비트로 표현하는 방법이다. SM이 2비트로 10이면 음의 부호를 가진 최솟값을 의미하고, 01이면 양의 부호를 가진 준최솟값을 의미한다.Table 3 below is a method of expressing whether the minimum value / quasi-minimum value and the sign bit are 2 bits. If SM is 2 bits, 10 means a minimum value with a negative sign, and 01 means a quasi minimum value with a positive sign.

[표 3][Table 3]

Figure pat00079

Figure pat00079

도 6은 종래의 LDPC 복호기에서 검사노드 갱신값의 메모리 저장방식과, 본 발명의 LDPC 복호기에서 검사노드 갱신값의 메모리 저장방식을 비교한 도면이다. 도 6의 (a)에 도시된 종래의 검사노드 메모리 구조에서는

Figure pat00080
-비트의
Figure pat00081
를 각 레이어의 유효 부행렬의 수
Figure pat00082
만큼 저장 하므로, 레이어 당
Figure pat00083
-비트의 메모리 용량이 필요하다.6 is a view comparing a memory storage method of a check node update value in a conventional LDPC decoder with a memory storage method of a check node update value in an LDPC decoder according to the present invention. In the conventional test node memory structure shown in FIG.
Figure pat00080
-Bit
Figure pat00081
The number of valid sub-matrix for each layer
Figure pat00082
As long as you save as per layer
Figure pat00083
Requires a bit of memory capacity.

이에 반해, 본 발명에 따르면, 도 6의 (b)와 같이 검사노드 메모리를 2개의 영역으로 나누어 저장한다. 이 중 하나의 메모리는 SM 메모리로

Figure pat00084
의 부호비트인 Sign과
Figure pat00085
의 최솟값/준최솟값 여부를 표현하는 Mag_type을 2비트로 표현하여 각 레이어별로 0행렬을 제외한 부행렬 개수인
Figure pat00086
만큼 저장한다. 나머지 하나의 메모리는 CNM 메모리로서, 각 레이어별 부행렬의 개수에 상관없이
Figure pat00087
의 최솟값과 준최솟값 하나씩만 메모리에 저장한다. 따라서, 본 발명에서 제공하는 메모리 운용 감소 방식은 레이어당
Figure pat00088
-비트의 메모리 용량만 필요하여 검사노드 메모리를 크게 감소시킬 수 있다.
In contrast, according to the present invention, the test node memory is divided into two regions and stored as shown in FIG. One of these memories is called SM memory
Figure pat00084
Sign, which is the sign bit of
Figure pat00085
Mag_type representing whether the minimum or quasi-minimum value of is represented by 2 bits, and the number of sub-matrix except zero matrix for each layer
Figure pat00086
Save as much. The other memory is CNM memory, regardless of the number of sub-matrix for each layer.
Figure pat00087
Store only one minimum and one minimum value in memory. Therefore, the memory operation reduction method provided by the present invention is per layer.
Figure pat00088
Only a bit of memory capacity is required, which greatly reduces the test node memory.

검사노드의 복호연산을 수행하기 위해서는 2의 보수 수체계로 표현된

Figure pat00089
값이 필요하므로, 부호 정보(Sign)와 최솟값/준최소값 여부 정보(Mag_type)로 구성된 신호를
Figure pat00090
로 변환하기 위한 부가적인 하드웨어가 필요하다. In order to perform the decoding operation of the test node, it is represented by a two's complement number system.
Figure pat00089
Since a value is required, a signal composed of sign information (Sign) and minimum / minor value information (Mag_type)
Figure pat00090
Additional hardware is needed to convert

도 7은 본 발명에 따른 LDPC복호기의 검사노드 메모리(11) 내 SM 메모리(11)에 저장되어 있는 부호 정보(Sign)와 최솟값/준최소값 여부 정보(Mag_type)를 이용하여

Figure pat00091
값을 생성하는 회로를 도시한 블록도이다. FIG. 7 illustrates the use of sign information (Sign) and minimum / minimum value information (Mag_type) stored in the SM memory 11 in the check node memory 11 of the LDPC decoder according to the present invention.
Figure pat00091
A block diagram illustrating a circuit for generating a value.

도 7에 도시된 회로는 후술하는 복호 기능 유닛(DFU)에 포함될 수 있다. 부호 정보(Sign)는 변환될

Figure pat00092
의 부호비트로 사용되는 값이고, 최솟값/준최소값 여부 정보(Mag_type)는 MUX(211)의 선택신호로 입력되며, 이전 반복복호에서 CNM 메모리(112)에 저장된 최솟값과 준최솟값인
Figure pat00093
중 한가지를 선택한다. 최솟값/준최소값 여부 정보(Mag_type)가 0이면
Figure pat00094
은 최솟값이고, 1이면
Figure pat00095
은 준최솟값이 된다. The circuit shown in FIG. 7 may be included in a decoding function unit (DFU) to be described later. Sign information is converted
Figure pat00092
Is a value used as a sign bit, and the minimum / min minimum value information (Mag_type) is input as a selection signal of the MUX 211, and the minimum and quasi minimum values stored in the CNM memory 112 in the previous iterative decoding.
Figure pat00093
Choose one. If minimum / min minimum information (Mag_type) is 0
Figure pat00094
Is the minimum, and 1
Figure pat00095
Becomes the quasi minimum.

MUX(211)에 의해 선택된 최솟값과 준최솟값은 부호 정보(Sign)와 함께 2의 보수 변환부(212)로 입력된다. 함께 2의 보수 변환부(212)는 부호정보(Sign) 및 최솟값/준최소값 여부 정보(Mag_type)를 입력 받아 2의 보수 수체계로 변환하여

Figure pat00096
를 생성시켜 준다.
Figure pat00097
값 생성 회로는 동시에 갱신되어야 하는 검사노드의 개수(
Figure pat00098
)만큼 필요하며, 노드를 작은 그룹으로 분할하여 갱신하는 반병렬 구조에서는 메모리 면적에 비해 작은 면적의 하드웨어로 구현될 수 있다. The minimum and quasi-minimum values selected by the MUX 211 are input to the two's complement converter 212 together with the sign information Sign. Together, the two's complement converter 212 receives the sign information (Sign) and the minimum / minor value information (Mag_type) and converts it to the two's complement number system.
Figure pat00096
Will create
Figure pat00097
The value generation circuit is the number of check nodes that must be updated at the same time (
Figure pat00098
In the anti-parallel structure in which nodes are divided into small groups and updated, the hardware can be implemented in a smaller area than the memory area.

예를 들어, 블록길이가 2304이고 부호율이 1/2인 PCM을 이용하는 복호기의

Figure pat00099
비트 폭(
Figure pat00100
)이 8 비트라면, 종래 방식은
Figure pat00101
비트의 검사노드 메모리가 필요하다. 이에 반해, 본 발명에 따르면, SM 메모리 용량
Figure pat00102
비트와 CNM 메모리 용량
Figure pat00103
비트를 합산한 총 34,560 비트의 검사노드 메모리만 사용될 수 있다. 따라서 29,952 비트가 감소되어 검사노드 메모리의 용량을 46% 감소시킬 수 있다.
For example, a decoder using a PCM with a block length of 2304 and a code rate of 1/2
Figure pat00099
Bit width (
Figure pat00100
) Is 8 bits, the conventional way
Figure pat00101
A bit of checknode memory is required. In contrast, according to the present invention, the SM memory capacity
Figure pat00102
Bit and CNM memory capacity
Figure pat00103
Only a total of 34,560 bit test node memories can be used. Therefore, 29,952 bits can be reduced, which can reduce the capacity of the test node memory by 46%.

도 8은 IEEE 802.16e 표준에 정의된 6가지 부호율에 대한 종래의 검사노드 메모리와 제안하는 검사노드 메모리의 용량을 비교한 것이다. 도 8을 참조하면, 부호율이 클수록 기존의 방법보다 제안하는 방법의 용량이 현저히 감소되는 것을 알 수 있다. 본 발명을 적용하면, 근사화 비트 폭이 커질수록 기존의 방법보다 검사노드 메모리의 용량을 현저히 감소시킬 수 있다.
FIG. 8 compares the capacity of a conventional check node memory and a proposed check node memory for six code rates defined in the IEEE 802.16e standard. Referring to FIG. 8, it can be seen that the capacity of the proposed method is considerably reduced as the code rate is larger. According to the present invention, as the approximate bit width increases, the capacity of the check node memory can be significantly reduced compared to the conventional method.

패리티 검사 행렬의 Parity check matrix 재정열(reordering)과Reordering and 결정변수 메모리  Determinant Memory accessaccess 감소 방법 Reduction method

블록-직렬 방식의 LDPC 복호기는 복호 기능 유닛(DFU)에 의한 복호연산 중간 결과값들을 메모리에 저장하고, 읽어오는 과정이 반복적으로 수행된다. 본 발명에서는 이와 같은 메모리 읽기/쓰기 동작의 동시 수행을 위해 듀얼 포트 메모리를 사용하였다. 복호기의 메모리 읽기/쓰기 동작은 메모리 어드레싱이 중요하다. 메모리 어드레싱은 패리티 검사 행렬(PCM)과 관계가 있으며, 특히 복호 중인 블록이 해당 레이어의 몇 번째에 위치하고 있는지가 중요하다. The block-serial LDPC decoder stores the decoding operation intermediate results by the decoding function unit (DFU) in the memory and repeatedly reads them. In the present invention, a dual port memory is used to simultaneously perform such memory read / write operations. Memory addressing is important for the decoder's memory read / write operations. Memory addressing is related to the parity check matrix (PCM), which is particularly important at which layer the decoding block is located.

도 9는 LDPC 복호기의 레이어 간 메모리 어드레싱 타이밍도로서, (a)는 데이터 해저드가 발생하는 예를 도시하며, (b)는 데이터 해저드를 억제하기 위해 스톨(stall)을 사용한 종래 기술을 도시하며, (c)는 본 발명에 따라 재정렬 기법을 적용한 예를 도시한다. 9 is an inter-layer memory addressing timing diagram of an LDPC decoder, (a) shows an example of generating a data hazard, (b) shows a conventional technique using a stall to suppress the data hazard, (c) shows an example of applying the reordering technique according to the present invention.

도 9의 (a)에 도시된 바와 같이, 레이어

Figure pat00104
의 3번 블록과 레이어
Figure pat00105
의 0번 블록을 읽을 때, 데이터 해저드(data hazard)가 할 수 있다. 복호 기능 유닛(DFU)는 레이어 i의 부행렬을 순차적으로 읽어 복호연산을 거친 후 다시 레이어 i의 부행렬을 읽은 순서대로 메모리에 저장한다. 이 때, 레이어
Figure pat00106
의 0번 블록을 읽는 동시에 레이어 i의 0번 블록 연산 결과를 메모리에 저장하게 된다. 이 과정에서 레이어 i의 복호된 정보를 메모리에 저장하기 전에 레이어
Figure pat00107
에서 정보를 읽어 오기 때문에 레이어 i에서 복호된 정보를 반영하지 못하게 되어 데이터 해저드가 발생하게 된다. As shown in Fig. 9A, the layer
Figure pat00104
Block
3 and Layers
Figure pat00105
When reading block 0, the data hazard can do it. The decoding function unit (DFU) sequentially reads the sub-matrix of the layer i, performs a decoding operation, and stores the sub-matrix of the layer i in the memory in the order of reading. At this time, the layer
Figure pat00106
At the same time reading block 0 of block 0, the operation of block 0 of layer i is stored in memory. In the process, before storing the decoded information of layer i in memory,
Figure pat00107
Since the information is read from, it cannot reflect the decoded information in layer i, resulting in a data hazard.

이러한 데이터 해저드 발생을 방지하기 위해, 종래에는 도 9의 (b)와 같이 스톨(stall)을 삽입하여 레이어

Figure pat00108
에서 복호된 정보를 메모리에 저장한 후 메모리에서 레이어
Figure pat00109
의 정보를 읽어오도록 하는 방법이 적용되었다. 이러한 스톨을 적용하는 방식은, 연접한 레이어 간에 변수노드가 중복되는 경우가 많은 경우, 블록-직렬 방식의 레이어드(layered) 복호에서는 레이어 간의 메모리 쓰기/읽기 과정에서 데이터 해저드가 자주 발생하게 되어 삽입되는 스톨의 수가 증가하여 하나의 레이어를 복호하는 클록 수가 증가하여 동작속도가 느려지는 문제가 발생한다. 본 발명은 이러한 스톨을 적용함으로써 발생하는 문제점을 해소하기 위해, 도 9의 (c)와 같이 패리티 검사 행렬(PCM)의 부행렬 위치를 재정렬(Reordering)하여 스톨을 삽입하지 않고 데이터의 해저드를 방지함으로써 최적의 메모리 어드레싱이 이루어지도록 할 수 있다.In order to prevent such data hazards, a layer is conventionally inserted by inserting a stall as shown in FIG.
Figure pat00108
Stores the decoded information in memory and stores the layer in memory
Figure pat00109
The method of reading the information of the was applied. In this case, when the variable nodes are frequently duplicated between contiguous layers, data hazards are frequently inserted during memory writing / reading between layers in block-serial layered decoding. As the number of stalls increases, the number of clocks that decode one layer increases, resulting in a problem that the operation speed becomes slow. In order to solve the problem caused by applying the stall, the present invention reorders the sub-matrix positions of the parity check matrix (PCM) as shown in FIG. 9 (c) to prevent hazards of data without inserting a stall. In this way, optimal memory addressing can be achieved.

802.16e 표준에 정의된 부호화율

Figure pat00110
,
Figure pat00111
의 패리티 검사 행렬(PCM)은 도 10의 (a)에 도시된 바와 같이 연접한 두 레이어의 변수노드가 중복되는 경우가 많아 스톨을 삽입하지 않고서 재정열(reordering) 만으로 데이터 해저드를 제거하는데 어려움이 발생할 수 있다. 이에, 본 발명에서는 도 10의 (b) 및 (c)에 도시한 바와 같은 방식을 제공한다. 도 10의 (a)에 도시된 것과 같은 패리티 검사 행열을 재정열하여 도 10의 (b)에 도시한 것과 같이 읽기/쓰기 동작이 동시에 일어나게 하고, 메모리의 동일 주소에 억세스(access) 할 경우 도 10의 (c)와 같이 메모리를 거치지 않고, 치환부(permuter)(15)로 데이터를 입력하는 기법을 사용할 수 있다.Code rate defined in the 802.16e standard
Figure pat00110
,
Figure pat00111
As shown in FIG. 10A, the parity check matrix PCM of the parity check matrix (PCM) has difficulty in removing the data hazard only by reordering without inserting a stall because the variable nodes of two contiguous layers overlap each other. May occur. Thus, the present invention provides a scheme as shown in (b) and (c) of FIG. When the parity check matrix as shown in FIG. 10 (a) is rearranged so that a read / write operation occurs simultaneously as shown in FIG. 10 (b), and the same address of the memory is accessed. As shown in (c) of FIG. 10, a technique of inputting data into the permuter 15 without passing through the memory may be used.

하기 표 4는 종래 방식과 본 발명의 따른 방식의 메모리 억세스 횟수를 비교한 것이다. 표 4에서

Figure pat00112
는 패리티 검사 행렬(PCM)의 유효 블록의 수이다. 부호화율
Figure pat00113
,
Figure pat00114
의 경우에, 종래 방식(336회)에 비해 메모리 억세스 횟수가 약 52%(172회) 감소하였으며, 와이맥스 표준(IEEE 802.16e)의 6가지 부호화율 전체에 대해 모두 고려하였을 경우 기존방식(2×(76+80+81+75+88+80)=960)에 비해 본 발명에 따른 방식(2×(76+80+81+75)+92+72=788)이 메모리 억세스 횟수가 약 18% 감소하였음을 알 수 있다. Table 4 below compares the number of memory accesses between the conventional method and the method of the present invention. In Table 4
Figure pat00112
Is the number of valid blocks of the parity check matrix (PCM). Coding rate
Figure pat00113
,
Figure pat00114
In the case of, the number of memory accesses is reduced by about 52% (172 times) compared to the conventional method (336 times), and when all the six coding rates of the WiMAX standard (IEEE 802.16e) are considered, the conventional method (2 × Compared to (76 + 80 + 81 + 75 + 88 + 80) = 960, the method according to the present invention (2 × (76 + 80 + 81 + 75) + 92 + 72 = 788) has about 18% of the number of memory accesses. It can be seen that the decrease.

[표 4][Table 4]

Figure pat00115
Figure pat00115

(802.16e WiMAX, Block-length : 2304, Code-rate :

Figure pat00116
,
Figure pat00117
)
(802.16e WiMAX, Block-length: 2304, Code-rate:
Figure pat00116
,
Figure pat00117
)

복호 기능 유닛(Decoding function unit DecodingDecoding FunctionFunction UnitUnit : : DFUDFU ) 구조) rescue

복호 기능 유닛(DFU)은 오류가 포함되어 있는 입력 부호어의 오류를 정정하기 위해 자신을 제외한 나머지 부호어들의 LLR(Log-Likelihood Ratio)을 취합하여 원래의 부호어에 가장 가까운 LLR을 예측한다. 본 발명에서는 최소합 알고리듬을 기반으로 한 레이어드(layered) 구조의 복호 기능 유닛(DFU)을 적용한다.The decoding function unit (DFU) collects Log-Likelihood Ratios (LLRs) of codewords except for itself to correct an error of an input codeword including an error and predicts the LLR closest to the original codeword. In the present invention, a decoding function unit (DFU) having a layered structure based on a minimum sum algorithm is applied.

도 11은 본 발명에 따른 복호 기능 유닛의 구조를 도시한 블록 구성도이다. 도 11에 도시된 바와 같이, 복호 기능 유닛(DFU)은, 최솟값과 준최솟값을 생성하는 CNV(Check Node Value)블록, 최솟값 검출기, 부호비트 누산기, 데이터의 지연을 위한 FIFO(First-In First-Out) 메모리, 덧셈기, 뺄셈기, 비교기 그리고 수체계(2의 보수/부호-크기) 변환기 등으로 구성된다. 복호 기능 유닛(DFU) 내부에서 LLR들은 일정한 비트로 근사화되어 연산되며, 부호와 크기를 분리하여 계산된다.11 is a block diagram showing the structure of a decoding functional unit according to the present invention. As shown in FIG. 11, the decoding function unit (DFU) includes a check node value (CNV) block, a minimum detector, a sign bit accumulator, and a FIFO (First-In First-First) for generating minimum and sub minimum values. Out) It consists of memory, adder, subtractor, comparator and number system (two's complement / sign-size) converter. Inside the decoding function unit (DFU), the LLRs are approximated with constant bits and computed separately from the sign and size.

변환된 검사노드값

Figure pat00118
와 결정변수
Figure pat00119
는 뺄셈연산을 통해 변수노드값
Figure pat00120
를 계산한다. 계산된
Figure pat00121
는 수체계 변환기(TC_SM1)를 통해 부호와 크기로 분리되어 부호는 순차적으로 입력되어 곱셈한다. 또한 분리된 변수노드 크기
Figure pat00122
는 최솟값 검출기(Min_det)를 통해 순차적으로 입력되는 분리된
Figure pat00123
들과 비교하여 최솟값과 준최솟값을 검출하여 레지스터에 저장한다. 한편, 순차적으로 계산된
Figure pat00124
는 선입선출 메모리부(FIFO)에 누적되어
Figure pat00125
만큼 지연된 후 수체계 변환기(TC_SM2)를 통해 부호와 크기로 분리된다. 분리된
Figure pat00126
는 비교기를 통해 검출된 최솟값 min0과 비교되어 두 값이 같으면 준최솟값 min1을 새로운 검사노드 크기
Figure pat00127
로 갱신하고, 다르면 최솟값 min0이
Figure pat00128
로 갱신된다. 왜냐하면, 상기 식 5에 따르면
Figure pat00129
번째
Figure pat00130
를 결정할 때에는 i번째
Figure pat00131
를 제외한 나머지 변수노드 크기의 집합
Figure pat00132
중 가장 작은
Figure pat00133
을 선택하기 때문에 검사노드 i를 구성하는 변수노드의 집합
Figure pat00134
중 가장 작은
Figure pat00135
가 발생한 위치에는 준최솟값이 갱신되고 변수 노드 i를 제외한 검사노드 i를 구성하는 나머지 변수노드의 집합
Figure pat00136
에는 최솟값으로 갱신되기 때문이다. 또한 부호의 누적 곱셈도 동일한 원리로 모든 부호를 누적 곱셈한 다음 i번째
Figure pat00137
의 부호를 한 번 더 누적 곱셈하여 갱신한다. 부호의 누적 곱셈은 XOR 연산으로 이루어진다. 결정된
Figure pat00138
의 크기와 부호는 2의 보수 수체계 변환을 통해 새로운 검사노드값
Figure pat00139
로 갱신된다. 갱신된 검사노드값
Figure pat00140
과 FIFO에 의해 지연된
Figure pat00141
는 덧셈연산을 통해 새로운 결정변수값
Figure pat00142
로 갱신된다. 한편 누적곱셈을 통해 얻어진 검사노드값의 부호 1비트와 비교기를 통해 얻은 mag_type 1비트는 2비트로 변환되어 SM 메모리, 최솟값 검출기를 통해 얻어진 최솟값과 준최솟값은 CNM 메모리에 저장된다. Converted Check Node Value
Figure pat00118
And determinants
Figure pat00119
Subtracts variable node values with subtraction
Figure pat00120
. Calculated
Figure pat00121
Is divided into a sign and a size by the number system converter TC_SM1, and the signs are sequentially input and multiplied. Also separate variable node size
Figure pat00122
Is separated sequentially input through the minimum detector Min_det.
Figure pat00123
The minimum and quasi-minimum values are detected and stored in registers. Meanwhile, sequentially calculated
Figure pat00124
Accumulates in the first-in, first-out (FIFO)
Figure pat00125
After the delay, it is separated into code and size through the number system converter TC_SM2. Separated
Figure pat00126
Is compared with the minimum value min0 detected by the comparator.
Figure pat00127
If it is different, the minimum value min0 is
Figure pat00128
Is updated to Because, according to Equation 5
Figure pat00129
th
Figure pat00130
I is determined when
Figure pat00131
Set of variable node sizes except for
Figure pat00132
Smallest of
Figure pat00133
Set of variable nodes constituting test node i
Figure pat00134
Smallest of
Figure pat00135
Where the quasi-minimum value is updated and the remaining set of variable nodes constituting check node i except variable node i
Figure pat00136
This is because it is updated to the minimum value. In addition, the cumulative multiplication of the signs is performed on the same principle as the cumulative multiplication of all signs.
Figure pat00137
The sign of is updated by cumulative multiplication once more. Cumulative multiplication of the sign consists of an XOR operation. determined
Figure pat00138
The magnitude and sign of are the new test node values through the conversion of two's complement number system.
Figure pat00139
Is updated to Updated Check Node Value
Figure pat00140
And delayed by FIFO
Figure pat00141
Is the new decision variable value through the addition operation.
Figure pat00142
Is updated to Meanwhile, one sign of the check node value obtained through cumulative multiplication and one bit of mag_type obtained through the comparator are converted into two bits, and the minimum and quasi minimum values obtained through the SM memory and the minimum value detector are stored in the CNM memory.

도 12는 본 발명의 LDPC 복호기에서 복호 기능 유닛(DFU) 연산의 동작 타이밍의 예를 도시한 타이밍도이다. 복호 기능 유닛(DFU)의 동작은 읽기동작, 쓰기동작 그리고 처리(process) 과정으로 이루어진다. 읽기동작은 메모리로부터

Figure pat00143
Figure pat00144
를 읽어오는 과정이며, 쓰기동작은 연산된
Figure pat00145
Figure pat00146
를 메모리에 쓰는 과정이다. 읽기동작과 쓰기동작은 최초 1회를 제외하고는 항상 중첩되어 일어난다. i번째 레이어의 쓰기동작은 (i-1)번째 레이어의 읽기 동작과 동시에 일어난다. (i-1)번째 레이어의 읽기동작은 새로운 최솟값/준최솟값을 검출하고 부호 누적곱셈 또한 새롭게 시작하기 때문에 i번째 레이어의 검출 결과를 메모리에 쓰기 위해서는 값을 보전할 필요가 있다. 프로세스 과정은 읽기동작 동안 결정된 부호 누적곱셈과 최솟값/준최솟값 검출의 결과를 결과값 레지스터로 저장하는 과정이다.
12 is a timing chart showing an example of operation timing of a decoding function unit (DFU) operation in the LDPC decoder of the present invention. The operation of the decoding function unit (DFU) consists of a read operation, a write operation, and a process. Read operation from memory
Figure pat00143
Wow
Figure pat00144
It is a process of reading and writing operation is calculated
Figure pat00145
Wow
Figure pat00146
Is the process of writing to memory. Read and write operations always overlap except for the first time. The write operation of the i-th layer occurs simultaneously with the read operation of the (i-1) th layer. Since the read operation of the (i-1) th layer detects a new minimum / quasi-minimum value and also starts a new sign cumulative multiplication, it is necessary to preserve the value in order to write the detection result of the i-th layer to memory. The process involves storing the result of the sign cumulative multiplication and the minimum / quasi-minimum detection determined during the read operation into the result register.

도 13은 도 11에 도시된 복호 기능 유닛에 적용되는 수체계 변환기의 구체적인 구조를 도시한 회로도이다. 특히, 도 13에 도시된 수체계 변환기는 2의 보수 수체계의 값 a를 부호비트와 크기로 분리하는 블록이며, 하기 식 7을 이용하여 설계될 수 있다.FIG. 13 is a circuit diagram showing a specific structure of a water system converter applied to the decoding functional unit shown in FIG. In particular, the number system converter illustrated in FIG. 13 is a block that separates the value a of the two's complement number system into a sign bit and a size, and may be designed using Equation 7 below.

[식 7][Equation 7]

Figure pat00147
Figure pat00147

도 13에 도시된 수체계 변환기(TC_SM 변환기)는 입력된 2의 보수 수체계의 수가 양수인지 음수인지 판단하고, 만약 양수라면 부호는 0이 되고 크기는 입력된 2의 보수를 그대로 출력한다. 만약 입력된 수가 음수라면 부호는 1이 되고 입력된 2의 보수를 상기 식 7과 같이 반전하고 1을 더하여 크기 값을 계산한다. 하기 표 5는 도 13에 도시된 수체계 변환기(TC_SM 변환기)의 동작을 나타낸 것이다.The number system converter TC_SM shown in FIG. 13 determines whether the number of input two's complement number systems is positive or negative, and if it is positive, the sign is 0 and the magnitude outputs the input two's complement as it is. If the input number is negative, the sign becomes 1, and the complement of the input 2 is inverted as shown in Equation 7 and 1 is added to calculate the magnitude value. Table 5 below shows the operation of the water system converter (TC_SM converter) shown in FIG.

[표 5][Table 5]

Figure pat00148

Figure pat00148

도 14는 도 11에 도시된 복호 기능 유닛에 적용되는 수체계 변환기의 구체적인 구조를 도시한 회로도이다. 특히, 도 14에 도시된 변환기(SM_TC 변환기)는 부호와 크기를 입력 받아 2의 보수 수체계로 변환하는 블록이며, 하기 식 8을 이용하여 설계될 수 있다.FIG. 14 is a circuit diagram showing a specific structure of a water system converter applied to the decoding function unit shown in FIG. In particular, the converter SM_TC shown in FIG. 14 is a block that receives a code and a size and converts it into a two's complement number system, which can be designed using Equation 8.

[식 8][Equation 8]

Figure pat00149
Figure pat00149

도 14에 도시된 수체계 변환기(SM_TC 변환기)는 입력된 부호가 양수인지 음수인지 판단하고, 만약 부호가 양수라면 2의 보수 수체계의 MSB는 0이 되고 크기는 입력된 7비트의 크기를 그대로 출력하게 된다. 만약 입력된 부호가 음수라면 2의 보수 수체계의 MSB는 1이 되고 입력된 크기는 상기 식 8과 같이 반전하고 1을 더하여 변환된다. 하기 표 6은 도 14에 도시된 수체계 변환기(SM_TC 변환기)의 동작을 나타낸 것이다.The number system converter (SM_TC converter) shown in FIG. 14 determines whether the input code is positive or negative. If the sign is positive, the MSB of the two's complement number system becomes 0 and the size is the same as the input 7-bit size. Will print. If the input code is negative, the MSB of the two's complement number system is 1, and the input size is inverted as shown in Equation 8, and converted by adding 1. Table 6 below shows the operation of the water system converter SM_TC converter shown in FIG.

[표 6]TABLE 6

Figure pat00150

Figure pat00150

도 15는 도 11에 도시된 복호 기능 유닛에 적용되는 최솟값 검출기의 구체적인 구조를 도시한 회로도이다.FIG. 15 is a circuit diagram showing a specific structure of the minimum detector applied to the decoding functional unit shown in FIG.

도 15에 도시한 바와 같이, 최솟값 검출기는 순차적으로 입력되는 부호없는(unsigned) 값들을 비교하여 가장 작은 최솟값과 두 번째로 작은 준최솟값을 검출해 내는 블록이다. 최솟값 검출기는 두 개의 비교기, 검출된 최솟값/준최솟값을 저장하는 레지스터 min0과 min1 그리고 검출기를 제어하는 MUX를 포함하여 구성될 수 있다. 두 개의 비교기는 검출기로 입력되는 값을 각각 최솟값과 준최솟값이 저장된 레지스터의 값과 비교하여 en_m0, en_m1 신호를 발생시킨다. en_m0, en_m1 신호는 각각 최솟값과 준최솟값이 저장된 레지스터의 입력을 활성화하는 신호이다. 설계된 최솟값 검출기는 en_m0 신호가 MUX를 제어하여 새롭게 갱신될 값이 최솟값인지 준최솟값인지 결정한다. 하기 표 7은 최솟값 검출기의 동작을 표로 정리한 것이다.As shown in FIG. 15, the minimum detector is a block that detects the smallest minimum value and the second smallest minimum value by comparing unsigned values sequentially input. The minimum detector may comprise two comparators, registers min0 and min1 storing the detected minimum / quasi-minimum values and a MUX controlling the detector. The two comparators generate the signals en_m0 and en_m1 by comparing the values input to the detector with the values of the registers storing the minimum and quasi-minimum values, respectively. The signals en_m0 and en_m1 are signals for activating the input of the registers storing the minimum and quasi-minimum values, respectively. The designed minimum detector controls the MUX to determine whether the newly updated value is minimum or quasi-minimum. Table 7 below summarizes the operation of the minimum detector.

[표 7][Table 7]

Figure pat00151

Figure pat00151

입력된 값 x가 최솟값과 준최솟값 보다 크다면 en_m0, en_m1은 각각 0, 0이 되고, m0, m1 레지스터의 값은 변하지 않는다. x가 최솟값 보다 크고 준최솟값 보다는 작다면 en_m1 신호가 1이 되어 min1 레지스터를 활성화 시키고 MUX를 거쳐 min1 레지스터에 x가 갱신된다. x가 최솟값과 준최솟값 모두 보다 작다면 en_m0 신호와 en_m1 신호가 모두 1이 되고 min0 레지스터의 값은 MUX를 거쳐 min1에 갱신되고, x는 min0에 갱신되게 된다. 즉 새로운 최솟값이 입력되면 기존의 최솟값은 준최솟값이 되고 새로운 x가 최솟값이 된다.
If the input value x is larger than the minimum and quasi-minimum values, en_m0 and en_m1 are 0 and 0, respectively, and the values of the registers m0 and m1 do not change. If x is greater than the minimum and less than the quasi minimum, the en_m1 signal becomes 1, activating the min1 register and updating the min1 register via MUX. If x is less than both the minimum and quasi-minimum values, both the en_m0 and en_m1 signals are 1, the value of the min0 register is updated to min1 via MUX, and x is updated to min0. In other words, when a new minimum value is input, the existing minimum value becomes the quasi-minimum value and the new x becomes the minimum value.

한편, 도 11의 최솟값과 준최솟값을 생성하는 CNV(Check Node Value)블록은 전술한 도 7을 통해 설명한 바와 같이, 검사노드값

Figure pat00152
를 생성시켜 주는 블록이다. 이 CNV 블록은 MUX와 2의 보수 수체계 변환기로 이루어져 있다. MUX는 SM 메모리로부터 최솟값 유무를 판단하는 Mag_type 1비트를 받아 0이면 CNM 메모리에서 최솟값을, 1이면 준최솟값을 선택하게 된다. 2의 보수 수체계 변환기는 MUX에서 검사노드 크기
Figure pat00153
를 SM 메모리를 통해 검사노드값
Figure pat00154
의 부호를 받아 검사노드값
Figure pat00155
으로 변환한다.
On the other hand, the CNV (Check Node Value) block for generating the minimum and quasi-minimum value of FIG. 11 is a check node value as described with reference to FIG.
Figure pat00152
This block creates. This CNV block consists of a MUX and a two's complement number converter. The MUX receives 1 Mag_type bit to determine the minimum value from the SM memory, and if 0, the minimum value is selected from the CNM memory, and if the value is 1, the quasi-minimum value is selected. 2, complement number system converter checks node size in MUX
Figure pat00153
Node value through SM memory
Figure pat00154
Check node value
Figure pat00155
Convert to

패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-Parity check matrix storage (parity check matrix storage (H-) ROMROM ))))

패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM))은 LDPC 복호화에 사용되는 패리티 검사 행렬(PCM) 값을 저장하는 메모리이다. IEEE 802.16e 표준에는 6가지 부호율(R=1/2, 2/3(A,B), 3/4(A,B), 5/6)을 지원하는 기본 패리티 검사 행렬(PCM)이 전술한 도 1과 같이 규정되어 있다. 블록 길이 19가지를 모두 지원하기 위해서는 부호율에 따른 기본 패리티 검사 행렬(PCM)과 상기 식 2와 식 3을 사용하여 각 블록 길이에 대한 유효 순환이동 값을 계산하여 사용하여야 한다. IEEE 802.16e 표준에 규정된 패리티 검사 행렬(PCM)은 부호율에 따라 레이어 수(

Figure pat00156
)이 12, 8, 6, 4로 구성되며, 레이어 당 24개의 부행렬을 가지고 있다. 부행렬 하나의 크기는 블록길이에 따라
Figure pat00157
(단,
Figure pat00158
)가 된다. 패리티 검사 행렬(PCM)을 구성하는 부행렬들은 다수가 영(0) 행렬로 이루어져 있다. 예를 들어,
Figure pat00159
인 경우는 212개의 영행렬이 포함되어 있고,
Figure pat00160
인 경우는 16개의 영 행렬이 포함되어 있다. 하드웨어 구현시 영행렬은 복호결과에 아무런 영향을 미치지 않기 때문에 영행렬을 제외시킨다면 동작속도를 빠르게 할 수 있으며 패리티 검사 행렬 저장부(H-ROM)의 용량을 줄일 수 있다. 따라서 본 발명에서는 부호율에 따른 6개의 기본 패리티 검사 행렬(PCM)의 정보를 저장하는 대신에, 영 행렬을 제외한 부행렬들의 위치 정보와 순환이동 값만을 패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM))에 저장한다. The parity check matrix storage unit (parity check matrix storage unit (H-ROM)) is a memory that stores a parity check matrix (PCM) value used for LDPC decoding. In the IEEE 802.16e standard, a basic parity check matrix (PCM) supporting six code rates (R = 1/2, 2/3 (A, B), 3/4 (A, B), 5/6) is described above. As defined in FIG. 1. In order to support all 19 block lengths, an effective cyclic shift value for each block length should be calculated and used using a basic parity check matrix (PCM) according to a code rate and Equations 2 and 3 above. The parity check matrix (PCM), defined in the IEEE 802.16e standard, depends on the number of layers
Figure pat00156
) Consists of 12, 8, 6, and 4, with 24 submatrices per layer. The size of one submatrix depends on the block length
Figure pat00157
(only,
Figure pat00158
) The sub-matrixes of the parity check matrix (PCM) are composed of a zero matrix. E.g,
Figure pat00159
Is 212 zero matrices,
Figure pat00160
In the case of, 16 zero matrices are included. In the hardware implementation, since the zero matrix has no effect on the decoding result, excluding the zero matrix can speed up the operation and reduce the capacity of the parity check matrix storage unit (H-ROM). Therefore, in the present invention, instead of storing the information of the six basic parity check matrix (PCM) according to the code rate, the parity check matrix storage unit (parity check matrix storage unit) only the position information and the cyclic shift value of the sub-matrix except the zero matrix (H-ROM)).

도 16의 (a)는 종래의 패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM)) 저장 기법을 도시한 도면이며, (b)는 본 발명에 따른 패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM)) 저장 기법을 도시한 도면이다. FIG. 16A illustrates a conventional parity check matrix storage unit (parity check matrix storage unit (H-ROM)) storage scheme, and (b) illustrates a parity check matrix storage unit (parity check) according to the present invention. A matrix storage unit (H-ROM) storage scheme is shown.

도 16에 도시한 바와 같이, 본 발명에서는 패리티 검사 행렬에서 영행렬을 제외한 가장 많은 부행렬이 존재하는 레이어에 맞추어

Figure pat00161
을 할당하였다. 부호율이 1/2인 경우 모든 블록길이는 각 레이어마다 영행렬을 제외한 부행렬의 개수는 6?7개이므로 부행렬의 개수를 7개로 할당하였으며, 총
Figure pat00162
개의 부행렬을 순환이동 값과 부행렬 위치로 식별하도록 한다.
As shown in FIG. 16, in the present invention, the parity check matrix is adapted to a layer having the most sub-matrix except for the zero matrix.
Figure pat00161
Was assigned. If the code rate is 1/2, the number of sub-matrixes is assigned to 7 because all block lengths are 6-7, except for zero, for each layer.
Figure pat00162
Identifies the two sub-matrix by the circular shift value and the sub-matrix position.

순환이동값Circular movement value 생성부( Generation unit ( SVGSVG : : ShiftingShifting ValueValue GeneratorGenerator ))

순환이동값 생성부(SVG)는 IEEE 802.16e 표준에 정의된 6가지 부호율에 대한 기본 행렬을 사용하여 114가지의 동작모드에 적용시키기 위해 기본 행렬의 유효한 순환이동 값을 상기 식 2와 식 3을 사용해 각각의 동작모드를 지원하는 패리티 검사 행렬(PCM)의 순환이동 값을 만드는 블록이다. 도 17은 본 발명의 LDPC 복호기에 적용되는 순환이동값 생성부의 블록 구성도이다.The cyclic shift value generation unit (SVG) uses the basic matrix for six code rates defined in the IEEE 802.16e standard to apply valid cyclic shift values of the basic matrix to the 114 operating modes. Is a block that generates a cyclic shift value of a parity check matrix (PCM) that supports each operation mode. 17 is a block diagram illustrating a cyclic shift value generator applied to the LDPC decoder of the present invention.

상기 식 2는 나눗셈 연산을 하드웨어로 구현할 경우 매 클럭마다 결과값을 얻을 수가 없다. 따라서 본 발명에서는 19가지의

Figure pat00163
결과를 12비트로 양자화하여 룩업테이블(LUT)로 저장한 후 패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM))에 저장된 부호율에 따른 기본행렬의 순환이동 값을 사용하여 곱셈 연산을 수행한다.
Figure pat00164
값은 소수점 이하 12비트로 양자화 한 값이다. 12비트로 양자화 된 값은
Figure pat00165
의 값과 약간의 오차가 발생하게 되며, 이를 보상하기 위한 회로가 필요하다. Tmul 블록은
Figure pat00166
값을 소수점 이하 12비트로 양자화 한 값과 기본 행렬의 값을 곱하여 19비트의 결과 값 중 상위 7비트 값에 소수점 이하 6비트의 값이 ‘111111’인 경우 정수부에 1을 보상하는 회로이다. 상기 식 3은 부호율이 2/3A인 경우에만 사용된다. 2/3A의 기본행렬의 유효한 순환이동의 값은 48 미만이므로,
Figure pat00167
가 48 이상인 경우에는 기본 행렬을 그대로 사용하고, 44이하인 경우
Figure pat00168
를 사용해 나머지 연산을 한다.
Figure pat00169
가 가장 작은 경우는 24이기 때문에 48 미만의 기본 행렬의 순환이동 값을
Figure pat00170
로 한 번 뺀 값이 실제 나머지 연산의 결과와 동일하다. 따라서 본 발명에서는 도 17에 도시된 바와 같이
Figure pat00171
가 48이상인 경우는 패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM))의 데이터를 R_2_3A_en 신호를 사용하여 바이패스(bypass) 시키고, 그 외의 경우는 Sub 블록 내의 비교기에서
Figure pat00172
보다 값이 클 경우만 기본행렬의 순환이동 값에서
Figure pat00173
를 감산한다.
In Equation 2, when the division operation is implemented in hardware, the result value cannot be obtained every clock. Therefore, in the present invention,
Figure pat00163
Quantize the result into 12 bits and store it as a lookup table (LUT), and then perform multiplication operation using the cyclic shift value of the base matrix according to the code rate stored in the parity check matrix storage unit (parity check matrix storage unit (H-ROM)). To perform.
Figure pat00164
The value is quantized to 12 bits after the decimal point. The value quantized to 12 bits is
Figure pat00165
There is a slight error with the value of, and a circuit is needed to compensate for this. Tmul block
Figure pat00166
It is a circuit that compensates 1 in the integer part when multiplying the value by 12 bits below the decimal point and the value of the base matrix by multiplying the value of the base matrix by the upper 7 bits among the result values of 19 bits. Equation 3 is used only when the code rate is 2 / 3A. Since the effective circular shift value of the 2 / 3A base matrix is less than 48,
Figure pat00167
Is greater than or equal to 48, the default matrix is used and less than or equal to 44
Figure pat00168
To do the rest.
Figure pat00169
Is the smallest value of 24, so the circular shift of the underlying matrix less than 48
Figure pat00170
The value subtracted once is the same as the result of the remaining operation. Therefore, in the present invention, as shown in FIG.
Figure pat00171
Is greater than or equal to 48, the data of the parity check matrix storage (parity check matrix storage (H-ROM)) is bypassed using the R_2_3A_en signal.
Figure pat00172
Only when the value is greater than
Figure pat00173
Subtract

본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위 및 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
In the detailed description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the following claims and their equivalents.

11: 검사노드 메모리(제1 메모리부) 12: APP 메모리(제1 메모리부)
13: 제어부 131: 패리티 검사 행렬 저장부
14: 순환이동값 생성부 15: 치환부
16: 복호 기능 유닛
11: Test node memory (first memory) 12: APP memory (first memory)
13: control unit 131: parity check matrix storage unit
14: cyclic shift value generation unit 15: substitution unit
16: decoding function unit

Claims (7)

IEEE 802.16e 표준에 따른 LDPC 부호화 데이터를 복호화하는 LDPC 복호기에 있어서,
결정변수값을 저장하는 제1 메모리;
검사노드값을 저장하는 제2 메모리;
IEEE 802.16e 표준에 정의된 부호율을 지원하는 기본 패리티 검사 행렬에 대한 정보를 저장하는 패리티 검사 행렬 저장부;
상기 기본 패리티 검사 행렬을 사용하여, IEEE 802.16e 표준에 의해 정의되는 블록길이 및 부호율에 따른 복수의 동작모드에 대한 패리티 검사 행렬의 순환이동값을 생성하는 순환이동값 생성부;
상기 복수의 동작모드에 대한 패리티 검사 행렬에 따라 복호화되는 데이터를 순환이동시키는 치환부; 및
상기 복수의 레이어 각각의 부행렬에 따른 상기 결정변수값 및 검사노드값을 이용하여 복호 연산을 수행하는 복호 기능 유닛
을 포함하는 모바일 와이맥스용 LDPC 복호기.
In the LDPC decoder for decoding LDPC coded data according to the IEEE 802.16e standard,
A first memory for storing a decision variable value;
A second memory for storing a test node value;
A parity check matrix storage unit for storing information about a basic parity check matrix supporting a code rate defined in the IEEE 802.16e standard;
A cyclic shift value generator for generating a cyclic shift value of the parity check matrix for a plurality of operation modes according to a block length and a code rate defined by the IEEE 802.16e standard using the basic parity check matrix;
A replacement unit for circularly moving the decoded data according to the parity check matrix for the plurality of operation modes; And
Decoding function unit for performing a decoding operation using the decision variable value and the check node value according to the sub-matrix of each of the plurality of layers
LDPC decoder for mobile WiMAX comprising a.
제1항에 있어서, 상기 제2 메모리는,
상기 레이어의 영행렬을 제외한 유효 부행렬의 갱신 후 최소값/준최소값의 부호를 나타내는 하나의 비트와 및 갱신 후 최소값/준최소값 여부를 나타내는 하나의 비트를 포함하는 두 비트를 저장하는 메모리와, 상기 레이어에 포함된 부행렬의 최소값 및 준최소값을 저장하는 메모리를 포함하는 것을 특징으로 하는 모바일 와이맥스용 LDPC 복호기.
The method of claim 1, wherein the second memory,
A memory for storing two bits including one bit indicating a sign of a minimum value / minimum value after the update of the effective sub-matrix except the zero matrix of the layer and one bit indicating whether the minimum value / sub-minimum value after the update is performed; An LDPC decoder for mobile WiMAX, comprising a memory for storing the minimum and quasi minimum values of sub-matrix included in the layer.
제1항에 있어서, 상기 패리터 검사 행렬 저장부는,
상기 기본 패리티 검사 행렬에서 영 행렬을 제외한 부행렬들의 위치 정보 및 순환이동 값을 저장하는 것을 특징으로 하는 모바일 와이맥스용 LDPC 복호기.
The method of claim 1, wherein the parity check matrix storage unit,
And the position information and the cyclic shift value of the sub-matrix except for the zero matrix in the basic parity check matrix.
제1항에 있어서, 상기 제1 메모리부 및 제2 메모리부는,
읽기 동작 및 쓰기 동작이 동시에 수행되는 듀얼 포트 메모리인 것을 특징으로 하는 모바일 와이맥스용 LDPC 복호기.
The memory device of claim 1, wherein the first memory unit and the second memory unit include:
The LDPC decoder for mobile WiMAX, characterized in that the dual port memory that read and write operations are performed at the same time.
제4항에 있어서, 상기 제1 메모리부 및 제2 메모리부는,
상기 읽기 동작 및 쓰기 동작이 레이어 단위로 지연되어 각각 순차적으로 이루어지며, 읽기 동작 및 쓰기 동작의 억세스 중복을 방지하기 위해 레이어 내 부행렬의 순서를 재정렬하여 어드레싱되는 것을 특징으로 하는 모바일 와이맥스용 LDPC 복호기.
The memory device of claim 4, wherein the first memory unit and the second memory unit include:
The read and write operations are sequentially delayed in units of layers, and are sequentially addressed by reordering the sub-matrix in layers in order to prevent duplication of access of the read and write operations. .
제4항에 있어서,
읽기 동작 및 쓰기 동작이 중복되는 변수에 대해 상기 제2 메모리부 대신 상기 치환부에 해당 데이터를 입력하는 것을 특징으로 하는 모바일 와이맥스용 LDPC 복호기.
The method of claim 4, wherein
The LDPC decoder for mobile WiMAX, characterized in that the data corresponding to the read operation and the write operation are input to the replacement unit instead of the second memory unit.
제1항에 있어서, 상기 복호 기능 유닛은,
상기 검사노드값와 상기 결정변수값을 뺄셈 연산하여 출력하는 뺄셈기;
상기 뺄셈기의 출력을 부호와 크기로 분리하는 제1 수체계 변환기;
상기 제1 수체계 변환기에서 분리된 부호를 순차적으로 곱셈하는 XOR 논리 연산부;
상기 제1 수체계 변환기에서 분리된 크기를 순차적으로 입력받아 최소값 및 준최소값을 검출하는 최소값 검출부;
상기 뺄셈기의 출력을 순차적으로 저장하고 지연 출력하는 선입선출 메모리부;
상기 선입선출 메모리부의 출력을 부호와 크기로 분리하는 제2 수체계 변환기;
상기 제2 수체계 변환기에서 분리된 크기와 상기 최소값을 비교하는 비교기;
상기 비교기의 비교결과, 상기 제2 수체계 변환기에서 분리된 크기와 상기 최소값이 동일하면 상기 준최소값을 새로운 검사노드값의 크기로 갱신 출력하고, 상기 제2 수체계 변환기에서 분리된 크기와 상기 최소값이 상이하면 상기 최소값을 새로운 검사노드값의 크기로 갱신 출력하는 먹스;
상기 먹스의 출력을 크기로 하고 상기 XOR 논리 연산부의 곱셈 결과를 부호로 하는 값을 2의 보수 수체계 변환하여 출력하는 제3 수체계 변환기; 및
상기 제3 수체계 변환기의 출력과 상기 선입선출 메모리부의 출력을 합산하여 새로운 결정변수값을 출력하는 덧셈 연산부를 포함하는 것을 특징으로 하는 모바일 와이맥스용 LDPC 복호기.
The method of claim 1, wherein the decoding function unit,
A subtractor for subtracting and outputting the check node value and the decision variable value;
A first number system converter that separates the output of the subtractor into a sign and a magnitude;
An XOR logic operator that sequentially multiplies the separated codes by the first number system converter;
A minimum value detector configured to sequentially receive the sizes separated by the first number system converter and detect minimum and quasi minimum values;
A first-in, first-out memory unit that sequentially stores and outputs the output of the subtractor;
A second number system converter that separates an output of the first-in, first-out memory unit into a code and a size;
A comparator for comparing the minimum value with the magnitude separated in the second water system transducer;
As a result of the comparison of the comparator, if the size separated from the second number system converter is equal to the minimum value, the quasi minimum value is updated and output to the size of a new test node value, and the size and the minimum value separated from the second number system converter are output. If different, mux to update the minimum value to the size of the new test node value;
A third number system converter for converting the output of the mux to a magnitude and converting a value of a multiplication result of the XOR logic operation unit as a sign to a two's complement number system; And
And an addition operation unit configured to add the output of the third number system converter and the output of the first-in first-out memory unit to output a new decision variable value.
KR1020110015815A 2011-02-23 2011-02-23 LDPC DECODER FOR MOBILE WiMAX KR101206137B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110015815A KR101206137B1 (en) 2011-02-23 2011-02-23 LDPC DECODER FOR MOBILE WiMAX

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110015815A KR101206137B1 (en) 2011-02-23 2011-02-23 LDPC DECODER FOR MOBILE WiMAX

Publications (2)

Publication Number Publication Date
KR20120096627A true KR20120096627A (en) 2012-08-31
KR101206137B1 KR101206137B1 (en) 2012-11-28

Family

ID=46886468

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110015815A KR101206137B1 (en) 2011-02-23 2011-02-23 LDPC DECODER FOR MOBILE WiMAX

Country Status (1)

Country Link
KR (1) KR101206137B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101600759B1 (en) * 2015-09-01 2016-03-07 인하대학교 산학협력단 Method and Apparatus for Simplified Merged Processing Element for Successive-Cancellation Polar Decoder
US9336077B2 (en) 2013-03-14 2016-05-10 Electronics And Telecommunications Research Institute Method and apparatus for decoding LDPC code
CN113612575A (en) * 2021-06-30 2021-11-05 南京大学 Wimax protocol-oriented QC-LDPC decoder decoding method and system
CN117879620A (en) * 2024-03-13 2024-04-12 荣耀终端有限公司 Decoding method, readable storage medium, program product, and electronic device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336077B2 (en) 2013-03-14 2016-05-10 Electronics And Telecommunications Research Institute Method and apparatus for decoding LDPC code
KR101600759B1 (en) * 2015-09-01 2016-03-07 인하대학교 산학협력단 Method and Apparatus for Simplified Merged Processing Element for Successive-Cancellation Polar Decoder
CN113612575A (en) * 2021-06-30 2021-11-05 南京大学 Wimax protocol-oriented QC-LDPC decoder decoding method and system
CN117879620A (en) * 2024-03-13 2024-04-12 荣耀终端有限公司 Decoding method, readable storage medium, program product, and electronic device

Also Published As

Publication number Publication date
KR101206137B1 (en) 2012-11-28

Similar Documents

Publication Publication Date Title
JP7372369B2 (en) Structural LDPC encoding, decoding method and device
KR101230969B1 (en) Turbo ldpc decoding
US8065598B1 (en) Low latency programmable encoder with outer systematic code and low-density parity-check code
JP4296949B2 (en) Decoding apparatus and method, and information processing apparatus and method
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
CN110771047B (en) Polarity decoder for LLR domain computation with F and G functions
KR100861674B1 (en) A method for operating a transmitter and receiver, and an apparatus for encoding and decoding data
JP2005506733A5 (en)
CN101803210A (en) Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix
JP2008510379A (en) Method and apparatus for encoding and decoding data
WO2007034870A1 (en) Decoding device, and receiving device
KR101206137B1 (en) LDPC DECODER FOR MOBILE WiMAX
JP5333233B2 (en) Decoding device, data storage device, data communication system, and decoding method
US9312884B2 (en) Double QC-LDPC code
US8504894B1 (en) Systematic encoding for non-full row rank, quasi-cyclic LDPC parity check matrices
JP2009177416A (en) Decoding device and method, program, and recording medium
CN114499541A (en) Layered decoding method, device, terminal equipment and medium
CN109935263B (en) Encoding and decoding method of nonvolatile memory and storage system
CN113131947B (en) Decoding method, decoder and decoding device
EP3047575A1 (en) Encoding of low-density parity check for different low-density parity check (ldpc) codes sharing common hardware resources
WO2017193614A1 (en) Encoding method and device and decoding method and device for structured ldpc
JP2006340016A (en) Error-correction encoding/decoding device and decoding method using it
KR101154923B1 (en) BCH decoder, memory system having the same and BCHBCH decoding method
US8508391B1 (en) Code word formatter of shortened non-binary linear error correction code
KR20140074600A (en) BCH decoder, memory system having the same and decoding method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151110

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161102

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee