KR102635444B1 - 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 PDFInfo
- Publication number
- KR102635444B1 KR102635444B1 KR1020210111347A KR20210111347A KR102635444B1 KR 102635444 B1 KR102635444 B1 KR 102635444B1 KR 1020210111347 A KR1020210111347 A KR 1020210111347A KR 20210111347 A KR20210111347 A KR 20210111347A KR 102635444 B1 KR102635444 B1 KR 102635444B1
- Authority
- KR
- South Korea
- Prior art keywords
- hard decision
- parity check
- density parity
- node
- decoder
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000011017 operating method Methods 0.000 title abstract 2
- 239000004065 semiconductor Substances 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000012937 correction Methods 0.000 claims abstract description 19
- 208000011580 syndromic disease Diseases 0.000 claims description 40
- 239000011159 matrix material Substances 0.000 claims description 34
- 230000007423 decrease Effects 0.000 claims description 5
- 230000003252 repetitive effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1171—Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명의 일 실시예에 따른 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템에 관한 것으로, 비이진 저밀도 패리티 검사 코드를 디코딩하는 방법은, 반도체 메모리로부터 N개의 경판정 심볼로 구성된 코드워드(Codewords)를 수신하고, 수신된 코드워드를 구성하는 경판정 심볼을 기준으로 각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼에 대하여 해밍거리가 작을수록 더 커지는 유사 연판정 정보를 생성하는 단계; 및 상기 유사 연판정 정보를 기반으로 오류정정 코드워드(corrected codeword)를 결정하는 단계를 포함하는 것을 특징으로 한다. The present invention relates to a non-binary low-density parity check code decoder, an operating method thereof, and a memory system according to an embodiment of the present invention, wherein the method for decoding a non-binary low-density parity check code includes a code composed of N hard decision symbols from a semiconductor memory. Words (Codewords) are received, and based on the hard decision symbols constituting the received codewords, the smaller the Hamming distance is, the larger the Hamming distance is for each hard decision symbol and the remaining symbols in the Galois field, excluding each hard decision symbol. generating information; and determining an error correction codeword based on the similar soft decision information.
Description
본 발명은 비이진 저밀도 패리티 검사 코드(nonbinary low-density parity-check; NB-LDPC)를 디코딩하는 기술에 관한 것이고, 보다 구체적으로는 낸드 플래시 메모리에 대한 유사 연판정 정보를 이용한 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템에 관한 것이다. The present invention relates to a technology for decoding a nonbinary low-density parity-check (NB-LDPC), and more specifically, to a nonbinary low-density parity check using similar soft decision information for NAND flash memory. It relates to a code decoder, its operation method and memory system.
본 발명은 저밀도 패리티 검사 코드에 관한 것으로, 더 구체적으로는 비이진 저밀도 패리티 검사 코드를 복호화하는 기술에 관한 것이다.The present invention relates to low-density parity check codes, and more specifically, to technology 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 Code. ) is a type of At the time this code was proposed, vacuum tubes were beginning to be replaced by transistors, and at that time, this code was not put into practical use due to the enormous amount of calculations required for simulation to verify the code and the difficulties in its implementation. However, thanks to the development of information and communication technology over the past 30 years, the recent emergence of high-performance processors, and the need to provide high-quality services in the field of multimedia mobile communications, the utility of this code has recently been re-recognized, and the characteristics of this code and its encoding have been changed. /Research on decryption methods is gaining momentum. This code is also being proposed as a channel coding method in the 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 코드 보다 대체로 월등한 성능을 보인다.The LDPC code, like the turbo code, is known to show excellent performance approaching Shannon's channel capacity (Shannon Limit). The LDPC code has superior performance compared to the turbo code, the implementation of the decoder is not very complicated, and parallel operation is possible, enabling high-speed processing, and like the turbo code, a stochastic iterative decoding technique can be applied, resulting in a low error rate and It is known to be suitable for mobile communication systems that require high-speed data processing. These LDPC codes are 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 weaknesses in terms of bit error rate for short or medium-length codewords, while non-binary LDPC codes show excellent performance even for short-length codewords. Even at low error rates, it generally shows superior performance to binary LDPC codes, including no error floor phenomenon.
그러나, 비이진 LDPC 코드는 그 복호 과정에서 H 행렬의 행 가중치 (row weight) 또는 갈루아 필드(Galois Field: GF)의 차수 q가 증가함에 따라 그 복잡도가 증가한다는 단점이 있다. 이에 따라, 최근에는 LDPC 복호화기의 성능을 크게 떨어뜨리지 않으면서 복호 과정을 단순화시켜 복호 과정에서의 연산량을 줄이는 방법에 대한 연구가 활발히 진행되고 있는 추세이다.However, the non-binary LDPC code has the disadvantage that its complexity increases as the row weight of the H matrix or the order q of the Galois Field (GF) increases during the decoding process. Accordingly, research on methods to reduce the amount of computation in the decoding process by simplifying the decoding process without significantly reducing the performance of the LDPC decoder is being actively conducted.
본 발명의 과제는 비이진 LDPC 복호화기의 성능 저하를 최소화시키면서도 고속 복호화를 가능하게 하는 비이진 LDPC 코드의 복호화 방법을 제공하는 것이다.The object of the present invention is to provide a decoding method for non-binary LDPC codes that enables high-speed decoding while minimizing performance degradation of the non-binary LDPC decoder.
본 발명의 다른 과제는 비이진 LDPC 복호화기의 체크 노드(check nodes)에서의 연산량과 연산 지연을 줄일 수 있는 비이진 LDPC 코드의 복호화 방법을 제공하는 것이다.Another object of the present invention is to provide a method for decoding non-binary LDPC codes that can reduce 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 problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the description below. Therefore, a decoding method that can reduce decoding complexity and prevent deterioration of error rate performance is required.
본 발명은 디코딩 복잡성을 줄이는 동시에 오류율 성능을 향상시킬 수 있는 디코딩 방법 및 장치를 제공하고자 한다.The present invention seeks to provide a decoding method and device that can reduce decoding complexity and improve error rate performance.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problem to be solved by the present invention is not limited to the problem(s) mentioned above, and other problem(s) not mentioned will be clearly understood by those skilled in the art from the description below.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 비이진 저밀도 패리티 검사 코드를 디코딩하는 방법은 반도체 메모리로부터 경판정 심볼로 이루어진 코드워드(Codewords)를 수신하는 단계; 수신된 코드워드를 구성하는 경판정 심볼 N개를 기준으로 각 경판정 심볼과 갈루아 필드 내 경판정 심볼을 제외한 나머지 심볼에 대하여 해밍거리가 작을수록 더 커지는 유사 연판정 정보를 생성하는 단계; 변수 노드와 체크 노드 연산을 수행하는 단계 및 상기 유사 연판정 정보를 미리 설정된 임계값과 비교하여 오류정정 코드워드(corrected codeword)를 결정하는 단계를 포함하는 것을 특징으로 한다. A method of decoding a non-binary low-density parity check code according to an embodiment of the present invention to achieve the above object includes receiving codewords consisting of hard decision symbols from a semiconductor memory; Generating pseudo-soft decision information that becomes larger as the Hamming distance decreases for each hard decision symbol and the remaining symbols excluding the hard decision symbols in the Galois field, based on N hard decision symbols constituting the received codeword; It is characterized by comprising the step of performing a variable node and check node operation and comparing the similar soft decision information with a preset threshold to determine an error correction codeword (corrected codeword).
일 실시예에서, 상기 유사 연판정 정보를 생성하는 단계는, 상기 경판정 심볼과 상시 수신된 코드워드 중 상기 경판정 심볼을 제외한 나머지 심볼간의 해밍거리를 고려한 값에 열 가중치를 곱하여 유사 연판정 정보를 생성하는 것을 특징으로 한다. In one embodiment, the step of generating the pseudo soft decision information includes multiplying a value considering the Hamming distance between the hard decision symbol and the remaining symbols excluding the hard decision symbol among the always received codewords by a column weight to generate pseudo soft decision information. It is characterized by generating.
일 실시예에서, 상기 오류정정 코드워드를 결정하는 단계는, 상기 저밀도 패리티 검사 코드의 패리티 검사 매트릭스(H)에 의해 결정되는, 상기 N개의 변수 노드와의 연결 관계를 가지는 M개의 체크 노드와 상기 N개의 변수 노드 간에 반복적인 메시지 교환에 의해 상기 수신된 코드워드를 복호화하는 것을 특징으로 한다. In one embodiment, the step of determining the error correction codeword includes M check nodes having a connection relationship with the N variable nodes, which are determined by the parity check matrix (H) of the low-density parity check code, and The received codeword is decrypted by repetitive message exchange between N variable nodes.
일 실시예에서, 상기 비이진 저밀도 패리티 검사 코드는 차수 q의 갈루아 필드 GF(q)에 대해 정의된 코드인 것을 특징으로 한다. In one embodiment, the non-binary low-density parity check code is characterized as 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) includes a syndrome check, check node update, and variable node update 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 EXI (Extrinsic information sum) operation every time, and when updating the similar soft decision information of the symbol obtained as a result of the EXI operation, the weight coefficient calculated based on the Hamming distance is used. It is characterized by its use.
일 실시예에서, 상기 체크 노드 업데이트는 매 회, i번째 신드롬 체크의 결과 값이 0인 경우에는 EXI 연산을 수행하지 않고 변수 노드로부터 받은 경판정 심볼에 대한 유사 연판정 정보를 업데이트 하는 것을 특징으로 한다. In one embodiment, the check node update is characterized by updating similar soft decision information about the hard decision symbol received from the variable node without performing the EXI operation when the result value of the ith syndrome check is 0 every 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 the hard decision symbols and the remaining symbols in the GF excluding the hard decision symbols. An initialization module that generates similar soft decision information that becomes larger as the Hamming distance decreases; and a node processor that determines a corrected codeword using symbols with the largest value among the pseudo soft decision information.
본 발명의 일 실시예에 따른 반도체 메모리 시스템은, 인코딩된 데이터인 코드워드를 저장하는 반도체 메모리; 상기 반도체 메모리에 저장된 상기 코드워드를 서브행렬들로 구성된 패리티 검사 행렬을 통해 디코딩하여 복호화된 데이터를 생성하는 디코더; 및 상기 반도체 메모리와 상기 디코더를 연결하며 상기 반도체 메모리 장치의 상기 코드워드를 상기 디코더로 제공하는 채널을 포함하는 것을 특징으로 한다. A semiconductor memory system according to an embodiment of the present invention includes a semiconductor memory that stores a codeword, which is encoded data; a decoder that generates decoded data by decoding the codeword stored in the semiconductor memory through a parity check matrix composed of submatrices; 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 as a NAND flash memory.
본 발명은 BER(Bit Error Rate) 성능을 개선하고 계산량을 감소시키는 효과가 있다.The present invention has the 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은 본 발명의 일 실시예에 따른 반도체 메모리 시스템의 개략적인 구성을 나타내는 구성도이다. Figure 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.
Figure 2 is an example 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.
Figure 4 is a diagram showing an algorithm for decoding according to an embodiment of the present invention.
Figure 5 is a diagram for explaining the reliability of hard decision information according to an embodiment of the present invention.
Figure 6 is a diagram showing an algorithm for decoding according to another embodiment of the present invention.
Figure 7 is a flowchart explaining a method of decoding a non-binary low-density parity check code according to an embodiment of the present invention.
Figure 8 is a configuration diagram showing the schematic configuration of a semiconductor memory system according to an 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 changes, equivalents, and substitutes included in the spirit and technical scope of the present invention. While describing each drawing, similar reference numerals are used for similar components.
제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. The above terms are used only for the purpose of distinguishing one component from another. For example, a first component may be named a second component, and similarly, the second component may also be named a first component without departing from the scope of the present invention. The term and/or includes any of a plurality of related stated items or a combination of a plurality of related stated items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is said to be "connected" or "connected" to another component, it is understood that it may be directly connected to or connected to the other component, but that other components may exist in between. It should be. On the other hand, when it is mentioned that a component is “directly connected” or “directly connected” to another component, it should be understood that there are no other components in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments and are not intended to limit the invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as “comprise” or “have” are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the technical field to which the present invention pertains. Terms defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and unless explicitly defined in the present application, should not be interpreted in an ideal or excessively formal sense. No.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the attached drawings.
본 발명의 일 실시예에 따른 디코더는 채널로부터 코드워드에 대응하는 신호를 수신하고 수신된 신호에 대한 오류 정정 디코딩을 수행할 수 있다. A decoder according to an embodiment of the present invention can 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) 알고리즘 등이 이용될 수 있다.The decoder according to an embodiment of the present invention can perform error correction decoding using various algorithms that adopt an iterative decoding scheme. The decoder according to an embodiment of the present invention can perform error correction decoding using a message passing algorithm (MPA), also called a belief propagation algorithm (BPA). As a message passing algorithm, a bit flipping algorithm, symbol flipping algorithm, min-sum algorithm, or sum-product algorithm may be used.
본 발명의 일 실시예에 따른 디코더는, 설정된 최대 반복 횟수(maximum iteration number; I) 내에서 오류 정정 디코딩을 수행할 수 있다. 여기서, I는 자연수일 수 있다. 오류 정정 디코더는, 최대 반복 횟수(I) 내에서 오류 정정 코드의 패리티 체크 행렬의 제약들(constraints)을 만족하는 유효한 코드워드(valid codeword)가 생성되는 경우, 생성된 유효한 코드워드를 디코딩된 코드워드(decoded codeword)로서 출력할 수 있다. The decoder according to an embodiment of the present invention can 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 repetitions (I). It can be output as a word (decoded codeword).
본 발명의 일 실시예에 따른 디코더는 최대 반복 횟수(I) 내에서 오류 정정 코드의 패리티 체크 행렬의 제약들을 만족하는 유효한 코드워드가 생성되지 않는 경우, 오류 정정 디코딩이 실패하였음을 나타내는 페일(fail) 신호를 출력할 수 있다.If 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 repetitions (I), the decoder according to an embodiment of the present invention sends a fail signal indicating that error correction decoding has failed. ) signal can be output.
도 1은 본 발명의 일 실시예에 따른 비-이진 저밀도 패리티 체크(non-binary low density parity check; NB-LDPC) 코드에 대한 디코더의 구성을 설명하기 위한 도면이고, 도 2는 본 발명의 일 실시예에 따른 패리티 체크 행렬을 설명하기 위한 예시도이다. Figure 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 Figure 2 is an example of the present invention. This is an example 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 can all be referred to as a node processor.
초기화 모듈(210)은 채널로부터 코드워드에 대응하는 판독 벡터를 수신할 수 있다. 초기화 모듈(210)는, 판독 벡터에 포함된 판독 값들(read values)을 그룹핑(grouping)하여 변수 노드들(variable nodes)에게 할당할 초기 심볼들(initial symbols)을 구성할 수 있다. Initialization module 210 may receive a read vector corresponding to the codeword from the channel. The initialization module 210 may configure initial symbols to be assigned to variable nodes by grouping read values included in the read vector.
또한, 초기화 모듈(210)은 초기 심볼들을 기반으로 연판정 정보(신뢰도라고도 함)를 생성할 수 있다. 유사 연판정 정보는, 경판정 값들(hard decision values)에 기초하여 해밍거리를 이용하여 생성될 수 있다. 일 실시예에서, 유사 연판정 정보는, 해밍거리에 열 가중치 dv를 곱하여 산출한다.Additionally, 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 the Hamming distance based on hard decision values. In one embodiment, pseudo 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 repetition is performed. That is, the initialization module 210 may generate similar soft decision values of the variable nodes based on each of the initial symbols forming the codeword and assign 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 results that converge 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 delivers 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 delivers 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 delivered to the check nodes, and each variable node based on the C2V messages received from the check node. The pseudo soft decision value of can be updated.
일 실시예에서 변수 노드 처리 모듈(220)의 출력은 각 패리티 검사 행렬의 각 행에 대하여 그 행의 원소 값들이 0이 아닌 값(변수 노드)을 갖는 열들에 대응하는 입력값이 된다. In one embodiment, the output of the variable node processing module 220 becomes an input value corresponding to columns in which element values of the row have non-zero values (variable nodes) for 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 the variable node in each iteration except the first iteration.
일 실시예에서 체크 노드 처리 모듈(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 the row having a non-zero value in each column based on the columns of the parity check matrix (H) are output, and this is input to the variable node processing module 220.
다른 실시예에서, 체크 노드 처리 모듈(230)은 신뢰도에 해밍거리에 기초한 가중치 계수 θ를 더 한 값으로 다음 번 신뢰도를 업데이트 할 수 있다. 이에 대하여는 후술되는 도 6을 참조하여 상세히 설명하기로 한다. In another embodiment, the check node processing module 230 may update the next reliability with a value obtained by adding a weight coefficient θ based on the Hamming distance to the reliability. This will be explained in detail with reference to FIG. 6, which will 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 repetition. For example, the syndrome check can be performed by checking whether the value calculated by Equation 1, which is the syndrome check equation, is 0.
[수학식 1] [Equation 1]
여기서 z(k)는 k번째 반복에서 대응하여 생성되는 경판정 값이고, H는 오류 정정 코드의 패리티 체크 행렬이다. Here, z (k) is the hard decision value correspondingly generated at the kth iteration, and H is the parity check matrix of the error correction code.
k번째 반복에서 경판정 심볼 은 j번째 변수 노드에서 이웃하는 채널 노드로 전달된다. Hard decision symbol at kth iteration is passed from the jth variable node to the neighboring channel node.
i번째 채널 노드에서 j번째 변수 노드에 전달되는 EXI(extrinsic information sum)은 로 표기되고, 는 수학식 2와 같이 연산된다.EXI (extrinsic information sum) passed from the ith channel node to the jth variable node is It is expressed as is calculated as in Equation 2.
[수학식 2][Equation 2]
여기서, i번째 채널 노드에 연결되는 Ni는 변수 노드의 집합을 의미하고, 는 Ni의 부분집합으로, Ni에서 j번째 변수 노드(0≤i<M, 0≤j<N)를 제외한 집합을 의미한다.Here, Ni connected to the ith channel node means a set of variable nodes, is a subset of Ni, meaning the set excluding the jth variable node (0≤i<M, 0≤j<N) from Ni.
도출된 에 기초하여, 변수노드는 경판정 벡터 z(k)를 수학식 3과 같이 갱신한다. derived Based on , the variable node updates the hard decision vector z (k) as shown in Equation 3.
[수학식 3][Equation 3]
다른 실시예에서, 신드롬 체크 모듈(240)은, 신드롬 체크의 모든 결과값이 0이되는 변수노드의 판정값을 코드워드로서 출력한다. In another embodiment, the syndrome check module 240 outputs the decision value of the variable node where all result values of the syndrome check are 0 as a codeword.
도 2를 참조하면 (n, k) 코드를 정의하는 패리티 체크 행렬(H)의 일 예를 도시하였다. (n, k) 코드는, (n-k)×n의 크기를 갖는 패리티 체크 행렬로 정의될 수 있다. 일 실시예에서는 설명의 편의를 위하여 3×4 패리티 체크 행렬을 예시하였으나, 이에 한정하는 것은 아니다. 패리티 체크 행렬의 각각의 엔트리는, 갈루아 체(Galois field)에 속하는 원소(element)들로 표현될 수 있다.Referring to Figure 2, an example of a parity check matrix (H) defining an (n, k) code is shown. The (n, k) code can be defined as a parity check matrix with a size of (n-k)×n. In one embodiment, a 3×4 parity check matrix is illustrated for convenience of explanation, but the present invention is not limited thereto. Each entry of the parity check matrix can be expressed as elements belonging to a Galois field.
갈루아 체(GF(q))는 q 개의 원소들로 이루어진 유한체이며, 여기서 q=2p이며 p는 양의 정수이다. The Galois field (GF(q)) is a finite field composed of q elements, where q=2 p and p is a positive integer.
갈루아 체(GF(q))의 원소들은, {0, α0, α1, ..., αq-2}로 표현될 수 있다. 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 in the syndrome vector (S i ), the syndrome check has failed. It may mean that (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 repetitions (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 a connection relationship 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 as 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를 갖는다. In a Tanner graph, the degree of a node, which is the number of adjacent nodes, corresponds to the number of non-zero elements in a column or row and is called the weight of the matrix. These NB-LDPC codes have 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)= [, , ..., ]라 한다. 따라서, z(0)은 채널 출력의 경판정 심볼로 구성되며, 디코더의 입력이다. 디코딩 반복의 목표는 z(k)가 신드롬 체크 방정식인 수학식 1의 계산결과 0을 충족하도록 하는 것이다. 신드롬 체크 방정식을 0으로 하는 z(k)가 코드워드임을 의미한다. For an NB-LDPC code with a length of N, when the codeword of C is c=[c 0 , c 1 , c 2 ,..., c N-1 ], the channel input vector and reception vector are respectively x=[x 0 , x 1 , x 2 ,..., x N-1 ] and y=[y 0 , y 1 , y 2 ,..., y N-1 ]. Here, vector y is a vector in which noise is added to x. Based on Y, the hard decision vector of the kth decoded received symbol is z (k) = [ , , ..., ]. Therefore, z (0) consists of the hard decision symbols of the channel output and is the input of the decoder. The goal of decoding repetition is to ensure that z (k) satisfies 0 as the calculation result of Equation 1, which is the syndrome check equation. This means that z (k), which sets the syndrome check equation to 0, is a codeword.
도 4는 본 발명의 일 실시예에 따른 디코딩을 위한 알고리즘을 나타내는 도면이고, 도 5는 본 발명의 일 실시예에 따른 경판정 정보의 신뢰도를 설명하기 위한 도면이다. FIG. 4 is a diagram illustrating an algorithm for decoding according to an embodiment of the present invention, and FIG. 5 is a diagram illustrating the 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 Figure 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 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 at initialization. Here p is calculated as log 2 q. The reliability of all other symbols is set as in Equation 4.
[수학식 4] [Equation 4]
경판정 심볼로부터 해밍 거리가 가까울수록 심볼의 신뢰도가 높다는 것을 의미한다. 해밍 거리는 심볼간의 이진 XOR 연산으로 용이하게 계산할 수 있다. The closer the Hamming distance from the hard decision symbol, the higher the reliability of the symbol. The Hamming distance can be easily calculated using a binary XOR operation between symbols.
j번째 VN에 이웃한 i번째 CN으로부터 EXI(extrinsic information) 연산을 수행하여 연산값 σi,j가 a1인 경우, 은 다음 반복에서 투표될 것이고, =+1로 나타낼 수 있다. If EXI (extrinsic information) operation is performed from the i-th CN neighboring the j-th VN and the operation value σ i,j is a1, will be voted on in the next iteration, = It can be expressed as +1.
도 5을 참조하면, 경판정 심볼과 해밍거리가 1인 심볼들에만 신뢰도를 부여한 것과 달리 일 실시예에서는 모든 심볼에 대해 해밍거리에 따라 차등으로 신뢰도 값을 부여하고, dv를 곱하여 해밍거리에 따라 신뢰도 값(R)이 열 가중치 dv만큼 차이가 난다. dv를 곱함으로써 다음 반복에서 투표 한 번에 최대 신뢰도를 갖는 심볼이 바뀌게 되는 일이 발생하는 것을 방지할 수 있다.Referring to FIG. 5, unlike assigning reliability only to hard decision symbols and symbols with a Hamming distance of 1, in one embodiment, reliability values are assigned differentially to all symbols according to the Hamming distance, and multiplied by dv to determine the reliability value according to the Hamming distance. The reliability values (R) differ by the column weight dv. By multiplying dv, we can prevent the symbol with maximum confidence from changing in the next iteration in one vote.
신드롬 체크는 패리티 검사 매트릭스(H)의 전치 행렬을 이용한 상기 신드롬 체크 방정식인 수학식 1에 기초하여 수행된다. 계산된 신드롬 체크 방정식이 선정된 값 미만이 되거나 선정된 횟수 만큼 반복한다.The syndrome check is performed based on Equation 1, the syndrome check equation, using the transpose matrix of the parity check matrix (H). The calculated syndrome check equation is less than the selected value or is repeated a selected number of times.
체크노드와 변수 노드의 반복적인 메시지 교환에 의해 체크 노드 업데이트와 변수 노드 업데이트도 반복됨으로써 코드워드를 복호화할 수 있다. The codeword can be decrypted by repeating check node updates and variable node updates through repeated message exchange between the check node and variable node.
도 6은 본 발명의 다른 실시예에 따른 디코딩을 위한 알고리즘을 나타내는 도면이다. Figure 6 is a diagram showing an algorithm for decoding according to another embodiment of the present invention.
수신된 심볼의 j번째 신뢰도 는 채널 출력으로부터의 경판정 정보와 다른 갈루아 체 요소 사이의 해밍 거리를 기반으로 초기화된다. jth confidence of received symbol is initialized based on the hard decision information from the channel output and the Hamming distance between the different Galois field elements.
도 6을 참조하면 알 수 있는 바와 같이, 디코딩을 위한 알고리즘은 크게 1.초기화 단계 2.신드롬 체크 3. 체크 노드 업데이트 4. 변수 노드 업데이트로 구분된다. As can be seen with reference to Figure 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 in FIG. 6 is similar to the initialization step in FIG. 4, detailed description is omitted.
체크 노드 업데이트를 살펴보면,를 초기화에 사용하는 것과 같은 이유로 가중치 계수를 결정하기 위하여 해밍거리를 연산한다. Looking at the check node update, For the same reason that is used for initialization, the Hamming distance is used to determine the weight coefficients. Calculate .
가 작을 수록 의 신뢰도가 더 높기 때문에 상응하는 가중 계수 θ도 커진다. The smaller the Since the reliability of is higher, the corresponding weighting coefficient θ also gets bigger.
VN 업데이트 단계를 살펴보면, 연판정 복호화 알고리즘에서 채널 정보는 VN 업데이트의 각 반복에서 사용된다. 채널 출력의 경판정 심볼은 각 VN에서 투표되어 업데이트된다.Looking at the VN update step, in the soft decision decoding algorithm, channel information is used in each iteration of VN update. The hard decision symbols at the channel output are voted on and updated in each VN.
반복 복호화되는 신드롬 체크 단계에서, 신드롬 s(k)는 각 VN 업데이트 종료시점마다 수학식 5에 의해 반복 연산된다. In the syndrome check step of repeated decoding, the syndrome s (k) is repeatedly calculated according to Equation 5 at the end of each VN update.
[수학식 5][Equation 5]
s(k) = z(k) HT s (k) = z (k) H T
여기서, 신드롬 s(k)가 0일 때, 디코딩은 종료되고 z(k) 가 코드워드로서 출력된다. Here, when the syndrome s (k) is 0, decoding is terminated 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 a matrix multiplication, and the output vector length of the matrix multiplication becomes M. Each element of the output vector is calculated by Equation 6.
[수학식 6][Equation 6]
여기서, 수학식 6는 수학식 7과 같이 나타낼 수 있다. Here, Equation 6 can be expressed as Equation 7.
[수학식 7][Equation 7]
수학식 5에서 신드롬 s(k)가 0인 경우, [수학식 8]에서와 같이, i번째 채널 노드의 EXI와 같아진다. In Equation 5, if the syndrome s (k) is 0, it becomes the same as the EXI of the ith channel node, as in [Equation 8].
[수학식 8][Equation 8]
여기서, 더하기 및 곱하기 연산은 갈루아 체 연산이다. 수학식 6을 참조하면 가 0일 때 가 와 같다는 것을 알 수 있다. 이것은, 가 0일 때 CN 업데이트에서 EXI 연산을 건너뛸 수 있음을 의미한다. Here, addition and multiplication operations are Galois field operations. Referring to equation 6, When is 0 go It can be seen that it is the same as this is, When is 0, it means that EXI operation can be skipped in CN update.
각 채널노드는 신드롬 체크 후 가 0인지 여부를 나타내는 1비트 정보를 저장한다. Each channel node checks the syndrome and then Stores 1-bit information indicating whether is 0.
값이 0인 체크 노드 CN을 CNSAT라고 하고, 그 외의 체크 노드 CN은 CNUNSAT라고 한다. CNSAT의 경우, CN 업데이트 단계에서 EXI 연산은 건너 뛰고, 와 사이의 해밍거리만을 계산하여 가중치 계수를 설정한다. 따라서, 디코더의 오류율 성능에는 영향을 주지 않고, EXI의 연산량을 줄일 수 있다. A check node CN with a value of 0 is called CN SAT , and other check nodes CN are called CN UNSAT . In the case of CN SAT , the EXI operation is skipped in the CN update step, and Set the weight coefficient by calculating only the Hamming distance between them. Therefore, the amount of EXI calculation can be reduced without affecting the error rate performance of the decoder.
도 7은 본 발명의 일 실시예에 따른 비이진 저밀도 패리티 검사 코드를 디코딩하는 방법을 설명하는 흐름도이다. Figure 7 is a flowchart explaining a method of decoding a non-binary low-density parity check code according to an embodiment of the present invention.
도 7의 비이진 저밀도 패리티 검사 코드를 디코딩은 도 1 내지 도 6에 기초하여 설명한 디코더에 의해 행해진다. Decoding 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 readout 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 the reliability of the hard decision is calculated using the Hamming distance based on the assigned values to generate similar soft decision information. Hard decision information can be provided from the outside, and similar soft decision information is initialized by calculating the Hamming distance between the hard decision symbol and other symbols multiplied by the column weight. At initialization, the number of executions for one iteration consisting of check node update, variable node update, and syndrome check can be set.
단계 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 codeword, 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 repetitions is a preset number of executions. If not, the check node update and variable node update are performed in step S140.
체크 노드 업데이트는 매 회, EXI(Extrinsic information sum) 연산을 수행하며, 상기 EXI 연산 결과로 얻은 심볼의 유사 연판정 정보를 업데이트 할 때 해밍거리에 기초하여 산출한 가중치 계수를 사용하할 수 있다. The check node update performs EXI (Extrinsic information sum) operation every time, and when updating the similar soft decision information of the symbol obtained as a result of the EXI operation, the weight coefficient calculated based on the Hamming distance can be used.
일 실시예에서, 상기 체크 노드 업데이트는 매 회, EXI 연산을 수행하며, i번째 신드롬 체크의 결과 값이 0인 경우에는 EXI 연산을 수행하지 않고 변수 노드로부터 받은 경판정 심볼에 대해 유사 연판정 정보를 업데이트할 수 있다. In one embodiment, the check node update performs an EXI operation every time, and if the result value of the ith syndrome check is 0, the EXI operation is not performed and similar soft decision information is provided for the hard decision symbol received from the variable node. can be updated.
단계 S130에서 반복횟수가 미리 설정된 실행 횟수와 동일하면 단계 S 170으로 진행하여 경판정 데이터에 대한 디코딩 실패로 판단하여 페일을 출력한다. If the number of repetitions is the same as the preset number of executions in step S130, the process proceeds to step S170, where it is determined that decoding of the hard decision data has failed and a fail is output.
S150에서 반복 횟수를 1증가시키고 단계 S120에서 단계 S150의 디코딩 동작을 반복 수행한다. The number of repetitions is increased by 1 in S150, and the decoding operation of step S150 is repeated in step S120.
체크 노드 업데이트와 변수 노드 업데이트와 신드롬 체크로 구성되는 1 반복을 복수회 수행한다. One iteration consisting of check node update, variable node update, and syndrome check is performed multiple times.
도 8은 본 발명의 일 실시예에 따른 반도체 메모리 시스템의 개략적인 구성을 나타내는 구성도이다. Figure 8 is a configuration diagram showing the schematic configuration of a semiconductor memory system according to an embodiment of the present invention.
반도체 메모리 시스템은, 반도체 메모리(100), 디코더(200) 및 채널(300)을 포함할 수 있다. The 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, which are encoded data. The semiconductor memory 100 may be NAND flash memory.
디코더(200)는 반도체 메모리(100)에 저장된 코드워드를 패리티 검사 행렬을 통해 디코딩하여 복호화된 데이터를 생성한다. 디코더(200)는 도 1 내지 도 6을 참조하여 설명한 디코더(200)의 기능을 포함하므로 상세한 설명은 생략한다.The decoder 200 decodes the codeword stored in the semiconductor memory 100 using 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, detailed description 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, the decoder according to an embodiment of the present invention can perform decoding at a high processing speed while maintaining good error rate performance, so it can be applied to NAND flash memory where the memory space allowed for parity bits is relatively small. .
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been examined focusing on its preferred embodiments. A person skilled in the art to which the present invention pertains will understand that the present invention may 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 restrictive perspective. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the equivalent scope should be construed as being included in the present invention.
Claims (15)
반도체 메모리로부터 N개의 경판정 심볼로 이루어진 코드워드(Codewords)를 수신하는 단계;
수신된 코드워드를 구성하는 경판정 심볼을 기준으로 각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼들에 대하여 해밍거리가 작을수록 더 커지는 유사 연판정 정보를 생성하는 단계; 및
상기 유사 연판정 정보를 기반으로 오류정정 코드워드(corrected codeword)를 결정하는 단계;
를 포함하고,
상기 유사 연판정 정보를 생성하는 단계는,
각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼들간의 해밍거리를 고려한 값에 NB-LDPC(nonbinary low-density parity-check) 코드에 대응하는 열 가중치를 곱하여 유사 연판정 정보를 생성하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
A method for decoding a non-binary low-density parity check code, comprising:
Receiving codewords consisting of N hard decision symbols from a semiconductor memory;
Generating pseudo-soft decision information that becomes larger as the Hamming distance decreases for each hard decision symbol and the remaining symbols in the Galois field excluding each hard decision symbol, based on the hard decision symbols constituting the received codeword; and
determining an error correction codeword based on the similar soft decision information;
Including,
The step of generating the similar soft decision information is,
Similar soft decision information is generated by multiplying the value considering the Hamming distance between each hard decision symbol and the remaining symbols in the Galois field, excluding each hard decision symbol, by the column weight corresponding to the NB-LDPC (nonbinary low-density parity-check) code. A non-binary low-density parity check code decoding method characterized by generating.
상기 오류정정 코드워드를 결정하는 단계는,
상기 저밀도 패리티 검사 코드의 패리티 검사 매트릭스(H)에 의해 결정되는, 상기 N개의 변수 노드와의 연결 관계를 가지는 M개의 체크 노드와 상기 N개의 변수 노드 간에 반복적인 메시지 교환에 의해 상기 코드워드를 복호화하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to paragraph 1,
The step of determining the error correction codeword is,
Decrypt the codeword by repetitive message exchange between the N variable nodes and M check nodes having a connection relationship with the N variable nodes, which is determined by the parity check matrix (H) of the low-density parity check code. A non-binary low-density parity check code decoding method, characterized in that.
상기 비이진 저밀도 패리티 검사 코드는 차수 q의 갈루아 필드 GF(q)에 대해 정의된 코드인 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to paragraph 1,
The non-binary low-density parity check code decoding method, 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세트로 하며, 상기 세트는 미리 설정된 횟수 반복 실행되는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to paragraph 4,
The step of determining the codeword (corrected codeword) is
A non-binary low-density parity check code decoding method comprising one set of syndrome check, check node update, and variable node update, and the set is repeatedly executed a preset number of times.
상기 체크 노드 업데이트는 매 회, EXI(Extrinsic information sum) 연산을 수행하며, 상기 EXI 연산 결과에 기초하여 상기 유사 연판정 정보를 업데이트하고,
상기 EXI 연산은 하기 수학식 2에 기초하여 연산되는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
[수학식 2]
여기서, i번째 채널 노드에서 j번째 변수 노드에 전달되는 EXI은 k번째 반복에서 로 표기되고, 는 패리티 검사 매트릭스(H)를 의미하고, i번째 채널 노드에 연결되는 Ni는 변수 노드의 집합을 의미하고, 는 Ni의 부분집합으로, Ni에서 j번째 변수 노드(0≤i<M, 0≤j<N)를 제외한 집합을 의미하고, 는 k번째 반복에서 대응하여 생성되는 경판정 값을 의미함
According to clause 5,
The check node update performs EXI (Extrinsic information sum) operation every time, and updates the similar soft decision information based on the EXI operation result,
A non-binary low-density parity check code decoding method, characterized in that the EXI operation is calculated based on Equation 2 below.
[Equation 2]
Here, the EXI passed from the ith channel node to the jth variable node is It is expressed as means the parity check matrix (H), Ni connected to the ith channel node means a set of variable nodes, is a subset of Ni, meaning the set excluding the j-th variable node (0≤i<M, 0≤j<N) from Ni, refers to the hard decision value correspondingly generated in the kth iteration.
상기 체크 노드 업데이트는 매 회, i번째 신드롬 체크의 결과 값이 0인 경우에는 상기 EXI 연산을 수행하지 않고 변수 노드로부터 받은 경판정 심볼에 대해 유사 연판정 정보를 업데이트하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코딩 방법.
According to clause 6,
The check node update is non-binary low-density, characterized in that, if the result value of the ith syndrome check is 0 every time, the EXI operation is not performed and pseudo-soft decision information is updated for the hard decision symbol received from the variable node. How to decode parity check code.
상기 유사 연판정 정보를 기반으로 오류정정 코드워드(corrected codeword)를 결정하는 노드 프로세서;
를 포함하고,
상기 초기화 모듈은,
상기 유사 연판정 정보를 생성하기 위해 각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼들간의 해밍거리를 고려한 값에 NB-LDPC(nonbinary low-density parity-check) 코드에 대응하는 열 가중치를 곱하여 유사 연판정 정보를 생성하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
Codewords consisting of N hard decision symbols are received from the semiconductor memory, and based on the hard decision symbols constituting the received codewords, the remaining symbols excluding each hard decision symbol within each hard decision symbol and Galois field are received. An initialization module that generates similar soft decision information that becomes larger as the Hamming distance decreases; and
a node processor that determines an error correction codeword based on the pseudo soft decision information;
Including,
The initialization module is,
In order to generate the pseudo soft decision information, a value corresponding to a nonbinary low-density parity-check (NB-LDPC) code is calculated based on the Hamming distance between each hard decision symbol and the remaining symbols in the Galois field, excluding each hard decision symbol. A non-binary low-density parity check code decoder characterized by generating pseudo soft decision information by multiplying column weights.
상기 초기화 모듈은,
각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼들간의 해밍거리를 고려한 값에 NB-LDPC(nonbinary low-density parity-check) 코드에 대응하는 열 가중치를 곱하여 유사 연판정 정보를 생성하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
According to clause 8,
The initialization module is,
Similar soft decision information is generated by multiplying the value considering the Hamming distance between each hard decision symbol and the remaining symbols in the Galois field, excluding each hard decision symbol, by the column weight corresponding to the NB-LDPC (nonbinary low-density parity-check) code. A non-binary low-density parity check code decoder characterized by generating.
상기 노드 프로세서는,
상기 저밀도 패리티 검사 코드의 패리티 검사 매트릭스(H)에 의해 결정되는, 상기 N개의 변수 노드와의 연결 관계를 가지는 M개의 체크 노드와 상기 N개의 변수 노드 간에 반복적인 메시지 교환에 의해 상기 수신된 코드워드를 복호화하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
According to clause 8,
The node processor is,
The received codeword is determined by the parity check matrix (H) of the low-density parity check code by repetitive message exchange between the M check nodes having a connection relationship with the N variable nodes and the N variable nodes. A non-binary low-density parity check code decoder, characterized in that decoding.
상기 노드 프로세서는,
신드롬 체크와, 체크 노드 업데이트, 변수 노드 업데이트를 1세트로 하며, 상기 세트는 미리 설정된 횟수 반복 실행되는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
According to clause 8,
The node processor is,
A non-binary low-density parity check code decoder comprising a syndrome check, check node update, and variable node update as one set, and the set is repeatedly executed a preset number of times.
상기 체크 노드 업데이트는 매 회, EXI(Extrinsic information sum) 연산을 수행하며, 상기 EXI 연산 결과에 기초하여 상기 유사 연판정 정보를 업데이트하고,
상기 EXI 연산은 하기 수학식 2에 기초하여 연산되는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
[수학식 2]
여기서, i번째 채널 노드에서 j번째 변수 노드에 전달되는 EXI은 k번째 반복에서 로 표기되고, 는 패리티 검사 매트릭스(H)를 의미하고, i번째 채널 노드에 연결되는 Ni는 변수 노드의 집합을 의미하고, 는 Ni의 부분집합으로, Ni에서 j번째 변수 노드(0≤i<M, 0≤j<N)를 제외한 집합을 의미하고, 는 k번째 반복에서 대응하여 생성되는 경판정 값을 의미함.
According to clause 11,
The check node update performs EXI (Extrinsic information sum) operation every time, and updates the similar soft decision information based on the EXI operation result,
A non-binary low-density parity check code decoder, characterized in that the EXI operation is calculated based on Equation 2 below.
[Equation 2]
Here, the EXI passed from the ith channel node to the jth variable node is It is expressed as means the parity check matrix (H), Ni connected to the ith channel node means a set of variable nodes, is a subset of Ni, meaning the set excluding the j-th variable node (0≤i<M, 0≤j<N) from Ni, refers to the hard decision value correspondingly generated in the kth iteration.
상기 체크 노드 업데이트는 매 회, i번째 신드롬 체크의 결과 값이 0인 경우에는 상기 EXI 연산을 수행하지 않고 변수 노드로부터 받은 경판정 심볼에 대해 유사 연판정 정보를 업데이트하는 것을 특징으로 하는 비이진 저밀도 패리티 검사 코드 디코더.
According to clause 12,
The check node update is non-binary low-density, characterized in that, if the result value of the ith syndrome check is 0 every time, the EXI operation is not performed and pseudo-soft decision information is updated for the hard decision symbol received from the variable node. Parity check code decoder.
상기 반도체 메모리에 저장된 상기 코드워드를 서브행렬들로 구성된 패리티 검사 행렬을 통해 디코딩하여 복호화된 데이터를 생성하는 디코더; 및
상기 반도체 메모리와 상기 디코더를 연결하며 상기 반도체 메모리의 상기 코드워드를 상기 디코더로 제공하는 채널
을 포함하고,
상기 디코더는
반도체 메모리로부터 N개의 경판정 심볼로 구성되는 코드워드(Codewords)를 수신하고, 수신된 코드워드를 구성하는 경판정 심볼을 기준으로 각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼에 대하여 해밍거리가 작을수록 더 커지는 유사 연판정 정보를 생성하는 초기화 모듈; 및
상기 유사 연판정 정보를 기반으로 오류정정 코드워드(corrected codeword)를 결정하는 노드 프로세서;
를 포함하고,
상기 초기화 모듈은,
상기 유사 연판정 정보를 생성하기 위해 각 경판정 심볼과 갈루아 필드 내에서 각 경판정 심볼을 제외한 나머지 심볼들간의 해밍거리를 고려한 값에 NB-LDPC(nonbinary low-density parity-check) 코드에 대응하는 열 가중치를 곱하여 유사 연판정 정보를 생성하는 것을 특징으로 하는 반도체 메모리 시스템.
A semiconductor memory that stores codewords, which are encoded data;
a decoder that generates decoded data by decoding the codeword stored in the semiconductor memory through a parity check matrix composed of submatrices; and
A channel that connects the semiconductor memory and the decoder and provides the codeword of the semiconductor memory to the decoder
Including,
The decoder is
Codewords consisting of N hard decision symbols are received from a semiconductor memory, and the remaining symbols excluding each hard decision symbol within each hard decision symbol and Galois field are based on the hard decision symbols constituting the received codeword. An initialization module that generates similar soft decision information that becomes larger as the Hamming distance decreases; and
a node processor that determines an error correction codeword based on the pseudo soft decision information;
Including,
The initialization module is,
In order to generate the pseudo soft decision information, a value corresponding to a nonbinary low-density parity-check (NB-LDPC) code is calculated based on the Hamming distance between each hard decision symbol and the remaining symbols in the Galois field, excluding each hard decision symbol. A semiconductor memory system characterized by generating similar soft decision information by multiplying column weights.
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 KR20230029168A (en) | 2023-03-03 |
KR102635444B1 true KR102635444B1 (en) | 2024-02-07 |
Family
ID=85510626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210111347A Active 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN119864061B (en) * | 2025-03-19 | 2025-07-04 | 山东云海国创云计算装备产业创新中心有限公司 | Decoding method, device, electronic device, storage medium, and program product |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102714845B1 (en) * | 2019-06-04 | 2024-10-10 | 에스케이하이닉스 주식회사 | Error correction decoder and memory system having the error correction decoder |
-
2021
- 2021-08-24 KR KR1020210111347A patent/KR102635444B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR20230029168A (en) | 2023-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Abbas et al. | High-throughput VLSI architecture for GRAND | |
US7519898B2 (en) | Iterative decoding of linear block codes by adapting the parity check matrix | |
US8108760B2 (en) | Decoding of linear codes with parity check matrix | |
KR101021465B1 (en) | Signal receiving device and method in communication system using low density parity check code | |
US7395494B2 (en) | Apparatus for encoding and decoding of low-density parity-check codes, and method thereof | |
US6751770B2 (en) | Decoder for iterative decoding of binary cyclic codes | |
JP5138221B2 (en) | Method for min-sum decoding error correction code | |
US10727874B2 (en) | Non-concatenated FEC codes for ultra-high speed optical transport networks | |
US20120221914A1 (en) | Non-Concatenated FEC Codes for Ultra-High Speed Optical Transport Networks | |
US10560120B2 (en) | Elementary check node processing for syndrome computation for non-binary LDPC codes decoding | |
US10637510B2 (en) | Methods and devices for error correcting codes decoding | |
US8312353B2 (en) | Decoding device, decoding method, receiving device, and storage medium reproducing device | |
Zimmermann et al. | Reduced complexity LDPC decoding using forced convergence | |
US10476523B2 (en) | Elementary check node-based syndrome decoding using pre-sorted inputs | |
US20040064779A1 (en) | System and method for iterative decoding of Reed-Muller codes | |
Wang et al. | Free-ride coding for constructions of coupled LDPC codes | |
KR102635444B1 (en) | Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code | |
KR101657912B1 (en) | Method of Decoding Non-Binary Low Density Parity Check Codes | |
US11290128B2 (en) | Simplified check node processing in non-binary LDPC decoder | |
US8019020B1 (en) | Binary decoding for correlated input information | |
WO2011144161A1 (en) | Method, device and system for forward error correction | |
El Kasmi Alaoui et al. | High Speed Soft Decision Decoding of Linear Codes Based on Hash and Syndrome Decoding. | |
US11245421B2 (en) | Check node processing methods and devices with insertion sort | |
Song et al. | A novel low-complexity joint coding and decoding algorithm for NB-LDPC codes | |
Pathak et al. | Performance analysis of low-density parity check codes for 5G technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20210824 |
|
PA0201 | Request for examination | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20230216 Patent event code: PE09021S01D |
|
PG1501 | Laying open of application | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20230808 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20230216 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
AMND | Amendment | ||
PX0701 | Decision of registration after re-examination |
Patent event date: 20231122 Comment text: Decision to Grant Registration Patent event code: PX07013S01D Patent event date: 20231109 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I Patent event date: 20230808 Comment text: Decision to Refuse Application Patent event code: PX07011S01I Patent event date: 20230412 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I |
|
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20240205 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20240205 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration |