KR101267322B1 - Ldpc decoder and decoding method thereof - Google Patents

Ldpc decoder and decoding method thereof Download PDF

Info

Publication number
KR101267322B1
KR101267322B1 KR1020110145650A KR20110145650A KR101267322B1 KR 101267322 B1 KR101267322 B1 KR 101267322B1 KR 1020110145650 A KR1020110145650 A KR 1020110145650A KR 20110145650 A KR20110145650 A KR 20110145650A KR 101267322 B1 KR101267322 B1 KR 101267322B1
Authority
KR
South Korea
Prior art keywords
message
address system
memory
bit
address
Prior art date
Application number
KR1020110145650A
Other languages
Korean (ko)
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 KR1020110145650A priority Critical patent/KR101267322B1/en
Application granted granted Critical
Publication of KR101267322B1 publication Critical patent/KR101267322B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/6566Implementations concerning memory access contentions

Landscapes

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

Abstract

PURPOSE: An LDPC decoding and a decoding method thereof are provided to improve a decoding speed by reducing the number of access to an off-chip memory in case of LDPC decoding. CONSTITUTION: A processor decodes a code word by passing a first message and a second message. An on-chip memory stores address conversion data. In case of passing the first message, a combined memory read and a combined memory write are used. In case of passing the second message, a first address system conversion and a second address system conversion are performed before random memory read and before random memory write. The first message and the second message have the same address system.

Description

LDPC 복호기 및 그 복호방법 {LDPC Decoder and Decoding Method thereof}LDPC decoder and its decoding method {LDPC Decoder and Decoding Method approximately}

본 발명은 LDPC 복호기 및 그 복호방법에 관한 것이다. 특히, 본 발명은, 예컨대 GPU를 포함하는, 하드웨어 기반 LDPC 복호기 및 그 복호방법에 관한 것이다.The present invention relates to an LDPC decoder and a decoding method thereof. In particular, the present invention relates to a hardware-based LDPC decoder and a decoding method thereof, including for example, a GPU.

LDPC(Low Density Parity Check) 부호는 강력한 오류 정정 능력을 기반으로 IEEE 802.2an, IEEE 802.11n, WiMax, DVB-S2 등 다양한 통신 시스템의 표준으로 채택되었다. 하지만, LDPC 부호의 오류 정정 능력을 정확히 계산할 수 있는 수학적 도구의 결여로 인해 시뮬레이션을 통한 분석이 요구된다. Low Density Parity Check (LDPC) codes have been adopted as the standard for various communication systems, including IEEE 802.2an, IEEE 802.11n, WiMax, and DVB-S2, based on their robust error correction capabilities. However, due to the lack of a mathematical tool that can accurately calculate the error correction capability of LDPC codes, analysis through simulation is required.

LDPC 부호의 복호 알고리즘은 메시지 패싱 알고리즘을 기반으로 한다. 메시지 패싱 알고리즘은 크게 두 개의 프로세스로 진행되며, 우선적으로 비트-체크 메시지 패싱(bit-to-check message passing)이 수행된다. 비트-체크 메시지 패싱에서는 동일한 체크 노드에 묶인 비트 노드들이 동일한 그룹의 다른 비트 노드의 정보를 알려주기 위해 서로 메시지를 주고 받는다. 비트-체크 메시지 패싱 과정 후에 체크-비트 메시지 패싱이 수행된다. 체크-비트 메시지 패싱에서는 동일한 비트 노드에 묶여있는 체크 노드끼리 메시지를 주고 받는 동작을 한다. 비트-체크 매시지 패싱과 체크-비트 메시지 패싱은 유효한 코드워드로 복호가 이루어질때까지 반복되거나 최대 반복 횟수에 도달할 때까지 반복될 수 있다. 이러한 반복적인 복호 과정의 특성으로 인해 LDPC 부호의 구현은 높은 복잡도를 갖는다. The decoding algorithm of the LDPC code is based on the message passing algorithm. The message passing algorithm is divided into two processes, and bit-to-check message passing is performed first. In bit-check message passing, bit nodes bound to the same check node exchange messages with each other to inform information of other bit nodes in the same group. Check-bit message passing is performed after the bit-check message passing process. In check-bit message passing, check nodes bound to the same bit node send and receive messages. Bit-check message passing and check-bit message passing may be repeated until decoding is performed with a valid codeword or until a maximum number of iterations is reached. Due to the nature of this iterative decoding process, the implementation of the LDPC code has a high complexity.

특히, LDPC 부호 구조의 특성 상 비트-체크 메시지와 체크-비트 메시지의 주소 체계가 서로 다르므로 LDPC 복호시에 주소를 변환하는 과정이 요구된다. 이는 복호기가 동작함에 있어서 높은 복잡도를 야기할 뿐 아니라 복호에 많은 시간이 소요되게 한다. In particular, since the address system of the bit-check message and the check-bit message is different from each other due to the characteristics of the LDPC code structure, an address conversion process is required during LDPC decoding. This not only causes high complexity in operating the decoder, but also takes a long time for decoding.

따라서, 복잡도가 낮고 그 속도 및 성능이 향상된 LDPC 복호 기법에 대한 필요성이 대두되고 있다.Accordingly, there is a need for an LDPC decoding technique having low complexity and improved speed and performance.

한국공개공보 제10-2006-0064491호 (2006.06.13.)Korean Laid-Open Publication No. 10-2006-0064491 (2006.06.13.)

본 발명은 종래기술의 문제점을 해결하기 위해 안출된 것으로써, 복잡도가 낮고 그리고 복호 속도 및 성능이 개선된 LDPC 복호기 및 복호방법을 제공하는데 그 목적이 있다. The present invention has been made to solve the problems of the prior art, and an object thereof is to provide an LDPC decoder and decoding method with low complexity and improved decoding speed and performance.

본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 본 발명의 기재로부터 당해 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical objects to be achieved by the present invention are not limited to the above-mentioned technical problems, and other technical subjects which are not mentioned can be clearly understood by those skilled in the art from the description of the present invention .

본 발명의 실시예에 따른 LDPC 복호기는 제1 메시지 패싱 및 제2 메시지 패싱을 수행하여 코드워드를 복호화하는 프로세서; 및 주소 변환 데이터를 저장할 수 있는 온칩 메모리를 포함하며, 상기 제1 메시지 패싱시에 병합된 메모리 읽기 및 병합된 메모리 쓰기가 이용되고, 상기 제2 메시지 패싱시에 랜덤 메모리 읽기 전 및 랜덤 메모리 쓰기 전 각각에 제1주소 체계 변환 및 제2주소 체계 변환이 이루어 지며, 상기 제1 메시지와 상기 제2 메시지는 동일한 주소 체계를 갖도록 기설정될 수 있다. An LDPC decoder according to an embodiment of the present invention includes a processor for decoding a codeword by performing a first message passing and a second message passing; And an on-chip memory capable of storing address translation data, wherein a merged memory read and a merged memory write are used at the time of the first message passing, and a random memory read and a random memory write at the time of the second message passing. Each of the first address system conversion and the second address system conversion is performed, and the first message and the second message may be preset to have the same address system.

제1 메시지는 비트-체크 메시지이고 제2 메시지는 체크-비트 메시지일 수 있다. The first message may be a bit-check message and the second message may be a check-bit message.

제1 메시지 및 제2 메시지는 캐쉬 메모리에 로드될 수 있다. The first message and the second message may be loaded into the cache memory.

본 발명의 실시예에 LDPC 복호방법은 병합된 메모리 읽기 및 병합된 메모리 쓰기를 이용하여 제1 메시지 패싱을 수행하는 단계; 및 제2 메시지 패싱을 수행하는 단계를 포함하여 코드워드를 복호화하며, 상기 제1 메시지와 상기 제2 메시지는 동일한 주소 체계를 갖도록 기설정될 수 있다.In an embodiment of the present invention, an LDPC decoding method includes performing first message passing using a merged memory read and a merged memory write; And decoding the codeword, including performing a second message passing, wherein the first message and the second message may be preset to have the same address system.

상기 제2 메시지 패싱을 수행하는 단계는: 상기 제1메시지의 주소 체계를 제2메시지의 주소 체계로 변환하여 랜덤 메모리 읽기하는 단계; 및 상기 제2메시지의 주소 체계를 상기 제1메시지의 주소 체계로 변환하여 랜덤 메모리 쓰기하는 단계를 포함할 수 있다. The performing of the second message passing may include: reading a random memory by converting an address system of the first message into an address system of a second message; And converting the address system of the second message into the address system of the first message and writing a random memory.

본 발명에 따르면 LDPC 복호시에 온칩 메모리를 이용하여 오프칩 메모리에 대한 접속 횟수를 줄일 수 있으므로 복호 속도를 개선할 수 있다. 또한, 본 발명에 따르면 메시지의 주소 체계를 하나로 통일함으로써 체크-비트 메시지 패싱시에만 2회의 주소 체계 변환이 요구되고 이때, 하나의 주소 변환 데이터만을 온칩 메모리에 저장하여 이용하므로 오프칩 메모리에 대한 접속 횟수를 줄일 수 있다. 또한, 본 발명에 따르면 온칩 캐시 메모리에 체크-비트 메시지 및 비트-체크 메시지를 캐시하여 이용하므로 LDPC 복호 속도가 개선될 수 있다. 또한, 본 발명에 따른 비트-체크 메시지 패싱시에는 병합된 메모리 접속이 2회 이용됨으로써 그 복호 속도가 개선될 수 있다.According to the present invention, since the number of accesses to the off-chip memory can be reduced by using the on-chip memory during LDPC decoding, the decoding speed can be improved. In addition, according to the present invention, by unifying a message address system into one, two address system conversions are required only when passing a check-bit message. At this time, only one address translation data is stored and used in the on-chip memory, thereby accessing the off-chip memory. You can reduce the number of times. In addition, according to the present invention, since the check-bit message and the bit-check message are cached and used in the on-chip cache memory, the LDPC decoding speed can be improved. In addition, the decoding speed can be improved by using the merged memory connection twice when passing the bit-check message according to the present invention.

도1a 및 도1b는 종래의 비트-체크 메시지 패싱 및 체크-비트 메시지 패싱 방법을 예시한다.
도2a 및 도2b는 본 발명의 실시예에 따른 비트-체크 메시지 패싱 및 체크-비트 메시지 패싱 알고리즘을 예시한다.
도3은 주소 변환시에 칩외부 메모리를 이용하는 코드워드 처리 기법을 나타낸다.
도4는 본 발명의 실시예에 따라 주소 변환시에 칩내부 메모리를 이용하는 코드워드 처리 기법을 나타낸다.
도5는 CPU 기반 LDPC 복호기법과 본 발명의 실시예에 따른 GPU 기반 LDPC 복호기법의 속도를 비교한 표이다.
도6은 CPU 기반 LDPC 복호기법과 본 발명의 실시예에 따른 GPU 기반 LDPC 복호기법의 속도를 SNR에 따라 비교한 그래프이다.
1A and 1B illustrate conventional bit-check message passing and check-bit message passing methods.
2A and 2B illustrate a bit-check message passing and check-bit message passing algorithm according to an embodiment of the present invention.
3 illustrates a codeword processing technique using an external chip memory in address translation.
4 illustrates a codeword processing technique using an internal chip memory in address translation according to an embodiment of the present invention.
5 is a table comparing speeds of a CPU-based LDPC decoding method and a GPU-based LDPC decoding method according to an embodiment of the present invention.
6 is a graph comparing the speed of the CPU-based LDPC decoding method and the GPU-based LDPC decoding method according to an embodiment of the present invention according to SNR.

이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명된다. 그러나, 본 발명의 실시형태는 여러 가지의 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명하는 실시형태로만 한정되는 것은 아니다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있으며, 도면들 중 인용부호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 인용부호들로 표시됨을 유의해야 한다. 참고로 본 발명을 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a detailed description of preferred embodiments of the present invention will be given with reference to the accompanying drawings. However, the embodiments of the present invention may be modified into various other forms, and the scope of the present invention is not limited to the embodiments described below. The shape and the size of the elements in the drawings may be exaggerated for clarity of explanation and the same reference numerals are used for the same elements and the same elements are denoted by the same quote symbols as possible even if they are displayed on different drawings Should be. In the following description, well-known functions or constructions are not described in detail to avoid unnecessarily obscuring the subject matter of the present invention.

일반적으로 GPU(Graphics Processing Unit)기반 시뮬레이터는 구현이 용이할 뿐만 아니라 병렬 연산을 이용하므로 그 속도가 매우 빠른 장점을 갖는다. 본 발명의 실시예는 GPU를 이용한 LDPC 복호기 및 복호방법을 제시한다. 하지만, 이는 실시예일 뿐이며 본 발명은 다른 하드웨어에도 적용될 수 있다. In general, a GPU (Graphics Processing Unit) -based simulator is not only easy to implement but also uses parallel arithmetic, which is very fast. An embodiment of the present invention proposes an LDPC decoder and a decoding method using a GPU. However, this is only an embodiment and the present invention can be applied to other hardware.

일반적으로 GPU 기반 LDPC 복호 기법은 칩외부 메모리에 대한 접근을 요구한다. 또한, 병합된 메모리 접근은 한번의 동작으로 다수의 메모리에 접근을 가능하게 함으로써 동작 속도를 크게 향상시킬 수 있다. 칩내부 메모리 사용은 칩외부 메모리 사용에 비해 속도가 빠른 장점을 갖는다. 하지만, 칩내부 메모리는 큰 데이터를 처리하기에는 용량의 한계가 있다.In general, GPU-based LDPC decoding requires access to off-chip memory. In addition, the merged memory access can greatly improve the operation speed by enabling access to multiple memories in one operation. The use of on-chip memory has the advantage of being faster than the use of off-chip memory. However, the chip internal memory has a capacity limitation in processing large data.

본 발명의 실시예는 상기와 같은 점을 고려하여, 칩외부 메모리에 대한 접근을 최소화하고, 칩내부 메모리를 사용함으로써 LDPC 복호 속도 및 성능을 향상할 수 있는 기법을 제시하고자 한다. 또한, 본 발명의 실시예는 병합된 메모리 접속을 이용함으로써 LDPC 복호 속도 및 성능을 향상시키고자 한다. In view of the above, an embodiment of the present invention is to propose a technique for minimizing access to an external chip memory and improving LDPC decoding speed and performance by using an internal chip memory. In addition, embodiments of the present invention seek to improve LDPC decoding speed and performance by using merged memory connections.

이와 더불어, 본 발명의 실시예는 칩 내부의 캐시 메모리를 이용하여 LDPC 복호 속도 및 성능을 개선하고자 한다. In addition, an embodiment of the present invention seeks to improve LDPC decoding speed and performance by using a cache memory inside a chip.

일반적인 LDPC 복호 기법은 도1a 및 도1b에 도시된 바와 같은 비트-체크 메시지 패싱 및 체크-비트 메시지 패싱을 반복적으로 수행하는 것을 포함한다. A general LDPC decoding technique includes repeatedly performing bit-check message passing and check-bit message passing as shown in FIGS. 1A and 1B.

이때, 비트-체크 메시지와 체크-비트 메시지는 주소 체계가 서로 다르다. 이러한 특성 때문에 메시지를 연산하는 과정 중에 두 메시지 사이의 주소 체계를 변환해주는 작업이 필요하다. 이때, 두 메시지의 주소(또는 순서)에 관한 정보는 LDPC 부호의 패리티(parity) 체크 행렬에 기반한다. At this time, the bit-check message and the check-bit message have different address systems. Because of this characteristic, it is necessary to convert the address system between two messages during message operation. At this time, the information about the address (or order) of the two messages is based on the parity check matrix of the LDPC code.

종래의 비트-체크 메시지 패싱에 대해서 도1a를 참조하여 설명한다. 도1a 및 도1b에서 하나의 화살표는 독립된 쓰레드(thread)의 동작을 나타낸다. 도1a에 도시된 바와 같이 우선 체크-비트 메시지는 병합된 메모리 읽기를 통해 판독된다. 이때, 비트-체크 메시지를 연산한 후에 메모리에 해당 메시지를 쓰기 위해서는 상기 메시지의 주소 체계를 체크-비트 메시지의 주소 체계로 변환하는 작업이 요구된다. Conventional bit-check message passing is described with reference to FIG. 1A. One arrow in FIGS. 1A and 1B represents the operation of an independent thread. As shown in Fig. 1A, the check-bit message is first read through a merged memory read. In this case, in order to write the message in memory after calculating the bit-check message, an operation of converting the address system of the message into the address system of the check-bit message is required.

이때, 제1주소 체계 변환 데이터가 이용되며 이러한 제1주소 체계 변환 데이터는 오프칩 메모리, 예컨대 GPU의 전역 메모리(global memory)에 저장된다. 따라서, 이러한 주소 체계 변환을 위해서는 오프칩 메모리에 대한 접속이 필요하다. In this case, the first address system translation data is used, and the first address system translation data is stored in off-chip memory, for example, a global memory of the GPU. Thus, this address system translation requires access to off-chip memory.

상기 해당 메시지를 쓰기하는 단계에서는 병합된 메모리 쓰기가 이용될 수 없고, 랜덤한 순서로 이루어지게 된다. In the step of writing the message, the merged memory write may not be used, and the random message is written in a random order.

종래의 체크-비트 메시지 패싱에 대해서 도1b를 참조하여 설명한다. 도1b에 도시된 바와 같이 우선 비트-체크 메시지는 병합된 메모리 읽기를 통해 판독된다. 이때, 도1a의 주소 변환을 통해, 상기 비트-체크 메시지의 주소 체계는 체크-비트 메시지의 주소 체계를 가지므로 병합된 메모리 읽기가 가능하다. 체크-비트 메시지를 연산한 후에 메모리에 해당 메시지를 쓰기 위해서는 상기 메시지의 주소 체계를 비트-체크 메시지의 주소 체계로 변환하는 작업이 요구된다. Conventional check-bit message passing is described with reference to FIG. 1B. As shown in Fig. 1B, the bit-check message is first read through a merged memory read. In this case, through the address translation of FIG. 1A, the address system of the bit-check message has the address system of the check-bit message, and thus the merged memory may be read. In order to write the message in memory after calculating the check-bit message, an operation of converting the address system of the message into the address system of the bit-check message is required.

이때, 제2주소 체계 변환 데이터가 이용되며 이러한 제2주소 체계 변환 데이터는 오프칩 메모리, 예컨대 GPU의 전역 메모리(global memory)에 저장된다. 따라서, 이러한 주소 체계 변환을 위해서는 오프칩 메모리에 대한 접속이 필요하다. In this case, the second address system translation data is used, and the second address system translation data is stored in off-chip memory such as global memory of the GPU. Thus, this address system translation requires access to off-chip memory.

제2주소 체계 변환 데이터는 제1주소 체계 변환 데이터와는 서로 다르므로 종래의 LDPC 복호 기법에서는 두 개의 주소 체계 변환 데이터를 별개로 저장하고 접속해야할 필요성이 있다. Since the second address system translation data is different from the first address system translation data, it is necessary to store and access two address system translation data separately in the conventional LDPC decoding technique.

상기 해당 메시지를 쓰기하는 단계에서는 병합된 메모리 쓰기가 이용될 수 없고, 랜덤한 순서로 이루어지게 된다. In the step of writing the message, the merged memory write may not be used, and the random message is written in a random order.

즉, 종래의 비트-체크 메시지 및 체크-비트 메시지는 서로 다른 주소 체계를 가지므로, 비트-체크 메시지 패싱 및 체크-비트 메시지 패싱시에 읽기 동작에는 병합된 메모리 접속이 가능하지만 쓰기 동작에는 병합된 메모리 접속이 이용될 수 없다. 이는, 각 메시지 패싱 단계에서 메시지를 쓰기하기 전에 주소 변환이 이루어지기 때문이다. 더욱이, 비트-체크 메시지 패싱 및 체크-비트 메시지 패싱 각각에는 1회의 주소 체계 변환이 요구된다. 이때, 주소 체계 변환을 위한 제1주소 체계 변환 데이터 및 제2주소 체계 변환 데이터는 서로 다르고 각기 오프칩 메모리에 저장된다. 따라서 주소 변환을 위해서는 오프칩 메모리에 대한 접속이 필수적이다. That is, the conventional bit-check message and check-bit message have different address systems, so that the merged memory accesses are possible for read operations and merged for write operations when bit-check message passing and check-bit message passing. The memory connection cannot be used. This is because address translation takes place before each message is written at each message passing step. Furthermore, one address system translation is required for each bit-check message passing and check-bit message passing. In this case, the first address system translation data and the second address system translation data for address system translation are different from each other and stored in the off-chip memory. Therefore, access to off-chip memory is essential for address translation.

본 발명의 실시예에 따른 비트-체크 메시지 패싱 및 체크-비트 메시지 패싱 기법이 도2a 및 도2b를 참조하여 설명된다. 이하에서는 비트-체크 메시지와 체크-비트 메시지의 주소 체계를 비트-체크 메시지의 주소 체계로 일치시킨 것을 예로 하여 본 발명을 설명하나 이는 단지 예시일 뿐이며, 비트-체크 메시지와 체크-비트 메시지의 주소 체계를 체크-비트 메시지의 주소 체계로 일치시키는 것도 가능하다. Bit-check message passing and check-bit message passing techniques according to embodiments of the present invention are described with reference to FIGS. 2A and 2B. Hereinafter, the present invention will be described with an example of matching the address systems of the bit-check message and the check-bit message with the address system of the bit-check message, but this is only an example, and addresses of the bit-check message and the check-bit message are described below. It is also possible to match the scheme to the address scheme of check-bit messages.

도2a는 본 발명의 실시예에 따른 비트-체크 메시지 패싱 알고리즘을 나타낸다. 우선, 체크-비트 메시지가 병합된 메모리 접속을 통해 읽기된다. 이때, 체크-비트 메시지 및 비트-체크 메시지는 모두 비트-체크 메시지의 주소 체계를 가지고 저장되므로 병합된 메모리 읽기가 가능하다. 비트-체크 메시지 연산이 수행된 후, 주소 체계의 변환 과정없이 해당 메시지는 병합된 메모리 접속을 통해 쓰기될 수 있다. 2A illustrates a bit-check message passing algorithm according to an embodiment of the present invention. First, the check-bit message is read through the merged memory connection. At this time, since the check-bit message and the bit-check message are both stored with the address system of the bit-check message, the merged memory can be read. After the bit-check message operation is performed, the message can be written through the merged memory connection without any translation of the addressing scheme.

즉, 체크-비트 메시지가 병합된 메모리 접속을 통해 판독되고, 비트-체크 메시지를 연산하고, 그리고 해당 메시지를 비트-체크 메시지가 들어갈 위치에 병합된 메모리 접속을 통해 쓰기하는 것이다. 이들 단계는 각각 도2a의 첫째 내지 셋째 어레이(array)로 표현된다. 이때, 연산(computing)은 비트-체크 메시지를 계산하는 것을 일컫는다. 예컨대, 하나의 비트로 들어오는 체크-비트 메시지를 읽어 모두 더하는 과정으로서, 도2a에 도시된 것과 같은 동작을 하나의 비트에 속하는 체크의 개수만큼 반복적으로 수행하여 그 값들을 누적시킬 수 있다. That is, the check-bit message is read through the merged memory connection, the bit-check message is computed, and the message is written over the merged memory connection to the location where the bit-check message will be placed. These steps are represented by the first to third arrays of Figure 2A, respectively. In this case, computing refers to computing a bit-check message. For example, as a process of reading and adding all check-bit messages coming in one bit, an operation as shown in FIG. 2A may be repeatedly performed by the number of checks belonging to one bit to accumulate the values.

따라서, 본 발명의 실시예에 따르면 비트-체크 메시지 패싱시에는 주소 체계 변환 과정이 요구되지 않으며 병합된 메모리 읽기 및 쓰기가 이용될 수 있다. Thus, according to an embodiment of the present invention, address system translation is not required when bit-check message passing, and merged memory read and write may be used.

도2b는 본 발명의 실시예에 따른 체크-비트 메시지 패싱 알고리즘을 나타낸다. 이때, 메시지는 모두 비트-체크 메시지의 주소 체계에 따라 저장되므로 읽기 및 쓰기 동작 모두에서 주소 체계 변환 과정이 요구된다. 2B illustrates a check-bit message passing algorithm according to an embodiment of the present invention. At this time, since all the messages are stored according to the address scheme of the bit-check message, an address scheme conversion process is required for both read and write operations.

우선, 비트-체크 메시지에 대해서 주소 체계를 체크-비트 메시지의 주소 체계로 변환하는 제1주소 체계 변환 과정이 수행된다. 제1주소 체계 변환 과정 동안에 주소 체계 변환 데이터가 이용된다. 이러한 주소 체계 변환 데이터는 오프칩 메모리, 예컨대 GPU의 전역 메모리에 저장되어 있을 수 있다. 제1주소 체계 변환을 위해 오프칩 메모리에 저장된 상기 주소 체계 변환 데이터를 온칩 메모리에 옮겨 저장한다. 상기 온칩 메모리는, 예컨대 GPU의 공유 메모리(shared memory) 또는 로컬 메모리(local memory)일 수 있다. First, a first address system conversion process of converting an address system into a check system of a check-bit message is performed on the bit-check message. Address system translation data is used during the first address system translation process. Such address system translation data may be stored in off-chip memory, such as global memory of the GPU. The address system translation data stored in the off-chip memory is transferred to the on-chip memory for the first address system translation. The on-chip memory may be, for example, shared memory or local memory of the GPU.

상기 제1주소 체계 변환 과정이 수행된 해당 메시지에 대해서 랜덤 메모리 접속을 통해 읽기 동작이 수행된다. 체크-비트 메시지에 대한 연산이 수행된 후 또 다시 해당 메시지에 대해서 체크-비트 메시지의 주소 체계를 비트-체크 메시지의 주소 체계로 변환하는 제2주소 체계 변환 과정이 수행된다. 제2주소 체계 변환 과정 동안에는 제1주소 체계 변환 과정에서 이용된 것과 동일한 주소 변환 데이터가 이용될 수 있다. 이때, 제1주소 체계 변환 과정시에 상기 주소 변환 데이터는 온칩 메모리에 저장되어 있으므로 두번째 주소 체계 변환 과정에서는 오프칩 메모리를 접근할 필요가 없다. 단지, 온칩 메모리에 접근함으로써 상기 주소 변환 데이터를 이용할 수 있다. A read operation is performed through a random memory access to the corresponding message on which the first address system conversion process is performed. After the operation on the check-bit message is performed, a second address system conversion process of converting the address system of the check-bit message into the address system of the bit-check message is performed again for the message. During the second address system conversion process, the same address translation data used in the first address system conversion process may be used. In this case, since the address translation data is stored in the on-chip memory during the first address system conversion process, the off-chip memory does not need to be accessed in the second address system conversion process. Only by accessing the on-chip memory can the address translation data be used.

이후, 제2주소 체계 변환이 수행된 해당 메시지는 랜덤 메모리 접속을 이용하여 메모리에 쓰기될 수 있다. 따라서, 이후에 체크-비트 메시지를 병합된 메모리 접속을 통해 읽기하여 비트-체크 메시지 패싱이 수행될 수 있다. Subsequently, the corresponding message on which the second address system conversion is performed may be written to the memory using a random memory access. Thus, bit-check message passing may then be performed by reading the check-bit message through the merged memory connection.

이상에서 살펴본 바와 같이, 본 발명의 실시예에 따른 LDPC 복호 기법에서는, 비트-체크 메시지 패싱시에는 병합된 메모리 읽기 및 쓰기를 이용함으로써 LDPC 복호의 성능 및 속도를 개선할 수 있다. 또한, 체크-비트 메시지 패싱시에는 최초 주소 체계 변환 과정에서 주소 변환 데이터를 획득하기 위해 오프칩 메모리에 접속하지만, 이후 두번째 주소 체계 변환 과정에서는 상기 주소 변환 데이터는 이미 온칩 메모리에 저장되어 있으므로 오프칩 메모리에 또다시 접속할 필요성이 없다. 따라서, 전체적으로 오프칩 메모리에 접근하는 횟수를 종래의 기법에 비해 절반으로 줄일 수 있으므로 LDPC 복호 속도가 향상될 수 있다. As described above, in the LDPC decoding scheme according to the embodiment of the present invention, the performance and speed of LDPC decoding may be improved by using merged memory reads and writes when bit-check message passing. In the case of check-bit message passing, off-chip memory is accessed to obtain address translation data during the initial address system translation. However, in the second address system translation, the address translation data is already stored in the on-chip memory. There is no need to access the memory again. Therefore, since the number of times of accessing the off-chip memory as a whole can be reduced by half compared to the conventional technique, the LDPC decoding speed can be improved.

본 발명의 실시예에서, 두 번의 주소 체계 변환을 수행하기 위해서 하나의 주소 변환 데이터가 이용될 수 있다. 이때, 주소 변환 데이터는 제1 주소 체계 변환 과정에서 오프칩 메모리로부터 온칩 메모리로 옮겨진다. 예컨대, 온칩 메모리는 GPU의 공유 메모리 또는 로컬 메모리일 수 있다. In an embodiment of the present invention, one address translation data may be used to perform two address system translations. In this case, the address translation data is transferred from the off-chip memory to the on-chip memory in the first address system conversion process. For example, the on-chip memory can be shared memory or local memory of the GPU.

하지만, 공유 메모리는 온칩 메모리로서 그 크기가 매우 작아 사용에 제한이 있다. 따라서, 주소 체계 변환 데이터를 분할하여 공유 메모리에 저장하여야 한다. 이로 인해서 코드워드의 처리방법이 오프칩 메모리를 사용하는 경우와는 차이가 있다. However, shared memory is an on-chip memory, and its size is very small, which limits its use. Therefore, address system translation data should be divided and stored in shared memory. As a result, the codeword processing method is different from the case of using off-chip memory.

도3는 주소 변환시에 칩외부 메모리를 이용하는 코드워드 처리 기법을 나타낸다. 도3에 도시된 바와 같이, 칩외부 메모리에 주소 변환 데이터가 저장되는 경우 그 용량이 크기 때문에 주소 변환 데이터는 분할될 필요가 없다. 따라서, GPU의 각 블록마다 각기 하나의 코드워드(codeword)가 처리될 수 있다. 즉, 각 블록마다 각기 하나의 코드워드가 복호화될 수 있다. 제1블록(block1)에서는 제1코드워드가 처리되고, 제2블록(block2)에서는 제2코드워드가 처리되고, 그리고 제3블록(block3)에서는 제3코드워드가 처리될 수 있다. 여기서, 쓰레드(thread)가 모여 이루어지는 블록 각각은 공유 메모리를 구비한다. 따라서, 동일 블록에서 동작하는 쓰레드는 공유 메모리를 공유해서 사용할 수 있다. 3 illustrates a codeword processing technique using an external chip memory in address translation. As shown in Fig. 3, when the address translation data is stored in the chip external memory, the address translation data does not need to be divided because its capacity is large. Therefore, one codeword may be processed for each block of the GPU. That is, one codeword may be decoded for each block. The first codeword may be processed in the first block block1, the second codeword may be processed in the second block block2, and the third codeword may be processed in the third block block3. Here, each block of threads is provided with shared memory. Thus, threads running in the same block can share shared memory.

