KR20120096627A - Ldpc decoder for mobile wimax - Google Patents
Ldpc decoder for mobile wimax Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
- H03M13/6544—IEEE 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
Description
본 발명은, 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
[식 1][Formula 1]
상기 식 1에서, 는 크기의 치환행렬(permutation matrix) 또는 영 행렬(zero matrix)을 나타내며, 이를 부행렬(sub-matrix)이라고 한다. IEEE 802.16e의 패리티 검사 행렬 H는 의 이진 기저행렬(binary base matrix) 로부터 확장될 수 있으며, 이고 이며, 로 고정된 값이다. IEEE 802.16e는 19가지 블록길이와 각각의 블록길이에 대해 6가지 부호율을 지원하도록 규정되어 있어 총 114가지의 동작모드를 갖는다. In
하기의 표 1은 IEEE 802.16e 표준에 정의된 114가지의 LDPC 부호의 파라미터를 보이고 있다. 여기서 f는 LDPC 부호의 블록길이 인덱스를 나타내고, 범위의 값을 갖는다. 따라서 부행렬의 크기는 로 정의된다.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, It has a range of values. Therefore, the size of the submatrix .
[표 1][Table 1]
치환행렬은 크기의 단위행렬(identity matrix)을 지정된 값 만큼 오른쪽으로 순환이동(circular right shift)시킨 행렬이다. 블록길이에 따른 오른쪽 순환이동 값 는 하기 식 2와 같이 정의되며, 부호율 2/3A인 경우에만 하기 식 3으로 정의된다. 하기 식 2 및 식 3에서 (통상 로 표시됨)은 영 행렬을 나타낸다. z0는 최대 부행렬 크기를 나타내며, 블록길이 2304 비트에 대해 의 값을 갖는다. The substitution matrix is The identity matrix of the specified value Is a matrix that is circularly right shifted by. Right circular shift value according to block length Is defined as in
[식 2][Formula 2]
[식 3][Equation 3]
도 1은 IEEE 802.16e의 부호율에 따른 패리티 검사 행렬의 예들을 도시한 도면이다. IEEE 802.16e의 부호율에 따른 패리티 검사 행렬(PCM)은 도 1과 같으며, 주어진 값 은 크기의 단위행렬에 대한 오른쪽 순환이동 값을 나타낸다. 도 1에서 는 패리티 검사 행열의 각 열의 유효한 부행렬의 수를 나타내며, 은 레이어 당 유효 부행렬의 수, 는 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. silver Represents a right-hand circular shift value for a unit matrix of size. In Figure 1 Represents the number of valid submatrices of each column of the parity check matrix, Is the number of valid submatrices per layer, 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.
: 결정변수 Determinant
: 검사노드 : Inspection node
: 변수노드 Variable node
: 수신된 부호어에 대한 경판정 값 : Hard decision value for received codeword
: 검사노드에서 변수노드로 전달된 정보 : Information passed from check node to variable node
: 변수노드에서 검사노드로 전달된 정보 : Information passed from variable node to check node
: 변수노드 에 연결된 검사노드의 집합 Variable node Set of check nodes connected to
: 검사노드 를 제외한 집합 변수노드 에 연결된 검사노드의 집합 : Inspection node Set variable nodes except Set of check nodes connected to
: 검사노드 에 연결된 변수노드의 집합 : Inspection node Set of variable nodes connected to
: 변수노드 를 제외한 집합 검사노드 에 연결된 변수노드의 집합 Variable node Set checking node except 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의 위치에 의해 결정된다. 어떤 행렬의 원소 이면, 태너 그래프 상에서 변수노드 i는 검사노드 j와 연결된 것을 나타낸다. 예를 들어, 도 2는 인 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 , The variable node i on the Tanner graph indicates that it is connected to the check node j. For example, Figure 2 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에 도시된 바와 같이, 는 수신된 부호어에 대한 경판정 값으로 변수노드에 입력된다. 또한, 는 해당 검사노드에서 변수노드로 전달된 정보인 를 제외한 변수노드에 전달된 나머지 모든 정보에 대한 함수이다. 왜냐하면, 는 해당 검사노드에서 변수노드로 전달한 정보이기 때문에 검사노드에서는 해당 정보를 이미 알고 있기 때문이다. 그리고 변수노드에서 복호한 추정 비트는 하기 식 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, Is input to the variable node as a hard decision value for the received codeword. Also, Is the information passed from the check node to the variable node. All other information passed to the variable node except for. because, 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
[식 4][Formula 4]
상기 식 4는 수신된 부호어에 대한 경판정 값 와 해당 변수노드에서 검사노드로 전달된 정보 그리고 검사노드에서 변수노드로 전달된 검사노드들의 모든 정보를 모두 취합()하여 복호 비트를 추정한다는 의미이다.
채널코딩은 어떠한 정보를 전달할 때 정보에 덧붙임(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
이러한 패리티 검사 방법은 동시에 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
그 외, 신호나 데이터를 선택하거나 분할하여 출력하는 먹스와 디먹스(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가지 패리티 검사 행렬의 부행렬 크기는 블록길이에 따라 가 된다. 또한, QC-LDPC 방식으로 구성된 패리티 검사 행렬의 대부분은 영 (zero) 행렬로 이루어져 있다. 영 행렬은 검사노드와 변수노드 사이에 어떠한 연결도 형성하지 않기 때문에 필요한 연산이 존재하지 않는다. 따라서 LDPC 복호기는 영 행렬을 무시하고 연산을 수행할 수 있다. 본 발명에서 영 행렬을 효율적으로 무시하기 위해 부행렬 단위로 연산을 수행하는 블록-직렬 구조로 설계하여 개의 LLR(Log-Likelihood Ratio)이 동시에 연산되도록 한다. 각각의 DFU는 변수노드 연산과 결정변수 계산을 위한 가산기 2개, 검사노드 연산을 위한 최솟값/준최솟값 검출기 그리고 결정변수 계산을 위해 연산결과를 지연시키는 레지스터로 구성된다. 치환부(Permuter)는 패리티 검사 행렬상의 오른쪽 순환이동 값에 따라 검사노드와 변수노드 사이에 연결을 형성하는 블록이다.
The present invention supports 19 block lengths of the IEEE 802.16e standard and 6
메모리(11, 12)는 결정변수 값()을 저장하는 결정변수(APP: A Posteriori Probability) 메모리(12)와 검사노드값()을 저장하는 검사노드(CN: Check Node) 메모리(11)가 사용된다. 이 두 메모리(11, 12)는 듀얼 포트 메모리로 구현될 수 있다.The
검사노드 메모리(11)는 변수노드에서 연산된 정보를 저장할 수 있다. 본 발명에서는 최소합 알고리듬의 특징을 이용하여 검사노드 메모리(11) 용량을 효율적으로 감소시키는 방법이 제공된다. 더하여, 본 발명에서는 패리티 검사 행렬(H-matrix)의 재정렬(reordering)을 통한 결정변수 메모리(12)의 억세스를 감소시키는 방법에 제공된다.The
복호 기능 유닛(DFU, 16)은 각 노드에 해당하는 정보를 메모리로부터 읽어와 복호연산을 수행하고 다시 메모리에 쓰는 동작을 수행하며, 읽기동작과 쓰기동작을 중첩하여 수행한다. 복호 기능 유닛(DFU, 16)은 복호연산을 마치면 복호된 정보를 메모리에 쓰는 동시에 새롭게 복호할 정보를 메모리로부터 읽어온다. 따라서 본래 DFU가 1개의 레이어를 복호하기 위해 클록 사이클이 필요하지만 읽기와 쓰기가 중첩되므로 클록 사이클로 감소될 수 있다. 그러나 첫 번째 반복복호의 첫 번째 레이어 연산은 정보를 읽어오는 연산만 수행되고 마지막 반복복호의 마지막 레이어 연산은 정보를 쓰는 연산만 수행되기 때문에 읽기와 쓰기를 중첩시키지 못한다. 따라서 개의 레이어를 연산하기 위해서는 클록 사이클이 소요된다. 1개의 레이어 복호를 위해 클록 사이클이 소요되고, 개의 레이어로 이루어진 1회의 반복복호는 총 클록 사이클이 필요하다.
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, Requires clock cycles, but because reads and writes overlap 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 To compute two layers It takes a clock cycle. For one layer decoding Clock cycles, One iterative decoding of 4 layers Clock cycles are required.
검사노드Inspection node 메모리의 용량 감소 기법 Memory Reduction Techniques
LDPC 복호기의 검사노드 메모리에는 변수노드에서의 연산결과 가 저장된다. 이 때, 의 크기 는 하기 식 5에 의해 의 최솟값으로 갱신되며, 최솟값이 발생한 번째 은 최솟값을 제외한 나머지 의 최솟값으로 갱신된다. 이는 가 다수의 최솟값과 하나의 준최솟값으로 갱신됨을 의미한다.In the check node memory of the LDPC decoder, the result of the calculation in the variable node. Is stored. At this time, Size By the following
[식 5][Equation 5]
하기 표 2는 가 갱신되는 예를 든 것이다. 표 2의 (a)는 값중 1이 최솟값이고 2가 준최솟값이 된다. 따라서 1의 위치에는 준최솟값인 2로 갱신되고 나머지 값들은 최솟값인 1로 갱신된다. 표 2의 (b)는 값중 최솟값이 2이며 준최솟값도 2이기 때문에 모두 2로 갱신된다. Table 2 below Is an example of updating. (A) of Table 2 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 The values are updated to the minimum value of 1. (B) of Table 2 Since the minimum value is 2 and the quasi minimum value is 2, they are all updated to 2.
[표 2][Table 2]
또한, 상기 식 5에서 은 의 부호비트들의 곱셈으로 사용되어 양수와 음수를 나타낸다. 따라서 은 최솟값과 준최솟값 그리고 각각의 부호만으로 갱신될 수 있으며, 하기 식 6과 같은 4가지 경우로 정리될 수 있다.Also, in
[식 6][Equation 6]
본 발명에서는 검사노드 메모리(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]
도 6은 종래의 LDPC 복호기에서 검사노드 갱신값의 메모리 저장방식과, 본 발명의 LDPC 복호기에서 검사노드 갱신값의 메모리 저장방식을 비교한 도면이다. 도 6의 (a)에 도시된 종래의 검사노드 메모리 구조에서는 -비트의 를 각 레이어의 유효 부행렬의 수 만큼 저장 하므로, 레이어 당 -비트의 메모리 용량이 필요하다.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. -Bit The number of valid sub-matrix for each layer As long as you save as per layer Requires a bit of memory capacity.
이에 반해, 본 발명에 따르면, 도 6의 (b)와 같이 검사노드 메모리를 2개의 영역으로 나누어 저장한다. 이 중 하나의 메모리는 SM 메모리로 의 부호비트인 Sign과 의 최솟값/준최솟값 여부를 표현하는 Mag_type을 2비트로 표현하여 각 레이어별로 0행렬을 제외한 부행렬 개수인 만큼 저장한다. 나머지 하나의 메모리는 CNM 메모리로서, 각 레이어별 부행렬의 개수에 상관없이 의 최솟값과 준최솟값 하나씩만 메모리에 저장한다. 따라서, 본 발명에서 제공하는 메모리 운용 감소 방식은 레이어당 -비트의 메모리 용량만 필요하여 검사노드 메모리를 크게 감소시킬 수 있다.
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 Sign, which is the sign bit of 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 Save as much. The other memory is CNM memory, regardless of the number of sub-matrix for each layer. Store only one minimum and one minimum value in memory. Therefore, the memory operation reduction method provided by the present invention is per layer. Only a bit of memory capacity is required, which greatly reduces the test node memory.
검사노드의 복호연산을 수행하기 위해서는 2의 보수 수체계로 표현된 값이 필요하므로, 부호 정보(Sign)와 최솟값/준최소값 여부 정보(Mag_type)로 구성된 신호를 로 변환하기 위한 부가적인 하드웨어가 필요하다. In order to perform the decoding operation of the test node, it is represented by a two's complement number system. Since a value is required, a signal composed of sign information (Sign) and minimum / minor value information (Mag_type) Additional hardware is needed to convert
도 7은 본 발명에 따른 LDPC복호기의 검사노드 메모리(11) 내 SM 메모리(11)에 저장되어 있는 부호 정보(Sign)와 최솟값/준최소값 여부 정보(Mag_type)를 이용하여 값을 생성하는 회로를 도시한 블록도이다. FIG. 7 illustrates the use of sign information (Sign) and minimum / minimum value information (Mag_type) stored in the
도 7에 도시된 회로는 후술하는 복호 기능 유닛(DFU)에 포함될 수 있다. 부호 정보(Sign)는 변환될 의 부호비트로 사용되는 값이고, 최솟값/준최소값 여부 정보(Mag_type)는 MUX(211)의 선택신호로 입력되며, 이전 반복복호에서 CNM 메모리(112)에 저장된 최솟값과 준최솟값인 중 한가지를 선택한다. 최솟값/준최소값 여부 정보(Mag_type)가 0이면 은 최솟값이고, 1이면 은 준최솟값이 된다. The circuit shown in FIG. 7 may be included in a decoding function unit (DFU) to be described later. Sign information is converted 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)에 의해 선택된 최솟값과 준최솟값은 부호 정보(Sign)와 함께 2의 보수 변환부(212)로 입력된다. 함께 2의 보수 변환부(212)는 부호정보(Sign) 및 최솟값/준최소값 여부 정보(Mag_type)를 입력 받아 2의 보수 수체계로 변환하여 를 생성시켜 준다. 값 생성 회로는 동시에 갱신되어야 하는 검사노드의 개수()만큼 필요하며, 노드를 작은 그룹으로 분할하여 갱신하는 반병렬 구조에서는 메모리 면적에 비해 작은 면적의 하드웨어로 구현될 수 있다. The minimum and quasi-minimum values selected by the
예를 들어, 블록길이가 2304이고 부호율이 1/2인 PCM을 이용하는 복호기의 비트 폭()이 8 비트라면, 종래 방식은 비트의 검사노드 메모리가 필요하다. 이에 반해, 본 발명에 따르면, SM 메모리 용량 비트와 CNM 메모리 용량 비트를 합산한 총 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 Bit width ( ) Is 8 bits, the conventional way A bit of checknode memory is required. In contrast, according to the present invention, the SM memory capacity Bit and CNM memory capacity 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)에 도시된 바와 같이, 레이어 의 3번 블록과 레이어 의 0번 블록을 읽을 때, 데이터 해저드(data hazard)가 할 수 있다. 복호 기능 유닛(DFU)는 레이어 i의 부행렬을 순차적으로 읽어 복호연산을 거친 후 다시 레이어 i의 부행렬을 읽은 순서대로 메모리에 저장한다. 이 때, 레이어 의 0번 블록을 읽는 동시에 레이어 i의 0번 블록 연산 결과를 메모리에 저장하게 된다. 이 과정에서 레이어 i의 복호된 정보를 메모리에 저장하기 전에 레이어 에서 정보를 읽어 오기 때문에 레이어 i에서 복호된 정보를 반영하지 못하게 되어 데이터 해저드가 발생하게 된다. As shown in Fig. 9A, the
이러한 데이터 해저드 발생을 방지하기 위해, 종래에는 도 9의 (b)와 같이 스톨(stall)을 삽입하여 레이어 에서 복호된 정보를 메모리에 저장한 후 메모리에서 레이어 의 정보를 읽어오도록 하는 방법이 적용되었다. 이러한 스톨을 적용하는 방식은, 연접한 레이어 간에 변수노드가 중복되는 경우가 많은 경우, 블록-직렬 방식의 레이어드(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. Stores the decoded information in memory and stores the layer in memory 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 표준에 정의된 부호화율 , 의 패리티 검사 행렬(PCM)은 도 10의 (a)에 도시된 바와 같이 연접한 두 레이어의 변수노드가 중복되는 경우가 많아 스톨을 삽입하지 않고서 재정열(reordering) 만으로 데이터 해저드를 제거하는데 어려움이 발생할 수 있다. 이에, 본 발명에서는 도 10의 (b) 및 (c)에 도시한 바와 같은 방식을 제공한다. 도 10의 (a)에 도시된 것과 같은 패리티 검사 행열을 재정열하여 도 10의 (b)에 도시한 것과 같이 읽기/쓰기 동작이 동시에 일어나게 하고, 메모리의 동일 주소에 억세스(access) 할 경우 도 10의 (c)와 같이 메모리를 거치지 않고, 치환부(permuter)(15)로 데이터를 입력하는 기법을 사용할 수 있다.Code rate defined in the 802.16e standard , 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
하기 표 4는 종래 방식과 본 발명의 따른 방식의 메모리 억세스 횟수를 비교한 것이다. 표 4에서 는 패리티 검사 행렬(PCM)의 유효 블록의 수이다. 부호화율 , 의 경우에, 종래 방식(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 Is the number of valid blocks of the parity check matrix (PCM). Coding rate , 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]
(802.16e WiMAX, Block-length : 2304, Code-rate : , )
(802.16e WiMAX, Block-length: 2304, Code-rate: , )
복호 기능 유닛(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.
변환된 검사노드값 와 결정변수 는 뺄셈연산을 통해 변수노드값 를 계산한다. 계산된 는 수체계 변환기(TC_SM1)를 통해 부호와 크기로 분리되어 부호는 순차적으로 입력되어 곱셈한다. 또한 분리된 변수노드 크기 는 최솟값 검출기(Min_det)를 통해 순차적으로 입력되는 분리된 들과 비교하여 최솟값과 준최솟값을 검출하여 레지스터에 저장한다. 한편, 순차적으로 계산된 는 선입선출 메모리부(FIFO)에 누적되어 만큼 지연된 후 수체계 변환기(TC_SM2)를 통해 부호와 크기로 분리된다. 분리된 는 비교기를 통해 검출된 최솟값 min0과 비교되어 두 값이 같으면 준최솟값 min1을 새로운 검사노드 크기 로 갱신하고, 다르면 최솟값 min0이 로 갱신된다. 왜냐하면, 상기 식 5에 따르면 번째 를 결정할 때에는 i번째 를 제외한 나머지 변수노드 크기의 집합 중 가장 작은 을 선택하기 때문에 검사노드 i를 구성하는 변수노드의 집합 중 가장 작은 가 발생한 위치에는 준최솟값이 갱신되고 변수 노드 i를 제외한 검사노드 i를 구성하는 나머지 변수노드의 집합 에는 최솟값으로 갱신되기 때문이다. 또한 부호의 누적 곱셈도 동일한 원리로 모든 부호를 누적 곱셈한 다음 i번째 의 부호를 한 번 더 누적 곱셈하여 갱신한다. 부호의 누적 곱셈은 XOR 연산으로 이루어진다. 결정된 의 크기와 부호는 2의 보수 수체계 변환을 통해 새로운 검사노드값 로 갱신된다. 갱신된 검사노드값 과 FIFO에 의해 지연된 는 덧셈연산을 통해 새로운 결정변수값 로 갱신된다. 한편 누적곱셈을 통해 얻어진 검사노드값의 부호 1비트와 비교기를 통해 얻은 mag_type 1비트는 2비트로 변환되어 SM 메모리, 최솟값 검출기를 통해 얻어진 최솟값과 준최솟값은 CNM 메모리에 저장된다. Converted Check Node Value And determinants Subtracts variable node values with subtraction . Calculated 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 Is separated sequentially input through the minimum detector Min_det. The minimum and quasi-minimum values are detected and stored in registers. Meanwhile, sequentially calculated Accumulates in the first-in, first-out (FIFO) After the delay, it is separated into code and size through the number system converter TC_SM2. Separated Is compared with the minimum value min0 detected by the comparator. If it is different, the minimum value min0 is Is updated to Because, according to
도 12는 본 발명의 LDPC 복호기에서 복호 기능 유닛(DFU) 연산의 동작 타이밍의 예를 도시한 타이밍도이다. 복호 기능 유닛(DFU)의 동작은 읽기동작, 쓰기동작 그리고 처리(process) 과정으로 이루어진다. 읽기동작은 메모리로부터 와 를 읽어오는 과정이며, 쓰기동작은 연산된 와 를 메모리에 쓰는 과정이다. 읽기동작과 쓰기동작은 최초 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 Wow It is a process of reading and writing operation is calculated Wow 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
[식 7][Equation 7]
도 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
[표 5][Table 5]
도 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
[식 8][Equation 8]
도 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
[표 6]TABLE 6
도 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]
입력된 값 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을 통해 설명한 바와 같이, 검사노드값 를 생성시켜 주는 블록이다. 이 CNV 블록은 MUX와 2의 보수 수체계 변환기로 이루어져 있다. MUX는 SM 메모리로부터 최솟값 유무를 판단하는 Mag_type 1비트를 받아 0이면 CNM 메모리에서 최솟값을, 1이면 준최솟값을 선택하게 된다. 2의 보수 수체계 변환기는 MUX에서 검사노드 크기 를 SM 메모리를 통해 검사노드값 의 부호를 받아 검사노드값 으로 변환한다.
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. 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 Node value through SM memory Check node value 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)은 부호율에 따라 레이어 수()이 12, 8, 6, 4로 구성되며, 레이어 당 24개의 부행렬을 가지고 있다. 부행렬 하나의 크기는 블록길이에 따라 (단, )가 된다. 패리티 검사 행렬(PCM)을 구성하는 부행렬들은 다수가 영(0) 행렬로 이루어져 있다. 예를 들어, 인 경우는 212개의 영행렬이 포함되어 있고, 인 경우는 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
도 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에 도시한 바와 같이, 본 발명에서는 패리티 검사 행렬에서 영행렬을 제외한 가장 많은 부행렬이 존재하는 레이어에 맞추어 을 할당하였다. 부호율이 1/2인 경우 모든 블록길이는 각 레이어마다 영행렬을 제외한 부행렬의 개수는 6?7개이므로 부행렬의 개수를 7개로 할당하였으며, 총 개의 부행렬을 순환이동 값과 부행렬 위치로 식별하도록 한다.
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. 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. 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가지의 결과를 12비트로 양자화하여 룩업테이블(LUT)로 저장한 후 패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM))에 저장된 부호율에 따른 기본행렬의 순환이동 값을 사용하여 곱셈 연산을 수행한다. 값은 소수점 이하 12비트로 양자화 한 값이다. 12비트로 양자화 된 값은 의 값과 약간의 오차가 발생하게 되며, 이를 보상하기 위한 회로가 필요하다. Tmul 블록은 값을 소수점 이하 12비트로 양자화 한 값과 기본 행렬의 값을 곱하여 19비트의 결과 값 중 상위 7비트 값에 소수점 이하 6비트의 값이 ‘111111’인 경우 정수부에 1을 보상하는 회로이다. 상기 식 3은 부호율이 2/3A인 경우에만 사용된다. 2/3A의 기본행렬의 유효한 순환이동의 값은 48 미만이므로, 가 48 이상인 경우에는 기본 행렬을 그대로 사용하고, 44이하인 경우 를 사용해 나머지 연산을 한다. 가 가장 작은 경우는 24이기 때문에 48 미만의 기본 행렬의 순환이동 값을 로 한 번 뺀 값이 실제 나머지 연산의 결과와 동일하다. 따라서 본 발명에서는 도 17에 도시된 바와 같이 가 48이상인 경우는 패리티 검사 행렬 저장부(패리티 검사 행렬 저장부(H-ROM))의 데이터를 R_2_3A_en 신호를 사용하여 바이패스(bypass) 시키고, 그 외의 경우는 Sub 블록 내의 비교기에서 보다 값이 클 경우만 기본행렬의 순환이동 값에서 를 감산한다.
In
본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위 및 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
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)
결정변수값을 저장하는 제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.
상기 레이어의 영행렬을 제외한 유효 부행렬의 갱신 후 최소값/준최소값의 부호를 나타내는 하나의 비트와 및 갱신 후 최소값/준최소값 여부를 나타내는 하나의 비트를 포함하는 두 비트를 저장하는 메모리와, 상기 레이어에 포함된 부행렬의 최소값 및 준최소값을 저장하는 메모리를 포함하는 것을 특징으로 하는 모바일 와이맥스용 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.
상기 기본 패리티 검사 행렬에서 영 행렬을 제외한 부행렬들의 위치 정보 및 순환이동 값을 저장하는 것을 특징으로 하는 모바일 와이맥스용 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.
읽기 동작 및 쓰기 동작이 동시에 수행되는 듀얼 포트 메모리인 것을 특징으로 하는 모바일 와이맥스용 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.
상기 읽기 동작 및 쓰기 동작이 레이어 단위로 지연되어 각각 순차적으로 이루어지며, 읽기 동작 및 쓰기 동작의 억세스 중복을 방지하기 위해 레이어 내 부행렬의 순서를 재정렬하여 어드레싱되는 것을 특징으로 하는 모바일 와이맥스용 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. .
읽기 동작 및 쓰기 동작이 중복되는 변수에 대해 상기 제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 수체계 변환기에서 분리된 부호를 순차적으로 곱셈하는 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.
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)
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 |
-
2011
- 2011-02-23 KR KR1020110015815A patent/KR101206137B1/en not_active IP Right Cessation
Cited By (4)
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 |