KR20180053224A - A scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix - Google Patents
A scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix Download PDFInfo
- Publication number
- KR20180053224A KR20180053224A KR1020170142382A KR20170142382A KR20180053224A KR 20180053224 A KR20180053224 A KR 20180053224A KR 1020170142382 A KR1020170142382 A KR 1020170142382A KR 20170142382 A KR20170142382 A KR 20170142382A KR 20180053224 A KR20180053224 A KR 20180053224A
- Authority
- KR
- South Korea
- Prior art keywords
- parity check
- check matrix
- index
- node
- zero elemental
- 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/1148—Structural properties of the code parity-check or generator matrix
-
- 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/1131—Scheduling of bit node or check node processing
-
- 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/6508—Flexibility, adaptability, parametrability and configurability of the implementation
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
본 발명은 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기에 관한 것으로, 보다 구체적으로는 제1 인덱스와 제2 인덱스를 통해 메모리 액세스 충돌 없이 CNU와 VNU를 동시에 수행하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기에 관한 것이다.The present invention relates to a scheduling method of a parity check matrix and an LDPC decoder for performing the same. More particularly, the present invention relates to a scheduling method of a parity check matrix for simultaneously performing a CNU and a VNU without a memory access conflict through a first index and a second index, And an LDPC decoder for performing the LDPC decoder.
최근에 LDPC 코드를 이용한 부호화 방법이 부각되고 있다. LDPC 코드는 패리티 검사 행렬(parity check matrix) Η의 원소들의 대부분이 0이어서 저밀도(low density)인 선형 블록 부호(linear block code)로서 1962년 갤러거(Gallager)에 의해 제안되었다. LDPC 부호는 매우 복잡하여 제안 당시의 기술로는 구현이 불가능하였기 때문에 잊혀져 있다가 1995년에 재발견되어 성능이 매우 우수함이 입증된 이래로 최근에 그에 관한 연구가 활발히 진행되고 있는 상황이다. LDPC 코드의 패리티 검사 행렬은 1의 개수가 매우 적기 때문에 매우 큰 블록 크기에서도 반복 복호를 통하여 복호가 가능하여 블록 크기가 매우 커지면 터보 코드처럼 섀넌(Shannon)의 채널 용량 한계에 근접하는 성능을 보이며, 병렬 처리로 인한 고속 처리가 가능하다.Recently, an encoding method using an LDPC code has been highlighted. The LDPC code was proposed by Gallager in 1962 as a linear block code with a low density, with most of the elements of the parity check matrix H being zero. Since the LDPC code is very complex, it has been forgotten because it was impossible to implement with the technology at the time of the suggestion, and since the LDPC code has been rediscovered in 1995 and proved to be very excellent in performance, studies on the LDPC code have been actively conducted recently. Since the parity check matrix of the LDPC code has a very small number of 1, it is possible to decode it through iterative decoding even in a very large block size. If the block size is very large, the performance is close to the channel capacity limit of Shannon like a turbo code, High-speed processing due to parallel processing is possible.
다만, LDPC 코드를 이용하여 병렬로 복호화하기 위해 검사 노드 업데이트(Check Node Update, CNU)를 수행할 때, 서로 다른 행에서의 메모리 액세스 충돌이 발생할 뿐만 아니라, 이중 사선 행렬과 같이 같은 행에서도 메모리 액세스 충돌이 발생할 수 있었다. However, when a Check Node Update (CNU) is performed to decode data in parallel using an LDPC code, not only memory access conflicts occur in different rows, but also memory accesses A collision could occur.
일 실시예에 따르면, LDPC 코드를 이용하여 고속 복호화 할 때 발생하는 메모리 액세스 충돌을 방지하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기를 제공한다.According to an embodiment, there is provided a method of scheduling a parity check matrix for preventing a memory access collision that occurs when a fast decoding is performed using an LDPC code, and an LDPC decoder for performing the method.
일 실시예에 따르면, 매핑이 실패할 경우, 비트 노드 또는 검사 노드의 cyclic shift를 통해 비트 노드 또는 검사 노드를 재매핑함으로써 메모리 액세스 충돌을 방지하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기를 제공한다.According to an embodiment, when a mapping fails, a parity check matrix scheduling method for preventing a memory access collision by remapping a bit node or a check node through a cyclic shift of a bit node or a check node, and an LDPC decoder to provide.
일 실시예에 따르면, 패리티 검사 행렬의 큰 사이즈와 많은 반복회수에도 불구하고 고속으로 LDPC 복호화가 가능한 LDPC 복호기를 제공한다. According to an embodiment, an LDPC decoder capable of high-speed LDPC decoding despite a large size of a parity check matrix and a large number of repetition times is provided.
일실시예에 따르면, LDPC 복호기가 수행하는 패리티 검사 행렬(parity check matrix)의 스케줄링(scheduling) 방법에 있어서, 상기 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하는 단계; 상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하는 단계; 상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)을 추출하고, 상기 추출된 열에 상기 non-zero elemental인 비트 노드를 배열에 따라 매핑하는 단계; 상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 단계; 를 포함하는 패리티 검사 행렬의 스케줄링 방법일 수 있다.According to an embodiment, there is provided a method of scheduling a parity check matrix performed by an LDPC decoder, the method comprising: checking a non-zero elemental variable node in the parity check matrix; Checking a first index for a row of the parity check matrix in the non-zero elemental bit node; Extracting a column in which the non-zero elemental bit node can be arranged in the parity check matrix using the first index, extracting a non-zero elemental bit node in the extracted column according to an array Mapping; Checking a second index for the column of the parity check matrix through the mapped bit node; The parity check matrix may be a scheduling method of a parity check matrix.
패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)를 동시에 수행하는 단계를 더 포함할 수 있다.A method for scheduling a parity check matrix, the method further comprising performing a check node update (CNU) and a variable node update (VNU) simultaneously using the first index and the second index can do.
패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 제2 인덱스는, 상기 제1 인덱스에 따른 행과 상기 CNU 및 VNU를 동시에 수행하는 상기 패리티 검사 행렬의 열을 나타낼 수 있다.The second index may indicate a row of the parity check matrix that simultaneously performs the CNU and the VNU according to the first index, in the scheduling method of the parity check matrix.
패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 제1 인덱스는, 상기 패리티 검사 행렬의 상기 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 확인될 수 있다.In the method of scheduling a parity check matrix, the first index may be identified by grouping bit nodes that are non-zero elemental of the parity check matrix according to a row.
패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 non-zero elemental인 비트 노드를 매핑하는 단계는, 상기 제1 인덱스를 통해, 상기 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 상기 non-zero elemental인 비트 노드를 순서대로 배치하는 단계를 포함할 수 있다.A method of scheduling a parity check matrix, the step of mapping a non-zero elemental bit node comprises: identifying a location where the non-zero elemental bit node can not be located through the first index, And placing the bit nodes in the non-zero elemental in order.
패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 non-zero elementa인 비트 노드의 배열은, 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열될 수 있다. A method for scheduling a parity check matrix, the non-zero elementary bit nodes may be arranged in order according to a column of the parity check matrix.
일 실시예에 따르면, LDPC 복호기가 수행하는 패리티 검사 행렬(parity check matrix)의 스케줄링(scheduling) 방법에 있어서, 상기 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하는 단계; 상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하는 단계; 상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)에 상기 non-zero elemental인 비트 노드의 배열에 따른 매핑이 실패할 경우, 상기 비트 노드의 배열을 cyclic 시프트하여 다시 매핑하는 단계; 상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 단계; 를 포함할 수 있다.According to an embodiment, there is provided a method of scheduling a parity check matrix performed by an LDPC decoder, the method comprising: checking a non-zero elemental variable node in the parity check matrix; Checking a first index for a row of the parity check matrix in the non-zero elemental bit node; When the mapping according to the array of the non-zero elemental bit nodes fails in a column in which the non-zero elemental bit node can be arranged in the parity check matrix using the first index, Cyclic shifting and rearranging the array of bit nodes; Checking a second index for the column of the parity check matrix through the mapped bit node; . ≪ / RTI >
패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 cyclic 시프트는, 한 열에 대한 VNU 연산이 수행될 수 있도록, 상기 한 열에 포함된 상기 non-zero elemental인 비트 노드를 cyclic 시프트 할 수 있다.In the method of scheduling a parity check matrix, the cyclic shift may cyclic-shift the non-zero elemental bit node included in the column so that a VNU operation for one column can be performed.
일 실시예에 따르면, LDPC 복호기가 수행하는 패리티 검사 행렬(parity check matrix)의 스케줄링(scheduling) 방법에 있어서, 상기 패리티 검사 행렬에서 non-zero elemental인 검사 노드(check node)를 체크하는 단계; 상기 non-zero elemental인 검사 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하는 단계; 상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 검사 노드가 배치될 수 있는 열(column)에 상기 non-zero elemental인 검사 노드의 배열에 따른 매핑이 실패할 경우, 상기 검사 노드의 배열을 cyclic 시프트하여 다시 매핑하는 단계; 상기 매핑된 검사 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 단계; 를 포함할 수 있다.According to an embodiment, there is provided a method of scheduling a parity check matrix performed by an LDPC decoder, the method comprising: checking a check node that is non-zero elemental in the parity check matrix; Checking a first index for a row of the parity check matrix in the non-zero elemental check node; When the mapping according to the arrangement of the non-zero elemental check nodes fails in a column in which the non-zero elemental check nodes in the parity check matrix can be arranged using the first index, Cyclic-shifting the array of check nodes by re-mapping; Checking a second index of a column of the parity check matrix through the mapped check node; . ≪ / RTI >
패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 cyclic 시프트는, 한 행에 대한 CNU 연산이 수행될 수 있도록, 상기 한 행에 포함된 상기 non-zero elemental인 검사 노드를 cyclic 시프트 할 수 있다.In the method of scheduling a parity check matrix, the cyclic shift may cyclic-shift check nodes, which are non-zero elemental included in the row, so that a CNU operation for one row can be performed.
일 실시예에 따르면, LDPC 복호기에 있어서, 상기 LDPC 복호기는 프로세서를 포함하고, 상기 프로세서는, 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하고, 상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하며, 상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)을 추출하고, 상기 추출된 열에 상기 non-zero elemental인 비트 노드를 배열에 따라 매핑하고, 상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하여 패리티 검사 행렬을 스케줄링하는 LDPC 복호기일 수 있다.According to one embodiment, in an LDPC decoder, the LDPC decoder includes a processor, the processor checks a non-zero elemental variable node in a parity check matrix, Wherein a first index for a row of the parity check matrix is checked at a node and a column in which the non-zero elemental bit node is arranged in the parity check matrix using the first index, Zero elemental bit nodes in the extracted column according to the array and schedules a parity check matrix by checking a second index of the column of the parity check matrix through the mapped bit node LDPC decoder.
패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 프로세서는, 상기 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)를 동시에 수행할 수 있다.The LDPC decoder for scheduling a parity check matrix, the processor comprising: a check node update (CNU) and a variable node update (VNU) simultaneously using the first index and the second index Can be performed.
패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 제2 인덱스는, 상기 제1 인덱스에 따른 행과 상기 CNU 및 VNU를 동시에 수행할 수 있다.An LDPC decoder for scheduling a parity check matrix, wherein the second index can simultaneously perform a CNU and a VNU with a row according to the first index.
패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 제1 인덱스는, 상기 패리티 검사 행렬의 상기 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 확인될 수 있다.An LDPC decoder for scheduling a parity check matrix, wherein the first index can be identified by grouping the non-zero elemental bit nodes of the parity check matrix according to a row.
패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 프로세서는, 상기 non-zero elemental인 비트 노드를 매핑할 경우, 상기 제1 인덱스를 통해, 상기 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 상기 non-zero elemental인 비트 노드를 순서대로 배치할 수 있다.The LDPC decoder for scheduling a parity check matrix, wherein when mapping a non-zero elemental bit node, the processor determines, through the first index, a position at which the non-zero elemental bit node can not be arranged And can arrange the non-zero elemental bit nodes in the order that they can be placed.
패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 non-zero elementa인 비트 노드의 배열은, 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열될 수 있다.An LDPC decoder for scheduling a parity check matrix, wherein the non-zero elementary bit nodes are arranged in order of non-zero elemental bit nodes according to a column of the parity check matrix.
일 실시예에 따르면, LDPC 복호기에 있어서, 상기 LDPC 복호기는 프로세서를 포함하고, 상기 프로세서는, 상기 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하고, 상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하며, 상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)에 상기 non-zero elemental인 비트 노드의 배열에 따른 매핑이 실패할 경우, 상기 비트 노드의 배열을 cyclic 시프트하여 다시 매핑하고, 상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 LDPC 복호기일 수 있다.According to one embodiment, in an LDPC decoder, the LDPC decoder includes a processor, the processor checks a non-zero elemental variable node in the parity check matrix, A bit node identifies a first index for a row of the parity check matrix and uses the first index to identify a column in which the non-zero elemental bit node can be located in the parity check matrix ) Mapped to the non-zero elemental in accordance with the arrangement of the bit nodes cyclically shifts the array of bit nodes and maps the array of bit nodes to the second bit of the parity check matrix through the mapped bit node, It may be an LDPC decoder that identifies the index.
패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 cyclic 시프트는, 한 열에 대한 VNU 연산이 수행될 수 있도록, 상기 한 열에 포함된 상기 non-zero elemental인 비트 노드를 cyclic 시프트 할 수 있다.The LDPC decoder for scheduling a parity check matrix, the cyclic shift can cyclic-shift the non-zero elemental bit node included in the column so that a VNU operation for one column can be performed.
LDPC 복호기에 있어서, 상기 LDPC 복호기는 프로세서를 포함하고, 상기 프로세서는, 상기 패리티 검사 행렬에서 non-zero elemental인 검사 노드(check node)를 체크하고, 상기 non-zero elemental인 검사 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하며, 상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 검사 노드가 배치될 수 있는 열(column)에 상기 non-zero elemental인 검사 노드의 배열에 따른 매핑이 실패할 경우, 상기 검사 노드의 배열을 cyclic 시프트하여 다시 매핑하고, 상기 매핑된 검사 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 LDPC 복호기일 수 있다. The LDPC decoder includes a processor, wherein the processor checks a check node that is non-zero elemental in the parity check matrix, and checks the parity check in the non-zero elemental check node, Wherein a non-zero element in the non-zero elemental check matrix is identified in a column in which the non-zero elemental check node in the parity check matrix can be arranged using the first index, an LDPC decoder which cyclic shifts the array of the check nodes and remaps the array of check nodes when the mapping according to the array of elemental check nodes fails and verifies a second index of the column of the parity check matrix through the mapped check node, Lt; / RTI >
패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 cyclic 시프트는, 한 행에 대한 CNU 연산이 수행될 수 있도록, 상기 한 행에 포함된 상기 non-zero elemental인 검사 노드를 cyclic 시프트 할 수 있다.An LDPC decoder for scheduling a parity check matrix, the cyclic shift may cyclic-shift check nodes, which are non-zero elemental included in the row, so that a CNU operation for one row can be performed.
일 실시예에 따르면, LDPC 코드를 이용하여 고속 복호화 할 때 발생하는 메모리 액세스 충돌을 방지하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기를 제공할 수 있다.According to an embodiment, there is provided a method of scheduling a parity check matrix for preventing a memory access collision that occurs when a fast decoding is performed using an LDPC code, and an LDPC decoder for performing the method.
일 실시예에 따르면, 매핑이 실패할 경우, 비트 노드 또는 검사 노드의 cyclic shift를 통해 비트 노드 또는 검사 노드를 재매핑함으로써 메모리 액세스 충돌을 방지하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기를 제공할 수 있다.According to an embodiment, when a mapping fails, a parity check matrix scheduling method for preventing a memory access collision by remapping a bit node or a check node through a cyclic shift of a bit node or a check node, and an LDPC decoder .
일 실시예에 따르면, 패리티 검사 행렬의 큰 사이즈와 많은 반복회수에도 불구하고 고속으로 LDPC 복호화가 가능한 LDPC 복호기를 제공할 수 있다.According to an embodiment, it is possible to provide an LDPC decoder capable of high-speed LDPC decoding despite a large size of the parity check matrix and a large number of iterations.
도 1은 일 실시예에 따른, LDPC 복호기(decoder)를 나타낸 도면이다.
도 2a와 도 2b는 일 실시예에 따른, 검사 노드 업데이트(Check Node Update, CNU) 및 비트 노드 업데이트(Bit Node Update, BNU)를 나타낸 도면이다.
도 3은 일 실시예에 따른, 스케줄링을 위한 패리티 검사 행렬(parity check matrix)를 나타낸다.
도 4는 일 실시예에 따른, 메모리 충돌을 방지하기 위한 경로 설정(path setting)를 나타낸다.
도 5는 일 실시예에 따른, 생성된 비트 노드(variable node)를 저장하는 배열을 나타낸 도면이다.
도 6은 일 실시예에 따른, 도 4를 통해 세팅된 경로에 비트 노드(variable)의 배열이 매핑된 것을 나타낸 도면이다.
도 7은 일 실시예에 따른, 스케줄링을 위한 도 3과 다른 패리티 검사 행렬(parity check matrix)를 나타낸다.
도 8은 일 실시예에 따른, 생성된 비트 노드(variable node)를 저장하는 배열을 나타낸 도면이다.
도 9는 일 실시예에 따른, 메모리 충돌을 방지하기 위한 경로 설정(path setting)이 실패한 경우를 나타낸다.
도 10은 일 실시예에 따른, 매핑이 실패한 경우, 비트 노드(variable node)를 cyclic shift 하는 것을 나타낸 도면이다.
도 11은 일 실시예에 따른, 매핑이 실패한 경우, cyclic shift 된 비트 노드의 배열을 이용하여, 재매핑을 수행한 것을 나타낸 도면이다.
도 12는 일 실시예에 따른, LDPC 복호기가 수행하는 패리티 검사 행렬의 스케줄링 방법을 나타낸다.
도 13은 일 실시예에 따른, LDPC 복호기가 수행하는 비트 노드의 cyclic shift를 이용한 패리티 검사 행렬의 스케줄링 방법을 나타낸다.
도 14은 일 실시예에 따른, LDPC 복호기가 수행하는 검사 노드의 cyclic shift를 이용한 패리티 검사 행렬의 스케줄링 방법을 나타낸다.1 is a diagram illustrating an LDPC decoder according to an embodiment.
2A and 2B are diagrams illustrating a Check Node Update (CNU) and a Bit Node Update (BNU) according to an exemplary embodiment of the present invention.
FIG. 3 illustrates a parity check matrix for scheduling according to an embodiment.
Figure 4 shows a path setting for preventing memory conflicts, according to one embodiment.
5 is a diagram illustrating an arrangement for storing generated bit nodes, according to one embodiment.
FIG. 6 is a diagram illustrating mapping of an array of bit nodes to a path set through FIG. 4, according to an embodiment.
FIG. 7 illustrates a parity check matrix different from FIG. 3 for scheduling according to an embodiment.
8 is a diagram illustrating an arrangement for storing generated bit nodes according to one embodiment.
FIG. 9 shows a case where a path setting for preventing a memory conflict has failed, according to an embodiment.
FIG. 10 is a diagram illustrating a cyclic shift of a variable node when a mapping fails, according to an exemplary embodiment of the present invention.
11 is a diagram illustrating remapping using an array of cyclic shifted bit nodes when a mapping fails, according to an embodiment.
FIG. 12 illustrates a method of scheduling a parity check matrix performed by an LDPC decoder according to an embodiment.
13 illustrates a method of scheduling a parity check matrix using a cyclic shift of a bit node performed by an LDPC decoder according to an embodiment of the present invention.
FIG. 14 illustrates a method of scheduling a parity check matrix using a cyclic shift of a check node performed by an LDPC decoder according to an embodiment.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다. Specific structural or functional descriptions of embodiments are set forth for illustration purposes only and may be embodied with various changes and modifications. Accordingly, the embodiments are not intended to be limited to the specific forms disclosed, and the scope of the disclosure includes changes, equivalents, or alternatives included in the technical idea.
제 1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소는 제 1 구성요소로도 명명될 수 있다.The terms first or second, etc. may be used to describe various elements, but such terms should be interpreted solely for the purpose of distinguishing one element from another. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected or connected to the other element, although other elements may be present in between. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", and the like, are used to specify one or more of the described features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 일 실시예에 따른, LDPC 복호기(decoder)를 나타낸 도면이다. 1 is a diagram illustrating an LDPC decoder according to an embodiment.
LDPC 복호기(100)는 LDPC 프로세서(110)을 이용하여, 패리티 검사 행렬(parity check matrix)을 사용하여 LDPC 코드를 복호화할 수 있다. The
패리티 검사 행렬은 이진 행렬(binary matrix)로서 대부분의 원소(element)는 '0'이고, 일부는 '1'이다. 실제 부호화 또는 복호화에 사용되는 패리티 검사 행렬의 크기는 비트 이상이기 때문에 패리티 검사 행렬을 처리하기 위해서는 대용량의 프로세서가 필요할 수 있다.The parity check matrix is a binary matrix, and most of the elements are '0' and some are '1'. The size of the parity check matrix used for actual encoding or decoding is Bits, a large-capacity processor may be required to process the parity check matrix.
LDPC 프로세서(110)을 통해, 수신한 비트를 병렬 처리하여 고속 복호화하는 과정을 LDPC 복호기(100)는 수행할 수 있다. 고속 복호화 과정에서, 메모리 액세스 충돌이 발생하는 것을 방지하기 위해, 이하 도면에서 패리티 검사 행렬을 스케줄링하는 방법에 대해 설명한다.The
도 2a와 도 2b는 일 실시예에 따른, 검사 노드 업데이트(Check Node Update, CNU) 및 비트 노드 업데이트(Bit Node Update, BNU)를 나타낸 도면이다.2A and 2B are diagrams illustrating a Check Node Update (CNU) and a Bit Node Update (BNU) according to an exemplary embodiment of the present invention.
LDPC 복호기에 의해 수행되는 복호 알고리즘은 다음과 같은 3개의 과정으로 설명될 수 있다. The decoding algorithm performed by the LDPC decoder can be described by the following three processes.
첫째, 검사 노드(Check Node)에서 비트 노드(Bit Node)로의 확률 값이 갱신될 수 있다. 이를 위해, LDPC 복호기가 수신한 데이터에 포함된 채널 상의 오류를 정정하기 위한 채널 추정 값을 구하는 다음의 수학식 1과 같은 초기화(initialization)가 수행될 수 있다.First, the probability value from a check node to a bit node can be updated. For this, initialization may be performed as shown in Equation (1) below to obtain a channel estimation value for correcting an error on a channel included in data received by the LDPC decoder.
둘째, 초기화된 후, 검사 노드(Check Node)가 갱신(Update)되는 검사 노드 업데이트(Check Node Update, CNU)가 수행될 수 있다. 도 2a는 검사 노드 연산 모듈인 CNU에서 하나의 검사 노드로 들어올 수 있는 데이터들의 결정 값에 대한 확률을 계산하는 것을 나타내는 도면이다. Second, a check node update (CNU) may be performed in which a check node is updated after initialization. FIG. 2A is a diagram illustrating calculation of a probability for a decision value of data that can be input to one check node in the CNU, which is the check node computation module.
패리티 검사 행렬에서 행(row) 또는 열(column)에 포함된 1의 개수를 weight로 나타낼 수 있다. 만약 개의 row weight를 가진다고 가정할 때, 각각의 검사 노드 연산을 위해 입력되는 데이터들의 확률은 다음의 수학식 2를 통해 계산될 수 있다.In the parity check matrix, the number of 1's included in a row or a column can be represented by weight. if The probability of the input data for each check node operation can be calculated by the following equation (2). &Quot; (2) "
는 k번째 검사 노드에서 번째 비트 노드로 입력되는 데이터들의 확률인 LLR(Log Likelihood Ratio)값을 나타내며, 는 비트 노드 에서 k번째 검사 노드로 입력되는 LLR값을 나타낸다. 실제 데이터에 대한 로그 값으로 연산하게 되면 검사노드 연산은 수학식 3으로 할 수 있다. Lt; RTI ID = 0.0 > (LLR) value, which is the probability of data input to the ith bit node, Lt; RTI ID = Represents the LLR value input to the kth check node. When the log value is calculated with respect to the actual data, the check node operation can be expressed by Equation (3).
따라서, 의 look up table 하나만 있으면 수학식 2의 체크 노드 업데이트(CNU)는 계산될 수 있다. therefore, The check node update (CNU) of Equation (2) can be calculated if there is only one lookup table of Equation (2).
셋째, 체크 노드 업데이트(CNU)에서 각 체크 노드로 연결된 비트들에 대한 업데이트가 수행된 후, 페리티 검사 행렬에서 각 컬럼(column)에 해당하는 비트 노드의 확률을 다음의 수학식 5, 수학식 6에 따라 계산할 수 있다. Third, after updating the bits connected to each check node in the check node update (CNU), the probability of the bit node corresponding to each column in the parity check matrix is expressed by the following equation (5) 6 can be calculated.
도 3은 일 실시예에 따른, 스케줄링을 위한 패리티 검사 행렬(parity check matrix)를 나타낸다. FIG. 3 illustrates a parity check matrix for scheduling according to an embodiment.
도 3에 나타난 패리티 검사 행렬의 크기가 7x4라고 하면 빗금친 부분은 연산을 위한 non-zero elemental(NZE)를 나타낸다. 예를 들면, 패리티 검사 행렬에서 1행에는 (0, 1, 4) NZE가 존재하며, 2행에는 (2, 6, 7) NZE가 존재하고, 3행에는 (0, 1, 5) NZE가 존재하며, 4행에는 (0, 2, 3) NZE가 존재한다. Assuming that the size of the parity check matrix shown in FIG. 3 is 7x4, the hatched portion represents a non-zero elemental (NZE) for operation. For example, in the parity check matrix, there are (0, 1, 4) NZEs in the first row, (2, 6, 7) NZEs in the second row, (0, 2, 3) NZE exists in the fourth row.
따라서, 도 3에 나타난 패리티 검사 행렬의 비트 노드에서 패리티 검사 행렬의 행에 따라 그룹화 함으로써 확인되는 제1 인덱스는 {(0, 1, 4) (2, 6, 7) (0, 1, 5) (0, 2, 3)}을 나타낼 수 있다. Therefore, the first indices identified by grouping according to the rows of the parity check matrix in the bit nodes of the parity check matrix shown in FIG. 3 are {(0, 1, 4) (2, 6, 7) (0, 1, 5) (0, 2, 3)}.
LDPC 복호기는 패리티 검사 행렬을 이용하여 LDPC 코드를 사용할 수 있다. 패리티 검사 행렬은 이진 행렬(binary matrix)로서 대부분의 원소는 0이고, 일부는 1이다. 실제 부호화 또는 복호화에 사용되는 패리티 검사 행렬의 크기는 비트 이상이기 때문에 패리티 검사 행렬을 저장하기 위해 대용량의 메모리가 필요할 수 있다. The LDPC decoder can use an LDPC code using a parity check matrix. The parity check matrix is a binary matrix in which most of the elements are 0 and some are 1. The size of the parity check matrix used for actual encoding or decoding is Bit, it may require a large amount of memory to store the parity check matrix.
도 4는 일 실시예에 따른, 메모리 충돌을 방지하기 위한 경로 설정(path setting)를 나타낸다.Figure 4 shows a path setting for preventing memory conflicts, according to one embodiment.
메모리 충돌 없이 검사 노드 업데이트(CNU)와 비트 노드 업데이트(VNU)를 동시에 수행하기 위해, 도 4에서 비트 노드(variable node)를 배치하는 경로 설정을 할 수 있다. In order to simultaneously perform a check node update (CNU) and a bit node update (VNU) without a memory collision, it is possible to set a path for arranging a variable node in FIG.
도 4의 가로(410~413)은 패리티 검사 행렬의 행(row)를 나타낼 수 있다. 예를 들면, 0(410)은 패리티 검사 행렬의 1행, 1(411)은 패리티 검사 행렬의 2행, 2(412)는 패리티 검사 행렬의 3행, 3(413)은 패리티 검사 행렬의 4행을 나타낼 수 있다.The
따라서, 0(410)은 패리티 검사 행렬의 1행에 포함된 non-zero elemental인 (0, 1,4)를 포함하며, 1(411)은 패리티 검사 행렬의 2행에 포함된 non-zero elemental인 (2, 6, 7)을 포함하며, 2(412)는 패리티 검사 행렬의 3행에 포함된 non-zero elemental인 (0, 1, 5)를 포함하며, 3(413)은 패리티 검사 행렬의 4행에 포함된 non-zero elemetal인 (0, 2, 3)을 포함할 수 있다.Therefore, 0 (410) includes non-zero elemental (0, 1,4) included in one row of the parity check matrix, 1 (411) includes
도 4의 세로(420~427)은 패리티 검사 행렬의 열(column)을 나타낼 수 있다. 예를 들면, 0(420)은 패리티 검사 행렬의 1열, 1(421)은 패리티 검사 행렬의 2열, 2(422)는 패리티 검사 행렬의 3열, 3(423)은 패리티 검사 행렬의 4열, 4(424)는 패리티 검사 행렬의 5열, 5(425)는 패리티 검사 행렬의 6열, 6(426)은 패리티 검사 행렬의 7열, 7(427)은 패리티 검사 행렬의 8열을 나타낼 수 있다.
일 실시예에 따르면, 도 4의 가로(410~413)에 포함된 non-zero elemental과 동일한 수를 나타내는 세로(420~427)에 표시를 할 수 있다. 여기서 표시된 위치는 이하에서 설명되는 비트 노드의 배열이 매핑될 수 없는 위치를 나타낼 수 있다.According to one embodiment, the
예를 들면, 도 4의 가로인 0(410)에 포함된 non-zero elemental인 (0, 1, 4)와 동일한 수를 나타내는 세로(420, 421, 424)에 표시를 할 수 있다. 또한, 도 4의 가로인 1(411)에 포함된 non-zero elemental인 (2, 6, 7)와 동일한 수를 나타내는 세로(422, 426, 427)에 표시를 할 수 있다. 또한, 도 4의 가로인 2(412)에 포함된 non-zero elemental인 (0, 1, 5)와 동일한 수를 나타내는 세로(420, 421, 425)에 표시를 할 수 있다. 또한, 도 4의 가로인 3(413)에 포함된 non-zero elemental인 (0, 2, 3)와 동일한 수를 나타내는 세로(420, 422, 423)에 표시를 할 수 있다. For example, the
도 4를 통해 표시된 위치 이외에 비트 노드를 배열함으로써, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 패리티 검사 행렬의 행에 대한 제1 인덱스와 열에 대한 제2 인덱스를 이용하여, 메모리 충돌 없이 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)가 동시에 수행될 수 있다.By arranging the bit nodes in addition to the positions shown in FIG. 4, the second index of the column of the parity check matrix can be confirmed. A check node update (CNU) and a variable node update (VNU) can be performed simultaneously without a memory collision using a first index for a row of a parity check matrix and a second index for a column .
도 5는 일 실시예에 따른, 생성된 비트 노드(variable node)를 저장하는 배열을 나타낸 도면이다.5 is a diagram illustrating an arrangement for storing generated bit nodes, according to one embodiment.
비트 노드(variable node)의 배열은 패리티 검사 행렬의 열(column)에 따라 non-zero elemental인 비트 노드(variable node)를 순서대로 배열한 것을 나타낼 수 있다. An array of variable nodes may indicate a sequence of variable nodes that are non-zero elemental according to a column of the parity check matrix.
예를 들면, 도 3의 패리티 검사 행렬에서, 1열에 있는 non-zero elemental인 (0, 0, 0), 2열에 있는 non-zero elemental인 (1, 1), 3열에 있는 non-zero elemental인 (2, 2), 4열에 있는 non-zero elemental인 (3), 5열에 있는 non-zero elemental인 (4), 6열에 있는 non-zero elemental인 (5), 7열에 있는 non-zero elemental인 (6), 8열에 있는 non-zero elemental인 (7)을 순서대로 배열한 (0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 7)일 수 있다.For example, in the parity check matrix of FIG. 3, a non-zero elemental (0, 0, 0) in
도 6은 일 실시예에 따른, 도 4를 통해 세팅된 경로에 비트 노드(variable)의 배열이 매핑된 것을 나타낸 도면이다.FIG. 6 is a diagram illustrating mapping of an array of bit nodes to a path set through FIG. 4, according to an embodiment.
일례로서, 이하 도 5를 통해 계산된 비트 노드(variable node)의 배열을 이용하여 매핑하는 것을 설명한다. As an example, mapping using an array of variable nodes calculated through FIG. 5 will be described below.
비트 노드의 배열에서 '0' 세개는 1(611) 과 0(620)이 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '0' 세개는 1(611)에 포함된 non-zero elemental인 (2, 6, 7)에 순서대로 매핑될 수 있다. In the array of bit nodes, '0' can be mapped to the intersection of 1 (611) and 0 (620). Here, '0' can be mapped in order to non-zero elemental (2, 6, 7) included in 1 (611).
비트 노드의 배열에서 '1' 두개는 3(613)과 1(621)이 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '1' 두개는 3(613)에 포함된 non-zero elemental인 (0, 2, 3) 중 (0, 2)에 순서대로 매핑될 수 있다. 이때, '1' 두개는 1(611)에 포함된 non-zero elemental인 (2, 6, 7)에 순서대로 매핑될 수 없다. 왜냐하면, 앞에서 설명한 '0' 세개가 1(611)에 포함된 non-zero elemental인 (2, 6, 7)에 순서대로 매핑되어 있기 때문이다.In the array of bit nodes, '1' can be mapped to the intersection of 3 (613) and 1 (621). Here, '1' can be sequentially mapped to (0, 2) out of (0, 2, 3) non-zero elemental included in 3 (613). At this time, two '1' s can not be mapped in order to non-zero elemental (2, 6, 7) included in 1 (611). This is because the three "0s" described above are mapped in order to the non-zero elemental (2, 6, 7) included in 1 (611).
비트 노드의 배열에서 '2' 두개는 0(610)과 2(622)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '2'두개는 0(610)에 포함된 non-zero elemental인 (0, 1, 4) 중 (0, 1)에 순서대로 매핑될 수 있다. 이때, '2' 두개는 2(612)에 포함된 non-zero elemental인 (0, 1, 5)에 순서대로 매핑될 수 없다. 매핑은 순서대로 이루어지도록 설정되어 있기 때문이다.In the array of bit nodes, '2' can be mapped to the intersection of 0 (610) and 2 (622). Here, '2' can be sequentially mapped to (0, 1) out of (0, 1, 4) non-zero elemental included in 0 (610). At this time, two '2' s can not be mapped in order to non-zero elemental (0, 1, 5) included in 2 (612). This is because the mapping is set up in order.
비트 노드의 배열에서 '3' 한개는 0(610)과 3(623)이 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '3' 한개는 0(610)에 포함된 non-zero elemental인 (0, 1, 4) 중 (4)에 매핑될 수 있다. 이때, '3' 한개는 0(610)에 포함된 non-zero elemental인 (0, 1) 중 하나에 매핑될 수 없다. 왜냐하면, 앞에서 '2' 두개가 (0, 1)에 순서대로 매핑되어 있기 때문이다. One '3' in the array of bit nodes may be mapped to the intersection of 0 (610) and 3 (623). Here, one '3' may be mapped to (4) of (0, 1, 4) non-zero elemental included in 0 (610). At this time, one '3' can not be mapped to one of (0, 1) non-zero elemental included in 0 (610). This is because two '2' s are mapped to (0, 1) in order.
비트 노드의 배열에서 '4' 한개는 2(612)과 4(624)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '4' 한개는 2(612)에 포함된 non-zero elemental인 (0, 1, 5) 중 (0)에 매핑될 수 있다. 이때, '4' 한개는 2(612)에 포함된 non-zero elemental인 (0, 1, 5) 중 (1, 5)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있기 때문이다. 또한, '4' 한 개는 1(611)에 포함된 non-zero elemental인 (2, 6, 7)에 매핑될 수 없다. 왜냐하면, 다른 비트 노드가 이미 매핑되어 있기 때문이다. In the array of bit nodes, '4' can be mapped to the intersection of 2 (612) and 4 (624). Here, one '4' may be mapped to (0) among (0, 1, 5) non-zero elemental included in 2 (612). At this time, one '4' can not be mapped to (1,5) of non-zero elemental (0, 1, 5) included in 2 (612). This is because the mapping is set up in order. Also, one '4' can not be mapped to the non-zero elemental (2, 6, 7) included in 1 (611). This is because other bit nodes are already mapped.
비트 노드의 배열에서 '5' 한개는 3(613)과 5(625)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '5' 한개는 3(613)에 포함된 non-zero elemental인 (0, 2, 3) 중 (3)에 매핑될 수 있다. 이때, '5' 한개는 3(613)에 포함된 non-zero elemental인 (0, 2, 3) 중 (0, 2)에 매핑될 수 없다. 또한, '5' 한 개는 0(610) 및 1(611)에 포함된 non-zero elemental에 매핑될 수 없다. 왜냐하면, 다른 비트 노드가 이미 매핑되어 있기 때문이다.One '5' in the array of bit nodes may be mapped to the intersection of 3 (613) and 5 (625). Here, one '5' may be mapped to (3) of (0, 2, 3) non-zero elemental included in 3 (613). At this time, one '5' can not be mapped to (0, 2) out of (0, 2, 3) non-zero elemental included in 3 (613). Also, one '5' can not be mapped to a non-zero elemental included in 0 (610) and 1 (611). This is because other bit nodes are already mapped.
비트 노드의 배열에서 '6' 한개는 2(612)과 6(626)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '6' 한개는 2(612)에 포함된 non-zero elemental인 (0, 1, 5) 중 (1)에 매핑될 수 있다. 이때, '6' 한개는 2(612)에 포함된 non-zero elemental인 (0, 1, 5) 중 (0, 5)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있으며, 다른 비트 노드가 이미 매핑되어 있기 때문이다. 또한, '6' 한 개는 0(610)에 포함된 non-zero elemental인 (0, 1, 4)에 매핑될 수 없다. 왜냐하면, 다른 비트 노드가 이미 매핑되어 있기 때문이다. In the array of bit nodes, '6' may be mapped to the intersection of 2 (612) and 6 (626). Here, one '6' can be mapped to (1) of non-zero elemental (0, 1, 5) included in 2 (612). At this time, one '6' can not be mapped to (0, 5) among (0, 1, 5) non-zero elemental included in 2 (612). This is because the mappings are set up in order, and other bit nodes are already mapped. Also, one '6' can not be mapped to non-zero elemental (0, 1, 4) included in 0 (610). This is because other bit nodes are already mapped.
비트 노드의 배열에서 '7' 한개는 2(612)과 7(627)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '7' 한개는 2(612)에 포함된 non-zero elemental인 (0, 1, 5) 중 (5)에 매핑될 수 있다. 이때, '7' 한개는 2(612)에 포함된 non-zero elemental인 (0, 1, 5) 중 (0, 1)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있으며, 다른 비트 노드가 이미 매핑되어 있기 때문이다. 또한, '7' 한 개는 0(610)에 포함된 non-zero elemental인 (0, 1, 4)에 매핑될 수 없다. 왜냐하면, 다른 비트 노드가 이미 매핑되어 있기 때문이다. In the array of bit nodes, '7' may be mapped to the intersection of 2 (612) and 7 (627). Here, '7' can be mapped to (5) of (0, 1, 5) non-zero elemental included in 2 (612). At this time, one '7' can not be mapped to (0, 1) out of (0, 1, 5) non-zero elemental included in 2 (612). This is because the mappings are set up in order, and other bit nodes are already mapped. Also, one '7' can not be mapped to the non-zero elemental (0, 1, 4) included in 0 (610). This is because other bit nodes are already mapped.
일 실시예에 따르면, 패리티 검사 행렬의 비트 노드에서 패리티 검사 행렬의 행에 따라 그룹화 함으로써 확인되는 제1 인덱스는 {(0, 1, 4) (2, 6, 7) (0, 1, 5) (0, 2, 3)}을 나타낼 수 있다. (0, 1, 4) (2, 6, 7) (0, 1, 5) that are identified by grouping according to the rows of the parity check matrix in the bit nodes of the parity check matrix, (0, 2, 3)}.
다른 일실시예에 따르면, 제1 인덱스를 이용하여 패리티 검사 행렬에서 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)을 추출하고, 추출된 열에 non-zero elemental인 비트 노드를 배열에 따라 순서대로 매핑함으로써 확인되는 제2 인덱스는 {(2, 2, 3) (0, 0, 0) (4, 6, 7) (1, 1, 5)}을 나타낼 수 있다. 따라서, 제1 인덱스와 제2 인덱스를 이용하여, 메모리 충돌 없이 VNU와 CNU를 동시에 수행할 수 있다.According to another embodiment, a column in which a non-zero elemental bit node can be arranged in the parity check matrix is extracted using the first index, and a bit node that is non-zero elemental in the extracted column is arranged in an array (2, 2, 3) (0, 0, 0) (4, 6, 7) (1, 1, 5)}. Therefore, the VNU and the CNU can be simultaneously performed without a memory collision using the first index and the second index.
예를 들면, LDPC 복호기는 패리티 검사 행렬의 1행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (2, 2, 3)을 통해 '2'번째 세로의 VNU 연산과 '3'번째 세로의 VNU 연산을 동시에 수행할 수 있다.For example, when performing a CNU operation on one row of the parity check matrix, the LDPC decoder computes the (2, 2, 3) -th vertical VNU operation and the (3 & VNU operations can be performed simultaneously.
다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 2행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (0, 0, 0)을 통해 '0'번째 세로의 VNU 연산을 동시에 수행할 수 있다. Alternatively, the LDPC decoder may simultaneously perform a '0' th vertical VNU operation through (0, 0, 0) identified in the second index when performing a CNU operation on two rows of the parity check matrix .
다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 3행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (4, 6, 7)을 통해 '4'번째 세로의 VNU 연산과 '6'번째 세로의 VNU 연산, 그리고 '7'번째 세로의 VNU 연산을 동시에 수행할 수 있다.For example, when performing the CNU operation on the third row of the parity check matrix, the LDPC decoder computes the 4N-th vertical VNU operation and the 6-th vertical column through the (4, 6, 7) And the '7' th vertical VNU operation can be performed simultaneously.
또 다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 4행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (1, 1, 5)을 통해 '1'번째 세로의 VNU 연산과 '5'번째 세로의 VNU 연산을 동시에 수행할 수 있다.In another example, when performing a CNU operation on four rows of the parity check matrix, the LDPC decoder computes the VNU operation of the '1' th vertical through the (1, 1, 5) The vertical VNU operation can be performed simultaneously.
도 7은 일 실시예에 따른, 스케줄링을 위한 도 3과 다른 패리티 검사 행렬(parity check matrix)를 나타낸다. FIG. 7 illustrates a parity check matrix different from FIG. 3 for scheduling according to an embodiment.
도 7에 나타난 패리티 검사 행렬에서 빗금친 부분은 non-zero elemental(NZE)를 나타낸다. 예를 들면, 패리티 검사 행렬에서 1행에는 (0, 3, 4) NZE가 존재하며, 2행에는 (0, 1, 5) NZE가 존재하고, 3행에는 (1, 2, 6) NZE가 존재하며, 4행에는 (0, 2, 7) NZE가 존재한다. The hatched portion in the parity check matrix shown in FIG. 7 represents non-zero elemental (NZE). For example, in the parity check matrix, (0, 3, 4) NZE exists in the first row, (0, 1, 5) NZE exists in the second row, and (1, 2, 6) (0, 2, 7) NZE exists in the fourth row.
따라서, 도 7에 나타난 패리티 검사 행렬의 비트 노드에서 패리티 검사 행렬의 행에 따라 그룹화 함으로써 확인되는 제1 인덱스는 {(0, 3, 4) (0, 1, 5) (1, 2, 6) (0, 2, 7)}을 나타낼 수 있다. Therefore, the first index identified by grouping according to the rows of the parity check matrix in the bit nodes of the parity check matrix shown in FIG. 7 is {(0, 3, 4) (0, 1, 5) (0, 2, 7)}.
아래 도 9에서 확인 가능하듯이, 도 3과 달리, 도 7에 나타난 패리티 검사 행렬은 비트 노드의 배열을 매핑하는 것이 불가능한 행렬일 수 있다. 따라서, 매핑이 실패할 경우, cyclic shift를 통해 매핑하는 것을 도 8 ~ 도 11을 통해 설명한다.As can be seen from FIG. 9, unlike FIG. 3, the parity check matrix shown in FIG. 7 may be a matrix in which it is impossible to map the array of bit nodes. Therefore, when the mapping fails, the mapping through the cyclic shift will be described with reference to FIGS. 8 to 11. FIG.
도 8은 일 실시예에 따른, 생성된 비트 노드(variable node)를 저장하는 배열을 나타낸 도면이다.8 is a diagram illustrating an arrangement for storing generated bit nodes according to one embodiment.
비트 노드(variable node)의 배열은 패리티 검사 행렬의 열(column)에 따라 non-zero elemental인 비트 노드(variable node)를 순서대로 배열한 것을 나타낼 수 있다. An array of variable nodes may indicate a sequence of variable nodes that are non-zero elemental according to a column of the parity check matrix.
예를 들면, 도 3의 패리티 검사 행렬에서, 1열에 있는 non-zero elemental인 (0, 0, 0), 2열에 있는 non-zero elemental인 (1, 1), 3열에 있는 non-zero elemental인 (2, 2), 4열에 있는 non-zero elemental인 (3), 5열에 있는 non-zero elemental인 (4), 6열에 있는 non-zero elemental인 (5), 7열에 있는 non-zero elemental인 (6), 8열에 있는 non-zero elemental인 (7)을 순서대로 배열한 (0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 7)일 수 있다.For example, in the parity check matrix of FIG. 3, a non-zero elemental (0, 0, 0) in
도 9는 일 실시예에 따른, 메모리 충돌을 방지하기 위한 경로 설정(path setting)이 실패한 경우를 나타낸다.FIG. 9 shows a case where a path setting for preventing a memory conflict has failed, according to an embodiment.
메모리 충돌 없이 검사 노드 업데이트(CNU)와 비트 노드 업데이트(VNU)를 동시에 수행하기 위해, 도 9에서 비트 노드(variable node)를 배치하는 경로 설정을 할 수 있다. In order to simultaneously perform a check node update (CNU) and a bit node update (VNU) without a memory collision, it is possible to set a path in which a variable node is arranged in FIG.
도 9의 가로(910~913)은 패리티 검사 행렬의 행(row)를 나타낼 수 있다. 예를 들면, 0(910)은 패리티 검사 행렬의 1행, 1(911)은 패리티 검사 행렬의 2행, 2(912)는 패리티 검사 행렬의 3행, 3(913)은 패리티 검사 행렬의 4행을 나타낼 수 있다.The
따라서, 0(910)은 패리티 검사 행렬의 1행에 포함된 non-zero elemental인 (0, 3, 4)를 포함하며, 1(911)은 패리티 검사 행렬의 2행에 포함된 non-zero elemental인 (0, 1, 5)을 포함하며, 2(912)는 패리티 검사 행렬의 3행에 포함된 non-zero elemental인 (1, 2, 6)를 포함하며, 3(913)은 패리티 검사 행렬의 4행에 포함된 non-zero elemetal인 (0, 2, 7)을 포함할 수 있다.Therefore, 0 (910) includes non-zero elemental (0, 3, 4) included in one row of the parity check matrix, and 1 (911) 2, 9) included in the third row of the parity check matrix, and 3 (913) includes the parity check matrix (1, 2, 6) (0, 2, 7), which is a non-zero elemetal included in
도 9의 세로(920~927)은 패리티 검사 행렬의 열(column)을 나타낼 수 있다. 예를 들면, 0(420)은 패리티 검사 행렬의 1열, 1(421)은 패리티 검사 행렬의 2열, 2(422)는 패리티 검사 행렬의 3열, 3(423)은 패리티 검사 행렬의 4열, 4(424)는 패리티 검사 행렬의 5열, 5(425)는 패리티 검사 행렬의 6열, 6(426)은 패리티 검사 행렬의 7열, 7(427)은 패리티 검사 행렬의 8열을 나타낼 수 있다.
일 실시예에 따르면, 도 9의 가로(910~913)에 포함된 non-zero elemental과 동일한 수를 나타내는 세로(420~427)에 표시를 할 수 있다. 여기서 표시된 위치는 이하에서 설명되는 비트 노드의 배열이 매핑될 수 없는 위치를 나타낼 수 있다.According to one embodiment, the
예를 들면, 도 9의 가로인 0(910)에 포함된 non-zero elemental인 (0, 3, 4)와 동일한 수를 나타내는 세로(920, 923, 924)에 표시를 할 수 있다. 또한, 도 9의 가로인 1(911)에 포함된 non-zero elemental인 (0, 1, 5)와 동일한 수를 나타내는 세로(920, 921, 925)에 표시를 할 수 있다. 또한, 도 9의 가로인 2(912)에 포함된 non-zero elemental인 (1, 2, 6)와 동일한 수를 나타내는 세로(921, 922, 926)에 표시를 할 수 있다. 또한, 도 4의 가로인 3(913)에 포함된 non-zero elemental인 (0, 2, 7)와 동일한 수를 나타내는 세로(920, 922, 927)에 표시를 할 수 있다. For example, the
도 9를 통해 표시된 위치 이외에 비트 노드를 배열함으로써, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 패리티 검사 행렬의 행에 대한 제1 인덱스와 열에 대한 제2 인덱스를 이용하여, 메모리 충돌 없이 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)가 동시에 수행될 수 있다.By arranging the bit nodes in addition to the positions shown in FIG. 9, the second index of the column of the parity check matrix can be confirmed. A check node update (CNU) and a variable node update (VNU) can be performed simultaneously without a memory collision using a first index for a row of a parity check matrix and a second index for a column .
일례로서, 이하 도 8를 통해 계산된 비트 노드(variable node)의 배열을 이용하여 매핑하는 것을 설명한다. As an example, mapping using an array of variable nodes calculated through FIG. 8 will be described below.
비트 노드의 배열에서 '0' 세개, '1' 두개, '2' 두개, '3' 한 개, '4' 한 개, '5' 한 개, '6' 한 개는 도 4~도 6을 통해 설명된 방법을 통해 도 9에 나타난 바와 같이 매핑될 수 있다. 다만, 도 9를 통해 확인 가능하듯이, '7' 한 개는 매핑 될 수 없다. 따라서, 이와 같은 매핑이 실패한 경우, 도 10을 통해 비트 노드의 배열을 cyclic shift함으로써 해결하는 방안을 이하 설명한다.One bit '0', two bits '1', '2', '3', '4', '5' and '6' May be mapped as shown in FIG. 9 through the method described above. However, as can be seen from FIG. 9, one '7' can not be mapped. Accordingly, in the case where such mapping fails, a method for solving the problem by cyclic shifting the arrangement of bit nodes will be described below with reference to FIG.
도 10은 일 실시예에 따른, 매핑이 실패한 경우, 비트 노드(variable node)를 cyclic shift 하는 것을 나타낸 도면이다.FIG. 10 is a diagram illustrating a cyclic shift of a variable node when a mapping fails, according to an exemplary embodiment of the present invention.
도 8에 나타난 비트 노드의 배열에서 매핑을 실패할 경우, 도 10과 같이 비트 노드의 배열을 cyclic shift할 수 있다. If the mapping fails in the array of bit nodes shown in FIG. 8, the array of bit nodes can be cyclic shifted as shown in FIG.
'0' 세개를 같이 shift 한 이유는, '0' 세개가 도 8에서 하나의 열로 분류될 수 있기 때문이다. 예를 들면, 도 8에서 1열에 나타난 '0' 세개는 하나의 열로 분류되므로, 같이 shift 될 수 있다. 왜냐하면, VNU 연산은 하나의 열에 대한 연산이 수행되어야 하기 때문이다. The reason why the three '0' s are shifted together is because three '0' s can be classified into one column in FIG. For example, in FIG. 8, three '0' s in the first column are classified into one column, so they can be shifted together. This is because the VNU operation must be performed on one column.
예를 들면, 패리티 검사 행렬이 100*200 행렬이고 1열에 포함되는 non-zero elemental이 30개인 경우, 비트 노드(variable node)의 매핑을 위해 non-zero elemental인 30개가 cyclic shift될 수 있다. For example, if the parity check matrix is a 100 * 200 matrix and there are 30 non-zero elemental elements included in the first column, 30 non-zero elemental elements may be cyclic shifted for mapping of variable nodes.
도 11은 일 실시예에 따른, 매핑이 실패한 경우, cyclic shift 된 비트 노드의 배열을 이용하여, 재매핑을 수행한 것을 나타낸 도면으로 표현이 쉽도록 가로와 세로를 바꾼 형태이고, 최종적인 매핑 형태이다.FIG. 11 is a diagram illustrating remapping using an array of cyclic shifted bit nodes when the mapping fails in accordance with an exemplary embodiment. In FIG. 11, to be.
비트 노드의 배열에서 '4' 한개는 1(1111)과 4(1124)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '4' 한개는 1(1111)에 포함된 non-zero elemental인 (0, 1, 5) 중 (0)에 매핑될 수 있다. 이때, '4' 한개는 1(1111)에 포함된 non-zero elemental인 (0, 1, 5) 중 (1, 5)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있기 때문이다.One '4' in the array of bit nodes may be mapped to the intersection of 1 (1111) and 4 (1124). Here, one '4' may be mapped to (0) among (0, 1, 5) non-zero elemental included in 1 (1111). At this time, one '4' can not be mapped to (1, 5) out of (0, 1, 5) non-zero elemental included in 1 (1111). This is because the mapping is set up in order.
비트 노드의 배열에서 '5' 한개는 0(1110)과 5(1125)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '5' 한개는 0(1110)에 포함된 non-zero elemental인 (0, 3, 4) 중 (0)에 매핑될 수 있다. 이때, '5' 한개는 0(1110)에 포함된 non-zero elemental인 (0, 3, 4) 중 (3, 4)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있기 때문이다.One '5' in the array of bit nodes may be mapped to the intersection of 0 (1110) and 5 (1125). Here, one '5' may be mapped to (0) among (0, 3, 4) non-zero elemental included in 0 (1110). At this time, one '5' can not be mapped to (3, 4) among (0, 3, 4) non-zero elemental included in 0 (1110). This is because the mapping is set up in order.
비트 노드의 배열에서 '6' 한개는 0(1110)과 6(1126)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '6' 한개는 0(1110)에 포함된 non-zero elemental인 (0, 3, 4) 중 (3)에 매핑될 수 있다. 이때, '6' 한개는 0(1110)에 포함된 non-zero elemental인 (0, 3, 4) 중 (0, 4)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있으며, 다른 비트 노드가 이미 매핑되어 있기 때문이다. In the array of bit nodes, '6' may be mapped to a position where 0 (1110) and 6 (1126) intersect. Here, '6' can be mapped to (3) of (0, 3, 4) non-zero elemental included in 0 (1110). At this time, one '6' can not be mapped to (0, 4) among (0, 3, 4) non-zero elemental included in 0 (1110). This is because the mappings are set up in order, and other bit nodes are already mapped.
비트 노드의 배열에서 '7' 한개는 0(1110)과 7(1127)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '7' 한개는 0(1110)에 포함된 non-zero elemental인 (0, 3, 4) 중 (4)에 매핑될 수 있다. 이때, '7' 한개는 0(1110)에 포함된 non-zero elemental인 (0, 3, 4) 중 (0, 3)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있으며, 다른 비트 노드가 이미 매핑되어 있기 때문이다. In the array of bit nodes, '7' may be mapped to the intersection of 0 (1110) and 7 (1127). Here, one '7' may be mapped to (4) of (0, 3, 4) non-zero elemental included in 0 (1110). At this time, one '7' can not be mapped to (0, 3) among (0, 3, 4) non-zero elemental included in 0 (1110). This is because the mappings are set up in order, and other bit nodes are already mapped.
비트 노드의 배열에서 '0' 세개는 2(1112) 과 0(1120)이 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '0' 세개는 2(1112)에 포함된 non-zero elemental인 (1, 2, 6)에 순서대로 매핑될 수 있다. In the array of bit nodes, '0' can be mapped to the intersection of 2 (1112) and 0 (1120). Here, three '0' s can be sequentially mapped to non-zero elemental (1, 2, 6) included in 2 (1112).
비트 노드의 배열에서 '1' 두개는 3(1113)과 1(1121)이 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '1' 두개는 3(1113)에 포함된 non-zero elemental인 (0, 2, 7) 중 (0, 2)에 순서대로 매핑될 수 있다. 또한, 여기서 '1' 두개는 다른 비트 노드가 이미 매핑되어 있는 0(1110)에 순서대로 매핑될 수 없다.In the array of bit nodes, '1' can be mapped to the intersection of 3 (1113) and 1 (1121). Here, '1' can be sequentially mapped to (0, 2) out of (0, 2, 7) non-zero elemental included in 3 (1113). Here, '1' can not be mapped to 0 (1110) in which other bit nodes are already mapped.
비트 노드의 배열에서 '2' 두개는 1(1111)과 3(1122)가 교차되는 위치에 매핑이 가능할 수 있다. 여기서 '2' 두개는 1(1111)에 포함된 non-zero elemental인 (0, 1, 5) 중 (1, 5)에 순서대로 매핑될 수 있다. 이때, (0, 1, 5) 중 (0)에는 다른 비트 노드가 이미 매핑되어 있기 때문이다.In the array of bit nodes, '2' can be mapped to the intersection of 1 (1111) and 3 (1122). Here, '2' can be mapped to (1, 5) out of (0, 1, 5) non-zero elemental included in 1 (1111) in order. At this time, (0) of (0, 1, 5) is already mapped to another bit node.
비트 노드의 배열에서 '3' 한개는 3(1113)과 3(1123)이 교차되는 위치에 매핑이 가능할 수 있다. 여기서, '3' 한개는 3(1113)에 포함된 non-zero elemental인 (0, 2, 7) 중 (7)에 매핑될 수 있다. 이때, '3' 한개는 3(1113)에 포함된 non-zero elemental인 (0, 2, 7) 중 (0, 2)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있으며, 다른 비트 노드가 이미 매핑되어 있기 때문이다.In the array of bit nodes, '3' may be mapped to the intersection of 3 (1113) and 3 (1123). Here, '3' can be mapped to (7) out of (0, 2, 7) non-zero elemental included in 3 (1113). At this time, one '3' can not be mapped to (0, 2) out of (0, 2, 7) non-zero elemental included in 3 (1113). This is because the mappings are set up in order, and other bit nodes are already mapped.
일 실시예에 따르면, 패리티 검사 행렬의 비트 노드에서 패리티 검사 행렬의 행에 따라 그룹화 함으로써 확인되는 제1 인덱스는 {(0, 3, 4) (0, 1, 5) (1, 2, 6) (0, 2, 7)}을 나타낼 수 있다. According to one embodiment, the first index identified by grouping according to the rows of the parity check matrix at the bit nodes of the parity check matrix is {(0, 3, 4) (0, 1, 5) (0, 2, 7)}.
다른 일실시예에 따르면, 제1 인덱스를 이용하여 패리티 검사 행렬에서 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)을 추출하고, 추출된 열에 non-zero elemental인 비트 노드를 배열에 따라 순서대로 매핑함으로써 확인되는 제2 인덱스는 {(5, 6, 7) (4, 2, 2) (0, 0, 0) (1, 1, 3)}을 나타낼 수 있다.According to another embodiment, a column in which a non-zero elemental bit node can be arranged in the parity check matrix is extracted using the first index, and a bit node that is non-zero elemental in the extracted column is arranged in an array The second index identified by mapping in order may represent {(5, 6, 7) (4, 2, 2) (0, 0, 0) (1, 1, 3)}.
따라서, 제1 인덱스와 제2 인덱스를 이용하여, 메모리 충돌 없이 VNU와 CNU를 동시에 수행할 수 있다.Therefore, the VNU and the CNU can be simultaneously performed without a memory collision using the first index and the second index.
예를 들면, LDPC 복호기는 패리티 검사 행렬의 1행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (5, 6, 7)을 통해 '5'번째 세로의 VNU 연산과 '6'번째 세로의 VNU 연산, '7'번째 세로의 VNU 연산을 동시에 수행할 수 있다.For example, when performing a CNU operation on one row of the parity check matrix, the LDPC decoder computes a 5N-th vertical VNU operation and a 6N-th vertical VNU operation through (5, 6, 7) The VNU operation, and the '7' th vertical VNU operation can be performed simultaneously.
다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 2행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (4, 2, 2)을 통해 '4'번째 세로의 VNU 연산과 '2'번째 세로의 VNU 연산을 동시에 수행할 수 있다. For example, when performing a CNU operation on two rows of the parity check matrix, the LDPC decoder computes the 4N-th vertical VNU operation and the 2 < th > Can be performed simultaneously.
다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 3행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (0, 0, 0)을 통해 '0'번째 세로의 VNU 연산을 동시에 수행할 수 있다.In another example, the LDPC decoder may simultaneously perform the '0' th vertical VNU operation through the (0, 0, 0) identified in the second index when performing the CNU operation of the third row of the parity check matrix .
또 다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 4행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (1, 1, 3)을 통해 '1'번째 세로의 VNU 연산과 '3'번째 세로의 VNU 연산을 동시에 수행할 수 있다.In another example, when performing the CNU operation on the 4 rows of the parity check matrix, the LDPC decoder computes the '1' th vertical VNU operation and the '3' th column through the (1, The vertical VNU operation can be performed simultaneously.
본 발명에서 variable node 배열의 cyclic shift 만으로 재배열이 실패할 경우, check node 배열의 cyclic shift를 통해 재배열이 가능하다. In the present invention, when the rearrangement fails due to the cyclic shift of the variable node array, the rearrangement is possible through the cyclic shift of the check node array.
Variable node 배열의 cyclic shift가 한번의 cycle 동안 재배열이 실패할 경우, 도 3에서 첫 번째 row를 맨 아래에 두고 나머지 row를 한 칸씩 올리는 세로 방향의 cyclic shift를 수행한다. 그 후, 다시 Variable node 배열의 cyclic shift를 수행하며, 재배열 한다.If the cyclic shift of the variable node array fails to re-arrange for one cycle, the cyclic shift is performed in the vertical direction in which the first row is located at the bottom and the remaining rows are shifted by one space. Then, the cyclic shift of the variable node array is performed again and rearranged.
도 12는 일 실시예에 따른, LDPC 복호기가 수행하는 패리티 검사 행렬의 스케줄링 방법을 나타낸다.FIG. 12 illustrates a method of scheduling a parity check matrix performed by an LDPC decoder according to an embodiment.
단계(1201)에서, LDPC 복호기는 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크할 수 있다. In
단계(1202)에서, LDPC 복호기는 non-zero elemental인 비트 노드에서 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인할 수 있다. 여기서, 제1 인덱스는, 패리티 검사 행렬의 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 형성될 수 있다.In
단계(1203)에서 LDPC 복호기는 제1 인덱스를 이용하여, 패리티 검사 행렬에서 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)을 추출하고, 추출된 열에 상기 non-zero elemental인 비트 노드를 배열에 따라 매핑할 수 있다.In
여기서, non-zero elemental인 비트 노드를 매핑하는 것은, 제1 인덱스를 통해 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 non-zero elemental인 비트 노드를 순서대로 매핑하는 것을 나타낼 수 있다.Here, mapping a non-zero elemental bit node is performed by checking a position where a non-zero elemental bit node can not be arranged through the first index, and identifying a non-zero elemental bit node It can be shown to map in order.
이때, non-zero elemental인 비트 노드의 배열은 패리티 검사 행렬의 열(column)에 따라 non-zero elemental인 비트 노드가 순서대로 배열되는 것을 의미할 수 있다.In this case, the arrangement of non-zero elemental bit nodes may mean that bit nodes that are non-zero elemental are arranged in order according to a column of the parity check matrix.
단계(1204)에서, LDPC 복호기는 매핑된 비트 노드를 통해, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 여기서, 제2 인덱스는 제1 인덱스에 따른 행과 CNU 및 VNU를 동시에 수행하는 패리티 검사 행렬의 열을 나타낼 수 있다.In
LDPC 복호기는 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(CNU)와 비트 노드 업데이트(VNU)를 동시에 메모리 액세스 충돌 없이 수행할 수 있다. The LDPC decoder can perform the check node update (CNU) and the bit node update (VNU) simultaneously without a memory access collision using the first index and the second index.
도 13은 일 실시예에 따른, LDPC 복호기가 수행하는 비트 노드의 cyclic shift를 이용한 패리티 검사 행렬의 스케줄링 방법을 나타낸다.13 illustrates a method of scheduling a parity check matrix using a cyclic shift of a bit node performed by an LDPC decoder according to an embodiment of the present invention.
단계(1301)에서, LDPC 복호기는 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크할 수 있다. In
단계(1302)에서, LDPC 복호기는 non-zero elemental인 비트 노드에서 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인할 수 있다. 여기서, 제1 인덱스는, 패리티 검사 행렬의 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 형성될 수 있다.In
단계(1303)에서 LDPC 복호기는 제1 인덱스를 이용하여, 패리티 검사 행렬에서 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)에 non-zero elemental인 비트 노드의 배열이 실패할 경우, 비트 노드의 배열을 cyclic shift 하여 다시 매핑할 수 있다.In
여기서, cyclic shift는 패리티 검사 행렬의 한 열에 대한 VNU 연산이 수행될 수 있도록, 패리티 검사 행렬의 한 열에 포함된 non-zero elemental인 비트 노드를 동시에 cyclic 시프트하는 것을 나타낼 수 있다.Here, the cyclic shift may indicate that the bit nodes that are non-zero elemental included in one column of the parity check matrix are cyclic-shifted at the same time so that the VNU operation for one column of the parity check matrix can be performed.
단계(1304)에서, LDPC 복호기는 매핑된 비트 노드를 통해, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 여기서, 제2 인덱스는 제1 인덱스에 따른 행과 CNU 및 VNU를 동시에 수행하는 패리티 검사 행렬의 열을 나타낼 수 있다.In
LDPC 복호기는 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(CNU)와 비트 노드 업데이트(VNU)를 동시에 메모리 액세스 충돌 없이 수행할 수 있다. The LDPC decoder can perform the check node update (CNU) and the bit node update (VNU) simultaneously without a memory access collision using the first index and the second index.
도 14은 일 실시예에 따른, LDPC 복호기가 수행하는 검사 노드의 cyclic shift를 이용한 패리티 검사 행렬의 스케줄링 방법을 나타낸다.FIG. 14 illustrates a method of scheduling a parity check matrix using a cyclic shift of a check node performed by an LDPC decoder according to an embodiment.
단계(1401)에서, LDPC 복호기는 패리티 검사 행렬에서 non-zero elemental인 검사 노드(check node)를 체크할 수 있다. In
단계(1402)에서, LDPC 복호기는 non-zero elemental인 검사 노드에서 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인할 수 있다. 여기서, 제1 인덱스는, 패리티 검사 행렬의 non-zero elemental인 검사 노드를 행에 따라 그룹화 함으로써 형성될 수 있다.In
단계(1403)에서 LDPC 복호기는 제1 인덱스를 이용하여, 패리티 검사 행렬에서 non-zero elemental인 검사 노드가 배치될 수 있는 열(column)에 non-zero elemental인 검사 노드의 배열이 실패할 경우, 검사 노드의 배열을 cyclic shift 하여 다시 매핑할 수 있다.In
여기서, cyclic shift는 패리티 검사 행렬의 한 행에 대한 CNU 연산이 수행될 수 있도록, 패리티 검사 행렬의 한 행에 포함된 non-zero elemental인 검사 노드를 동시에 cyclic 시프트하는 것을 나타낼 수 있다.Here, the cyclic shift may indicate that the check nodes, which are non-zero elemental included in one row of the parity check matrix, are simultaneously cyclic-shifted so that the CNU operation for one row of the parity check matrix can be performed.
단계(1404)에서, LDPC 복호기는 매핑된 검사 노드를 통해, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 여기서, 제2 인덱스는 제1 인덱스에 따른 행과 CNU 및 VNU를 동시에 수행하는 패리티 검사 행렬의 열을 나타낼 수 있다.In
LDPC 복호기는 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(CNU)와 비트 노드 업데이트(VNU)를 동시에 메모리 액세스 충돌 없이 수행할 수 있다. The LDPC decoder can perform the check node update (CNU) and the bit node update (VNU) simultaneously without a memory access collision using the first index and the second index.
한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.Meanwhile, the method according to the present invention may be embodied as a program that can be executed by a computer, and may be embodied as various recording media such as a magnetic storage medium, an optical reading medium, and a digital storage medium.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or combinations thereof. Implementations may be implemented in a computer program product, such as an information carrier, e.g., a machine readable storage device, such as a computer readable storage medium, for example, for processing by a data processing apparatus, Apparatus (computer readable medium) or as a computer program tangibly embodied in a propagation signal. A computer program, such as the computer program (s) described above, may be written in any form of programming language, including compiled or interpreted languages, and may be stored as a stand-alone program or in a module, component, subroutine, As other units suitable for use in the present invention. A computer program may be deployed to be processed on one computer or multiple computers at one site or distributed across multiple sites and interconnected by a communications network.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.Processors suitable for processing a computer program include, by way of example, both general purpose and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or may receive data from them, transmit data to them, . ≪ / RTI > Information carriers suitable for embodying computer program instructions and data include, for example, semiconductor memory devices, for example, magnetic media such as hard disks, floppy disks and magnetic tape, compact disk read only memory A magneto-optical medium such as a floppy disk, an optical disk such as a DVD (Digital Video Disk), a ROM (Read Only Memory), a RAM , Random Access Memory), a flash memory, an EPROM (Erasable Programmable ROM), an EEPROM (Electrically Erasable Programmable ROM), and the like. The processor and memory may be supplemented or included by special purpose logic circuitry.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.In addition, the computer-readable medium can be any available media that can be accessed by a computer, and can include both computer storage media and transmission media.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.While the specification contains a number of specific implementation details, it should be understood that they are not to be construed as limitations on the scope of any invention or claim, but rather on the description of features that may be specific to a particular embodiment of a particular invention Should be understood. Certain features described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Further, although the features may operate in a particular combination and may be initially described as so claimed, one or more features from the claimed combination may in some cases be excluded from the combination, Or a variant of a subcombination.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.Likewise, although the operations are depicted in the drawings in a particular order, it should be understood that such operations must be performed in that particular order or sequential order shown to achieve the desired result, or that all illustrated operations should be performed. In certain cases, multitasking and parallel processing may be advantageous. Also, the separation of the various device components of the above-described embodiments should not be understood as requiring such separation in all embodiments, and the described program components and devices will generally be integrated together into a single software product or packaged into multiple software products It should be understood.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.It should be noted that the embodiments of the present invention disclosed in the present specification and drawings are only illustrative of specific examples for the purpose of understanding and are not intended to limit the scope of the present invention. It will be apparent to those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.
100: LDPC 복호기
110: LDPC 프로세서100: LDPC decoder
110: LDPC processor
Claims (20)
상기 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하는 단계;
상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하는 단계;
상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)을 추출하고, 상기 추출된 열에 상기 non-zero elemental인 비트 노드를 배열에 따라 매핑하는 단계;
상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 단계;
를 포함하는 패리티 검사 행렬의 스케줄링 방법.
A scheduling method of a parity check matrix performed by an LDPC decoder,
Checking a variable node that is non-zero elemental in the parity check matrix;
Checking a first index for a row of the parity check matrix in the non-zero elemental bit node;
Extracting a column in which the non-zero elemental bit node can be arranged in the parity check matrix using the first index, extracting a non-zero elemental bit node in the extracted column according to an array Mapping;
Checking a second index for the column of the parity check matrix through the mapped bit node;
The method of claim 1,
상기 제1 인덱스와 제2 인덱스를 이용하여,
검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)를 동시에 수행하는 단계
를 더 포함하는 패리티 검사 행렬의 스케줄링 방법.
The method according to claim 1,
Using the first index and the second index,
A step of simultaneously performing a check node update (CNU) and a variable node update (VNU)
The method of claim 1, further comprising:
상기 제2 인덱스는,
상기 제1 인덱스에 따른 행과 상기 CNU 및 VNU를 동시에 수행하는 상기 패리티 검사 행렬의 열을 나타내는
패리티 검사 행렬의 스케줄링 방법.
3. The method of claim 2,
Wherein the second index is a <
And a column of the parity check matrix for simultaneously performing a row according to the first index and the CNU and the VNU
A method for scheduling a parity check matrix.
상기 제1 인덱스는,
상기 패리티 검사 행렬의 상기 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 확인되는,
패리티 검사 행렬의 스케줄링 방법.
The method according to claim 1,
Wherein the first index comprises:
Grouped bit nodes that are non-zero elemental of the parity check matrix,
A method for scheduling a parity check matrix.
상기 non-zero elemental인 비트 노드를 매핑하는 단계는,
상기 제1 인덱스를 통해, 상기 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 상기 non-zero elemental인 비트 노드를 순서대로 배치하는 단계
를 포함하는 패리티 검사 행렬의 스케줄링 방법.
The method according to claim 1,
Wherein mapping the non-zero elemental bit node comprises:
Identifying, through the first index, a position at which the non-zero elemental bit node can not be located and placing the non-zero elemental bit nodes in order at a position that can be placed
The method of claim 1,
상기 non-zero elementa인 비트 노드의 배열은,
상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열된 패리티 검사 행렬의 스케줄링 방법.
The method according to claim 1,
The array of bit nodes, which are non-zero elements,
Wherein the non-zero elemental bit nodes are arranged in order according to a column of the parity check matrix.
상기 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하는 단계;
상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하는 단계;
상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)에 상기 non-zero elemental인 비트 노드의 배열에 따른 매핑이 실패할 경우, 상기 비트 노드의 배열을 cyclic 시프트하여 다시 매핑하는 단계;
상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 단계;
를 포함하는 패리티 검사 행렬의 스케줄링 방법.
A scheduling method of a parity check matrix performed by an LDPC decoder,
Checking a variable node that is non-zero elemental in the parity check matrix;
Checking a first index for a row of the parity check matrix in the non-zero elemental bit node;
When the mapping according to the array of the non-zero elemental bit nodes fails in a column in which the non-zero elemental bit node can be arranged in the parity check matrix using the first index, Cyclic shifting and rearranging the array of bit nodes;
Checking a second index for the column of the parity check matrix through the mapped bit node;
The method of claim 1,
상기 cyclic 시프트는,
한 열에 대한 VNU 연산이 수행될 수 있도록, 상기 한 열에 포함된 상기 non-zero elemental인 비트 노드를 cyclic 시프트 하는 패리티 검사 행렬의 스케줄링 방법.
8. The method of claim 7,
The cyclic shift may be performed by:
A method for scheduling a parity check matrix for cyclically shifting a bit node that is the non-zero elemental included in the column, so that a VNU operation on one column can be performed.
상기 패리티 검사 행렬에서 non-zero elemental인 검사 노드(check node)를 체크하는 단계;
상기 non-zero elemental인 검사 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하는 단계;
상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 검사 노드가 배치될 수 있는 열(column)에 상기 non-zero elemental인 검사 노드의 배열에 따른 매핑이 실패할 경우, 상기 검사 노드의 배열을 cyclic 시프트하여 다시 매핑하는 단계;
상기 매핑된 검사 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 단계;
를 포함하는 패리티 검사 행렬의 스케줄링 방법.
A scheduling method of a parity check matrix performed by an LDPC decoder,
Checking a check node that is non-zero elemental in the parity check matrix;
Checking a first index for a row of the parity check matrix in the non-zero elemental check node;
When the mapping according to the arrangement of the non-zero elemental check nodes fails in a column in which the non-zero elemental check nodes in the parity check matrix can be arranged using the first index, Cyclic-shifting the array of check nodes by re-mapping;
Checking a second index of a column of the parity check matrix through the mapped check node;
The method of claim 1,
상기 cyclic 시프트는,
한 행에 대한 CNU 연산이 수행될 수 있도록, 상기 한 행에 포함된 상기 non-zero elemental인 검사 노드를 cyclic 시프트 하는 패리티 검사 행렬의 스케줄링 방법.
10. The method of claim 9,
The cyclic shift may be performed by:
A method for scheduling a parity check matrix that cyclic shifts a check node that is the non-zero elemental included in the row so that a CNU operation on one row can be performed.
상기 LDPC 복호기는 프로세서를 포함하고,
상기 프로세서는,
패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하고,
상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하며,
상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)을 추출하고, 상기 추출된 열에 상기 non-zero elemental인 비트 노드를 배열에 따라 매핑하고,
상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하여 패리티 검사 행렬을 스케줄링하는 LDPC 복호기.
In the LDPC decoder,
Wherein the LDPC decoder comprises a processor,
The processor comprising:
Check a non-zero elemental variable node in the parity check matrix,
Checking a first index for a row of the parity check matrix in the non-zero elemental bit node,
Extracting a column in which the non-zero elemental bit node can be arranged in the parity check matrix using the first index, extracting a non-zero elemental bit node in the extracted column according to an array Mapping,
And schedules a parity check matrix by checking a second index of a column of the parity check matrix through the mapped bit node.
상기 프로세서는,
상기 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)를 동시에 수행하여 패리티 검사 행렬을 스케줄링하는 LDPC 복호기.
12. The method of claim 11,
The processor comprising:
And an LDPC decoder for scheduling a parity check matrix by simultaneously performing a check node update (CNU) and a variable node update (VNU) using the first index and the second index.
상기 제2 인덱스는,
상기 제1 인덱스에 따른 행과 상기 CNU 및 VNU를 동시에 수행하는 상기 패리티 검사 행렬의 열을 나타내는 LDPC 복호기.
13. The method of claim 12,
Wherein the second index is a <
And a column of the parity check matrix for simultaneously performing a row according to the first index and the CNU and the VNU.
상기 제1 인덱스는,
상기 패리티 검사 행렬의 상기 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 확인되는, LDPC 복호기.
12. The method of claim 11,
Wherein the first index comprises:
And grouping the non-zero elemental bit nodes of the parity check matrix according to a row.
상기 프로세서는,
상기 non-zero elemental인 비트 노드를 매핑할 경우, 상기 제1 인덱스를 통해, 상기 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 상기 non-zero elemental인 비트 노드를 순서대로 배치하는 LDPC 복호기.
12. The method of claim 11,
The processor comprising:
Identifying a non-zero elemental bit node as a non-zero elemental bit through the first index when mapping the non-zero elemental bit node; An LDPC decoder that places bit nodes in order.
상기 non-zero elementa인 비트 노드의 배열은,
상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열되는 LDPC 복호기.
12. The method of claim 11,
The array of bit nodes, which are non-zero elements,
Wherein the non-zero elemental bit nodes are arranged in order according to a column of the parity check matrix.
상기 LDPC 복호기는 프로세서를 포함하고,
상기 프로세서는,
상기 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하고,
상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하며,
상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)에 상기 non-zero elemental인 비트 노드의 배열에 따른 매핑이 실패할 경우, 상기 비트 노드의 배열을 cyclic 시프트하여 다시 매핑하고,
상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 LDPC 복호기.
In the LDPC decoder,
Wherein the LDPC decoder comprises a processor,
The processor comprising:
Checking a variable node that is non-zero elemental in the parity check matrix,
Checking a first index for a row of the parity check matrix in the non-zero elemental bit node,
When the mapping according to the array of the non-zero elemental bit nodes fails in a column in which the non-zero elemental bit node can be arranged in the parity check matrix using the first index, The array of bit nodes is cyclic shifted and remapped,
And a second index for the column of the parity check matrix is identified through the mapped bit node.
상기 cyclic 시프트는,
한 열에 대한 VNU 연산이 수행될 수 있도록, 상기 한 열에 포함된 상기 non-zero elemental인 비트 노드를 cyclic 시프트 하는 LDPC 복호기.
18. The method of claim 17,
The cyclic shift may be performed by:
An LDPC decoder for cyclic-shifting the non-zero elemental bit node contained in the column so that a VNU operation on one column can be performed.
상기 LDPC 복호기는 프로세서를 포함하고,
상기 프로세서는,
상기 패리티 검사 행렬에서 non-zero elemental인 검사 노드(check node)를 체크하고,
상기 non-zero elemental인 검사 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하며,
상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 검사 노드가 배치될 수 있는 열(column)에 상기 non-zero elemental인 검사 노드의 배열에 따른 매핑이 실패할 경우, 상기 검사 노드의 배열을 cyclic 시프트하여 다시 매핑하고,
상기 매핑된 검사 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 LDPC 복호기.
In the LDPC decoder,
Wherein the LDPC decoder comprises a processor,
The processor comprising:
Checking a check node which is non-zero elemental in the parity check matrix,
Checking a first index of a row of the parity check matrix in the non-zero elemental check node,
When the mapping according to the arrangement of the non-zero elemental check nodes fails in a column in which the non-zero elemental check nodes in the parity check matrix can be arranged using the first index, The array of check nodes is cyclic-shifted and remapped,
And a second index for the column of the parity check matrix is checked through the mapped check node.
상기 cyclic 시프트는,
한 행에 대한 CNU 연산이 수행될 수 있도록, 상기 한 행에 포함된 상기 non-zero elemental인 검사 노드를 cyclic 시프트 하는 LDPC 복호기.
20. The method of claim 19,
The cyclic shift may be performed by:
An LDPC decoder for cyclic-shifting a check node, which is the non-zero elemental included in the row, so that a CNU operation for one row can be performed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/809,392 US10425104B2 (en) | 2016-11-11 | 2017-11-10 | Scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160150426 | 2016-11-11 | ||
KR20160150426 | 2016-11-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180053224A true KR20180053224A (en) | 2018-05-21 |
KR102077501B1 KR102077501B1 (en) | 2020-02-14 |
Family
ID=62453533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170142382A KR102077501B1 (en) | 2016-11-11 | 2017-10-30 | A scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102077501B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101405962B1 (en) * | 2008-02-28 | 2014-06-12 | 엘지전자 주식회사 | Method of performing decoding using LDPC code |
KR20150024489A (en) * | 2013-08-26 | 2015-03-09 | 삼성전자주식회사 | Method for performing LDPC decoding in memory system and LDPC decoder using method thereof |
KR20160116980A (en) * | 2015-03-31 | 2016-10-10 | 한국전자통신연구원 | Scheduling apparatus and method of the parity check matrix h for vertical shuffle scheduling algorithm of the low density parity check decoder |
-
2017
- 2017-10-30 KR KR1020170142382A patent/KR102077501B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101405962B1 (en) * | 2008-02-28 | 2014-06-12 | 엘지전자 주식회사 | Method of performing decoding using LDPC code |
KR20150024489A (en) * | 2013-08-26 | 2015-03-09 | 삼성전자주식회사 | Method for performing LDPC decoding in memory system and LDPC decoder using method thereof |
KR20160116980A (en) * | 2015-03-31 | 2016-10-10 | 한국전자통신연구원 | Scheduling apparatus and method of the parity check matrix h for vertical shuffle scheduling algorithm of the low density parity check decoder |
Also Published As
Publication number | Publication date |
---|---|
KR102077501B1 (en) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101264476B1 (en) | Increased capacity heterogeneous storage elements | |
US10536169B2 (en) | Encoder and decoder for LDPC code | |
CN102835032B (en) | For the non-integral multiple quasi-cyclic LDPC Code And Decode of cyclic determinant size | |
US7730377B2 (en) | Layered decoding of low density parity check (LDPC) codes | |
JP5315693B2 (en) | Encoder and decoder based on LDPC encoding | |
JP2019505906A5 (en) | ||
US20170230063A1 (en) | Interleaving and puncturing apparatus and method thereof | |
US20080133187A1 (en) | Method of Isomorphism Rejection | |
US6353910B1 (en) | Method and apparatus for implementing error correction coding (ECC) in a dynamic random access memory utilizing vertical ECC storage | |
US20120017136A1 (en) | Systems and methods for encoding information for storage in an electronic memory and for decoding encoded information retrieved from an electronic memory | |
JP2004364233A5 (en) | ||
JP2005202957A (en) | Data partitioning for error correction | |
US20160218750A1 (en) | Parity check code encoder | |
WO2007018590A1 (en) | Method and apparatus for block and rate independent decoding of ldpc codes | |
US20110083058A1 (en) | Trapping set based ldpc code design and related circuits, systems, and methods | |
JP2014510505A (en) | Encoding and decoding techniques using low density parity check codes | |
US8438448B2 (en) | Decoding method and device for low density generator matrix codes | |
KR102019893B1 (en) | Apparatus and method for receiving signal in communication system supporting low density parity check code | |
CN105573680A (en) | Storage method and device for replicated data | |
US8566665B2 (en) | Systems and methods for error correction using low density parity check codes using multiple layer check equations | |
CN104658609B (en) | The method and system that error correcting code for storage system is distributed | |
JPS6349245B2 (en) | ||
KR102355082B1 (en) | Efficient survivor memory architecture for successive cancellation list decoding of channel polarization codes | |
US10425104B2 (en) | Scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix | |
KR20160116980A (en) | Scheduling apparatus and method of the parity check matrix h for vertical shuffle scheduling algorithm of the low density parity check decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |