KR102077501B1 - 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 PDF

Info

Publication number
KR102077501B1
KR102077501B1 KR1020170142382A KR20170142382A KR102077501B1 KR 102077501 B1 KR102077501 B1 KR 102077501B1 KR 1020170142382 A KR1020170142382 A KR 1020170142382A KR 20170142382 A KR20170142382 A KR 20170142382A KR 102077501 B1 KR102077501 B1 KR 102077501B1
Authority
KR
South Korea
Prior art keywords
parity check
check matrix
index
zero elemental
column
Prior art date
Application number
KR1020170142382A
Other languages
Korean (ko)
Other versions
KR20180053224A (en
Inventor
김민혁
최영민
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US15/809,392 priority Critical patent/US10425104B2/en
Publication of KR20180053224A publication Critical patent/KR20180053224A/en
Application granted granted Critical
Publication of KR102077501B1 publication Critical patent/KR102077501B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard

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

일 실시예에 따르면, LDPC 코드를 이용하여 고속 복호화 할 때 발생하는 메모리 액세스 충돌을 방지하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기일 수 있다.
일 실시예에 따르면, 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, the method may be a scheduling method of a parity check matrix for preventing memory access collision occurring when fast decoding using an LDPC code, and an LDPC decoder performing the same.
According to one embodiment, a method of scheduling a parity check matrix performed by an LDPC decoder, the method comprising: checking a non-zero elemental bit node in a parity check matrix; Identifying a first index for a row of the parity check matrix at the non-zero elemental bit node; Extracting a column in which the non-zero elemental bit nodes may be arranged in the parity check matrix using the first index, and extracting the non-zero elemental bit nodes in the extracted column according to an arrangement. Mapping; And identifying the second index of the column of the parity check matrix through the mapped bit node.

Description

패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기{A scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix}A scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix

본 발명은 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 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 that simultaneously performs CNU and VNU without a memory access collision through a first index and a second index. It relates to an LDPC decoder for doing this.

최근에 LDPC 코드를 이용한 부호화 방법이 부각되고 있다. LDPC 코드는 패리티 검사 행렬(parity check matrix) Η의 원소들의 대부분이 0이어서 저밀도(low density)인 선형 블록 부호(linear block code)로서 1962년 갤러거(Gallager)에 의해 제안되었다. LDPC 부호는 매우 복잡하여 제안 당시의 기술로는 구현이 불가능하였기 때문에 잊혀져 있다가 1995년에 재발견되어 성능이 매우 우수함이 입증된 이래로 최근에 그에 관한 연구가 활발히 진행되고 있는 상황이다. LDPC 코드의 패리티 검사 행렬은 1의 개수가 매우 적기 때문에 매우 큰 블록 크기에서도 반복 복호를 통하여 복호가 가능하여 블록 크기가 매우 커지면 터보 코드처럼 섀넌(Shannon)의 채널 용량 한계에 근접하는 성능을 보이며, 병렬 처리로 인한 고속 처리가 가능하다.Recently, a coding method using an LDPC code has emerged. The LDPC code was proposed by Gallagher in 1962 as a linear block code of low density, where most of the elements of the parity check matrix Η are zero. Since the LDPC code is so complex that it was impossible to implement with the technology at the time of the proposal, it has been forgotten and rediscovered in 1995. Since the parity check matrix of LDPC code is very small, it can be decoded by repeated decoding even in very large block size. When the block size becomes very large, it shows performance close to Shannon's channel capacity limit like turbo code. High speed processing due to parallel processing is possible.

다만, LDPC 코드를 이용하여 병렬로 복호화하기 위해 검사 노드 업데이트(Check Node Update, CNU)를 수행할 때, 서로 다른 행에서의 메모리 액세스 충돌이 발생할 뿐만 아니라, 이중 사선 행렬과 같이 같은 행에서도 메모리 액세스 충돌이 발생할 수 있었다. However, when performing a check node update (CNU) to decode in parallel using an LDPC code, not only does memory access collision occur in different rows, but also memory access in the same row as a double diagonal matrix. A crash could occur.

일 실시예에 따르면, LDPC 코드를 이용하여 고속 복호화 할 때 발생하는 메모리 액세스 충돌을 방지하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기를 제공한다.According to an embodiment, there is provided a scheduling method of a parity check matrix for preventing memory access collision occurring when fast decoding using an LDPC code, and an LDPC decoder performing the same.

일 실시예에 따르면, 매핑이 실패할 경우, 비트 노드 또는 검사 노드의 cyclic shift를 통해 비트 노드 또는 검사 노드를 재매핑함으로써 메모리 액세스 충돌을 방지하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기를 제공한다.According to an embodiment, when mapping fails, a scheduling method of a parity check matrix for preventing a memory access collision by remapping the bit node or the check node through a cyclic shift of the bit node or the check node, and an LDPC decoder performing the same to provide.

일 실시예에 따르면, 패리티 검사 행렬의 큰 사이즈와 많은 반복회수에도 불구하고 고속으로 LDPC 복호화가 가능한 LDPC 복호기를 제공한다. According to an embodiment, an LDPC decoder capable of high-speed LDPC decoding despite a large size and a large number of repetitions of a parity check matrix 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 one embodiment, a method of scheduling a parity check matrix performed by an LDPC decoder, the method comprising: checking a non-zero elemental bit node in a parity check matrix; Identifying a first index for a row of the parity check matrix at the non-zero elemental bit node; Extracting a column in which the non-zero elemental bit nodes may be arranged in the parity check matrix using the first index, and extracting the non-zero elemental bit nodes in the extracted column according to an arrangement. Mapping; Identifying, via the mapped bit node, a second index for the column of the parity check matrix; It may be a scheduling method of a parity check matrix including a.

패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)를 동시에 수행하는 단계를 더 포함할 수 있다.A scheduling method of a parity check matrix, the method comprising: performing a check node update (CNU) and a variable node update (VNU) simultaneously by using the first index and the second index. can do.

패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 제2 인덱스는, 상기 제1 인덱스에 따른 행과 상기 CNU 및 VNU를 동시에 수행하는 상기 패리티 검사 행렬의 열을 나타낼 수 있다.In the scheduling method of a parity check matrix, the second index may represent a row according to the first index and a column of the parity check matrix that simultaneously performs the CNU and the VNU.

패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 제1 인덱스는, 상기 패리티 검사 행렬의 상기 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 확인될 수 있다.In the parity check matrix scheduling method, the first index may be identified by grouping the non-zero elemental bit nodes of the parity check matrix according to rows.

패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 non-zero elemental인 비트 노드를 매핑하는 단계는, 상기 제1 인덱스를 통해, 상기 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 상기 non-zero elemental인 비트 노드를 순서대로 배치하는 단계를 포함할 수 있다.In the scheduling method of a parity check matrix, the mapping of the non-zero elemental bit nodes may include determining, through the first index, a location where the non-zero elemental bit nodes cannot be arranged and being arranged. And arranging the non-zero elemental bit nodes in order.

패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 non-zero elementa인 비트 노드의 배열은, 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열될 수 있다. In the scheduling method of the parity check matrix, the non-zero elementa bit nodes may be arranged in order of the non-zero elemental bit nodes according to the columns 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 one embodiment, a method of scheduling a parity check matrix performed by an LDPC decoder, the method comprising: checking a non-zero elemental bit node in a parity check matrix; Identifying a first index for a row of the parity check matrix at the non-zero elemental bit node; If the mapping according to the arrangement of the non-zero elemental bit nodes in a column in which the non-zero elemental bit nodes can be arranged in the parity check matrix fails using the first index, Cyclically shifting and remapping the array of bit nodes; Identifying, via the mapped bit node, a second index for the column of the parity check matrix; It may include.

패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 cyclic 시프트는, 한 열에 대한 VNU 연산이 수행될 수 있도록, 상기 한 열에 포함된 상기 non-zero elemental인 비트 노드를 cyclic 시프트 할 수 있다.In the parity check matrix scheduling method, the cyclic shift may cyclically shift the non-zero elemental bit node included in the column so that a VNU operation for a column may 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 one embodiment, a method of scheduling a parity check matrix performed by an LDPC decoder, the method comprising: checking a check node that is a non-zero elemental in the parity check matrix; Identifying a first index of a row of the parity check matrix at the check node that is the non-zero elemental; If the mapping according to the arrangement of the non-zero elemental check nodes to the column where the non-zero elemental check nodes can be arranged in the parity check matrix fails using the first index, Cyclically shifting and remapping the array of check nodes; Identifying, via the mapped check node, a second index for the column of the parity check matrix; It may include.

패리티 검사 행렬의 스케줄링 방법에 있어서, 상기 cyclic 시프트는, 한 행에 대한 CNU 연산이 수행될 수 있도록, 상기 한 행에 포함된 상기 non-zero elemental인 검사 노드를 cyclic 시프트 할 수 있다.In the parity check matrix scheduling method, the cyclic shift may cyclically shift the non-zero elemental check node included in the one row so that a CNU operation for one row may 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 an embodiment, in the LDPC decoder, the LDPC decoder includes a processor, the processor checks a non-zero elemental variable node in a parity check matrix, and sets the non-zero elemental bit. A node identifies a first index for a row of the parity check matrix, and uses the first index to column a non-zero elemental bit node in the parity check matrix. Extracts a non-zero elemental bit node according to an array, and checks a second index of a column of the parity check matrix through the mapped bit node to schedule a parity check matrix. It may be an LDPC decoder.

패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 프로세서는, 상기 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)를 동시에 수행할 수 있다.In the LDPC decoder for scheduling a parity check matrix, the processor simultaneously performs a check node update (CNU) and a bit node update (VNU) using the first index and the second index. Can be done.

패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 제2 인덱스는, 상기 제1 인덱스에 따른 행과 상기 CNU 및 VNU를 동시에 수행할 수 있다.In the LDPC decoder for scheduling a parity check matrix, the second index may simultaneously perform a row according to the first index and the CNU and VNU.

패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 제1 인덱스는, 상기 패리티 검사 행렬의 상기 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 확인될 수 있다.In an LDPC decoder that schedules a parity check matrix, the first index can be identified by grouping the non-zero elemental bit nodes of the parity check matrix by row.

패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 프로세서는, 상기 non-zero elemental인 비트 노드를 매핑할 경우, 상기 제1 인덱스를 통해, 상기 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 상기 non-zero elemental인 비트 노드를 순서대로 배치할 수 있다.In the LDPC decoder for scheduling a parity check matrix, the processor, when mapping the non-zero elemental bit node, through the first index, the position where the non-zero elemental bit node can not be located. The non-zero elemental bit nodes may be sequentially arranged in positions where they can be checked and arranged.

패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 non-zero elementa인 비트 노드의 배열은, 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열될 수 있다.In the LDPC decoder for scheduling a parity check matrix, the non-zero elementa bit nodes may be arranged in order according to the columns 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 the LDPC decoder, the LDPC decoder includes a processor, the processor checks the non-zero elemental bit node (variable node) in the parity check matrix, the non-zero elemental A column in which a non-zero elemental bit node is arranged in the parity check matrix may be determined by using a first index to identify a first index of a row of the parity check matrix at a bit node. If the mapping according to the non-zero elemental array of bit nodes fails, the array of the bit nodes is cyclically shifted and remapped, and through the mapped bit nodes, a second column of the parity check matrix is mapped. It may be an LDPC decoder that checks the index.

패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 cyclic 시프트는, 한 열에 대한 VNU 연산이 수행될 수 있도록, 상기 한 열에 포함된 상기 non-zero elemental인 비트 노드를 cyclic 시프트 할 수 있다.In the LDPC decoder for scheduling a parity check matrix, the cyclic shift may cyclically shift the non-zero elemental bit node included in the column so that a VNU operation for a column may 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 복호기일 수 있다. In the LDPC decoder, the LDPC decoder includes a processor, the processor checks a non-zero elemental check node in the parity check matrix, and checks the parity in the non-zero elemental check node. Identify a first index for a row of a matrix and, using the first index, the non-zero in a column where a check node that is the non-zero elemental in the parity check matrix can be placed. If the mapping according to an array of check nodes that are elemental fails, an LDPC decoder for cyclically shifting and remapping the array of check nodes, and checking the second index for the column of the parity check matrix through the mapped check nodes. Can be.

패리티 검사 행렬을 스케줄링하는 LDPC 복호기에 있어서, 상기 cyclic 시프트는, 한 행에 대한 CNU 연산이 수행될 수 있도록, 상기 한 행에 포함된 상기 non-zero elemental인 검사 노드를 cyclic 시프트 할 수 있다.In the LDPC decoder for scheduling a parity check matrix, the cyclic shift may cyclically shift the non-zero elemental check node included in the one row so that a CNU operation for one row may be performed.

일 실시예에 따르면, LDPC 코드를 이용하여 고속 복호화 할 때 발생하는 메모리 액세스 충돌을 방지하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기를 제공할 수 있다.According to an embodiment, a scheduling method of a parity check matrix for preventing memory access collision occurring when fast decoding using an LDPC code and an LDPC decoder performing the same may be provided.

일 실시예에 따르면, 매핑이 실패할 경우, 비트 노드 또는 검사 노드의 cyclic shift를 통해 비트 노드 또는 검사 노드를 재매핑함으로써 메모리 액세스 충돌을 방지하는 패리티 검사 행렬의 스케줄링 방법 및 이를 수행하는 LDPC 복호기를 제공할 수 있다.According to an embodiment, when mapping fails, a scheduling method of a parity check matrix for preventing a memory access collision by remapping the bit node or the check node through a cyclic shift of the bit node or the check node, and an LDPC decoder performing the same Can provide.

일 실시예에 따르면, 패리티 검사 행렬의 큰 사이즈와 많은 반복회수에도 불구하고 고속으로 LDPC 복호화가 가능한 LDPC 복호기를 제공할 수 있다.According to an embodiment, an LDPC decoder capable of LDPC decoding at high speed may be provided despite a large size and a large number of repetitions of the parity check matrix.

도 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 illustrate a check node update (CNU) and a bit node update (BNU) according to an embodiment.
3 illustrates a parity check matrix for scheduling, according to an embodiment.
4 illustrates a path setting for preventing a memory conflict, according to an embodiment.
FIG. 5 is a diagram illustrating an arrangement for storing generated bit nodes according to an embodiment.
FIG. 6 is a diagram illustrating an arrangement of bit nodes (variables) mapped to a path set through FIG. 4, according to an exemplary embodiment.
FIG. 7 illustrates a parity check matrix different from FIG. 3 for scheduling, according to an embodiment. FIG.
FIG. 8 is a diagram illustrating an arrangement for storing generated bit nodes according to an embodiment.
9 illustrates a case where a path setting for preventing a memory conflict has failed, according to an exemplary embodiment.
FIG. 10 illustrates a cyclic shift of a bit node when mapping fails, according to an embodiment.
FIG. 11 is a diagram illustrating remapping using an array of cyclic shifted bit nodes when mapping fails according to an embodiment.
12 illustrates a method of scheduling a parity check matrix performed by an LDPC decoder, according to an embodiment.
13 illustrates a scheduling method of a parity check matrix using a cyclic shift of a bit node performed by an LDPC decoder.
14 illustrates a scheduling method of a parity check matrix using a cyclic shift of a check node performed by an LDPC decoder.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다. Specific structural or functional descriptions of the embodiments are disclosed for purposes of illustration only, and may be practiced in various forms. Accordingly, the embodiments are not limited to the specific disclosure, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea.

제 1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소는 제 1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but such terms should be interpreted only for the purpose of distinguishing one component 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.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.When a component is referred to as being "connected" to another component, it should be understood that there may be a direct connection or connection to that other component, but there may be other components in between. Singular expressions include plural expressions unless the context clearly indicates otherwise. As used herein, the terms "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, but includes one or more other features or numbers, It should be understood that it does not exclude in advance the possibility of the presence or addition of steps, actions, components, parts or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, 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 the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and are not construed in ideal or excessively formal meanings unless expressly defined herein. Do not.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, exemplary 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 LDPC decoder 100 may decode an LDPC code using a parity check matrix using the LDPC processor 110.

패리티 검사 행렬은 이진 행렬(binary matrix)로서 대부분의 원소(element)는 '0'이고, 일부는 '1'이다. 실제 부호화 또는 복호화에 사용되는 패리티 검사 행렬의 크기는

Figure 112017107224705-pat00001
비트 이상이기 때문에 패리티 검사 행렬을 처리하기 위해서는 대용량의 프로세서가 필요할 수 있다.The parity check matrix is a binary matrix where most elements are '0' and some are '1'. The size of the parity check matrix used for actual encoding or decoding is
Figure 112017107224705-pat00001
Because it is more than a bit, a large processor may be required to process the parity check matrix.

LDPC 프로세서(110)을 통해, 수신한 비트를 병렬 처리하여 고속 복호화하는 과정을 LDPC 복호기(100)는 수행할 수 있다. 고속 복호화 과정에서, 메모리 액세스 충돌이 발생하는 것을 방지하기 위해, 이하 도면에서 패리티 검사 행렬을 스케줄링하는 방법에 대해 설명한다.Through the LDPC processor 110, the LDPC decoder 100 may perform a process of performing fast decoding by parallel processing the received bits. In order to prevent a memory access collision from occurring in the fast decoding process, a method of scheduling a parity check matrix will be described in the following drawings.

도 2a와 도 2b는 일 실시예에 따른, 검사 노드 업데이트(Check Node Update, CNU) 및 비트 노드 업데이트(Bit Node Update, BNU)를 나타낸 도면이다.2A and 2B illustrate a check node update (CNU) and a bit node update (BNU) according to an embodiment.

LDPC 복호기에 의해 수행되는 복호 알고리즘은 다음과 같은 3개의 과정으로 설명될 수 있다. The decoding algorithm performed by the LDPC decoder can be described in three steps as follows.

첫째, 검사 노드(Check Node)에서 비트 노드(Bit Node)로의 확률 값이 갱신될 수 있다. 이를 위해, LDPC 복호기가 수신한 데이터에 포함된 채널 상의 오류를 정정하기 위한 채널 추정 값을 구하는 다음의 수학식 1과 같은 초기화(initialization)가 수행될 수 있다.First, a probability value from a check node to a bit node may be updated. To this end, initialization such as the following Equation 1 for obtaining a channel estimation value for correcting an error on a channel included in data received by the LDPC decoder may be performed.

Figure 112017107224705-pat00002
Figure 112017107224705-pat00002

둘째, 초기화된 후, 검사 노드(Check Node)가 갱신(Update)되는 검사 노드 업데이트(Check Node Update, CNU)가 수행될 수 있다. 도 2a는 검사 노드 연산 모듈인 CNU에서 하나의 검사 노드로 들어올 수 있는 데이터들의 결정 값에 대한 확률을 계산하는 것을 나타내는 도면이다. Second, after initialization, a check node update (CNU) in which a check node is updated may be performed. FIG. 2A is a diagram illustrating calculating a probability for a determined value of data that may enter a single check node in a check node calculation module, CNU.

패리티 검사 행렬에서 행(row) 또는 열(column)에 포함된 1의 개수를 weight로 나타낼 수 있다. 만약

Figure 112017107224705-pat00003
개의 row weight를 가진다고 가정할 때, 각각의 검사 노드 연산을 위해 입력되는 데이터들의 확률은 다음의 수학식 2를 통해 계산될 수 있다.In the parity check matrix, the number of 1s included in a row or a column may be represented as weight. if
Figure 112017107224705-pat00003
Assuming a row weight, the probability of the data input for each check node operation may be calculated by the following equation.

Figure 112017107224705-pat00004
Figure 112017107224705-pat00004

Figure 112017107224705-pat00005
는 k번째 검사 노드에서
Figure 112017107224705-pat00006
번째 비트 노드로 입력되는 데이터들의 확률인 LLR(Log Likelihood Ratio)값을 나타내며,
Figure 112017107224705-pat00007
는 비트 노드
Figure 112017107224705-pat00008
에서 k번째 검사 노드로 입력되는 LLR값을 나타낸다. 실제 데이터에 대한 로그 값으로 연산하게 되면 검사노드 연산은 수학식 3으로 할 수 있다.
Figure 112017107224705-pat00005
At the kth check node
Figure 112017107224705-pat00006
Represents a LLR (Log Likelihood Ratio) value, which is a probability of data input to the first bit node,
Figure 112017107224705-pat00007
Is a bit node
Figure 112017107224705-pat00008
The LLR value input to the k th test node in. If the operation is performed with the log value of the actual data, the check node operation may be expressed by Equation 3.

Figure 112017107224705-pat00009
Figure 112017107224705-pat00009

Figure 112017107224705-pat00010
Figure 112017107224705-pat00010

따라서,

Figure 112017107224705-pat00011
의 look up table 하나만 있으면 수학식 2의 체크 노드 업데이트(CNU)는 계산될 수 있다. therefore,
Figure 112017107224705-pat00011
If there is only one look up table, the check node update (CNU) of Equation 2 may be calculated.

셋째, 체크 노드 업데이트(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 Equation 5 below. Can be calculated according to 6.

Figure 112017107224705-pat00012
Figure 112017107224705-pat00012

Figure 112017107224705-pat00013
Figure 112017107224705-pat00013

도 3은 일 실시예에 따른, 스케줄링을 위한 패리티 검사 행렬(parity check matrix)를 나타낸다. 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가 존재한다. If the size of the parity check matrix shown in FIG. 3 is 7 × 4, 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 row 1, (2, 6, 7) NZEs in row 2, and (0, 1, 5) NZEs in row 3. There is (0, 2, 3) NZE in row 4.

따라서, 도 3에 나타난 패리티 검사 행렬의 비트 노드에서 패리티 검사 행렬의 행에 따라 그룹화 함으로써 확인되는 제1 인덱스는 {(0, 1, 4) (2, 6, 7) (0, 1, 5) (0, 2, 3)}을 나타낼 수 있다. Accordingly, the first index determined by grouping according to the rows of the parity check matrix at the bit nodes of the parity check matrix shown in FIG. 3 is {(0, 1, 4) (2, 6, 7) (0, 1, 5) (0, 2, 3)}.

LDPC 복호기는 패리티 검사 행렬을 이용하여 LDPC 코드를 사용할 수 있다. 패리티 검사 행렬은 이진 행렬(binary matrix)로서 대부분의 원소는 0이고, 일부는 1이다. 실제 부호화 또는 복호화에 사용되는 패리티 검사 행렬의 크기는

Figure 112017107224705-pat00014
비트 이상이기 때문에 패리티 검사 행렬을 저장하기 위해 대용량의 메모리가 필요할 수 있다. The LDPC decoder may use an LDPC code using a parity check matrix. The parity check matrix is a binary matrix, with most elements being zero and some being one. The size of the parity check matrix used for actual encoding or decoding is
Figure 112017107224705-pat00014
More than a bit may require a large amount of memory to store the parity check matrix.

도 4는 일 실시예에 따른, 메모리 충돌을 방지하기 위한 경로 설정(path setting)를 나타낸다.4 illustrates a path setting for preventing a memory conflict, according to an 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 conflict, a path setting for arranging a bit node may be set in FIG. 4.

도 4의 가로(410~413)은 패리티 검사 행렬의 행(row)를 나타낼 수 있다. 예를 들면, 0(410)은 패리티 검사 행렬의 1행, 1(411)은 패리티 검사 행렬의 2행, 2(412)는 패리티 검사 행렬의 3행, 3(413)은 패리티 검사 행렬의 4행을 나타낼 수 있다.Horizontal lines 410 to 413 of FIG. 4 may represent rows of the parity check matrix. For example, 0410 is 1 row of the parity check matrix, 1411 is 2 rows of the parity check matrix, 2412 is 3 rows of the parity check matrix, and 3413 is 4 rows of the parity check matrix. Can represent a row.

따라서, 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)을 포함할 수 있다.Accordingly, 0 (410) includes (0, 1,4), which is a non-zero elemental contained in row 1 of the parity check matrix, and 1 (411) contains a non-zero elemental contained in row 2 of the parity check matrix. Phosphorus (2, 6, 7), 2 (412) contains (0, 1, 5), which is a non-zero elemental contained in row 3 of the parity check matrix, and 3 (413) is a parity check matrix It can contain (0, 2, 3), which is a non-zero elemetal contained in line 4 of.

도 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열을 나타낼 수 있다.Vertical columns 420 to 427 of FIG. 4 may represent columns of the parity check matrix. For example, 0 420 is one column of the parity check matrix, 1 421 is two columns of the parity check matrix, 2 422 is three columns of the parity check matrix, and 3 423 is 4 of the parity check matrix. Column 4 (424) is 5 columns of the parity check matrix, 5 (425) is 6 columns of the parity check matrix, 6 (426) is 7 columns of the parity check matrix, and 7 (427) is 8 columns of the parity check matrix. Can be represented.

일 실시예에 따르면, 도 4의 가로(410~413)에 포함된 non-zero elemental과 동일한 수를 나타내는 세로(420~427)에 표시를 할 수 있다. 여기서 표시된 위치는 이하에서 설명되는 비트 노드의 배열이 매핑될 수 없는 위치를 나타낼 수 있다.According to an exemplary embodiment, the vertical lines 420 to 427 representing the same number as the non-zero elemental elements included in the horizontal lines 410 to 413 of FIG. 4 may be displayed. The position indicated here may represent a position where the array of bit nodes described below cannot be mapped.

예를 들면, 도 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 vertical lines 420, 421, and 424 may be marked with the same number as the non-zero elemental (0, 1, 4) included in the horizontal 0 (410) of FIG. 4. In addition, the vertical lines 422, 426, and 427 can be marked with the same number as the non-zero elemental (2, 6, 7) included in the horizontal 1 (411) of FIG. 4. In addition, the vertical lines 420, 421 and 425 representing the same number as the non-zero elemental (0, 1, 5) included in the horizontal 2 (412) of FIG. In addition, the vertical lines 420, 422, and 423 indicating the same number as the non-zero elemental (0, 2, 3) included in the horizontal 3 (413) of FIG.

도 4를 통해 표시된 위치 이외에 비트 노드를 배열함으로써, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 패리티 검사 행렬의 행에 대한 제1 인덱스와 열에 대한 제2 인덱스를 이용하여, 메모리 충돌 없이 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)가 동시에 수행될 수 있다.By arranging the bit nodes in addition to the positions indicated through FIG. 4, the second index for the column of the parity check matrix may be checked. Using a first index on a row of a parity check matrix and a second index on a column, check node update (CNU) and bit node update (VNU) may be simultaneously performed without memory conflict. .

도 5는 일 실시예에 따른, 생성된 비트 노드(variable node)를 저장하는 배열을 나타낸 도면이다.FIG. 5 is a diagram illustrating an arrangement for storing generated bit nodes according to an embodiment.

비트 노드(variable node)의 배열은 패리티 검사 행렬의 열(column)에 따라 non-zero elemental인 비트 노드(variable node)를 순서대로 배열한 것을 나타낼 수 있다. The arrangement of the bit nodes may indicate that the non-zero elemental bit nodes are arranged in order according to the 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 Figure 3, the non-zero elemental in column 1 is (0, 0, 0), the non-zero elemental in column 2 is (1, 1), and the non-zero elemental is in column 3. (2, 2), (3) which is a non-zero elemental in column 4, (4) which is a non-zero elemental in column 5, (5) which is a non-zero elemental in column 6, and a non-zero elemental in column 7. (6), which can be (0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 7) in order of (7) being a non-zero elemental in column 8.

도 6은 일 실시예에 따른, 도 4를 통해 세팅된 경로에 비트 노드(variable)의 배열이 매핑된 것을 나타낸 도면이다.FIG. 6 is a diagram illustrating an arrangement of bit nodes (variables) mapped to a path set through FIG. 4, according to an exemplary embodiment.

일례로서, 이하 도 5를 통해 계산된 비트 노드(variable node)의 배열을 이용하여 매핑하는 것을 설명한다. As an example, a 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, three '0's may be mapped to positions where 1 611 and 0 620 intersect. Here, three '0' may be sequentially mapped to (2, 6, 7) which is a non-zero elemental 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, two '1's may be mapped at positions where 3613 and 1621 are crossed. Here, two '1's may be mapped in order to (0, 2) of (0, 2, 3) which are non-zero elemental included in 3 (613). In this case, two '1's may not be mapped in order to (2, 6, 7) which is a non-zero elemental included in 1 (611). This is because the three '0's described above are mapped in order to (2, 6, 7), which are non-zero elemental elements 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, two '2's may be mapped to positions where 0'610 and 2622'are crossed. Here, two '2' may be mapped in order to (0, 1) of (0, 1, 4) which is a non-zero elemental included in 0 (610). In this case, two '2's may not be mapped in order to (0, 1, 5) which is a non-zero elemental included in 2 (612). This is because the mapping is set 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 a position where 0 610 and 3 623 intersect. Here, one '3' may be mapped to (4) of (0, 1, 4) which is a non-zero elemental included in 0 (610). In this case, one '3' cannot be mapped to one of (0, 1) which is a non-zero elemental included in 0 (610). This is because the 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)에 매핑될 수 없다. 왜냐하면, 다른 비트 노드가 이미 매핑되어 있기 때문이다. One '4' in the array of bit nodes may be mapped to a position where 2 612 and 4 624 intersect. Here, one '4' may be mapped to (0) of (0, 1, 5) which is a non-zero elemental included in 2 (612). At this time, one '4' cannot be mapped to (1, 5) of (0, 1, 5) which is a non-zero elemental included in 2 (612). This is because the mapping is set up in order. Also, one '4' cannot be mapped to (2, 6, 7) which is a non-zero elemental included in 1 (611). This is because another bit node is 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 a position where 3 613 and 5 625 intersect. Here, one '5' may be mapped to (3) of (0, 2, 3) which is a non-zero elemental included in 3 (613). At this time, one '5' cannot be mapped to (0, 2) of (0, 2, 3) which is a non-zero elemental included in 3 (613). Also, one '5' cannot be mapped to non-zero elemental included in 0 610 and 1 611. This is because another bit node is 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)에 매핑될 수 없다. 왜냐하면, 다른 비트 노드가 이미 매핑되어 있기 때문이다. One '6' in the array of bit nodes may be mapped to a position where 2 612 and 6 626 intersect. Here, one '6' may be mapped to (1) of (0, 1, 5) which is a non-zero elemental included in 2 (612). At this time, one '6' may not be mapped to (0, 5) of (0, 1, 5) which is a non-zero elemental included in 2 (612). This is because the mapping is set in order, and other bit nodes are already mapped. In addition, one '6' cannot be mapped to (0, 1, 4) which is a non-zero elemental included in 0 (610). This is because another bit node is 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)에 매핑될 수 없다. 왜냐하면, 다른 비트 노드가 이미 매핑되어 있기 때문이다. One '7' in the array of bit nodes may be mapped to a position where 2 612 and 7 627 intersect. Here, one '7' may be mapped to (5) of (0, 1, 5) which is a non-zero elemental included in 2 (612). At this time, one '7' cannot be mapped to (0, 1) of (0, 1, 5) which is a non-zero elemental included in 2 (612). This is because the mapping is set in order, and other bit nodes are already mapped. Also, one '7' cannot be mapped to (0, 1, 4) which is a non-zero elemental included in 0 (610). This is because another bit node is already mapped.

일 실시예에 따르면, 패리티 검사 행렬의 비트 노드에서 패리티 검사 행렬의 행에 따라 그룹화 함으로써 확인되는 제1 인덱스는 {(0, 1, 4) (2, 6, 7) (0, 1, 5) (0, 2, 3)}을 나타낼 수 있다. According to an embodiment, the first index determined by grouping according to the rows of the parity check matrix at the bit nodes of the parity check matrix is {(0, 1, 4) (2, 6, 7) (0, 1, 5) (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 exemplary embodiment, a column in which a non-zero elemental bit node may be arranged is extracted from a parity check matrix using a first index, and a non-zero elemental bit node is arranged in an array. Accordingly, the second index checked by mapping in order may indicate {(2, 2, 3) (0, 0, 0) (4, 6, 7) (1, 1, 5)}. Therefore, by using the first index and the second index, it is possible to simultaneously perform VNU and CNU without memory conflict.

예를 들면, LDPC 복호기는 패리티 검사 행렬의 1행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (2, 2, 3)을 통해 '2'번째 세로의 VNU 연산과 '3'번째 세로의 VNU 연산을 동시에 수행할 수 있다.For example, the LDPC decoder performs the CNU operation of one row of the parity check matrix, and uses the (2, 2, 3) identified at the second index. VNU operations can be performed at the same time.

다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 2행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (0, 0, 0)을 통해 '0'번째 세로의 VNU 연산을 동시에 수행할 수 있다. For another example, when performing the CNU operation of two rows of the parity check matrix, the LDPC decoder may simultaneously perform a '0' vertical VNU operation through (0, 0, 0) identified at the second index. .

다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 3행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (4, 6, 7)을 통해 '4'번째 세로의 VNU 연산과 '6'번째 세로의 VNU 연산, 그리고 '7'번째 세로의 VNU 연산을 동시에 수행할 수 있다.As another example, the LDPC decoder performs the VNU operation of the '4' vertical and the '6' vertical through (4, 6, 7) identified at the second index when performing the CNU operation of three rows of the parity check matrix. VNU operation and '7' vertical VNU operation can be performed at the same time.

또 다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 4행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (1, 1, 5)을 통해 '1'번째 세로의 VNU 연산과 '5'번째 세로의 VNU 연산을 동시에 수행할 수 있다.As another example, the LDPC decoder performs the CNU operation of 4 rows of the parity check matrix, and the '1' vertical VNU operation and the '5'th through (1, 1, 5) identified at the second index. Vertical VNU operations can be performed at the same time.

도 7은 일 실시예에 따른, 스케줄링을 위한 도 3과 다른 패리티 검사 행렬(parity check matrix)를 나타낸다. FIG. 7 illustrates a parity check matrix different from FIG. 3 for scheduling, according to an embodiment. FIG.

도 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 portions in the parity check matrix shown in FIG. 7 represent non-zero elemental (NZE). For example, in the parity check matrix, there are (0, 3, 4) NZEs in row 1, (0, 1, 5) NZEs in row 2, and (1, 2, 6) NZEs in row 3. There is (0, 2, 7) NZE in row 4.

따라서, 도 7에 나타난 패리티 검사 행렬의 비트 노드에서 패리티 검사 행렬의 행에 따라 그룹화 함으로써 확인되는 제1 인덱스는 {(0, 3, 4) (0, 1, 5) (1, 2, 6) (0, 2, 7)}을 나타낼 수 있다. Accordingly, the first index determined by grouping according to the rows of the parity check matrix at the bit nodes of the parity check matrix shown in FIG. 7 is {(0, 3, 4) (0, 1, 5) (1, 2, 6) (0, 2, 7)}.

아래 도 9에서 확인 가능하듯이, 도 3과 달리, 도 7에 나타난 패리티 검사 행렬은 비트 노드의 배열을 매핑하는 것이 불가능한 행렬일 수 있다. 따라서, 매핑이 실패할 경우, cyclic shift를 통해 매핑하는 것을 도 8 ~ 도 11을 통해 설명한다.As can be seen in FIG. 9 below, unlike FIG. 3, the parity check matrix shown in FIG. 7 may be a matrix in which it is impossible to map an array of bit nodes. Therefore, when mapping fails, mapping through cyclic shift will be described with reference to FIGS. 8 to 11.

도 8은 일 실시예에 따른, 생성된 비트 노드(variable node)를 저장하는 배열을 나타낸 도면이다.FIG. 8 is a diagram illustrating an arrangement for storing generated bit nodes according to an embodiment.

비트 노드(variable node)의 배열은 패리티 검사 행렬의 열(column)에 따라 non-zero elemental인 비트 노드(variable node)를 순서대로 배열한 것을 나타낼 수 있다. The arrangement of the bit nodes may indicate that the non-zero elemental bit nodes are arranged in order according to the 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 Figure 3, the non-zero elemental in column 1 is (0, 0, 0), the non-zero elemental in column 2 is (1, 1), and the non-zero elemental is in column 3. (2, 2), (3) which is a non-zero elemental in column 4, (4) which is a non-zero elemental in column 5, (5) which is a non-zero elemental in column 6, and a non-zero elemental in column 7. (6), which can be (0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 7) in order of (7) being a non-zero elemental in column 8.

도 9는 일 실시예에 따른, 메모리 충돌을 방지하기 위한 경로 설정(path setting)이 실패한 경우를 나타낸다.9 illustrates a case where a path setting for preventing a memory conflict has failed, according to an exemplary 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 conflict, a path setting for arranging a bit node may be set in FIG. 9.

도 9의 가로(910~913)은 패리티 검사 행렬의 행(row)를 나타낼 수 있다. 예를 들면, 0(910)은 패리티 검사 행렬의 1행, 1(911)은 패리티 검사 행렬의 2행, 2(912)는 패리티 검사 행렬의 3행, 3(913)은 패리티 검사 행렬의 4행을 나타낼 수 있다.Horizontal lines 910 to 913 of FIG. 9 may represent rows of the parity check matrix. For example, 0 (910) is 1 row of parity check matrix, 1 (911) is 2 rows of parity check matrix, 2 (912) is 3 rows of parity check matrix, and 3 (913) is 4 of parity check matrix. Can represent a row.

따라서, 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)을 포함할 수 있다.Accordingly, 0 (910) includes (0, 3, 4), which is a non-zero elemental included in row 1 of the parity check matrix, and 1 (911) includes a non-zero elemental included in row 2 of the parity check matrix. 2 (912) includes (1, 2, 6) which is a non-zero elemental contained in row 3 of the parity check matrix, and 3 (913) contains a parity check matrix. It can contain (0, 2, 7), which is a non-zero elemetal contained in line 4 of.

도 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열을 나타낼 수 있다.The vertical lines 920 to 927 of FIG. 9 may represent columns of the parity check matrix. For example, 0 420 is one column of the parity check matrix, 1 421 is two columns of the parity check matrix, 2 422 is three columns of the parity check matrix, and 3 423 is 4 of the parity check matrix. Column 4 (424) is 5 columns of the parity check matrix, 5 (425) is 6 columns of the parity check matrix, 6 (426) is 7 columns of the parity check matrix, and 7 (427) is 8 columns of the parity check matrix. Can be represented.

일 실시예에 따르면, 도 9의 가로(910~913)에 포함된 non-zero elemental과 동일한 수를 나타내는 세로(420~427)에 표시를 할 수 있다. 여기서 표시된 위치는 이하에서 설명되는 비트 노드의 배열이 매핑될 수 없는 위치를 나타낼 수 있다.According to an exemplary embodiment, the vertical lines 420 to 427 representing the same number as the non-zero elemental elements included in the horizontal lines 910 to 913 of FIG. 9 may be displayed. The position indicated here may represent a position where the array of bit nodes described below cannot be mapped.

예를 들면, 도 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 vertical lines 920, 923, and 924 representing the same number as the non-zero elemental (0, 3, 4) included in the horizontal 0 (910) of FIG. 9 may be marked. In addition, the vertical lines 920, 921, and 925 representing the same number as the non-zero elemental (0, 1, 5) included in the horizontal 1, 911 of FIG. 9 may be displayed. In addition, the vertical lines 921, 922, and 926 that represent the same number as the non-zero elemental (1, 2, 6) included in the horizontal 2 912 of FIG. 9 may be marked. In addition, the vertical lines 920, 922, and 927 representing the same number as the non-zero elemental (0, 2, 7) included in the horizontal 3 (913) of FIG. 4 may be marked.

도 9를 통해 표시된 위치 이외에 비트 노드를 배열함으로써, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 패리티 검사 행렬의 행에 대한 제1 인덱스와 열에 대한 제2 인덱스를 이용하여, 메모리 충돌 없이 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)가 동시에 수행될 수 있다.By arranging the bit nodes in addition to the positions indicated through FIG. 9, the second index for the column of the parity check matrix may be confirmed. Using a first index on a row of a parity check matrix and a second index on a column, check node update (CNU) and bit node update (VNU) may be simultaneously performed without memory conflict. .

일례로서, 이하 도 8를 통해 계산된 비트 노드(variable node)의 배열을 이용하여 매핑하는 것을 설명한다. As an example, the mapping is performed by using an array of variable nodes calculated through FIG. 8.

비트 노드의 배열에서 '0' 세개, '1' 두개, '2' 두개, '3' 한 개, '4' 한 개, '5' 한 개, '6' 한 개는 도 4~도 6을 통해 설명된 방법을 통해 도 9에 나타난 바와 같이 매핑될 수 있다. 다만, 도 9를 통해 확인 가능하듯이, '7' 한 개는 매핑 될 수 없다. 따라서, 이와 같은 매핑이 실패한 경우, 도 10을 통해 비트 노드의 배열을 cyclic shift함으로써 해결하는 방안을 이하 설명한다.In the array of bit nodes, three '0's, two' 1's, two '2's, one' 3 ', one' 4 ', one' 5 ', and one' 6 'are shown in FIGS. It may be mapped as shown in FIG. 9 through the method described above. However, as can be seen through FIG. 9, one '7' cannot be mapped. Accordingly, in the case where such a mapping fails, a solution to the cyclic shift of the arrangement of the bit nodes will be described below with reference to FIG. 10.

도 10은 일 실시예에 따른, 매핑이 실패한 경우, 비트 노드(variable node)를 cyclic shift 하는 것을 나타낸 도면이다.FIG. 10 illustrates a cyclic shift of a bit node when mapping fails, according to an embodiment.

도 8에 나타난 비트 노드의 배열에서 매핑을 실패할 경우, 도 10과 같이 비트 노드의 배열을 cyclic shift할 수 있다. When mapping fails in the arrangement of the bit nodes shown in FIG. 8, the arrangement of the bit nodes may be cyclically shifted as shown in FIG. 10.

'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. 8. For example, three '0's shown in column 1 of FIG. 8 are classified into one column, and thus may 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 one column, 30 non-zero elemental elements may be cyclic shifted for mapping of the bit nodes.

도 11은 일 실시예에 따른, 매핑이 실패한 경우, cyclic shift 된 비트 노드의 배열을 이용하여, 재매핑을 수행한 것을 나타낸 도면으로 표현이 쉽도록 가로와 세로를 바꾼 형태이고, 최종적인 매핑 형태이다.FIG. 11 is a diagram illustrating remapping by using an array of cyclic shifted bit nodes when mapping fails, in which the horizontal and vertical directions are easily changed, and the final mapping form is illustrated. 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 a position where 1 1111 and 4 1124 intersect. Here, one '4' may be mapped to (0) of (0, 1, 5) which is a non-zero elemental included in 1 (1111). At this time, one '4' cannot be mapped to (1, 5) of (0, 1, 5) which is a 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 a position where 0 1110 and 5 1125 intersect. Here, one '5' may be mapped to (0) of (0, 3, 4) which is a non-zero elemental included in 0 1110. At this time, one '5' cannot be mapped to (3, 4) among (0, 3, 4) which is a 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)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있으며, 다른 비트 노드가 이미 매핑되어 있기 때문이다. One '6' in the array of bit nodes may be mapped to a position where 0 1110 and 6 1126 intersect. Here, one '6' may be mapped to (3) of (0, 3, 4) which is a non-zero elemental included in 0 (1110). At this time, one '6' may not be mapped to (0, 4) of (0, 3, 4) which is a non-zero elemental included in 0 (1110). This is because the mapping is set 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)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있으며, 다른 비트 노드가 이미 매핑되어 있기 때문이다. One '7' in the array of bit nodes may be mapped to a position where 0 1110 and 7 1127 intersect. Here, one '7' may be mapped to (4) of (0, 3, 4) which is a non-zero elemental included in 0 1110. In this case, one '7' cannot be mapped to (0, 3) of (0, 3, 4) which is a non-zero elemental included in 0 (1110). This is because the mapping is set 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, three '0's may be mapped to positions where 21112 and 01120 intersect. Here, three '0' may be sequentially mapped to (1, 2, 6), which is a non-zero elemental 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, two '1's may be mapped to positions where 31113 and 11121 intersect. Here, two '1's may be mapped in order to (0, 2) of (0, 2, 7) which are non-zero elemental elements included in 3 (1113). Also, two '1's may not be mapped in order to 0 1110 to which another bit node is 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, two '2's may be mapped at positions where 1 1111 and 3 1122 intersect. Here, two '2's may be mapped in order to (1, 5) of (0, 1, 5), which are non-zero elemental elements included in 1 (1111). This is because another bit node is already mapped to (0) of (0, 1, 5).

비트 노드의 배열에서 '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)에 매핑될 수 없다. 왜냐하면, 매핑은 순서대로 이루어지도록 설정되어 있으며, 다른 비트 노드가 이미 매핑되어 있기 때문이다.One '3' in the array of bit nodes may be mapped to a position where 3 1113 and 3 1123 intersect. Here, one '3' may be mapped to (7) of (0, 2, 7) which is a non-zero elemental included in 3 (1113). In this case, one '3' cannot be mapped to (0, 2) of (0, 2, 7) which is a non-zero elemental included in 3 (1113). This is because the mapping is set in order, and other bit nodes are already mapped.

일 실시예에 따르면, 패리티 검사 행렬의 비트 노드에서 패리티 검사 행렬의 행에 따라 그룹화 함으로써 확인되는 제1 인덱스는 {(0, 3, 4) (0, 1, 5) (1, 2, 6) (0, 2, 7)}을 나타낼 수 있다. According to an embodiment, the first index determined 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) (1, 2, 6) (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 exemplary embodiment, a column in which a non-zero elemental bit node may be disposed in a parity check matrix is extracted using a first index, and a non-zero elemental bit node is arranged in an array. Accordingly, the second index identified by mapping in order may indicate {(5, 6, 7) (4, 2, 2) (0, 0, 0) (1, 1, 3)}.

따라서, 제1 인덱스와 제2 인덱스를 이용하여, 메모리 충돌 없이 VNU와 CNU를 동시에 수행할 수 있다.Therefore, by using the first index and the second index, it is possible to simultaneously perform VNU and CNU without memory conflict.

예를 들면, LDPC 복호기는 패리티 검사 행렬의 1행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (5, 6, 7)을 통해 '5'번째 세로의 VNU 연산과 '6'번째 세로의 VNU 연산, '7'번째 세로의 VNU 연산을 동시에 수행할 수 있다.For example, the LDPC decoder performs the CNU operation of one row of the parity check matrix, through the (5, 6, 7) identified at the second index. The VNU operation and the VNU operation of the '7' th vertical can be performed simultaneously.

다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 2행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (4, 2, 2)을 통해 '4'번째 세로의 VNU 연산과 '2'번째 세로의 VNU 연산을 동시에 수행할 수 있다. As another example, the LDPC decoder performs the CNU operation of two rows of the parity check matrix, and the VNU operation of the '4' vertical and the '2' vertical through (4, 2, 2) identified at the second index. You can perform VNU operations at the same time.

다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 3행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (0, 0, 0)을 통해 '0'번째 세로의 VNU 연산을 동시에 수행할 수 있다.For another example, when performing the CNU operation of three rows of the parity check matrix, the LDPC decoder may simultaneously perform the '0' vertical VNU operation through (0, 0, 0) identified at the second index. .

또 다른 예를 들면, LDPC 복호기는 패리티 검사 행렬의 4행의 CNU 연산을 할 때, 제2 인덱스에서 확인된 (1, 1, 3)을 통해 '1'번째 세로의 VNU 연산과 '3'번째 세로의 VNU 연산을 동시에 수행할 수 있다.As another example, when the LDPC decoder performs four rows of CNU operations of the parity check matrix, the first and second VNU operations and the third and third VNU operations are identified through (1, 1, 3) identified at the second index. Vertical VNU operations can be performed at the same time.

본 발명에서 variable node 배열의 cyclic shift 만으로 재배열이 실패할 경우, check node 배열의 cyclic shift를 통해 재배열이 가능하다. In the present invention, when the rearrangement fails only by 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 rearrange during one cycle, the cyclic shift in the vertical direction is performed by putting the first row at the bottom and raising the remaining rows by one in FIG. 3. After that, perform cyclic shift of Variable node array again and rearrange.

도 12는 일 실시예에 따른, LDPC 복호기가 수행하는 패리티 검사 행렬의 스케줄링 방법을 나타낸다.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 step 1201, the LDPC decoder may check for a non-zero elemental variable node in the parity check matrix.

단계(1202)에서, LDPC 복호기는 non-zero elemental인 비트 노드에서 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인할 수 있다. 여기서, 제1 인덱스는, 패리티 검사 행렬의 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 형성될 수 있다.In step 1202, the LDPC decoder may identify a first index for the row of the parity check matrix at the bit node that is non-zero elemental. Here, the first index may be formed by grouping the non-zero elemental bit nodes of the parity check matrix according to the row.

단계(1203)에서 LDPC 복호기는 제1 인덱스를 이용하여, 패리티 검사 행렬에서 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)을 추출하고, 추출된 열에 상기 non-zero elemental인 비트 노드를 배열에 따라 매핑할 수 있다.In step 1203, the LDPC decoder extracts a column in which a non-zero elemental bit node may be placed in a parity check matrix by using a first index, and the non-zero elemental bit node in the extracted column. Can be mapped according to an array.

여기서, non-zero elemental인 비트 노드를 매핑하는 것은, 제1 인덱스를 통해 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 non-zero elemental인 비트 노드를 순서대로 매핑하는 것을 나타낼 수 있다.The mapping of the non-zero elemental bit nodes may be performed by identifying a location where the non-zero elemental bit node cannot be placed through the first index, and identifying the non-zero elemental bit node at the position where the non-zero elemental bit node can be placed. This may indicate mapping in order.

이때, non-zero elemental인 비트 노드의 배열은 패리티 검사 행렬의 열(column)에 따라 non-zero elemental인 비트 노드가 순서대로 배열되는 것을 의미할 수 있다.In this case, an array of non-zero elemental bit nodes may mean that the non-zero elemental bit nodes are arranged in order according to a column of the parity check matrix.

단계(1204)에서, LDPC 복호기는 매핑된 비트 노드를 통해, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 여기서, 제2 인덱스는 제1 인덱스에 따른 행과 CNU 및 VNU를 동시에 수행하는 패리티 검사 행렬의 열을 나타낼 수 있다.In step 1204, the LDPC decoder may identify, via the mapped bit node, the second index for the column of the parity check matrix. Here, the second index may represent a row according to the first index and a column of a parity check matrix that simultaneously performs CNU and VNU.

LDPC 복호기는 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(CNU)와 비트 노드 업데이트(VNU)를 동시에 메모리 액세스 충돌 없이 수행할 수 있다. The LDPC decoder may simultaneously perform a check node update (CNU) and a bit node update (VNU) without using a memory access conflict by using the first index and the second index.

도 13은 일 실시예에 따른, LDPC 복호기가 수행하는 비트 노드의 cyclic shift를 이용한 패리티 검사 행렬의 스케줄링 방법을 나타낸다.13 illustrates a scheduling method of a parity check matrix using a cyclic shift of a bit node performed by an LDPC decoder.

단계(1301)에서, LDPC 복호기는 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크할 수 있다. In step 1301, the LDPC decoder may check for a non-zero elemental variable node in the parity check matrix.

단계(1302)에서, LDPC 복호기는 non-zero elemental인 비트 노드에서 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인할 수 있다. 여기서, 제1 인덱스는, 패리티 검사 행렬의 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 형성될 수 있다.In step 1302, the LDPC decoder may check a first index for a row of the parity check matrix at a bit node that is non-zero elemental. Here, the first index may be formed by grouping the non-zero elemental bit nodes of the parity check matrix according to the row.

단계(1303)에서 LDPC 복호기는 제1 인덱스를 이용하여, 패리티 검사 행렬에서 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)에 non-zero elemental인 비트 노드의 배열이 실패할 경우, 비트 노드의 배열을 cyclic shift 하여 다시 매핑할 수 있다.In step 1303, the LDPC decoder uses the first index if the array of the non-zero elemental bit nodes fails in a column where the non-zero elemental bit nodes may be arranged in the parity check matrix. The array of bit nodes can be remapped by cyclic shift.

여기서, cyclic shift는 패리티 검사 행렬의 한 열에 대한 VNU 연산이 수행될 수 있도록, 패리티 검사 행렬의 한 열에 포함된 non-zero elemental인 비트 노드를 동시에 cyclic 시프트하는 것을 나타낼 수 있다.Here, the cyclic shift may represent cyclic shift of non-zero elemental bit nodes simultaneously included in one column of the parity check matrix so that a VNU operation on one column of the parity check matrix can be performed.

단계(1304)에서, LDPC 복호기는 매핑된 비트 노드를 통해, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 여기서, 제2 인덱스는 제1 인덱스에 따른 행과 CNU 및 VNU를 동시에 수행하는 패리티 검사 행렬의 열을 나타낼 수 있다.In step 1304, the LDPC decoder may identify, via the mapped bit node, the second index for the column of the parity check matrix. Here, the second index may represent a row according to the first index and a column of a parity check matrix that simultaneously performs CNU and VNU.

LDPC 복호기는 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(CNU)와 비트 노드 업데이트(VNU)를 동시에 메모리 액세스 충돌 없이 수행할 수 있다. The LDPC decoder may simultaneously perform a check node update (CNU) and a bit node update (VNU) without using a memory access conflict by using the first index and the second index.

도 14은 일 실시예에 따른, LDPC 복호기가 수행하는 검사 노드의 cyclic shift를 이용한 패리티 검사 행렬의 스케줄링 방법을 나타낸다.14 illustrates a scheduling method of a parity check matrix using a cyclic shift of a check node performed by an LDPC decoder.

단계(1401)에서, LDPC 복호기는 패리티 검사 행렬에서 non-zero elemental인 검사 노드(check node)를 체크할 수 있다. In step 1401, the LDPC decoder may check a check node that is non-zero elemental in the parity check matrix.

단계(1402)에서, LDPC 복호기는 non-zero elemental인 검사 노드에서 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인할 수 있다. 여기서, 제1 인덱스는, 패리티 검사 행렬의 non-zero elemental인 검사 노드를 행에 따라 그룹화 함으로써 형성될 수 있다.In step 1402, the LDPC decoder may identify a first index for a row of the parity check matrix at the check node that is a non-zero elemental. Here, the first index may be formed by grouping non-zero elemental check nodes of the parity check matrix according to rows.

단계(1403)에서 LDPC 복호기는 제1 인덱스를 이용하여, 패리티 검사 행렬에서 non-zero elemental인 검사 노드가 배치될 수 있는 열(column)에 non-zero elemental인 검사 노드의 배열이 실패할 경우, 검사 노드의 배열을 cyclic shift 하여 다시 매핑할 수 있다.In step 1403, the LDPC decoder uses the first index, when an array of non-zero elemental check nodes fails in a column in which a non-zero elemental check node in the parity check matrix may be placed. The array of check nodes can be remapped by a cyclic shift.

여기서, cyclic shift는 패리티 검사 행렬의 한 행에 대한 CNU 연산이 수행될 수 있도록, 패리티 검사 행렬의 한 행에 포함된 non-zero elemental인 검사 노드를 동시에 cyclic 시프트하는 것을 나타낼 수 있다.Here, the cyclic shift may represent cyclic shifting non-zero elemental check nodes included in one row of the parity check matrix at the same time so that a CNU operation on one row of the parity check matrix can be performed.

단계(1404)에서, LDPC 복호기는 매핑된 검사 노드를 통해, 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인할 수 있다. 여기서, 제2 인덱스는 제1 인덱스에 따른 행과 CNU 및 VNU를 동시에 수행하는 패리티 검사 행렬의 열을 나타낼 수 있다.In step 1404, the LDPC decoder may identify, via the mapped check node, the second index for the column of the parity check matrix. Here, the second index may represent a row according to the first index and a column of a parity check matrix that simultaneously performs CNU and VNU.

LDPC 복호기는 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(CNU)와 비트 노드 업데이트(VNU)를 동시에 메모리 액세스 충돌 없이 수행할 수 있다. The LDPC decoder may simultaneously perform a check node update (CNU) and a bit node update (VNU) without using a memory access conflict by using the first index and the second index.

한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.Meanwhile, the method according to the present invention can be implemented as a program that can be executed in a computer and can be implemented in 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 in combinations of them. Implementations may be implemented for processing by, or to control the operation of, a data processing device, eg, a programmable processor, a computer, or multiple computers, a computer program product, i. It may be implemented as a device (computer readable medium) or as a computer program tangibly embodied in a radio signal. Computer programs, 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 written as standalone programs or in modules, components, subroutines, or computing environments. It can be deployed in any form, including as other units suitable for use. The computer program can be deployed to be processed on one computer or multiple computers at one site or distributed across multiple sites and interconnected by a communication 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 the processing of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. In general, a processor will receive instructions and data from a read only memory or a random access memory or both. Elements of a computer may include at least one processor that executes instructions and one or more memory devices that store instructions and data. In general, a computer may include one or more mass storage devices that store data, such as magnetic, magneto-optical disks, or optical disks, or receive data from, send data to, or both. It may be combined to be. Suitable information carriers 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. ), Optical media such as DVD (Digital Video Disk), magneto-optical media such as floppy disk, ROM (Read Only Memory), RAM , Random Access Memory, Flash Memory, Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), and the like. The processor and memory may be supplemented by or included by special purpose logic circuitry.

또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.In addition, the computer readable medium may be any available medium that can be accessed by a computer, and may include both computer storage media and transmission media.

본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.Although the specification includes numerous specific implementation details, these should not be construed as limited to any invention or the scope of the claims, but rather as a description of features that may be specific to a particular embodiment of a particular invention. It must be understood. Certain features that are described in this specification in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable subcombination. Furthermore, while the features operate in a specific combination and may be initially depicted as so claimed, one or more features from the claimed combination may in some cases be excluded from the combination, wherein the claimed combination is a subcombination Or a combination of subcombinations.

마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.Likewise, although the operations are depicted in the drawings in a specific order, it should not be understood that such operations must be performed in the specific order or sequential order shown in order to obtain desirable results or that all illustrated operations must be performed. In certain cases, multitasking and parallel processing may be advantageous. Moreover, 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 that it can.

한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.On the other hand, the embodiments of the present invention disclosed in the specification and drawings are merely presented specific examples to aid understanding and are not intended to limit the scope of the present invention. It is apparent to those skilled in the art that other modifications based on the technical idea of the present invention can be carried out in addition to the embodiments disclosed herein.

100: LDPC 복호기
110: LDPC 프로세서
100: LDPC decoder
110: LDPC processor

Claims (20)

LDPC 복호기가 수행하는 패리티 검사 행렬(parity check matrix)의 스케줄링(scheduling) 방법에 있어서,
상기 패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하는 단계;
상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하는 단계;
상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)을 추출하고, 상기 추출된 열에 상기 non-zero elemental인 비트 노드를 배열에 따라 매핑하는 단계;
상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하는 단계;
를 포함하고,
상기 배열은 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열된 것인,
패리티 검사 행렬의 스케줄링 방법.
In the scheduling method of the parity check matrix (parity check matrix) performed by the LDPC decoder,
Checking a non-zero elemental variable node in the parity check matrix;
Identifying a first index for a row of the parity check matrix at the non-zero elemental bit node;
Extracting a column in which the non-zero elemental bit nodes may be arranged in the parity check matrix using the first index, and extracting the non-zero elemental bit nodes in the extracted column according to an arrangement. Mapping;
Identifying, via the mapped bit node, a second index for the column of the parity check matrix;
Including,
Wherein the arrangement is that the non-zero elemental bit nodes are arranged in order according to a column of the parity check matrix.
Scheduling method of parity check matrix.
제1항에 있어서,
상기 제1 인덱스와 제2 인덱스를 이용하여,
검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)를 동시에 수행하는 단계
를 더 포함하는 패리티 검사 행렬의 스케줄링 방법.
The method of claim 1,
By using the first index and the second index,
Performing check node update (CNU) and variable node update (VNU) at the same time
The parity check matrix scheduling method further comprising.
제2항에 있어서,
상기 제2 인덱스는,
상기 제1 인덱스에 따른 행과 상기 CNU 및 VNU를 동시에 수행하는 상기 패리티 검사 행렬의 열을 나타내는
패리티 검사 행렬의 스케줄링 방법.
The method of claim 2,
The second index is,
Represents a row according to the first index and a column of the parity check matrix that simultaneously performs the CNU and VNU
Scheduling method of parity check matrix.
제1항에 있어서,
상기 제1 인덱스는,
상기 패리티 검사 행렬의 상기 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 확인되는,
패리티 검사 행렬의 스케줄링 방법.
The method of claim 1,
The first index is,
Identified by grouping the non-zero elemental bit nodes of the parity check matrix row by row,
Scheduling method of parity check matrix.
제1항에 있어서,
상기 non-zero elemental인 비트 노드를 매핑하는 단계는,
상기 제1 인덱스를 통해, 상기 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 상기 non-zero elemental인 비트 노드를 순서대로 배치하는 단계
를 포함하는 패리티 검사 행렬의 스케줄링 방법.
The method of claim 1,
Mapping the non-zero elemental bit node,
Identifying positions through which the non-zero elemental bit nodes cannot be arranged and sequentially placing the non-zero elemental bit nodes in positions where the non-zero elemental bit nodes can be arranged;
The parity check matrix scheduling method comprising a.
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 인덱스를 확인하는 단계;
를 포함하고,
상기 배열은 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열된 것인,
패리티 검사 행렬의 스케줄링 방법.
In the scheduling method of the parity check matrix (parity check matrix) performed by the LDPC decoder,
Checking a non-zero elemental variable node in the parity check matrix;
Identifying a first index for a row of the parity check matrix at the non-zero elemental bit node;
When the non-zero elemental bit nodes are mapped according to an array in a column in which the non-zero elemental bit nodes may be arranged in the parity check matrix using the first index, and the mapping fails. Cyclically shifting and remapping the array;
Identifying, via the mapped bit node, a second index for the column of the parity check matrix;
Including,
Wherein the arrangement is that the non-zero elemental bit nodes are arranged in order according to a column of the parity check matrix.
Scheduling method of parity check matrix.
제6항에 있어서,
상기 cyclic 시프트는,
한 열에 대한 비트 노드 업데이트(variable node update, VNU)연산이 수행될 수 있도록, 상기 한 열에 포함된 상기 non-zero elemental인 비트 노드를 cyclic 시프트 하는 것인 패리티 검사 행렬의 스케줄링 방법.
The method of claim 6,
The cyclic shift is
And cyclic shifting the non-zero elemental bit nodes included in the one column such that a variable node update (VNU) operation for one column is 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 인덱스를 확인하는 단계;
를 포함하고,
상기 배열은 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 검사 노드가 순서대로 배열된 것인,
패리티 검사 행렬의 스케줄링 방법.
In the scheduling method of the parity check matrix (parity check matrix) performed by the LDPC decoder,
Checking a non-zero elemental check node in the parity check matrix;
Identifying a first index of a row of the parity check matrix at the check node that is the non-zero elemental;
When the non-zero elemental check nodes are mapped according to an array in a column where the non-zero elemental check nodes can be arranged in the parity check matrix using the first index, and the mapping fails. Cyclically shifting and remapping the array;
Identifying, via the mapped check node, a second index for the column of the parity check matrix;
Including,
The arrangement is that the non-zero elemental check nodes are arranged in order according to the column of the parity check matrix.
Scheduling method of parity check matrix.
제8항에 있어서,
상기 cyclic 시프트는,
한 행에 대한 검사 노트 업데이트(check node update, CNU)연산이 수행될 수 있도록, 상기 한 행에 포함된 상기 non-zero elemental인 검사 노드를 cyclic 시프트 하는 것인 패리티 검사 행렬의 스케줄링 방법.
The method of claim 8,
The cyclic shift is
And a cyclic shift of the non-zero elemental check nodes included in the one row so that a check node update (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 인덱스를 확인하여 패리티 검사 행렬을 스케줄링하고,
상기 배열은 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열된 것인,
LDPC 복호기.
In LDPC decoder,
The LDPC decoder includes a processor,
The processor,
Check the non-zero elemental variable nodes in the parity check matrix,
Confirm a first index of a row of the parity check matrix at the non-zero elemental bit node,
Extracting a column in which the non-zero elemental bit nodes may be arranged in the parity check matrix using the first index, and extracting the non-zero elemental bit nodes in the extracted column according to an arrangement. Map it,
Schedule a parity check matrix by checking a second index of a column of the parity check matrix through the mapped bit node;
Wherein the arrangement is that the non-zero elemental bit nodes are arranged in order according to a column of the parity check matrix.
LDPC Decoder.
제10항에 있어서,
상기 프로세서는,
상기 제1 인덱스와 제2 인덱스를 이용하여, 검사 노드 업데이트(check node update, CNU)와 비트 노드 업데이트(variable node update, VNU)를 동시에 수행하여 패리티 검사 행렬을 스케줄링하는 LDPC 복호기.
The method of claim 10,
The processor,
And an LDPC decoder using the first index and the second index to perform a check node update (CNU) and a bit node update (VNU) simultaneously to schedule a parity check matrix.
제11항에 있어서,
상기 제2 인덱스는,
상기 제1 인덱스에 따른 행과 상기 CNU 및 VNU를 동시에 수행하는 상기 패리티 검사 행렬의 열을 나타내는 LDPC 복호기.
The method of claim 11,
The second index is,
And a row according to the first index and a column of the parity check matrix which simultaneously performs the CNU and the VNU.
제10항에 있어서,
상기 제1 인덱스는,
상기 패리티 검사 행렬의 상기 non-zero elemental인 비트 노드를 행에 따라 그룹화 함으로써 확인되는, LDPC 복호기.
The method of claim 10,
The first index is,
And identifying the non-zero elemental bit nodes of the parity check matrix by row by row.
제10항에 있어서,
상기 프로세서는,
상기 non-zero elemental인 비트 노드를 매핑할 경우, 상기 제1 인덱스를 통해, 상기 non-zero elemental인 비트 노드가 배치될 수 없는 위치를 확인하고, 배치될 수 있는 위치에 상기 non-zero elemental인 비트 노드를 순서대로 배치하는 LDPC 복호기.
The method of claim 10,
The processor,
When mapping the non-zero elemental bit node, the non-zero elemental bit node may be identified through the first index, and the non-zero elemental may be disposed. LDPC decoder that places bit nodes in sequence.
LDPC 복호기에 있어서,
상기 LDPC 복호기는 프로세서를 포함하고,
상기 프로세서는,
패리티 검사 행렬에서 non-zero elemental인 비트 노드(variable node)를 체크하고,
상기 non-zero elemental인 비트 노드에서 상기 패리티 검사 행렬의 행(row)에 대한 제1 인덱스를 확인하며,
상기 제1 인덱스를 이용하여, 상기 패리티 검사 행렬에서 상기 non-zero elemental인 비트 노드가 배치될 수 있는 열(column)에 상기 non-zero elemental인 비트 노드를 배열에 따라 매핑하고 매핑이 실패할 경우, 상기 배열을 cyclic 시프트하여 다시 매핑하고,
상기 매핑된 비트 노드를 통해, 상기 패리티 검사 행렬의 열에 대한 제2 인덱스를 확인하고,
상기 배열은 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 비트 노드가 순서대로 배열된 것인,
LDPC 복호기.
In LDPC decoder,
The LDPC decoder includes a processor,
The processor,
Check the non-zero elemental variable nodes in the parity check matrix,
Confirm a first index of a row of the parity check matrix at the non-zero elemental bit node,
When the non-zero elemental bit nodes are mapped according to an array in a column in which the non-zero elemental bit nodes may be arranged in the parity check matrix using the first index, and the mapping fails. Cyclic shift the array again,
Identify, through the mapped bit node, a second index for the column of the parity check matrix,
Wherein the arrangement is that the non-zero elemental bit nodes are arranged in order according to a column of the parity check matrix.
LDPC Decoder.
제15항에 있어서,
상기 cyclic 시프트는,
한 열에 대한 비트 노드 업데이트(variable node update, VNU) 연산이 수행될 수 있도록, 상기 한 열에 포함된 상기 non-zero elemental인 비트 노드를 cyclic 시프트 하는 것인 LDPC 복호기.
The method of claim 15,
The cyclic shift is
And cyclic shifting the non-zero elemental bit nodes included in the one column such that a variable node update (VNU) operation on 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 인덱스를 확인하고,
상기 배열은 상기 패리티 검사 행렬의 열에 따라 상기 non-zero elemental인 검사 노드가 순서대로 배열된 것인,
LDPC 복호기.
In LDPC decoder,
The LDPC decoder includes a processor,
The processor,
Check the non-zero elemental check node in the parity check matrix,
Verify a first index of a row of the parity check matrix at the check node that is the non-zero elemental,
When the non-zero elemental check nodes are mapped according to an array in a column where the non-zero elemental check nodes can be arranged in the parity check matrix using the first index, and the mapping fails. Cyclic shift the array again,
Determine, through the mapped check node, a second index for the column of the parity check matrix,
The arrangement is that the non-zero elemental check nodes are arranged in order according to the column of the parity check matrix.
LDPC Decoder.
제17항에 있어서,
상기 cyclic 시프트는,
한 행에 대한 검사 노트 업데이트(check node update, CNU) 연산이 수행될 수 있도록, 상기 한 행에 포함된 상기 non-zero elemental인 검사 노드를 cyclic 시프트 하는 것인 LDPC 복호기.

The method of claim 17,
The cyclic shift is
And cyclic shifting the non-zero elemental check node included in the one row so that a check node update (CNU) operation for one row can be performed.

삭제delete 삭제delete
KR1020170142382A 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 KR102077501B1 (en)

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
KR20160150426 2016-11-11
KR1020160150426 2016-11-11

Publications (2)

Publication Number Publication Date
KR20180053224A KR20180053224A (en) 2018-05-21
KR102077501B1 true 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101405962B1 (en) 2008-02-28 2014-06-12 엘지전자 주식회사 Method of performing decoding using LDPC code

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101405962B1 (en) 2008-02-28 2014-06-12 엘지전자 주식회사 Method of performing decoding using LDPC code

Also Published As

Publication number Publication date
KR20180053224A (en) 2018-05-21

Similar Documents

Publication Publication Date Title
CN101803205B (en) RAM list-decoding of near codewords
KR101968746B1 (en) Reading method of reading data from storage device, error correcting device and storage system including error correcting code decoder
KR101264476B1 (en) Increased capacity heterogeneous storage elements
CN104272396B (en) Comprise equipment and the method for error-correcting code tissue
US10536169B2 (en) Encoder and decoder for LDPC code
US20130283128A1 (en) Operating Method of Controller Controlling Nonvolatile Memory Device and Mapping Pattern Selecting Method of Selecting Mapping Pattern Mapping Polar Coded Code Word with Multi Bit Data of Nonvolatile Memory Device
US10572333B2 (en) Electronic device and method for diagnosing faults
US20160344426A1 (en) Performance optimization in soft decoding for turbo product codes
US10503593B2 (en) Two layer quad bit error correction
CN102017425A (en) System and method for performing concatenated error correction
CN103684475A (en) Iterative detection and LDPC decoding with full and fractional local iterations
US8566665B2 (en) Systems and methods for error correction using low density parity check codes using multiple layer check equations
US10741212B2 (en) Error correction code (ECC) encoders, ECC encoding methods capable of encoding for one clock cycle, and memory controllers including the ECC encoders
US10804938B2 (en) Decoding data using decoders and neural networks
JPS6349245B2 (en)
CN109840162A (en) Memory device and its operating method
CN104658609B (en) The method and system that error correcting code for storage system is distributed
US10425104B2 (en) Scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix
KR102355082B1 (en) Efficient survivor memory architecture for successive cancellation list decoding of channel polarization codes
KR102077501B1 (en) A scheduling method of a parity check matrix and an LDPC decoder for performing scheduling of a parity check matrix
US20130103991A1 (en) Method of Protecting a Configurable Memory Against Permanent and Transient Errors and Related Device
KR20160116980A (en) Scheduling apparatus and method of the parity check matrix h for vertical shuffle scheduling algorithm of the low density parity check decoder
WO2024086433A1 (en) Advanced ultra low power error correcting code encoders and decoders
US20130091405A1 (en) Independent orthogonal error correction and detection
US8443250B2 (en) Systems and methods for error correction using irregular low density parity check codes

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