KR20230029168A - Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code - Google Patents

Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code Download PDF

Info

Publication number
KR20230029168A
KR20230029168A KR1020210111347A KR20210111347A KR20230029168A KR 20230029168 A KR20230029168 A KR 20230029168A KR 1020210111347 A KR1020210111347 A KR 1020210111347A KR 20210111347 A KR20210111347 A KR 20210111347A KR 20230029168 A KR20230029168 A KR 20230029168A
Authority
KR
South Korea
Prior art keywords
parity check
hard decision
density parity
decoder
check code
Prior art date
Application number
KR1020210111347A
Other languages
Korean (ko)
Other versions
KR102635444B1 (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 KR1020210111347A priority Critical patent/KR102635444B1/en
Publication of KR20230029168A publication Critical patent/KR20230029168A/en
Application granted granted Critical
Publication of KR102635444B1 publication Critical patent/KR102635444B1/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
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Abstract

The present invention relates to a non-binary low-density parity check code decoder, an operating method thereof, and a memory system, which can improve error rate performance while reducing decoding complexity. According to one embodiment of the present invention, the method for decoding a non-binary low-density parity check code comprises: a step of receiving codewords consisting of N hard decision symbols from a semiconductor memory, and generating similarity soft decision information becoming larger as the Hamming distances for the hard decision symbols making up the received codewords and symbols remaining after excluding the hard decision symbols in a Galois field decrease based on the hard decision symbols; and a step of determining a corrected codeword based on the similarity soft decision information.

Description

비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템{DECODER, OPERATING METHOD THEREOF AND MEMORY SYSTEM INCLUDING THE DECODER FOR DECODING NON-BINARY LOW-DENSITY PARITY CHECK CODE}Non-binary low density parity check code decoder, its operating method and memory system

본 발명은 비이진 저밀도 패리티 검사 코드(nonbinary low-density parity-check; NB-LDPC)를 디코딩하는 기술에 관한 것이고, 보다 구체적으로는 낸드 플래시 메모리에 대한 유사 연판정 정보를 이용한 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템에 관한 것이다. The present invention relates to a technique for decoding a nonbinary low-density parity-check (NB-LDPC) code, and more particularly, to a non-binary low-density parity check using pseudo soft decision information for a NAND flash memory. It relates to a code decoder, its operating method and memory system.

본 발명은 저밀도 패리티 검사 코드에 관한 것으로, 더 구체적으로는 비이진 저밀도 패리티 검사 코드를 복호화하는 기술에 관한 것이다.The present invention relates to low density parity check codes, and more particularly to techniques for decoding non-binary low density parity check codes.

저밀도 패리티 검사 코드(Low Density Parity Check Codes: LDPC Codes)는 1962년 처음으로 제안된 에러 정정 코드(error correction codes)로서, 선형 블록 코드(Linear Block Code)에 속하는 전방 에러 정정 코드(forward error correction codes)의 일종이다. 이 코드가 제안될 당시는 진공관이 트랜지스터로 대체되기 시작한 때였고, 그 당시만 해도 이 코드를 검증하기 위한 시뮬레이션에 필요한 엄청난 계산량과 그 구현상의 어려움 때문에 이 코드가 실질적으로 상용되지 못하였었다. 그러나 그 후 30년 이상의 정보 통신 기술의 발전과 최근의 고성능 프로세서의 등장 및 멀티미디어 이동 통신 분야에서의 고품질 서비스 제공의 필요성에 힘입어 최근에 이 코드에 대한 활용도가 재인식되면서 이 코드의 특성 및 그 부호화/복호화 방법에 대한 연구가 활기를 띠고 있다. 이 코드는 터보 코드(Turbo Codes)를 대체 할 4세대 이동 통신 시스템에서의 채널 코딩 방법으로 제안되고 있기도 하다.Low Density Parity Check Codes (LDPC Codes) are error correction codes first proposed in 1962, and are forward error correction codes belonging to linear block codes. ) is a type of At the time this code was proposed, it was at a time when vacuum tubes began to be replaced by transistors, and at that time, this code was not practically commercially available due to the enormous amount of calculation required for simulation to verify this code and the difficulty of its implementation. However, thanks to the development of information communication technology for more than 30 years, the recent emergence of high-performance processors, and the need to provide high-quality services in the field of multimedia mobile communication, the utilization of this code has recently been re-recognized, and the characteristics of this code and its encoding have been recognized. /Research on decryption methods is gaining momentum. This code is also being proposed as a channel coding method in a 4th generation mobile communication system to replace turbo codes.

LDPC 코드는 터보 코드와 같이 샤논의 채널 용량(Shannon Limit)에 근접하는 우수한 성능을 보이는 것으로 알려져 있다. LDPC 코드는 터보 코드에 비하여 성능이 우수하고 그 복호화기의 구현이 크게 복잡하지 않으며 병렬 연산이 가능하여 고속 처리가 가능할 뿐만 아니라 터보 코드와 같이 확률적 반복 복호 기법을 적용할 수 있어서, 저 오류율과 고속 데이터 처리가 요구되는 이동 통신 시스템에 적합한 것으로 알려져 있다. 이러한 LDPC 코드는 패리티 검사 행렬(Parity Check Matrix)에 해당하는 H 행렬의 구성 성분이 이진 원소(binary element)인 이진 LDPC 코드(Binary LDPC Codes)와 H 행렬의 구성 성분이 이진 원소가 아닌 비이진 LDPC 코드(Non-Binary LDPC Codes)로 나눌 수 있다. 이진 LDPC 코드는 짧은 길이 또는 중간 길이의 코드 워드(codeword)의 경우 비트 오류율(Bit Error Rate)의 면에서 약점을 보이고 있는 반면, 비이진 LDPC 코드는 짧은 길이의 코드 워드의 경우에도 그 성능이 뛰어나고 낮은 오류율에서도 오류 마루(error floor) 현상을 보이지 않는 등 이진 LDPC 코드 보다 대체로 월등한 성능을 보인다.LDPC codes are known to show excellent performance approaching Shannon's channel capacity (Shannon Limit) like turbo codes. The LDPC code has superior performance compared to the turbo code, the implementation of the decoder is not very complicated, parallel operation is possible, high-speed processing is possible, and a stochastic iterative decoding technique like the turbo code can be applied, resulting in low error rate and low error rate. It is known to be suitable for mobile communication systems requiring high-speed data processing. These LDPC codes include binary LDPC codes in which the components of the H matrix corresponding to the parity check matrix are binary elements, and non-binary LDPC codes in which the components of the H matrix are not binary elements. It can be divided into codes (Non-Binary LDPC Codes). Binary LDPC codes show weakness in terms of bit error rate for short or medium-length codewords, whereas non-binary LDPC codes outperform even for short-length codewords. It shows generally superior performance to binary LDPC code, such as not showing an error floor phenomenon even at a low error rate.

그러나, 비이진 LDPC 코드는 그 복호 과정에서 H 행렬의 행 가중치 (row weight) 또는 갈루아 필드(Galois Field: GF)의 차수 q가 증가함에 따라 그 복잡도가 증가한다는 단점이 있다. 이에 따라, 최근에는 LDPC 복호화기의 성능을 크게 떨어뜨리지 않으면서 복호 과정을 단순화시켜 복호 과정에서의 연산량을 줄이는 방법에 대한 연구가 활발히 진행되고 있는 추세이다.However, the non-binary LDPC code has a disadvantage in that its complexity increases as the row weight of the H matrix or the order q of a Galois Field (GF) increases in the decoding process. Accordingly, research on a method for reducing the amount of computation in the decoding process by simplifying the decoding process without significantly degrading the performance of the LDPC decoder has recently been actively conducted.

본 발명의 과제는 비이진 LDPC 복호화기의 성능 저하를 최소화시키면서도 고속 복호화를 가능하게 하는 비이진 LDPC 코드의 복호화 방법을 제공하는 것이다.An object of the present invention is to provide a method for decoding a non-binary LDPC code that enables high-speed decoding while minimizing performance degradation of a non-binary LDPC decoder.

본 발명의 다른 과제는 비이진 LDPC 복호화기의 체크 노드(check nodes)에서의 연산량과 연산 지연을 줄일 수 있는 비이진 LDPC 코드의 복호화 방법을 제공하는 것이다.Another object of the present invention is to provide a non-binary LDPC code decoding method capable of reducing the amount of computation and computation delay at check nodes of a non-binary LDPC decoder.

본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다. 따라서, 디코딩 복잡성을 줄이는 동시에 오류율 성능의 악화를 방지할 수 있는 디코딩 방법이 요구된다. The problems to be solved by the present invention are not limited to the above-mentioned problems, and other problems not mentioned will be clearly understood by those skilled in the art from the following description. Therefore, a decoding method capable of reducing decoding complexity and preventing deterioration of error rate performance is required.

본 발명은 디코딩 복잡성을 줄이는 동시에 오류율 성능을 향상시킬 수 있는 디코딩 방법 및 장치를 제공하고자 한다.An object of the present invention is to provide a decoding method and apparatus capable of improving error rate performance while reducing decoding complexity.

본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problem to be solved by the present invention is not limited to the above-mentioned problem (s), and another problem (s) not mentioned will be clearly understood by those skilled in the art from the following description.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 비이진 저밀도 패리티 검사 코드를 디코딩하는 방법은 반도체 메모리로부터 경판정 심볼로 이루어진 코드워드(Codewords)를 수신하는 단계; 수신된 코드워드를 구성하는 경판정 심볼 N개를 기준으로 각 경판정 심볼과 갈루아 필드 내 경판정 심볼을 제외한 나머지 심볼에 대하여 해밍거리가 작을수록 더 커지는 유사 연판정 정보를 생성하는 단계; 변수 노드와 체크 노드 연산을 수행하는 단계 및 상기 유사 연판정 정보를 미리 설정된 임계값과 비교하여 오류정정 코드워드(corrected codeword)를 결정하는 단계를 포함하는 것을 특징으로 한다. To achieve the above object, a method of decoding a non-binary low density parity check code according to an embodiment of the present invention includes receiving codewords composed of hard decision symbols from a semiconductor memory; generating similar soft decision information that increases as the Hamming distance decreases for each hard decision symbol and the remaining symbols excluding hard decision symbols in a Galois field based on N hard decision symbols constituting the received codeword; It is characterized by including the step of performing a variable node and check node operation, and the step of determining an error correction codeword (corrected codeword) by comparing the similar soft decision information with a preset threshold value.

일 실시예에서, 상기 유사 연판정 정보를 생성하는 단계는, 상기 경판정 심볼과 상시 수신된 코드워드 중 상기 경판정 심볼을 제외한 나머지 심볼간의 해밍거리를 고려한 값에 열 가중치를 곱하여 유사 연판정 정보를 생성하는 것을 특징으로 한다. In an embodiment, the generating of the similar soft decision information may include multiplying a value considering a hamming distance between the hard decision symbol and the remaining symbols excluding the hard decision symbol among the codewords received at all times by a column weight to obtain similar soft decision information. It is characterized by generating.

일 실시예에서, 상기 오류정정 코드워드를 결정하는 단계는, 상기 저밀도 패리티 검사 코드의 패리티 검사 매트릭스(H)에 의해 결정되는, 상기 N개의 변수 노드와의 연결 관계를 가지는 M개의 체크 노드와 상기 N개의 변수 노드 간에 반복적인 메시지 교환에 의해 상기 수신된 코드워드를 복호화하는 것을 특징으로 한다. In one embodiment, the step of determining the error correction codeword may include M check nodes having a connection relationship with the N variable nodes, determined by a parity check matrix (H) of the low density parity check code, and the It is characterized in that the received codeword is decoded by repetitive message exchange between N variable nodes.

일 실시예에서, 상기 비이진 저밀도 패리티 검사 코드는 차수 q의 갈루아 필드 GF(q)에 대해 정의된 코드인 것을 특징으로 한다. In one embodiment, it is characterized in that the non-binary low density parity check code is a code defined for a Galois field GF(q) of order q.

일 실시예에서, 상기 코드워드(corrected codeword)를 결정하는 단계는 신드롬 체크와, 체크 노드 업데이트, 변수 노드 업데이트를 1세트로 하며, 상기 세트는 미리 설정된 횟수 반복 실행되는 것을 특징으로 한다.In one embodiment, the step of determining the codeword (corrected codeword) is characterized in that a syndrome check, a check node update, and a variable node update are set as one set, and the set is repeatedly executed a preset number of times.

일 실시예에서, 상기 체크 노드 업데이트는 매 회, EXI(Extrinsic information sum) 연산을 수행하며, 상기 EXI 연산 결과로 얻은 심볼의 유사 연판정 정보를 업데이트 할 때 해밍거리에 기초하여 산출한 가중치 계수를 사용하는 것을 특징으로 한다.In one embodiment, the check node update performs an Extrinsic Information Sum (EXI) operation each time, and when updating similar soft decision information of a symbol obtained as a result of the EXI operation, a weight coefficient calculated based on a Hamming distance is used. characterized by use.

일 실시예에서, 상기 체크 노드 업데이트는 매 회, i번째 신드롬 체크의 결과 값이 0인 경우에는 EXI 연산을 수행하지 않고 변수 노드로부터 받은 경판정 심볼에 대한 유사 연판정 정보를 업데이트 하는 것을 특징으로 한다. In one embodiment, the update of the check node is characterized by updating similar soft decision information for a hard decision symbol received from a variable node without performing an EXI operation when the result value of the i-th syndrome check is 0 each time. do.

본 발명의 다른 실시예에 따른 비이진 저밀도 패리티 검사 코드 디코더는 반도체 메모리로부터 N개의 경판정 심볼로 이루어진 코드워드(codeword)를 수신하고, 상기 경판정 심볼과 상기 경판정 심볼을 제외한 나머지 GF 내 심볼에 대하여 해밍거리가 작을수록 더 커지는 유사 연판정 정보를 생성하는 초기화 모듈; 및 상기 유사 연판정 정보 중 가장 큰 값을 갖는 심볼들로 오류정정 코드워드(corrected codeword)를 결정하는 노드 프로세서를 포함하는 것을 특징으로 한다. A non-binary low density parity check code decoder according to another embodiment of the present invention receives a codeword consisting of N hard decision symbols from a semiconductor memory, and receives the hard decision symbols and the remaining symbols in the GF excluding the hard decision symbols. an initialization module for generating similar soft decision information that increases as the Hamming distance decreases for ; and a node processor for determining an error correction codeword from symbols having the largest value among the similar soft decision information.

본 발명의 일 실시예에 따른 반도체 메모리 시스템은, 인코딩된 데이터인 코드워드를 저장하는 반도체 메모리; 상기 반도체 메모리에 저장된 상기 코드워드를 서브행렬들로 구성된 패리티 검사 행렬을 통해 디코딩하여 복호화된 데이터를 생성하는 디코더; 및 상기 반도체 메모리와 상기 디코더를 연결하며 상기 반도체 메모리 장치의 상기 코드워드를 상기 디코더로 제공하는 채널을 포함하는 것을 특징으로 한다. A semiconductor memory system according to an embodiment of the present invention includes a semiconductor memory for storing codewords that are encoded data; a decoder generating decoded data by decoding the codeword stored in the semiconductor memory through a parity check matrix composed of sub-matrices; and a channel connecting the semiconductor memory and the decoder and providing the codeword of the semiconductor memory device to the decoder.

본 발명의 일 실시예에 따른 상기 반도체 메모리는 NAND 플래시 메모리인 것을 특징으로 한다.The semiconductor memory according to an embodiment of the present invention is characterized in that it is a NAND flash memory.

본 발명은 BER(Bit Error Rate) 성능을 개선하고 계산량을 감소시키는 효과가 있다.The present invention has an effect of improving BER (Bit Error Rate) performance and reducing the amount of calculation.

본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the claims.

도 1은 본 발명의 일 실시예에 따른 비-이진 저밀도 패리티 체크(non-binary low density parity check; NB-LDPC) 코드에 대한 디코더의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 패리티 체크 행렬을 설명하기 위한 예시도이다.
도 3은 도 2에 도시된 패리티 체크 행렬을 태너 그래프로 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 디코딩을 위한 알고리즘을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 경판정 정보의 신뢰도를 설명하기 위한 도면이다.
도 6은 본 발명의 다른 실시예에 따른 디코딩을 위한 알고리즘을 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 비이진 저밀도 패리티 검사 코드를 디코딩하는 방법을 설명하는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 반도체 메모리 시스템의 개략적인 구성을 나타내는 구성도이다.
1 is a diagram for explaining the configuration of a decoder for a non-binary low density parity check (NB-LDPC) code according to an embodiment of the present invention.
2 is an exemplary diagram for explaining a parity check matrix according to an embodiment of the present invention.
FIG. 3 is a diagram showing the parity check matrix shown in FIG. 2 as a Tanner graph.
4 is a diagram illustrating an algorithm for decoding according to an embodiment of the present invention.
5 is a diagram for explaining reliability of hard decision information according to an embodiment of the present invention.
6 is a diagram showing an algorithm for decoding according to another embodiment of the present invention.
7 is a flowchart illustrating a method of decoding a non-binary low density parity check code according to an embodiment of the present invention.
8 is a configuration diagram showing a schematic configuration of a semiconductor memory system according to an exemplary embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.Since the present invention can make various changes and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. Like reference numerals have been used for like elements throughout the description of each figure.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention. The terms and/or include any combination of a plurality of related recited items or any of a plurality of related recited items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle. It should be. On the other hand, when an element is referred to as “directly connected” or “directly connected” to another element, it should be understood that no other element exists in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, the terms "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.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 to which the present invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the present application, they should not be interpreted in an ideal or excessively formal meaning. don't

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 일 실시예에 따른 디코더는 채널로부터 코드워드에 대응하는 신호를 수신하고 수신된 신호에 대한 오류 정정 디코딩을 수행할 수 있다. A decoder according to an embodiment of the present invention may receive a signal corresponding to a codeword from a channel and perform error correction decoding on the received signal.

본 발명의 일 실시예에 따른 디코더는 반복 복호 기법(iterative decoding scheme)을 채택하는 다양한 알고리즘을 이용하여 오류 정정 디코딩을 수행할 수 있다. 본 발명의 일 실시예에 따른 디코더는 신뢰 전파 알고리즘(belief propagation algorithm; BPA)으로도 일컬어지는 메시지 전달 알고리즘(message passing algorithm; MPA)을 이용하여 오류 정정 디코딩을 수행할 수 있다. 메시지 전달 알고리즘으로서 비트 플립핑(bit flipping) 알고리즘, 심볼 플립핑 (symbol flipping) 알고리즘, 최소-합(min-sum) 알고리즘 또는 합-곱(sum-product) 알고리즘 등이 이용될 수 있다.A decoder according to an embodiment of the present invention may perform error correction decoding using various algorithms employing an iterative decoding scheme. A decoder according to an embodiment of the present invention may perform error correction decoding using a message passing algorithm (MPA), also referred to as a belief propagation algorithm (BPA). As a message transfer algorithm, a bit flipping algorithm, a symbol flipping algorithm, a min-sum algorithm, or a sum-product algorithm may be used.

본 발명의 일 실시예에 따른 디코더는, 설정된 최대 반복 횟수(maximum iteration number; I) 내에서 오류 정정 디코딩을 수행할 수 있다. 여기서, I는 자연수일 수 있다. 오류 정정 디코더는, 최대 반복 횟수(I) 내에서 오류 정정 코드의 패리티 체크 행렬의 제약들(constraints)을 만족하는 유효한 코드워드(valid codeword)가 생성되는 경우, 생성된 유효한 코드워드를 디코딩된 코드워드(decoded codeword)로서 출력할 수 있다. A decoder according to an embodiment of the present invention may perform error correction decoding within a set maximum iteration number (I). Here, I may be a natural number. The error correction decoder converts the generated valid codeword into a decoded code when a valid codeword that satisfies the constraints of the parity check matrix of the error correction code is generated within the maximum number of iterations (I). It can be output as a word (decoded codeword).

본 발명의 일 실시예에 따른 디코더는 최대 반복 횟수(I) 내에서 오류 정정 코드의 패리티 체크 행렬의 제약들을 만족하는 유효한 코드워드가 생성되지 않는 경우, 오류 정정 디코딩이 실패하였음을 나타내는 페일(fail) 신호를 출력할 수 있다.In the decoder according to an embodiment of the present invention, when a valid codeword that satisfies the constraints of the parity check matrix of the error correction code is not generated within the maximum number of iterations (I), the decoder fails indicating that error correction decoding has failed. ) signal can be output.

도 1은 본 발명의 일 실시예에 따른 비-이진 저밀도 패리티 체크(non-binary low density parity check; NB-LDPC) 코드에 대한 디코더의 구성을 설명하기 위한 도면이고, 도 2는 본 발명의 일 실시예에 따른 패리티 체크 행렬을 설명하기 위한 예시도이다. 1 is a diagram for explaining the configuration of a decoder for a non-binary low density parity check (NB-LDPC) code according to an embodiment of the present invention, and FIG. It is an exemplary diagram for explaining a parity check matrix according to an embodiment.

도 1을 참조하면, 디코더(200)는 초기화 모듈(210), 변수 노드 처리 모듈(220), 체크 노드 처리 모듈(230) 및 신드롬 체크 모듈(240)을 포함할 수 있다. 변수 노드 처리 모듈(220), 체크 노드 처리 모듈(230) 및 신드롬 체크 모듈(240)를 모두 합쳐서 노드 프로세서라고 할 수 있다. Referring to FIG. 1 , the decoder 200 may include an initialization module 210, a variable node processing module 220, a check node processing module 230, and a syndrome check module 240. The variable node processing module 220, the check node processing module 230, and the syndrome check module 240 may all be referred to as a node processor.

초기화 모듈(210)은 채널로부터 코드워드에 대응하는 판독 벡터를 수신할 수 있다. 초기화 모듈(210)는, 판독 벡터에 포함된 판독 값들(read values)을 그룹핑(grouping)하여 변수 노드들(variable nodes)에게 할당할 초기 심볼들(initial symbols)을 구성할 수 있다. The initialization module 210 may receive a read vector corresponding to a codeword from a channel. The initialization module 210 may configure initial symbols to be allocated to variable nodes by grouping read values included in the read vector.

또한, 초기화 모듈(210)은 초기 심볼들을 기반으로 연판정 정보(신뢰도라고도 함)를 생성할 수 있다. 유사 연판정 정보는, 경판정 값들(hard decision values)에 기초하여 해밍거리를 이용하여 생성될 수 있다. 일 실시예에서, 유사 연판정 정보는, 해밍거리에 열 가중치 dv를 곱하여 산출한다.Also, the initialization module 210 may generate soft decision information (also referred to as reliability) based on initial symbols. Similar soft decision information may be generated using Hamming distance based on hard decision values. In one embodiment, the similar soft decision information is calculated by multiplying the hamming distance by the column weight dv.

초기화 모듈(210)은 첫 번째 반복이 수행되기 이전에, 초기화 모듈(210)로부터 수신되는 초기 심볼들을 이용하여 변수 노드들을 초기화할 수 있다. 즉, 초기화 모듈(210)은 코드워드를 이루는 초기 심볼들 각각을 기반으로 변수 노드의 유사 연판정 값들을 생성하여 변수 노드들 각각에 할당할 수 있다.The initialization module 210 may initialize variable nodes using initial symbols received from the initialization module 210 before the first iteration is performed. That is, the initialization module 210 may generate similar soft decision values of variable nodes based on each of the initial symbols constituting the codeword and allocate them to each of the variable nodes.

변수 노드 처리 모듈(220)과 체크 노드 처리 모듈(230)는 변수 노드들(variable nodes)과 체크 노드들(check nodes) 간에 이루어지는 메시지들(messages)을 교환한다. 이를 통해 코드워드에 수렴(converge)하는 결과를 생성할 수 있다. The variable node processing module 220 and the check node processing module 230 exchange messages between variable nodes and check nodes. Through this, it is possible to generate a result that converges to the codeword.

보다 구체적으로 변수 노드 처리 모듈(220)은 변수 노드로부터 체크 노드에게 전송되는 변수-투-체크(variable to check; V2C) 메시지를 생성하여 체크 노드 처리 모듈(230)에 전달한다. More specifically, the variable node processing module 220 generates a variable to check (V2C) message transmitted from the variable node to the check node and transfers it to the check node processing module 230.

체크 노드 처리 모듈(230)은 체크 노드로부터 변수 노드에게 전송되는 체크-투-변수(check to variable; C2V) 메시지를 생성하여 변수 노드 처리 모듈(220)에 전달한다.The check node processing module 230 generates a check-to-variable (C2V) message transmitted from the check node to the variable node and transfers it to the variable node processing module 220.

변수 노드 처리 모듈(220)은, 첫 번째 반복에서, 변수 노드들의 유사 연판정 값들이 체크 노드들에게 전달될 수 있도록 V2C 메시지들을 생성하고, 체크 노드로부터 수신되는 C2V 메시지들을 기반으로 변수 노드들 각각의 유사 연판정 값을 업데이트할 수 있다.In the first iteration, the variable node processing module 220 generates V2C messages so that similar soft decision values of the variable nodes can be transmitted to the check nodes, and each of the variable nodes is based on the C2V messages received from the check nodes. The pseudo soft decision value of can be updated.

일 실시예에서 변수 노드 처리 모듈(220)의 출력은 각 패리티 검사 행렬의 각 행에 대하여 그 행의 원소 값들이 0이 아닌 값(변수 노드)을 갖는 열들에 대응하는 입력값이 된다. In one embodiment, an output of the variable node processing module 220 becomes an input value corresponding to columns having non-zero element values (variable nodes) of each row of each parity check matrix.

체크 노드 처리 모듈(230)은, 첫 번째 반복을 제외한 각각의 반복에서, 변수 노드로부터 수신되는 V2C 메시지들을 기반으로 C2V 메시지들 생성한다. The check node processing module 230 generates C2V messages based on V2C messages received from variable nodes in each repetition except for the first repetition.

일 실시예에서 체크 노드 처리 모듈(230)의 출력은 변수 노드 처리 모듈(220)의 출력과 유사하게, 패리티 검사 행렬(H)의 열을 기준으로 각 열에서 0이 아닌 값을 가지는 행의 값들을 출력하고, 이것이 변수 노드 처리 모듈(220)로 입력된다.In one embodiment, the output of the check node processing module 230 is similar to the output of the variable node processing module 220, the value of a row having a non-zero value in each column based on the column of the parity check matrix (H). are output, which are input to the variable node processing module 220.

다른 실시예에서, 체크 노드 처리 모듈(230)은 신뢰도에 해밍거리에 기초한 가중치 계수 θ를 더 한 값으로 다음 번 신뢰도를 업데이트 할 수 있다. 이에 대하여는 후술되는 도 6을 참조하여 상세히 설명하기로 한다. In another embodiment, the check node processing module 230 may update the next confidence level with a value obtained by adding the weight coefficient θ based on the Hamming distance to the confidence level. This will be described in detail with reference to FIG. 6 to be described later.

신드롬 체크 모듈(240)은, i번째 반복에 대응하여 변수 노드의 경판정 값들에 대한 신드롬 체크를 수행할 수 있다. 예를 들어, 신드롬 체크는, 신드롬 체크 방정식인 수학식 1에 의해 계산되는 값이 0인지 여부를 확인함으로써 이루어질 수 있다.The syndrome check module 240 may perform a syndrome check on the hard decision values of the variable node in response to the i-th iteration. For example, the syndrome check may be performed by checking whether a value calculated by Equation 1, which is a syndrome check equation, is 0.

[수학식 1] [Equation 1]

Figure pat00001
Figure pat00001

여기서 z(k)는 k번째 반복에서 대응하여 생성되는 경판정 값이고, H는 오류 정정 코드의 패리티 체크 행렬이다. Here, z (k) is a hard decision value correspondingly generated in the kth iteration, and H is a parity check matrix of an error correction code.

k번째 반복에서 경판정 심볼

Figure pat00002
은 j번째 변수 노드에서 이웃하는 채널 노드로 전달된다. Hard decision symbol at kth iteration
Figure pat00002
is transferred from the j-th variable node to a neighboring channel node.

i번째 채널 노드에서 j번째 변수 노드에 전달되는 EXI(extrinsic information sum)은

Figure pat00003
로 표기되고,
Figure pat00004
는 수학식 2와 같이 연산된다.The extrinsic information sum (EXI) passed from the i-th channel node to the j-th variable node is
Figure pat00003
is denoted by
Figure pat00004
Is calculated as in Equation 2.

[수학식 2][Equation 2]

Figure pat00005
Figure pat00005

여기서, i번째 채널 노드에 연결되는 Ni는 변수 노드의 집합을 의미하고,

Figure pat00006
는 Ni의 부분집합으로, Ni에서 j번째 변수 노드(0≤i<M, 0≤j<N)를 제외한 집합을 의미한다.Here, Ni connected to the i-th channel node means a set of variable nodes,
Figure pat00006
is a subset of Ni, and means a set excluding the j-th variable node (0≤i<M, 0≤j<N) from Ni.

도출된

Figure pat00007
에 기초하여, 변수노드는 경판정 벡터 z(k)를 수학식 3과 같이 갱신한다. derived
Figure pat00007
Based on , the variable node updates the hard decision vector z (k) as shown in Equation 3.

[수학식 3][Equation 3]

Figure pat00008
Figure pat00008

다른 실시예에서, 신드롬 체크 모듈(240)은, 신드롬 체크의 모든 결과값이 0이되는 변수노드의 판정값을 코드워드로서 출력한다. In another embodiment, the syndrome check module 240 outputs, as a codeword, a decision value of a variable node in which all result values of the syndrome check become 0.

도 2를 참조하면 (n, k) 코드를 정의하는 패리티 체크 행렬(H)의 일 예를 도시하였다. (n, k) 코드는, (n-k)×n의 크기를 갖는 패리티 체크 행렬로 정의될 수 있다. 일 실시예에서는 설명의 편의를 위하여 3×4 패리티 체크 행렬을 예시하였으나, 이에 한정하는 것은 아니다. 패리티 체크 행렬의 각각의 엔트리는, 갈루아 체(Galois field)에 속하는 원소(element)들로 표현될 수 있다.Referring to FIG. 2, an example of a parity check matrix H defining (n, k) codes is shown. (n, k) codes may be defined as a parity check matrix having a size of (n-k)×n. In one embodiment, a 3×4 parity check matrix is illustrated for convenience of description, but is not limited thereto. Each entry of the parity check matrix may be represented by elements belonging to a Galois field.

갈루아 체(GF(q))는 q 개의 원소들로 이루어진 유한체이며, 여기서 q=2p이며 p는 양의 정수이다. A Galois field (GF(q)) is a finite field of q elements, where q=2 p and p is a positive integer.

갈루아 체(GF(q))의 원소들은, {0, α0, α1, ..., αq-2}로 표현될 수 있다. The elements of the Galois field (GF(q)) can be expressed as {0, α 0 , α 1 , ..., α q-2 }.

신드롬 체크 방정식인 수학식 1에 의해 계산되는 모든 엔트리들이 0인 경우 신드롬 체크가 패스(pass) 되었음을 의미하고, 신드롬 벡터(Si)의 모든 엔트리들 중 0이 아닌 엔트리가 있는 경우 신드롬 체크가 페일(fail)되었음을 의미할 수 있다. If all entries calculated by Equation 1, which is the syndrome check equation, are 0, it means that the syndrome check has passed, and if there is a non-zero entry among all entries of the syndrome vector (S i ), the syndrome check has failed. (failed).

신드롬 체크가 패스되는 경우, 신드롬 체크 모듈(240)은, 경판정 벡터를 디코딩된 코드워드로서 출력할 수 있다.If the syndrome check passes, the syndrome check module 240 may output the hard decision vector as a decoded codeword.

만약, 최대 반복 횟수(Imax) 내에서 신드롬 체크가 패스되지 않는 경우, 노드 프로세서(220)는, 오류 정정 디코딩이 페일되었음을 나타내는 페일 신호를 출력할 수 있다.If the syndrome check does not pass within the maximum number of iterations Imax, the node processor 220 may output a fail signal indicating that error correction decoding has failed.

N개의 변수 노드와의 연결 관계를 가지는 M개의 체크 노드와 상기 N개의 변수 노드와 간에 반복적인 메시지 교환에 의해 수신된 N개의 심볼로 이루어진 코드워드를 디코딩한다. A codeword consisting of N symbols received by repetitive message exchange between M check nodes having connection relationships with N variable nodes and the N variable nodes is decoded.