도4는 본 발명의 실시예에 따라 주소 변환시에 칩내부 메모리를 이용하는 코드워드 처리 기법을 나타낸다. 이때, 공유 메모리는 그 용량이 매우 작기 때문에 주소 변환 데이터가 분할되어서 저장되어야 한다. 따라서, 각각의 GPU 블록에서는 하나의 코드워드가 처리될 수 없다. 본 발명의 실시예에 따르면, 각각의 GPU 블록에서는 다수의 코드워드의 조각이 동시에 처리될 수 있다. 여기서 다수의 코드워드의 조각은 분할된 주소 변환 데이터를 이용하여 복호화될 수 있는 부분이다. 4 illustrates a codeword processing technique using an internal chip memory in address translation according to an embodiment of the present invention. At this time, since the shared memory has a very small capacity, address translation data should be divided and stored. Thus, one codeword cannot be processed in each GPU block. According to an embodiment of the present invention, a plurality of pieces of codewords may be processed simultaneously in each GPU block. Here, the pieces of the plurality of codewords are parts that can be decoded using the divided address translation data.

즉, 제1블록(block1)에서는 제1코드워드의 일부, 제2코드워드의 일부 및 제3코드워드의 일부가 동시에 처리된다. 이후, 제2블록에서는 제1코드워드의 또다른 일부, 제2코드워드의 또다른 일부 및 제3코드워드의 또다른 일부가 동시에 처리될 수 있다. 이후, 제3블록에서는 제1코드워드의 나머지 일부, 제2코드워드의 나머지 일부 및 제3코드워드의 나머지 일부가 동시에 처리될 수 있다. 이는 도4에 표시되어 있다. That is, in the first block block1, part of the first codeword, part of the second codeword, and part of the third codeword are simultaneously processed. Then, in the second block, another part of the first codeword, another part of the second codeword, and another part of the third codeword may be processed simultaneously. Subsequently, in the third block, the remaining part of the first codeword, the remaining part of the second codeword, and the remaining part of the third codeword may be processed simultaneously. This is shown in FIG.

이와 같이 구현함으로써, 용량이 작은 공유 메모리를 이용하면서도 GPU 전체 블록에서 처리되는 코드워드의 개수는 감소되지 않는다. 따라서 구동 속도를 높일 수 있는 효과를 얻을 수 있다. 본 발명의 실시예에 따라 GPU의 칩 내부에 존재하는 공유 메모리를 이용하는 경우, 그렇지 않은 경우에 비해 대략 14%의 복호 속도 개선 효과를 얻을 수 있다. By implementing in this way, the number of codewords processed in the entire block of GPU while using the small shared memory is not reduced. Therefore, the effect of increasing the driving speed can be obtained. According to the exemplary embodiment of the present invention, when using the shared memory existing inside the chip of the GPU, a decoding speed improvement effect of about 14% may be obtained as compared with the case where it is not.

또한, 본 발명의 실시예에 따르면 비트-체크 메시지 및/또는 체크-비트 메시지는 온칩의 캐시 메모리에 로드될 수 있다. 즉, LDPC 복호 기법은 비트-체크 메시지 패싱, 체크-비트 메시지 패싱, 및 각 비트에 대한 모든 정보를 연산하는 과정이 반복적으로 수행되므로 필요한 정보를 획득하기 위해 오프칩 메모리를 반복적으로 접근할 필요가 있다. 따라서, 본 발명의 실시예에서는 반복적으로 이용될 수 있는 데이터를 온칩에 구현된 캐시 메모리에 로드하여 이용하는 기법을 제시한다. In addition, according to an embodiment of the present invention, the bit-check message and / or check-bit message may be loaded into the on-chip cache memory. That is, in the LDPC decoding technique, the process of bit-check message passing, check-bit message passing, and calculating all information for each bit is performed repeatedly, so it is necessary to access the off-chip memory repeatedly to obtain necessary information. have. Accordingly, an embodiment of the present invention proposes a technique for loading and using data that can be repeatedly used in a cache memory implemented on chip.

예컨대, 본 발명의 실시예에 따른 LDPC 복호화 기법에서 반복적으로 사용되는 비트-체크 메시지, 체크-비트 메시지, LDPC 코드를 위한 패리티 체크 행렬 등은 캐시 메모리에 로드되어 이용될 수 있다. 예컨대, 캐시 메모리는 GPU의 텍스처 캐시(texture cache)일 수 있다. 또한, 캐시 메모리에 로드되는 데이터는 필요에 따라 다른 데이터를 포함할 수 있다. For example, a bit-check message, a check-bit message, a parity check matrix for an LDPC code, etc. repeatedly used in the LDPC decoding scheme according to an embodiment of the present invention may be loaded and used in a cache memory. For example, the cache memory may be a texture cache of the GPU. In addition, the data loaded into the cache memory may include other data as necessary.

이와 같이, 반복적으로 이용되는 데이터를 캐시 메모리에 로드함으로써 본 발명의 실시예에 따른 LDPC 복호화의 속도 및 성능이 개선될 수 있다. 예컨대, GPU의 칩 내부의 텍스처 캐시를 이용함으로써, 그렇지 않은 경우에 비해 대략 7% 이상의 복호 속도 개선 효과를 얻을 수 있다. As such, by repeatedly loading the data to be used in the cache memory, the speed and performance of the LDPC decryption according to the embodiment of the present invention can be improved. For example, by using the texture cache inside the chip of the GPU, an improvement in decoding speed of about 7% or more can be achieved compared to otherwise.

이상에서 설명한 LDPC 복호화는 예컨대 GPU의 프로세서에서 수행될 수 있다. 이때, GPU의 프로세서는 매니코어(manycore) 마이크로프로세서(microprocessor)일 수 있다. 또한, 본 발명의 실시예에 따른 LDPC 복호화 알고리즘은 프로그래밍되어 소프트웨어적으로 구현될 수 있다. The LDPC decoding described above may be performed in, for example, a processor of a GPU. In this case, the processor of the GPU may be a manycore microprocessor. In addition, the LDPC decoding algorithm according to the embodiment of the present invention may be programmed and implemented in software.

이하에서는 본 발명의 실시예에 따른 LDPC 복호 알고리즘의 성능을 기존의 복호 기법과 비교한다. 본 발명의 실시예에 따른 LDPC 복호 기법은 GPU 기반 LDPC 복호 기법이고 비교 대상인 종래의 복호 기법은 CPU 기반 LDPC 복호 기법이다. 여기서 사용되는 LDPC 부호는 IEEE 802.3an 표준 LDPC 부호로서, 길이 2048, 코드 레이트(code rate) 0.84인 (6,32)-레귤러(regular) 부호이다. 비트-체크 메시지 패싱 및 체크-비트 메시지 패싱의 최대 반복 횟수를 10으로 고정하고 시뮬레이션한 결과, 본 발명의 실시예에 따른 LDPC 복호 기법의 속도가 종래의 GPU 기반 LDPC 복호 기법에 비해 35% 정도 향상을 나타내었다. Hereinafter, the performance of the LDPC decoding algorithm according to the embodiment of the present invention is compared with the conventional decoding technique. The LDPC decoding technique according to the embodiment of the present invention is a GPU-based LDPC decoding technique, and the conventional decoding technique to be compared is a CPU-based LDPC decoding technique. The LDPC code used here is an IEEE 802.3an standard LDPC code, which is a (6,32) -regular code having a length of 2048 and a code rate of 0.84. As a result of fixing and fixing the maximum number of iterations of bit-check message passing and check-bit message passing to 10, the speed of the LDPC decoding scheme according to the embodiment of the present invention is improved by about 35% compared to the conventional GPU-based LDPC decoding scheme. Indicated.

도5는 최대 반복 횟수에 따라 CPU 기반 LDPC 복호기법과 본 발명의 실시예에 따른 GPU 기반 LDPC 복호기법의 복호 시간을 나타내는 표이다. 각 복호 시간은 하나의 코드워드를 복호하는데 걸린 시간이다. 최대 반복 횟수가 20일 때 본 발명의 실시예에 따른 GPU 기반 LDPC 복호기가 종래의 CPU 기반 LDPC 복호기 보다 250배 향상된 속도를 가짐을 알 수 있다. 5 is a table showing decoding times of a CPU-based LDPC decoding method and a GPU-based LDPC decoding method according to an embodiment of the present invention according to the maximum number of repetitions. Each decoding time is a time taken to decode one codeword. When the maximum number of iterations is 20, it can be seen that the GPU-based LDPC decoder according to the embodiment of the present invention has a 250 times faster speed than the conventional CPU-based LDPC decoder.

도6은 CPU 기반 LDPC 복호기법과 본 발명의 실시예에 따른 GPU 기반 LDPC 복호기법의 속도를 SNR에 따라 비교한 그래프이다. 최대 반복 횟수는 50회로 하였다. 도6에서, 노이즈가 13dB일 때 본 발명의 실시예에 따른 LDPC 복호기가 종래의 CPU 기반 LDPC 복호기에 비해 대략 330배 이상의 빠른 속도를 나타냄을 확인할 수 있다. 6 is a graph comparing the speed of the CPU-based LDPC decoding method and the GPU-based LDPC decoding method according to an embodiment of the present invention according to SNR. The maximum number of repetitions was 50 times. In FIG. 6, when the noise is 13 dB, it can be seen that the LDPC decoder according to the embodiment of the present invention exhibits about 330 times faster speed than the conventional CPU-based LDPC decoder.

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. will be. Therefore, it should be understood that the above-described embodiments are to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than the foregoing description, It is intended that all changes and modifications derived from the equivalent concept be included within the scope of the present invention.

Claims (16)

제1 메시지 패싱 및 제2 메시지 패싱을 수행하여 코드워드를 복호화하는 프로세서; 및
주소 변환 데이터를 저장할 수 있는 온칩 메모리를 포함하며,
상기 제1 메시지 패싱시에 병합된 메모리 읽기 및 병합된 메모리 쓰기가 이용되고,
상기 제2 메시지 패싱시에 랜덤 메모리 읽기 전 및 랜덤 메모리 쓰기 전 각각에 제1주소 체계 변환 및 제2주소 체계 변환이 이루어지며,
상기 제1 메시지와 상기 제2 메시지는 동일한 주소 체계를 갖도록 기설정된 것을 특징으로 하는,
LDPC 복호기.
A processor for decoding a codeword by performing a first message passing and a second message passing; And
Includes on-chip memory to store address translation data,
Merged memory reads and merged memory writes are used in passing the first message,
When the second message is passed, a first address system conversion and a second address system conversion are performed before a random memory read and a random memory write, respectively.
The first message and the second message, characterized in that predetermined to have the same address system,
LDPC Decoder.
제1항에 있어서,
상기 제1 메시지는 비트-체크 메시지이고 상기 제2 메시지는 체크-비트 메시지인 것을 특징으로 하는 LDPC 복호기.
The method of claim 1,
And the first message is a bit-check message and the second message is a check-bit message.
제1항에 있어서,
상기 LDPC 복호기는 GPU 기반 LDPC 복호기인 것을 특징으로 하는 LDPC 복호기.
The method of claim 1,
The LDPC decoder is a GPU-based LDPC decoder, LDPC decoder, characterized in that.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 제1주소 체계 변환은 상기 주소 변환 데이터를 이용하여 상기 제1 메시지의 주소 체계를 상기 제2 메시지의 주소 체계로 변환하고,
상기 제2주소 체계 변환은 상기 주소 변환 데이터를 이용하여 상기 제2 메시지의 주소 체계를 상기 제1 메시지의 주소 체계로 변환하는 것을 특징으로 하는 LDPC 복호기.
4. The method according to any one of claims 1 to 3,
The first address system conversion converts the address system of the first message into the address system of the second message using the address translation data.
And the second address system translation converts the address system of the second message into the address system of the first message using the address translation data.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 제1 메시지 및 상기 제2 메시지는 캐쉬 메모리에 로드된 것을 특징으로 하는 LDPC 복호기.
4. The method according to any one of claims 1 to 3,
And the first message and the second message are loaded into a cache memory.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 온칩 메모리는 공유 메모리이며,
상기 주소 변환 데이터는 소정의 개수로 분할되어 상기 공유 메모리에 저장되고,
상기 프로세서는, 블록 마다 복수개의 코드워드를 부분적으로 동시에 처리하는 것을 특징으로 하는 LDPC 복호기.
4. The method according to any one of claims 1 to 3,
The on-chip memory is a shared memory,
The address translation data is divided into a predetermined number and stored in the shared memory.
And the processor processes the plurality of codewords partially at the same time for each block.
삭제delete 병합된 메모리 읽기 및 병합된 메모리 쓰기를 이용하여 제1 메시지 패싱을 수행하는 단계; 및
제2 메시지 패싱을 수행하는 단계를 포함하여 코드워드를 복호화하며,
상기 제1 메시지와 상기 제2 메시지는 동일한 주소 체계를 갖도록 기설정된 LDPC 복호방법.
Performing first message passing using the merged memory read and the merged memory write; And
Decoding the codeword, including performing a second message passing,
And the first message and the second message have a same address system.
제8항에 있어서,
상기 제2 메시지 패싱을 수행하는 단계는:
상기 제1메시지의 주소 체계를 제2메시지의 주소 체계로 변환하여 랜덤 메모리 읽기하는 단계; 및
상기 제2메시지의 주소 체계를 상기 제1메시지의 주소 체계로 변환하여 랜덤 메모리 쓰기하는 단계를 포함하는 것을 특징으로 하는 LDPC 복호방법.
9. The method of claim 8,
Performing the second message passing includes:
Converting the address system of the first message into the address system of the second message and reading a random memory; And
And converting the address system of the second message into the address system of the first message and writing a random memory.
제9항에 있어서,
상기 제1 메시지는 비트-체크 메시지이고 상기 제2 메시지는 체크-비트 메시지인 것을 특징으로 하는 LDPC 복호방법.
10. The method of claim 9,
And the first message is a bit-check message and the second message is a check-bit message.
제9항에 있어서,
상기 LDPC 복호방법은 GPU 기반 LDPC 복호방법인 것을 특징으로 하는 LDPC 복호방법.
10. The method of claim 9,
The LDPC decoding method is a GPU-based LDPC decoding method.
제9항 내지 제11항 중 어느 한 항에 있어서,
상기 제1메시지의 주소 체계를 제2메시지의 주소 체계로 변환하는 단계는 주소 변환 데이터를 이용하여 수행되고, 상기 주소 변환 데이터는 상기 제1메시지의 주소 체계를 제2메시지의 주소 체계로 변환하는 단계전에 온칩 메모리에 저장되는 것을 특징으로 하는 LDPC 복호방법.
12. The method according to any one of claims 9 to 11,
Converting the address system of the first message to the address system of the second message is performed using address translation data, and the address translation data converts the address system of the first message to the address system of the second message. LDPC decoding method characterized in that stored in the on-chip memory before the step.
제12항에 있어서,
상기 제2메시지의 주소 체계를 상기 제1메시지의 주소 체계로의 변환은 상기 온칩 메모리에 저장된 상기 주소 변환 데이터를 이용하여 수행되는 것을 특징으로 하는 LDPC 복호방법.
The method of claim 12,
And converting the address system of the second message into the address system of the first message using the address translation data stored in the on-chip memory.
제8항 내지 제11항 중 어느 한 항에 있어서,
상기 제1 메시지 및 상기 제2 메시지는 캐쉬 메모리에 로드된 것을 특징으로 하는 LDPC 복호방법.
The method according to any one of claims 8 to 11,
And the first message and the second message are loaded into a cache memory.
제12항에 있어서,
상기 온칩 메모리는 공유 메모리이며,
상기 주소 변환 데이터는 소정의 개수로 분할되어 상기 공유 메모리에 저장되고,
블록 마다 복수개의 코드워크가 부분적으로 동시에 처리되는 것을 특징으로 하는 LDPC 복호방법.
The method of claim 12,
The on-chip memory is a shared memory,
The address translation data is divided into a predetermined number and stored in the shared memory.
LDPC decoding method, characterized in that a plurality of codework is processed at the same time for each block.
삭제delete
KR1020110145650A 2011-12-29 2011-12-29 Ldpc decoder and decoding method thereof KR101267322B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110145650A KR101267322B1 (en) 2011-12-29 2011-12-29 Ldpc decoder and decoding method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110145650A KR101267322B1 (en) 2011-12-29 2011-12-29 Ldpc decoder and decoding method thereof

Publications (1)

Publication Number Publication Date
KR101267322B1 true KR101267322B1 (en) 2013-05-24

Family

ID=48666827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110145650A KR101267322B1 (en) 2011-12-29 2011-12-29 Ldpc decoder and decoding method thereof

Country Status (1)

Country Link
KR (1) KR101267322B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11031957B2 (en) 2017-10-26 2021-06-08 Samsung Electronics Co., Ltd. Decoder performing iterative decoding, and storage device using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11031957B2 (en) 2017-10-26 2021-06-08 Samsung Electronics Co., Ltd. Decoder performing iterative decoding, and storage device using the same
US11791846B2 (en) 2017-10-26 2023-10-17 Samsung Electronics Co., Ltd. Decoder performing iterative decoding, and storage device using the same

Similar Documents

Publication Publication Date Title
US9836277B2 (en) In-memory popcount support for real time analytics
TWI697000B (en) Memory controller and method of accessing flash memory
JP5132687B2 (en) Error detection and correction method and apparatus using cache in memory
US10615824B2 (en) Diagonal anti-diagonal memory structure
US8959407B2 (en) Scaling factors for hard decision reads of codewords distributed across die
KR20080112252A (en) Error correction device and methods thereof
KR20160054395A (en) Error correction method of memory data
US10009043B2 (en) Technologies for providing efficient error correction with half product codes
US20190205212A1 (en) Method and apparatus for storing data and method and apparatus for recovering data
US20160328285A1 (en) Error vector readout from a memory device
US20190129796A1 (en) Flexible redundant array of independent disks (raid) computation device
US20170104499A1 (en) Efficient ldpc encoder for irregular code
US9733870B2 (en) Error vector readout from a memory device
US11881277B2 (en) Memory device and operating method thereof
CN106531224B (en) A kind of RAM data reliability reinforcing device and method based on SRAM type FPGA
US10956259B2 (en) Error correction code memory device and codeword accessing method thereof
KR101267322B1 (en) Ldpc decoder and decoding method thereof
US20160342521A1 (en) Systems and methods for addressing a cache with split-indexes
TWI718060B (en) Memory controller and method of accessing flash memory
US9496009B2 (en) Memory with bank-conflict-resolution (BCR) module including cache
US11996860B2 (en) Scaled bit flip thresholds across columns for irregular low density parity check decoding
US20070022358A1 (en) Methods and apparatuses for generating error correction codes
US9361180B2 (en) Storing data by an ECC memory
WO2017000682A1 (en) Decoding method and apparatus and storage medium
KR102467072B1 (en) A decoder performing iteration decoding, and storage device using the same

Legal Events

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

Payment date: 20160427

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee