KR102643457B1 - Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 - Google Patents
Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR102643457B1 KR102643457B1 KR1020180142690A KR20180142690A KR102643457B1 KR 102643457 B1 KR102643457 B1 KR 102643457B1 KR 1020180142690 A KR1020180142690 A KR 1020180142690A KR 20180142690 A KR20180142690 A KR 20180142690A KR 102643457 B1 KR102643457 B1 KR 102643457B1
- Authority
- KR
- South Korea
- Prior art keywords
- unit
- syndrome
- sub
- variable nodes
- semiconductor memory
- 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
- 239000004065 semiconductor Substances 0.000 title claims abstract description 99
- 238000011017 operating method Methods 0.000 title description 2
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 190
- 239000011159 matrix material Substances 0.000 claims abstract description 164
- 238000012545 processing Methods 0.000 claims abstract description 149
- 238000000034 method Methods 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000011156 evaluation Methods 0.000 claims description 13
- 230000003252 repetitive effect Effects 0.000 claims 1
- 238000007726 management method Methods 0.000 description 79
- 230000006870 function Effects 0.000 description 54
- 238000010586 diagram Methods 0.000 description 27
- 238000009826 distribution Methods 0.000 description 26
- 238000012937 correction Methods 0.000 description 24
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- WURBVZBTWMNKQT-UHFFFAOYSA-N 1-(4-chlorophenoxy)-3,3-dimethyl-1-(1,2,4-triazol-1-yl)butan-2-one Chemical compound C1=NC=NN1C(C(=O)C(C)(C)C)OC1=CC=C(Cl)C=C1 WURBVZBTWMNKQT-UHFFFAOYSA-N 0.000 description 1
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 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/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/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
-
- 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
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
도 2는 3비트 멀티 레벨 셀 비휘발성 메모리 장치의 특성 열화로 인하여 변형될 수 있는 프로그램 상태 및 소거 상태를 나타내는 문턱 전압 산포 그래프이다.
도 3은 본 발명의 일실시예에 따른 반도체 메모리 시스템을 나타내는 블록도이다.
도 4a는 도 3에 도시된 반도체 메모리 시스템을 나타내는 상세 블록도이다.
도 4b는 도 4a에 도시된 메모리 블록을 나타내는 블록도이다.
도 5는 도 4a에 도시된 메모리 컨트롤러의 동작을 나타내는 흐름도이다.
도 6a은 테너 그래프로 표현되는 LDPC 디코딩을 나타내는 개념도이다.
도 6b는 LDPC 코드 구조를 나타내는 개념도이다.
도 6c는 LDPC 디코딩에 따른 신드롬 체크 과정을 나타내는 개념도이다.
도 7a는 하드 리드와 소프트 리드를 나타내는 개념도이다.
도 7b는 시간 변화에 따른 메모리 셀의 문턱 전압 분포의 변화 및 소프트 리드 전압간 간격의 변화를 나타내는 개념도이다.
도 8은 본 발명의 일실시예에 따른 패리티 검사행렬을 나타내는 도면이다.
도 9는 버티컬-셔플드-스케쥴링 방식에 따른 비트-반전 알고리즘을 나타낸 순서도이다.
도 10은 도 3 및 4a에 도시된 LDPC 디코더(133)를 나타내는 상세 블록도이다.
도 11은 변수노드 업데이트부(1050)의 세부 구성을 나타내는 도면이다.
도 12는 신드롬 체크부(1052)의 세부 구성을 나타내는 도면이다.
도 13은 체크노드 업데이트부(1054)의 세부구성을 나타내는 도면이다.
도 14는 본 발명의 일실시예에 따른 반도체 시스템(10)에서 수행되는 LDPC 디코딩의 흐름도이다.
도 15는 본 발명의 일실시예에 따른 LDPC 디코더(133)의 동작 시뮬레이션의 결과를 나타내는 그래프이다.
100 : 메모리 컨트롤러
200 : 반도체 메모리 장치
Claims (26)
- 복수의 서브 행렬을 포함하는 코드워드를 저장하는 반도체 메모리 장치; 및
상기 코드워드를 패리티 체크 행렬에 기초하여 디코딩하여 복호화된 코드워드를 생성하는 LDPC 디코더
를 포함하되
상기 LDPC 디코더는
상기 패리티 체크 행렬의 동일 레이어를 공유하는 상기 복수의 서브행렬들 중 적어도 하나의 서브 행렬을 선택하여, 임계치와 변수 노드에 연결된 불만족 체크 노드의 수를 기초로 선택된 적어도 하나의 서브행렬들에 포함된 열들에 대응하는 변수노드들을 선택하는 변수노드 선택부;
상기 선택된 변수노드들의 0에서 1로 혹은 1에서 0으로 판정값을 반전시켜 상기 패리티 체크 행렬에 포함된 모든 열들에 대응하는 변수노드들의 판정값을 업데이트하는 변수노드 업데이트 동작을 수행하는 변수노드 업데이트부;
상기 변수노드들의 업데이트된 판정값과 상기 패리티 체크 행렬을 곱하여 상기 코드워드에 대한 디코딩의 성공여부를 판단하는 신드롬 체크 동작을 수행하는 신드롬 체크부; 및
서브 반복 동작을 Im 번 수행한 결과에 기초하여 백업 신드롬, 상기 임계치 및 프로세싱 단위를 업데이트하는 체크노드 업데이트부를 포함하고,
상기 프로세싱 단위는 P x Im 이며, Im 은 최대 서브 반복 횟수이고, P는 LDPC 디코딩 동작을 병렬로 수행할 수 있는 변수 노드의 수이며,
상기 서브 반복 동작은 상기 적어도 하나의 서브 행렬을 선택하고, 변수 노드의 판정값을 업데이트하며, 상기 코드워드에 대한 디코딩의 성공여부를 결정하는 것을 포함하는,
반도체 메모리 시스템.
- ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈제1 항에 있어서,
상기 서브 반복 동작은 하나의 반복 동작으로 상기 패리티 체크 행렬을 구성하는 모든 열에 대응하는 변수 노드에 대해 수행되고, 상기 LDPC 디코더는 IM 번 또는 상기 코드워드가 성공적으로 디코딩될 때까지 상기 하나의 반복 동작을 수행하도록 구성되며, 상기 IM 은 최대 반복 횟수인,
반도체 메모리 시스템.
- ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈제1 항에 있어서,
상기 LDPC 디코더는
상기 패리티 체크 행렬에 대한 정보를 저장하는 패리티 체크 행렬 관리부; 및
상기 코드워드에 기초하여 경판정 값을 생성하는 채널 메시지 관리부
를 더 포함하는 반도체 메모리 시스템.
- ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈제1 항에 있어서,
상기 변수노드 업데이트부는
상기 백업 신드롬 및 상기 선택된 변수노드들에 대한 경판정 값에 기초하여 반전 함수를 생성하는 반전함수 생성동작을 수행하는 반전함수 평가부;
상기 생성된 반전함수 및 상기 임계치에 기초하여 상기 선택된 변수노드들의 판정값을 반전시키는 비트 플리핑 동작을 수행하는 비트 플리핑부; 및
상기 반전된 변수노드들의 판정값에 기초하여 상기 패리티 체크행렬을 구성하는 모든 열들에 대응하는 변수노드들의 판정값을 업데이트하는 변수노드 판정값 관리부
를 포함하는 반도체 메모리 시스템.
- ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈제2 항에 있어서,
상기 신드롬 체크부는
상기 패리티 체크 행렬 및 상기 변수노드들의 판정값을 곱하여 신드롬을 계산하여 상기 디코딩의 성공 여부를 판단하는 신드롬 계산부;
이전 프로세싱 서브 행렬들의 개수와 베이직 프로세싱 단위를 더하여 프로세싱 변수노드들의 개수를 업데이트하는 프로세싱 서브행렬 관리부; 및
상기 서브 반복 동작을 상기 최대 서브 반복 횟수만큼 반복할 때마다 상기 백업 신드롬, 상기 임계치 및 상기 프로세싱 단위를 업데이트하도록 제어하고, 상기 하나의 반복 동작을 상기 최대 반복 횟수만큼 반복하면 상기 디코딩을 종료하는 반복횟수 체크부
를 포함하는 반도체 메모리 시스템.
- ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈제1 항에 있어서,
상기 체크노드 업데이트부는
상기 서브 반복 동작을 상기 최대 서브 반복 횟수만큼 반복할 때마다 백업 신드롬을 업데이트하는 신드롬 백업부;
상기 업데이트된 백업 신드롬에 기초하여 상기 프로세싱 단위를 업데이트하는 프로세싱 단위 관리부; 및
상기 업데이트된 백업 신드롬, 상기 패리티 체크 행렬, 상기 업데이트된 프로세싱 단위 및 프로세싱된 변수노드들의 개수에 기초하여 상기 임계치의 크기가 상기 백업 신드롬의 절대값의 크기에 비례도록 상기 임계치를 업데이트하는 임계치 관리부
를 포함하는 반도체 메모리 시스템.
- 삭제
- ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈제1 항에 있어서,
상기 변수노드 선택부는
프로세싱된 서브 행렬들의 개수를 패리티 체크 행렬의 단위 행에 포함된 서브 행렬들의 개수로 모듈러 연산하여 커런트 서브 행렬 인덱스를 구하는
반도체 메모리 시스템.
- ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈제4 항에 있어서,
상기 반전함수 평가부는
상기 선택된 변수노드들에 연결된 불만족 체크노드의 개수와
상기 선택된 변수노드들의 판정값 및 경판정 값을 XOR 연산한 값
의 합을 구하여 상기 반전함수를 생성하는
반도체 메모리 시스템.
- ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈제4 항에 있어서
상기 비트 플리핑부는
상기 선택된 변수노드들의 반전함수가 상기 임계치 이상이면
상기 비트 플리핑 동작을 수행하는
반도체 메모리 시스템.
- ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈제4 항에 있어서,
상기 비트 플리핑부는
상기 선택된 변수노드들의 반전함수가 상기 임계치보다 작고, 상기 임계치와의 차이가 소정의 임계치보다 작으며, 소정의 반복 횟수 동안 상기 비트 플리핑 동작을 수행하지 아니한 경우 상기 비트 플리핑 동작을 수행하는
반도체 메모리 시스템.
- ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈제4 항에 있어서,
상기 변수노드 판정값 관리부는
넌-업데이트 플레그에 기초하여 상기 업데이트된 변수노드들의 판정값이 상기 업데이트 동작 수행 전 변수노드들의 판정값과 동일하면 상기 디코딩을 종료하는
반도체 메모리 시스템. - ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈제6 항에 있어서,
상기 프로세싱 단위 관리부는
상기 프로세싱된 변수노드들의 개수가 소정의 임계치에 도달하면 상기 최대 서브 반복 횟수를 감소시키는
반도체 메모리 시스템.
- 복수의 서브 행렬을 포함하는 코드워드를 저장하는 반도체 메모리 시스템의 동작 방법에 있어서,
패리티 체크 행렬의 동일 레이어를 공유하는 상기 복수의 서브행렬들 중 적어도 하나의 서브 행렬을 선택하여, 임계치와 변수 노드에 연결된 불만족 체크 노드의 수를 기초로 선택된 적어도 하나의 서브행렬들에 포함된 열들에 대응하는 변수노드들을 선택하는 변수노드 선택단계;
상기 선택된 변수노드들의 0에서 1로 혹은 1에서 0으로 판정값을 반전시켜 상기 패리티 체크 행렬에 포함된 모든 열들에 대응하는 변수노드들의 판정값을 업데이트하는 변수노드 업데이트 단계;
상기 변수노드들의 업데이트된 판정값과 상기 패리티 체크 행렬을 곱하여 상기 코드워드에 대한 디코딩의 성공여부를 판단하는 신드롬 체크 동작을 수행하는 신드롬 체크 단계; 및
서브 반복 동작을 Im 번 수행한 결과에 기초하여 백업 신드롬, 상기 임계치 및 프로세싱 단위를 업데이트하는 체크노드 업데이트 단계를 포함하고,
상기 프로세싱 단위는 P x Im 이며, Im 은 최대 서브 반복 횟수이고, P는 LDPC 디코딩 동작을 병렬로 수행할 수 있는 변수 노드의 수이며,
상기 서브 반복 동작은 상기 적어도 하나의 서브 행렬을 선택하고, 변수 노드의 판정값을 업데이트하며, 상기 코드워드에 대한 디코딩의 성공여부를 결정하는 것을 포함하는 반도체 메모리 시스템의 동작방법.
- ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈제14 항에 있어서,
상기 서브 반복 동작은 하나의 반복 동작으로 상기 패리티 체크 행렬을 구성하는 모든 열에 대응하는 변수 노드에 대해 수행되고, 상기 LDPC 디코딩 동작은 IM 번 또는 상기 코드워드가 성공적으로 디코딩될 때까지 상기 하나의 반복 연산을 수행하며, 상기 IM 은 최대 반복 횟수인,
반도체 메모리 시스템의 동작방법.
- ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈제14 항에 있어서,
상기 패리티 체크 행렬에 대한 정보를 저장하는 패리티 체크 행렬 관리 단계; 및
상기 코드워드에 기초하여 경판정 값을 생성하는 채널 메시지 관리 단계
를 더 포함하는 반도체 메모리 시스템의 동작방법.
- ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈제14 항에 있어서,
상기 변수노드 업데이트 단계는
상기 백업 신드롬 및 상기 선택된 변수노드들에 대한 경판정 값에 기초하여 반전 함수를 생성하는 반전함수 평가 단계;
상기 생성된 반전함수 및 상기 임계치에 기초하여 상기 선택된 변수노드들의 판정값을 반전시키는 비트 플리핑 단계; 및
상기 반전된 변수노드들의 판정값에 기초하여 상기 패리티 체크행렬을 구성하는 모든 열들에 대응하는 변수노드들의 판정값을 업데이트하는 변수노드 판정값 관리 단계
를 포함하는 반도체 메모리 시스템의 동작방법.
- ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈제15 항에 있어서,
상기 신드롬 체크 단계는
상기 패리티 체크 행렬 및 상기 변수노드들의 판정값을 곱하여 신드롬을 계산하여 상기 디코딩의 성공 여부를 판단하는 신드롬 계산 단계;
이전 프로세싱 서브 행렬들의 개수와 베이직 프로세싱 단위를 더하여 프로세싱 변수노드들의 개수를 업데이트하는 프로세싱 서브행렬 관리 단계; 및
상기 서브 반복 동작을 상기 최대 서브 반복 횟수만큼 반복할 때마다 상기 백업 신드롬, 상기 임계치 및 상기 프로세싱 단위를 업데이트하도록 제어하고, 상기 하나의 반복 동작을 상기 최대 반복 횟수만큼 반복하면 상기 디코딩을 종료하는 반복 횟수 체크 단계
를 포함하는 반도체 메모리 시스템의 동작방법.
- ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈제14 항에 있어서,
상기 체크노드 업데이트 단계는
상기 서브 반복 동작을 상기 최대 서브 반복 횟수만큼 반복할 때마다 백업 신드롬을 업데이트하는 신드롬 백업 단계;
상기 업데이트된 백업 신드롬에 기초하여 상기 프로세싱 단위를 업데이트하는 프로세싱 단위 관리 단계; 및
상기 업데이트된 백업 신드롬, 상기 패리티 체크 행렬, 상기 업데이트된 프로세싱 단위 및 프로세싱된 변수노드들의 개수에 기초하여 상기 임계치의 크기가 상기 백업 신드롬의 절대값의 크기에 비례도록 상기 임계치를 업데이트하는 임계치 관리 단계
를 포함하는 반도체 메모리 시스템의 동작방법.
- 삭제
- ◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈제14 항에 있어서,
상기 변수노드 선택 단계는
프로세싱된 서브 행렬들의 개수를 패리티 체크 행렬의 단위 행에 포함된 서브 행렬들의 개수로 모듈러 연산하여 커런트 서브 행렬 인덱스를 구하는
반도체 메모리 시스템의 동작방법.
- ◈청구항 22은(는) 설정등록료 납부시 포기되었습니다.◈제17 항에 있어서,
상기 반전함수 평가 단계는
상기 선택된 변수노드들에 연결된 불만족 체크노드의 개수와
상기 선택된 변수노드들의 판정값 및 경판정 값을 XOR 연산한 값
의 합을 구하여 상기 반전함수를 생성하는,
반도체 메모리 시스템의 동작방법.
- ◈청구항 23은(는) 설정등록료 납부시 포기되었습니다.◈제17 항에 있어서,
상기 비트 플리핑 단계는
상기 선택된 변수노드들의 반전함수가 상기 임계치 이상이면
상기 비트 플리핑을 수행하는,
반도체 메모리 시스템의 동작방법.
- ◈청구항 24은(는) 설정등록료 납부시 포기되었습니다.◈제17 항에 있어서,
상기 비트 플리핑 단계는
상기 선택된 변수노드들의 반전함수가 상기 임계치보다 작고, 상기 임계치와의 차이가 소정의 임계치보다 작으며, 소정의 반복 횟수 동안 상기 비트 플리핑을 수행하지 아니한 경우 상기 비트 플리핑을 수행하는
반도체 메모리 시스템의 동작방법.
- ◈청구항 25은(는) 설정등록료 납부시 포기되었습니다.◈제17 항에 있어서,
상기 변수노드 판정값 관리 단계는
넌-업데이트 플레그에 기초하여 상기 업데이트된 변수노드들의 판정값이 상기 업데이트 수행 전 변수노드들의 판정값과 동일하면 상기 디코딩을 종료하는
반도체 메모리 시스템의 동작방법.
- ◈청구항 26은(는) 설정등록료 납부시 포기되었습니다.◈제19 항에 있어서,
상기 프로세싱 단위 관리 단계는
상기 프로세싱된 변수노드들의 개수가 소정의 임계치에 도달하면 상기 최대 서브 반복 횟수를 감소시키는
반도체 메모리 시스템의 동작방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180142690A KR102643457B1 (ko) | 2018-11-19 | 2018-11-19 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
US16/660,214 US11005499B2 (en) | 2018-11-19 | 2019-10-22 | LDPC decoder, semiconductor memory system, and operating method thereof |
CN201911060829.XA CN111200440B (zh) | 2018-11-19 | 2019-11-01 | Ldpc解码器、半导体存储器系统及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180142690A KR102643457B1 (ko) | 2018-11-19 | 2018-11-19 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200058106A KR20200058106A (ko) | 2020-05-27 |
KR102643457B1 true KR102643457B1 (ko) | 2024-03-06 |
Family
ID=70726808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180142690A Active KR102643457B1 (ko) | 2018-11-19 | 2018-11-19 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11005499B2 (ko) |
KR (1) | KR102643457B1 (ko) |
CN (1) | CN111200440B (ko) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10944429B1 (en) * | 2020-01-02 | 2021-03-09 | Silicon Motion, Inc. | Data accessing method using data protection with aid of parity check matrix having partial sequential information, and associated apparatus |
CN111917420B (zh) * | 2020-08-25 | 2023-07-04 | 广东省新一代通信与网络创新研究院 | 一种ldpc自适应译码方法及ldpc自适应译码器 |
CN111935176B (zh) * | 2020-09-18 | 2020-12-29 | 南京赛宁信息技术有限公司 | 网络安全ctf竞赛的防作弊系统与方法 |
US11456757B2 (en) | 2020-12-16 | 2022-09-27 | SK Hynix Inc. | Oscillation detection and mitigation in bit-flipping decoders |
CN113223583B (zh) * | 2021-05-14 | 2024-05-17 | 深圳市硅格半导体有限公司 | NAND Flash坏块内数据重读的方法、电子设备及存储介质 |
US11621727B2 (en) * | 2021-06-04 | 2023-04-04 | SK Hynix Inc. | Decoding systems and methods for local reinforcement |
US12160250B2 (en) | 2021-09-30 | 2024-12-03 | Samsung Electronics Co., Ltd. | Decoding system, and transmitting/receiving device thereof |
US11929762B2 (en) | 2021-11-24 | 2024-03-12 | Samsung Electronics Co., Ltd. | Low density parity check decoder and storage device |
US12126361B2 (en) | 2022-03-21 | 2024-10-22 | Intel Corporation | Techniques to improve latency of retry flow in memory controllers |
TWI818490B (zh) * | 2022-03-29 | 2023-10-11 | 睿寬智能科技有限公司 | 低密度奇偶校驗碼的重組式解碼法與裝置 |
CN114911740B (zh) * | 2022-06-02 | 2024-06-28 | 中国长城科技集团股份有限公司 | PCIe拆分方法、装置、电子设备及可读存储介质 |
CN117472643A (zh) | 2022-07-20 | 2024-01-30 | 慧荣科技股份有限公司 | 低密度奇偶校检码的译码方法、存储介质和装置 |
TWI829252B (zh) * | 2022-07-20 | 2024-01-11 | 慧榮科技股份有限公司 | 低密度奇偶校檢碼的解碼方法及電腦程式產品及裝置 |
TWI836558B (zh) * | 2022-08-18 | 2024-03-21 | 慧榮科技股份有限公司 | 記憶體控制器及解碼管線之資料控制方法 |
KR20240033792A (ko) * | 2022-09-06 | 2024-03-13 | 삼성전자주식회사 | 읽기 정보 및 디코딩 정보에 기초하여 연판정 디코딩을 위한 읽기 레벨을 생성하는 스토리지 컨트롤러, 이를 포함하는 스토리지 장치, 및 이의 동작 방법 |
KR20240096033A (ko) | 2022-12-19 | 2024-06-26 | 에스케이하이닉스 주식회사 | 비트 플립핑 디코더(Bit flipping decoder) 내 오류 확인하는 장치 및 방법 |
CN118800307A (zh) * | 2023-04-14 | 2024-10-18 | 慧荣科技股份有限公司 | 数据存储装置及其读取电压的搜寻方法 |
CN119207502A (zh) * | 2023-06-25 | 2024-12-27 | 长江存储科技有限责任公司 | 译码器、译码方法、存储器控制器、存储器系统 |
TWI866750B (zh) * | 2024-01-19 | 2024-12-11 | 群聯電子股份有限公司 | 解碼參數更新方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484158B2 (en) * | 2003-12-03 | 2009-01-27 | Infineon Technologies Ag | Method for decoding a low-density parity check (LDPC) codeword |
DE602004019216D1 (de) * | 2004-09-29 | 2009-03-12 | Lucent Technologies Inc | Iterative Decodierung von Low-Density Parity-Check (LDPC) Codes |
KR100703271B1 (ko) * | 2004-11-23 | 2007-04-03 | 삼성전자주식회사 | 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치 |
US8347195B1 (en) * | 2009-01-22 | 2013-01-01 | Marvell International Ltd. | Systems and methods for near-codeword detection and correction on the fly |
JP5432367B2 (ja) * | 2009-04-21 | 2014-03-05 | アギア システムズ インコーポレーテッド | 書込み検証を使用した符号のエラーフロア軽減 |
US8464123B2 (en) * | 2009-05-07 | 2013-06-11 | Ramot At Tel Aviv University Ltd. | Matrix structure for block encoding |
US8392789B2 (en) * | 2009-07-28 | 2013-03-05 | Texas Instruments Incorporated | Method and system for decoding low density parity check codes |
US8499226B2 (en) * | 2010-06-29 | 2013-07-30 | Lsi Corporation | Multi-mode layered decoding |
US8458555B2 (en) * | 2010-06-30 | 2013-06-04 | Lsi Corporation | Breaking trapping sets using targeted bit adjustment |
WO2012097046A1 (en) * | 2011-01-14 | 2012-07-19 | Marvell World Trade Ltd. | Ldpc multi-decoder architectures |
KR101296773B1 (ko) | 2011-10-07 | 2013-08-14 | 한국전기연구원 | Ldpc 부호 복호화 장치 및 방법 |
US8996971B2 (en) * | 2012-09-04 | 2015-03-31 | Lsi Corporation | LDPC decoder trapping set identification |
US8966339B1 (en) * | 2012-12-18 | 2015-02-24 | Western Digital Technologies, Inc. | Decoder supporting multiple code rates and code lengths for data storage systems |
US9184767B2 (en) * | 2013-09-19 | 2015-11-10 | SanDisk Technologies, Inc. | Scoring variable nodes for low density parity check code decoding |
CN103916134B (zh) * | 2014-03-24 | 2017-01-11 | 清华大学 | 低密度奇偶校验码的混叠译码方法及多核协同混叠译码器 |
KR102556479B1 (ko) * | 2015-03-20 | 2023-07-17 | 에스케이하이닉스 주식회사 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
US9977713B2 (en) * | 2015-03-20 | 2018-05-22 | SK Hynix Inc. | LDPC decoder, semiconductor memory system and operating method thereof |
US9793923B2 (en) * | 2015-11-24 | 2017-10-17 | Texas Instruments Incorporated | LDPC post-processor architecture and method for low error floor conditions |
KR102559925B1 (ko) | 2016-07-21 | 2023-07-26 | 에스케이하이닉스 주식회사 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10110249B2 (en) | 2016-08-23 | 2018-10-23 | Sandisk Technologies Llc | Column-layered message-passing LDPC decoder |
KR102706994B1 (ko) * | 2016-09-07 | 2024-09-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
KR102543059B1 (ko) * | 2017-11-22 | 2023-06-14 | 삼성전자주식회사 | 저밀도 패리티 체크 코드의 디코딩 방법, 이를 수행하는 디코더 및 시스템 |
KR102582326B1 (ko) * | 2018-09-20 | 2023-09-26 | 에스케이하이닉스 주식회사 | 에러 정정 회로 및 이의 동작 방법 |
-
2018
- 2018-11-19 KR KR1020180142690A patent/KR102643457B1/ko active Active
-
2019
- 2019-10-22 US US16/660,214 patent/US11005499B2/en active Active
- 2019-11-01 CN CN201911060829.XA patent/CN111200440B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20200162108A1 (en) | 2020-05-21 |
CN111200440A (zh) | 2020-05-26 |
US11005499B2 (en) | 2021-05-11 |
CN111200440B (zh) | 2023-04-07 |
KR20200058106A (ko) | 2020-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102643457B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
KR102559925B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US9977713B2 (en) | LDPC decoder, semiconductor memory system and operating method thereof | |
KR102631407B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US10445175B2 (en) | Controller and operating method thereof | |
KR102556479B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
KR102606829B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US10200063B2 (en) | Memory controller, semiconductor memory system and operating method thereof | |
US11387845B2 (en) | LDPC decoder, operating method of LDPC decoder, and semiconductor memory system | |
KR102787778B1 (ko) | Ldpc 디코더 및 그것의 동작 방법 | |
US11966589B2 (en) | Controller and operating method thereof | |
KR102605633B1 (ko) | 컨트롤러 및 그것의 동작 방법 | |
KR102475805B1 (ko) | 디코더, 그것의 동작 방법 및 메모리 시스템 | |
US10528496B2 (en) | Controller and operating method thereof | |
KR102530269B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20181119 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20211118 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20181119 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20230708 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20231222 |
|
PG1601 | Publication of registration |