도 3은 도 2에 도시된 패리티 체크 행렬을 태너 그래프로 나타낸 도면이다.FIG. 3 is a diagram showing the parity check matrix shown in FIG. 2 as a Tanner graph.

도 2와 같은 패리티 체크 행렬은, 등가의 이분 그래프(bipartite graph) 표현인 태너(Tanner) 그래프로 표현될 수 있다. 태너 그래프는, 체크 노드(check node)들, 변수 노드(variable node)들 및 에지(edge)들로 표현될 수 있다. 체크 노드들은 패리티 체크 행렬의 행(row)들에 대응하고, 변수 노드들은 패리티 체크 행렬의 열(column)들에 대응한다. 각각의 에지는, 하나의 체크 노드와 하나의 변수 노드를 연결하며, 패리티 체크 행렬의 논-제로 엔트리에 대응한다.The parity check matrix shown in FIG. 2 can be expressed as a Tanner graph, which is an equivalent bipartite graph representation. A Tanner graph can be represented by check nodes, variable nodes, and edges. Check nodes correspond to rows of the parity check matrix, and variable nodes correspond to columns of the parity check matrix. Each edge connects one check node and one variable node, and corresponds to a non-zero entry in the parity check matrix.

태너 그래프에서 인접한 노드의 수인 노드의 차수(degree)는 열 또는 행에 있는 0이 아닌 요소의 수에 대응하며 행렬의 가중치라고 한다. 이러한 NB-LDPC 코드는 열 가중치 dv와 행 가중치 dc를 갖는다. The degree of a node, the number of adjacent nodes in a Tanner graph, corresponds to the number of non-zero elements in a column or row and is called the weight of a matrix. This NB-LDPC code has column weights dv and row weights dc.

N의 길이를 갖는 NB-LDPC 코드에 대하여, C의 코드워드는 c=[c0, c1, c2,..., cN-1] 이라 할 때, 채널 입력 벡터와 수신 벡터는 각각 x=[x0, x1, x2,..., xN-1] 및 y=[y0, y1, y2,..., yN-1]이 된다. 여기서, 벡터 y는 x에 노이즈가 더해진 벡터이다. Y에 기초하여, k번째 디코딩된 수신 심볼의 경판정 벡터를 z(k)= [

Figure pat00009
,
Figure pat00010
, ...,
Figure pat00011
]라 한다. 따라서, z(0)은 채널 출력의 경판정 심볼로 구성되며, 디코더의 입력이다. 디코딩 반복의 목표는 z(k)가 신드롬 체크 방정식인 수학식 1의 계산결과 0을 충족하도록 하는 것이다. 신드롬 체크 방정식을 0으로 하는 z(k)가 코드워드임을 의미한다. For an NB-LDPC code with a length of N, when the codewords of C are c=[c 0 , c 1 , c 2 ,..., c N-1 ], the channel input vector and the received vector are x=[x 0 , x 1 , x 2 ,..., x N-1 ] and y=[y 0 , y 1 , y 2 ,..., y N-1 ]. Here, the vector y is a vector obtained by adding noise to x. Based on Y, the hard decision vector of the kth decoded received symbol is z (k) = [
Figure pat00009
,
Figure pat00010
, ...,
Figure pat00011
]. Thus, z (0) consists of the hard decision symbols of the channel output and is the input of the decoder. The goal of decoding iteration is to make z (k) satisfy 0 as a result of calculation of Equation 1, which is a syndrome check equation. This means that z (k), which sets the syndrome check equation to 0, is a codeword.

도 4는 본 발명의 일 실시예에 따른 디코딩을 위한 알고리즘을 나타내는 도면이고, 도 5는 본 발명의 일 실시예에 따른 경판정 정보의 신뢰도를 설명하기 위한 도면이다. 4 is a diagram illustrating an algorithm for decoding according to an embodiment of the present invention, and FIG. 5 is a diagram for explaining reliability of hard decision information according to an embodiment of the present invention.

도 4를 참조하면 알 수 있는 바와 같이, 디코딩을 위한 알고리즘은 크게 1.초기화 단계 2.신드롬 체크 3. 체크 노드 업데이트 4. 변수 노드 업데이트로 구분된다. As can be seen with reference to FIG. 4, the algorithm for decoding is largely divided into 1. Initialization step 2. Syndrome check 3. Check node update 4. Variable node update.

위의 알고리즘은 미리 설정된 횟수(Imax)만큼 반복 실행된다. 이에 따라 채널 노드 업데이트(CN update)와 변수 업데이트(VN update)도 반복됨을 알 수 있다. The above algorithm is repeatedly executed a preset number of times (Imax). Accordingly, it can be seen that the channel node update (CN update) and variable update (VN update) are also repeated.

보다 구체적으로, 초기화 단계에서, dv × p는 초기화 시 모든 심볼 중 가장 높은 신뢰도를 나타낸다. 여기서 p는 log2q로 계산된다. 다른 모든 기호의 신뢰도는 수학식 4와 같이 설정된다. More specifically, in the initialization step, dv × p represents the highest reliability among all symbols during initialization. where p is calculated as log 2 q. The reliability of all other symbols is set as in Equation 4.

[수학식 4] [Equation 4]

Figure pat00012
Figure pat00012

경판정 심볼로부터 해밍 거리가 가까울수록 심볼의 신뢰도가 높다는 것을 의미한다. 해밍 거리는 심볼간의 이진 XOR 연산으로 용이하게 계산할 수 있다. The closer the Hamming distance is from the hard decision symbol, the higher the reliability of the symbol. The Hamming distance can be easily calculated by binary XOR operation between symbols.

j번째 VN에 이웃한 i번째 CN으로부터 EXI(extrinsic information) 연산을 수행하여 연산값 σi,j가 a1인 경우,

Figure pat00013
은 다음 반복에서 투표될 것이고,
Figure pat00014
=
Figure pat00015
+1로 나타낼 수 있다. If EXI (extrinsic information) operation is performed from the i-th CN adjacent to the j-th VN and the calculated value σ i,j is a1,
Figure pat00013
will be voted on in the next iteration,
Figure pat00014
=
Figure pat00015
It can be represented as +1.

도 5을 참조하면, 경판정 심볼과 해밍거리가 1인 심볼들에만 신뢰도를 부여한 것과 달리 일 실시예에서는 모든 심볼에 대해 해밍거리에 따라 차등으로 신뢰도 값을 부여하고, dv를 곱하여 해밍거리에 따라 신뢰도 값(R)이 열 가중치 dv만큼 차이가 난다. dv를 곱함으로써 다음 반복에서 투표 한 번에 최대 신뢰도를 갖는 심볼이 바뀌게 되는 일이 발생하는 것을 방지할 수 있다.Referring to FIG. 5, unlike the case in which reliability is assigned only to hard decision symbols and symbols having a hamming distance of 1, in one embodiment, reliability values are differentially assigned to all symbols according to the hamming distance and multiplied by dv to determine reliability according to the hamming distance. Reliability values (R) differ by the column weight dv. By multiplying by dv, we can prevent the occurrence of a change in the symbol with the maximum confidence in one vote in the next iteration.

신드롬 체크는 패리티 검사 매트릭스(H)의 전치 행렬을 이용한 상기 신드롬 체크 방정식인 수학식 1에 기초하여 수행된다. 계산된 신드롬 체크 방정식이 선정된 값 미만이 되거나 선정된 횟수 만큼 반복한다.The syndrome check is performed based on Equation 1, which is the syndrome check equation using the transposition matrix of the parity check matrix H. If the calculated syndrome check equation becomes less than the selected value or repeats the selected number of times.

체크노드와 변수 노드의 반복적인 메시지 교환에 의해 체크 노드 업데이트와 변수 노드 업데이트도 반복됨으로써 코드워드를 복호화할 수 있다. Codewords can be decoded by repeating check node updates and variable node updates through repetitive message exchanges between the check node and the variable node.

도 6은 본 발명의 다른 실시예에 따른 디코딩을 위한 알고리즘을 나타내는 도면이다. 6 is a diagram showing an algorithm for decoding according to another embodiment of the present invention.

수신된 심볼의 j번째 신뢰도

Figure pat00016
는 채널 출력으로부터의 경판정 정보와 다른 갈루아 체 요소 사이의 해밍 거리를 기반으로 초기화된다. The j-th confidence of the received symbol
Figure pat00016
is initialized based on the Hamming distance between the hard decision information from the channel output and other Galois field elements.

도 6을 참조하면 알 수 있는 바와 같이, 디코딩을 위한 알고리즘은 크게 1.초기화 단계 2.신드롬 체크 3. 체크 노드 업데이트 4. 변수 노드 업데이트로 구분된다. As can be seen with reference to FIG. 6, the algorithm for decoding is largely divided into 1. Initialization step 2. Syndrome check 3. Check node update 4. Variable node update.

도 6의 알고리즘의 초기화 단계는 도 4의 초기화 단계와 유사하므로 상세한 설명은 생략한다. Since the initialization step of the algorithm of FIG. 6 is similar to that of FIG. 4, a detailed description thereof will be omitted.

체크 노드 업데이트를 살펴보면,

Figure pat00017
를 초기화에 사용하는 것과 같은 이유로 가중치 계수를 결정하기 위하여 해밍거리
Figure pat00018
를 연산한다. Looking at the check node update,
Figure pat00017
Hamming distance to determine the weight coefficients for the same reason as using
Figure pat00018
calculate

Figure pat00019
가 작을 수록
Figure pat00020
의 신뢰도가 더 높기 때문에 상응하는 가중 계수 θ
Figure pat00021
도 커진다.
Figure pat00019
the smaller
Figure pat00020
Since the reliability of is higher, the corresponding weighting factor θ
Figure pat00021
also grows

VN 업데이트 단계를 살펴보면, 연판정 복호화 알고리즘에서 채널 정보는 VN 업데이트의 각 반복에서 사용된다. 채널 출력의 경판정 심볼은 각 VN에서 투표되어 업데이트된다.Looking at the VN update step, in the soft decision decoding algorithm, channel information is used in each iteration of the VN update. Hard decision symbols in the channel output are updated by voting in each VN.

반복 복호화되는 신드롬 체크 단계에서, 신드롬 s(k)는 각 VN 업데이트 종료시점마다 수학식 5에 의해 반복 연산된다. In the syndrome check step of iterative decoding, syndrome s (k) is iteratively calculated by Equation 5 at each VN update end point.

[수학식 5][Equation 5]

s(k) = z(k) HT s (k) = z (k) H T

여기서, 신드롬 s(k)가 0일 때, 디코딩은 종료되고 z(k) 가 코드워드로서 출력된다. Here, when syndrome s (k) is 0, decoding is ended and z (k) is output as a codeword.

신드롬 s(k) 연산에서, z(k) HT는 행렬 곱셈이고 행렬 곱셈의 출력 벡터 길이는 M 이 된다. 출력 벡터의 각 요소는 수학식 6에 의해 연산된다. In the syndrome s (k) operation, z (k) H T is matrix multiplication and the length of the output vector of matrix multiplication becomes M. Each element of the output vector is calculated by Equation (6).

[수학식 6][Equation 6]

Figure pat00022
Figure pat00022

여기서, 수학식 6는 수학식 7과 같이 나타낼 수 있다. Here, Equation 6 can be expressed as Equation 7.

[수학식 7][Equation 7]

Figure pat00023
Figure pat00023

수학식 5에서 신드롬 s(k)가 0인 경우, [수학식 8]에서와 같이, i번째 채널 노드의 EXI와 같아진다. In Equation 5, when syndrome s (k) is 0, as in [Equation 8], it is equal to the EXI of the i-th channel node.

[수학식 8][Equation 8]

Figure pat00024
Figure pat00024

여기서, 더하기 및 곱하기 연산은 갈루아 체 연산이다. 수학식 6을 참조하면

Figure pat00025
가 0일 때
Figure pat00026
Figure pat00027
와 같다는 것을 알 수 있다. 이것은,
Figure pat00028
가 0일 때 CN 업데이트에서 EXI 연산을 건너뛸 수 있음을 의미한다. Here, addition and multiplication operations are Galois field operations. Referring to Equation 6,
Figure pat00025
is 0
Figure pat00026
go
Figure pat00027
It can be seen that it is the same as this is,
Figure pat00028
When is 0, it means that the EXI operation can be skipped in the CN update.

각 채널노드는 신드롬 체크 후

Figure pat00029
가 0인지 여부를 나타내는 1비트 정보를 저장한다. After checking the syndrome, each channel node
Figure pat00029
Stores 1-bit information indicating whether is 0.

Figure pat00030
값이 0인 체크 노드 CN을 CNSAT라고 하고, 그 외의 체크 노드 CN은 CNUNSAT라고 한다. CNSAT의 경우, CN 업데이트 단계에서 EXI 연산은 건너 뛰고,
Figure pat00031
Figure pat00032
사이의 해밍거리만을 계산하여 가중치 계수를 설정한다. 따라서, 디코더의 오류율 성능에는 영향을 주지 않고, EXI의 연산량을 줄일 수 있다.
Figure pat00030
The check node CN whose value is 0 is called CN SAT , and the other check node CNs are called CN UNSAT . In the case of CN SAT , EXI operation is skipped in the CN update step,
Figure pat00031
and
Figure pat00032
Weight coefficients are set by calculating only the Hamming distance between Therefore, the amount of operation of EXI can be reduced without affecting the error rate performance of the decoder.

도 7은 본 발명의 일 실시예에 따른 비이진 저밀도 패리티 검사 코드를 디코딩하는 방법을 설명하는 흐름도이다. 7 is a flowchart illustrating a method of decoding a non-binary low density parity check code according to an embodiment of the present invention.

도 7의 비이진 저밀도 패리티 검사 코드를 디코딩은 도 1 내지 도 6에 기초하여 설명한 디코더에 의해 행해진다. Decoding of the non-binary low density parity check code of FIG. 7 is performed by the decoder described based on FIGS. 1 to 6 .

단계 S100에서, 디코더는 채널로부터 코드워드에 대응하는 판독 벡터를 수신한다. In step S100, the decoder receives a read vector corresponding to the codeword from the channel.

단계 S110에서, 수신된 판독 벡터에 포함된 판독 값들을 변수 노드들에게 할당하고, 할당된 값들을 기반으로 해밍 거리를 이용하여 경판정의 신뢰도를 계산하여 유사 연판정 정보를 생성한다. 경판정 정보는 외부로부터 제공받을 수 있고, 유사 연판정 정보는 경판정 심볼과 그 이외의 심볼 간의 해밍거리에 열 가중치를 곱하여 산출하여 초기화를 수행한다. 초기화 시, 체크 노드 업데이트와 변수 노드 업데이트와 신드롬 체크로 구성되는 1회 반복의 실행 횟수를 설정할 수 있다. In step S110, the read values included in the received read vector are assigned to variable nodes, and based on the assigned values, the reliability of the hard decision is calculated using the Hamming distance to generate similar soft decision information. The hard decision information may be provided from the outside, and the similar soft decision information is initialized by calculating the hamming distance between the hard decision symbol and other symbols by multiplying the column weight. During initialization, you can set the number of executions of one iteration consisting of check node update, variable node update, and syndrome check.

단계 S120에서, 모든 검사 노드에 대하여 신드롬 값을 계산한다. In step S120, syndrome values are calculated for all test nodes.

계산된 신드롬 값이 0이라면 단계 S160으로 진행하고 변수노드의 판정값으로 코드워드로서 출력하고 디코딩을 종료한다. If the calculated syndrome value is 0, the process proceeds to step S160, the decision value of the variable node is output as a code word, and decoding is terminated.

단계 S130으로 진행하여 계산된 신드롬 값이 0이 아니라면 반복 횟수가 미리 설정된 실행 횟수인지 확인하여, 미리 설정된 실행횟수가 아니면, 단계 S140에서 체크 노드 업데이트와 변수 노드 업데이트를 진행한다. Proceeding to step S130, if the calculated syndrome value is not 0, it is checked whether the number of iterations is a preset execution number, and if it is not the preset execution number, check node update and variable node update are performed in step S140.

체크 노드 업데이트는 매 회, EXI(Extrinsic information sum) 연산을 수행하며, 상기 EXI 연산 결과로 얻은 심볼의 유사 연판정 정보를 업데이트 할 때 해밍거리에 기초하여 산출한 가중치 계수를 사용하할 수 있다. The check node update performs an Extrinsic Information Sum (EXI) operation each time, and when updating similar soft decision information of a symbol obtained as a result of the EXI operation, a weight coefficient calculated based on the Hamming distance may be used.

일 실시예에서, 상기 체크 노드 업데이트는 매 회, EXI 연산을 수행하며, i번째 신드롬 체크의 결과 값이 0인 경우에는 EXI 연산을 수행하지 않고 변수 노드로부터 받은 경판정 심볼에 대해 유사 연판정 정보를 업데이트할 수 있다. In one embodiment, the check node update performs an EXI operation each time, and when the result value of the i-th syndrome check is 0, the EXI operation is not performed and the similar soft decision information is received for the hard decision symbol received from the variable node. can be updated.

단계 S130에서 반복횟수가 미리 설정된 실행 횟수와 동일하면 단계 S 170으로 진행하여 경판정 데이터에 대한 디코딩 실패로 판단하여 페일을 출력한다. In step S130, if the number of iterations is the same as the preset number of executions, the process proceeds to step S170, it is determined that decoding of the hard decision data has failed and a fail is output.

S150에서 반복 횟수를 1증가시키고 단계 S120에서 단계 S150의 디코딩 동작을 반복 수행한다. In step S150, the number of iterations is increased by 1, and in step S120, the decoding operation of step S150 is repeatedly performed.

체크 노드 업데이트와 변수 노드 업데이트와 신드롬 체크로 구성되는 1 반복을 복수회 수행한다. One iteration consisting of check node update, variable node update, and syndrome check is performed multiple times.

도 8은 본 발명의 일 실시예에 따른 반도체 메모리 시스템의 개략적인 구성을 나타내는 구성도이다. 8 is a configuration diagram showing a schematic configuration of a semiconductor memory system according to an exemplary embodiment of the present invention.

반도체 메모리 시스템은, 반도체 메모리(100), 디코더(200) 및 채널(300)을 포함할 수 있다. A semiconductor memory system may include a semiconductor memory 100 , a decoder 200 and a channel 300 .

반도체 메모리(100)는 인코딩된 데이터인 코드워드를 저장하는 저정한다. 반도체 메모리(100)는 NAND 플래시 메모리일 수 있다. The semiconductor memory 100 stores codewords that are encoded data. The semiconductor memory 100 may be a NAND flash memory.

디코더(200)는 반도체 메모리(100)에 저장된 코드워드를 패리티 검사 행렬을 통해 디코딩하여 복호화된 데이터를 생성한다. 디코더(200)는 도 1 내지 도 6을 참조하여 설명한 디코더(200)의 기능을 포함하므로 상세한 설명은 생략한다.The decoder 200 decodes the codeword stored in the semiconductor memory 100 through a parity check matrix to generate decoded data. Since the decoder 200 includes the functions of the decoder 200 described with reference to FIGS. 1 to 6, a detailed description thereof will be omitted.

채널(300)은 반도체 메모리(100)와 디코더(200)를 연결한다. The channel 300 connects the semiconductor memory 100 and the decoder 200 .

일 실시예에서 채널(300)은 반도체 메모리(100)로부터 리드된 코드워드에 기초하여 경판정 값을 구할 수 있다. In one embodiment, the channel 300 may obtain a hard decision value based on a codeword read from the semiconductor memory 100 .

채널(300)은 상기 경판정 값을 디코더(200)에 제공한다. Channel 300 provides the hard decision value to decoder 200 .

전술한 바와 같이, 본 발명의 일 실시예에 따른 디코더는 오류율 성능이 좋으면서도 빠른 처리 속도로 디코딩을 수행할 수 있으므로, 패리티 비트에 허용되는 메모리 공간이 상대적으로 적은 NAND 플래시 메모리에도 적용이 가능하다. As described above, since the decoder according to an embodiment of the present invention can perform decoding at a high processing speed while having good error rate performance, it can be applied to NAND flash memories with relatively small memory space allowed for parity bits. .

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been looked at with respect to its preferred embodiments. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered from an illustrative rather than a limiting point of view. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the equivalent scope will be construed as being included in the present invention.

Claims (15)

비이진 저밀도 패리티 검사 코드를 디코딩하는 방법으로서,
반도체 메모리로부터 N개의 경판정 심볼로 이루어진 코드워드(Codewords)를 수신하는 단계;
수신된 코드워드를 구성하는 경판정 심볼을 기준으로 각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼들에 대하여 해밍거리가 작을수록 더 커지는 유사 연판정 정보를 생성하는 단계; 및
상기 유사 연판정 정보를 기반으로 오류정정 코드워드(corrected codeword)를 결정하는 단계;
를 포함하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
A method of decoding a non-binary low density parity check code, comprising:
Receiving codewords consisting of N hard decision symbols from a semiconductor memory;
generating similar soft decision information that increases as the Hamming distance decreases for each hard decision symbol and remaining symbols except for each hard decision symbol in the Galois field based on the hard decision symbols constituting the received codeword; and
determining a corrected codeword based on the similar soft decision information;
Non-binary low density parity check code decoding method comprising a.
제1항에 있어서,
상기 유사 연판정 정보를 생성하는 단계는,
각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼들간의 해밍거리를 고려한 값에 열 가중치를 곱하여 유사 연판정 정보를 생성하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to claim 1,
Generating the similar soft decision information,
Non-binary low-density parity check code decoding method characterized by generating pseudo soft decision information by multiplying a value considering the hamming distance between each hard decision symbol and the remaining symbols excluding each hard decision symbol in the Galois field by a column weight.
제1항에 있어서,
상기 오류정정 코드워드를 결정하는 단계는,
상기 저밀도 패리티 검사 코드의 패리티 검사 매트릭스(H)에 의해 결정되는, 상기 N개의 변수 노드와의 연결 관계를 가지는 M개의 체크 노드와 상기 N개의 변수 노드 간에 반복적인 메시지 교환에 의해 상기 코드워드를 복호화하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to claim 1,
Determining the error correction codeword,
Decrypt the codeword by repetitive message exchange between M check nodes having a connection relationship with the N variable nodes and the N variable nodes, determined by the parity check matrix (H) of the low density parity check code Non-binary low density parity check code decoding method, characterized in that.
제1항에 있어서,
상기 비이진 저밀도 패리티 검사 코드는 차수 q의 갈루아 필드 GF(q)에 대해 정의된 코드인 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to claim 1,
The non-binary low density parity check code is a code defined for a Galois field GF(q) of order q.
제4항에 있어서,
상기 코드워드(corrected codeword)를 결정하는 단계는
신드롬 체크와, 체크 노드 업데이트, 변수 노드 업데이트를 1세트로 하며, 상기 세트는 미리 설정된 횟수 반복 실행되는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to claim 4,
Determining the codeword (corrected codeword)
A non-binary low density parity check code decoding method comprising a syndrome check, a check node update, and a variable node update as one set, wherein the set is repeatedly executed a preset number of times.
제5항에 있어서,
상기 체크 노드 업데이트는 매 회, EXI(Extrinsic information sum) 연산을 수행하며, 상기 EXI 연산 결과로 얻은 심볼의 유사 연판정 정보를 업데이트 할 때 해밍거리에 기초하여 산출한 가중치 계수를 사용하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to claim 5,
The check node update performs an Extrinsic Information Sum (EXI) operation each time, and when updating similar soft decision information of a symbol obtained as a result of the EXI operation, a weight coefficient calculated based on a Hamming distance is used. A non-binary low-density parity check code decoding method.
제5항에 있어서,
상기 체크 노드 업데이트는 매 회, i번째 신드롬 체크의 결과 값이 0인 경우에는 EXI(Extrinsic information sum) 연산을 수행하지 않고 변수 노드로부터 받은 경판정 심볼에 대해 유사 연판정 정보를 업데이트하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to claim 5,
The check node update is characterized by updating similar soft decision information for the hard decision symbol received from the variable node without performing EXI (Extrinsic Information Sum) operation when the result value of the ith syndrome check is 0 each time. A non-binary low-density parity check code decoding method.
반도체 메모리로부터 N개의 경판정 심볼로 이루어진 코드워드(Codewords)를 수신하고, 수신된 코드워드를 구성하는 경판정 심볼을 기준으로 각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼에 대하여 해밍거리가 작을수록 더 커지는 유사 연판정 정보를 생성하는 초기화 모듈; 및
상기 유사 연판정 정보를 기반으로 오류정정 코드워드(corrected codeword)를 결정하는 노드 프로세서;
를 포함하는 비이진 저밀도 패리티 검사 코드 디코더.
Codewords composed of N hard decision symbols are received from the semiconductor memory, and based on the hard decision symbols constituting the received codewords, each hard decision symbol and the remaining symbols except for each hard decision symbol in the Galois field are generated. an initialization module for generating similar soft decision information that increases as the Hamming distance decreases; and
a node processor determining an error correction codeword based on the similar soft decision information;
A non-binary low density parity check code decoder comprising a.
제8항에 있어서,
상기 초기화 모듈은,
각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼들간의 해밍거리를 고려한 값에 열 가중치를 곱하여 유사 연판정 정보를 생성하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
According to claim 8,
The initialization module,
A non-binary low-density parity check code decoder characterized by generating pseudo soft decision information by multiplying a value considering the Hamming distance between each hard decision symbol and the remaining symbols excluding each hard decision symbol in the Galois field by a column weight.
제8항에 있어서,
상기 노드 프로세서는,
상기 저밀도 패리티 검사 코드의 패리티 검사 매트릭스(H)에 의해 결정되는, 상기 N개의 변수 노드와의 연결 관계를 가지는 M개의 체크 노드와 상기 N개의 변수 노드 간에 반복적인 메시지 교환에 의해 상기 수신된 코드워드를 복호화하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
According to claim 8,
The node processor,
The received codeword by repetitive message exchange between the N variable nodes and M check nodes having a connection relationship with the N variable nodes, determined by the parity check matrix (H) of the low density parity check code. Non-binary low density parity check code decoder, characterized in that for decoding.
제8항에 있어서,
상기 노드 프로세서는,
신드롬 체크와, 체크 노드 업데이트, 변수 노드 업데이트를 1세트로 하며, 상기 세트는 미리 설정된 횟수 반복 실행되는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
According to claim 8,
The node processor,
A non-binary low density parity check code decoder comprising a syndrome check, a check node update and a variable node update as one set, wherein the set is repeatedly executed a preset number of times.
제11항에 있어서,
상기 체크 노드 업데이트는 매 회, EXI(Extrinsic information sum) 연산을 수행하며, 상기 EXI 연산 결과로 얻은 심볼의 유사 연판정 정보를 업데이트 할 때 해밍거리에 기초하여 산출한 가중치 계수를 사용하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
According to claim 11,
The check node update performs an Extrinsic Information Sum (EXI) operation each time, and when updating similar soft decision information of a symbol obtained as a result of the EXI operation, a weight coefficient calculated based on a Hamming distance is used. A non-binary low density parity check code decoder.
제12항에 있어서,
상기 체크 노드 업데이트는 매 회, i번째 신드롬 체크의 결과 값이 0인 경우에는 EXI(Extrinsic information sum) 연산을 수행하지 않고 변수 노드로부터 받은 경판정 심볼에 대해 유사 연판정 정보를 업데이트하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
According to claim 12,
The check node update is characterized by updating similar soft decision information for the hard decision symbol received from the variable node without performing EXI (Extrinsic Information Sum) operation when the result value of the ith syndrome check is 0 each time. A non-binary low density parity check code decoder.
인코딩된 데이터인 코드워드를 저장하는 반도체 메모리;
상기 반도체 메모리에 저장된 상기 코드워드를 서브행렬들로 구성된 패리티 검사 행렬을 통해 디코딩하여 복호화된 데이터를 생성하는 디코더; 및
상기 반도체 메모리와 상기 디코더를 연결하며 상기 반도체 메모리 장치의 상기 코드워드를 상기 디코더로 제공하는 채널
을 포함하고,
상기 디코더는
반도체 메모리로부터 N개의 경판정 심볼로 구성되는 코드워드(Codewords)를 수신하고, 수신된 코드워드를 구성하는 경판정 심볼을 기준으로 각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼에 대하여 해밍거리가 작을수록 더 커지는 유사 연판정 정보를 생성하는 초기화 모듈; 및
상기 유사 연판정 정보를 기반으로 오류정정 코드워드(corrected codeword)를 결정하는 노드 프로세서;
를 포함하는 것을 특징으로 하는 반도체 메모리 시스템.
a semiconductor memory that stores codewords that are encoded data;
a decoder generating decoded data by decoding the codeword stored in the semiconductor memory through a parity check matrix composed of sub-matrices; and
A channel connecting the semiconductor memory and the decoder and providing the codeword of the semiconductor memory device to the decoder
including,
The decoder
Codewords composed of N hard decision symbols are received from the semiconductor memory, and the remaining symbols except for each hard decision symbol in each hard decision symbol and the Galois field are based on the hard decision symbols constituting the received codeword. an initialization module for generating similar soft decision information that increases as the Hamming distance decreases for ; and
a node processor determining an error correction codeword based on the similar soft decision information;
A semiconductor memory system comprising a.
제14항에 있어서, 상기 반도체 메모리는 NAND 플래시 메모리인 것을 특징으로 하는 반도체 메모리 시스템.15. The semiconductor memory system according to claim 14, wherein the semiconductor memory is a NAND flash memory.
KR1020210111347A 2021-08-24 2021-08-24 Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code KR102635444B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210111347A KR102635444B1 (en) 2021-08-24 2021-08-24 Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210111347A KR102635444B1 (en) 2021-08-24 2021-08-24 Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code

Publications (2)

Publication Number Publication Date
KR20230029168A true KR20230029168A (en) 2023-03-03
KR102635444B1 KR102635444B1 (en) 2024-02-07

Family

ID=85510626

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210111347A KR102635444B1 (en) 2021-08-24 2021-08-24 Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code

Country Status (1)

Country Link
KR (1) KR102635444B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139571A (en) * 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 Error correction decoder and memory system having the error correction decoder

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139571A (en) * 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 Error correction decoder and memory system having the error correction decoder

Also Published As

Publication number Publication date
KR102635444B1 (en) 2024-02-07

Similar Documents

Publication Publication Date Title
US7519898B2 (en) Iterative decoding of linear block codes by adapting the parity check matrix
US8566666B2 (en) Min-sum based non-binary LDPC decoder
US10367526B2 (en) Irregular low density parity check processing system with non-uniform scaling
US10560120B2 (en) Elementary check node processing for syndrome computation for non-binary LDPC codes decoding
US20050149840A1 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
US8312353B2 (en) Decoding device, decoding method, receiving device, and storage medium reproducing device
CN109586731B (en) System and method for decoding error correction codes
KR20090126829A (en) Iterative decoding method and iterative decoding apparatus
Zimmermann et al. Reduced complexity LDPC decoding using forced convergence
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
US10476523B2 (en) Elementary check node-based syndrome decoding using pre-sorted inputs
US20210391872A1 (en) Method and Apparatus for Vertical Layered Decoding of Quasi-Cyclic Low-Density Parity Check Codes Built from Clusters of Circulant Permutation Matrices
US11290128B2 (en) Simplified check node processing in non-binary LDPC decoder
KR102635444B1 (en) Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code
Yatribi et al. Gradient-descent decoding of one-step majority-logic decodable codes
US11476870B2 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
WO2011144161A1 (en) Method, device and system for forward error correction
Garcia-Herrero et al. High-speed NB-LDPC decoder for wireless applications
Song et al. A novel low-complexity joint coding and decoding algorithm for NB-LDPC codes
US11245421B2 (en) Check node processing methods and devices with insertion sort
Zolotarev et al. Usage of divergence within concatenated multithreshold decoding convolutional codes
Tiwari et al. Hybrid weighted bit flipping low density parity check decoding
Pathak et al. Performance Analysis of Low-Density Parity Check Codes for 5G Technology
García-Herrero et al. A symbol flipping decoder for NB-LDPC relying on multiple votes
Djordjevic Advanced Coding and Coded Modulation Techniques

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant