KR102673873B1 - 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템 - Google Patents
데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템 Download PDFInfo
- Publication number
- KR102673873B1 KR102673873B1 KR1020160082977A KR20160082977A KR102673873B1 KR 102673873 B1 KR102673873 B1 KR 102673873B1 KR 1020160082977 A KR1020160082977 A KR 1020160082977A KR 20160082977 A KR20160082977 A KR 20160082977A KR 102673873 B1 KR102673873 B1 KR 102673873B1
- Authority
- KR
- South Korea
- Prior art keywords
- codeword
- ecc decoding
- code
- target
- ecc
- 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
- 238000000034 method Methods 0.000 title claims abstract description 151
- 238000011084 recovery Methods 0.000 title claims abstract description 139
- 238000012545 processing Methods 0.000 claims abstract description 214
- 230000008569 process Effects 0.000 claims description 110
- 239000011159 matrix material Substances 0.000 claims description 92
- 238000010586 diagram Methods 0.000 description 30
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 14
- 238000012937 correction Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 4
- 101150064834 ssl1 gene Proteins 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 101150062870 ssl3 gene Proteins 0.000 description 3
- 101001114057 Homo sapiens P antigen family member 1 Proteins 0.000 description 2
- 102100023219 P antigen family member 1 Human genes 0.000 description 2
- 101000882406 Staphylococcus aureus Enterotoxin type C-1 Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001808 coupling effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000005684 electric field Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 101150013204 MPS2 gene Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/27—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 using interleaving techniques
- H03M13/2703—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 using interleaving techniques the interleaver involving at least two directions
- H03M13/2707—Simple row-column interleaver, i.e. pure block interleaving
-
- 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/45—Soft decoding, i.e. using symbol reliability information
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/403—Error protection encoding, e.g. using parity or ECC 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
-
- 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/1515—Reed-Solomon 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/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/152—Bose-Chaudhuri-Hocquenghem [BCH] 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Human Computer Interaction (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
도 2는 본 발명에 따른 적용되는 다차원 코드의 코드 매트릭스 구조를 예시적으로 보여준다.
도 3a는 도 1의 메모리 시스템에서의 스트라이프를 구성하는 일 예를 보여준다.
도 3b는 도 1의 메모리 시스템에서의 스트라이프를 구성하는 다른 예를 보여준다.
도 3c는 도 1의 메모리 시스템에서의 스트라이프를 구성하는 또 다른 예를 보여준다.
도 3d는 도 1의 메모리 시스템에서의 스트라이프를 구성하는 또 다른 예를 보여준다.
도 3e는 도 1의 메모리 시스템에서의 스트라이프를 구성하는 또 다른 예를 보여준다.
도 3f는 도 1의 메모리 시스템에서의 스트라이프를 구성하는 또 다른 예를 보여준다.
도 4는 도 1에 도시된 메모리 장치의 구성을 예시적으로 보여준다.
도 5는 도 4에 도시된 메모리 셀 어레이의 일 예를 나타낸다.
도 6은 도 5에 도시된 메모리 셀 어레이에 포함된 메모리 블록의 일 예를 나타내는 회로도이다.
도 7은 도 5에 도시된 메모리 셀 어레이에 포함된 메모리 블록의 다른 예를 나타내는 회로도이다.
도 8은 도 6 또는 도 7에 도시된 메모리 블록에 포함된 메모리 셀의 일 예를 보여주는 단면도이다.
도 9는 도 1의 메모리 시스템에서의 하드 디시젼 리드 동작에 따른 하드 데이터를 생성하는 방법에 대한 예를 보여주는 도면이다.
도 10은 도 1의 메모리 시스템에서의 소프트 디시젼 리드 동작에 따른 소프트 데이터를 생성하는 방법에 대한 예를 보여주는 도면이다.
도 11은 도 1의 메모리 시스템에서의 추가적인 소프트 디시젼 리드 동작에 따른 소프트 데이터를 생성하는 방법에 대한 예를 보여주는 도면이다.
도 12는 도 1에 도시된 메모리 컨트롤러에 대한 구성의 일 예를 보여준다.
도 13은 도 1에 도시된 메모리 컨트롤러에 대한 구성의 다른 예를 보여준다.
도 14는 도 1의 메모리 시스템에서의 데이터 복구 처리를 수행하는 과정을 개략적으로 보여주는 도면이다.
도 15는 도 1의 메모리 시스템에서의 데이터 복구 처리를 수행하는 하나의 사례를 보여주는 도면이다.
도 16은 도 1의 메모리 시스템에서의 데이터 복구 처리를 수행하는 다른 사례를 보여주는 도면이다.
도 17은 도 1의 메모리 시스템에서의 데이터 복구 처리를 수행하는 또 다른 사례를 보여주는 도면이다.
도 18은 도 1의 메모리 시스템에서의 데이터 복구 처리를 수행하는 또 다른 사례를 보여주는 도면이다.
도 19는 도 1의 메모리 시스템에서의 데이터 복구 처리를 수행하는 또 다른 사례를 보여주는 도면이다.
도 20은 도 1의 메모리 시스템에서의 데이터 복구 처리를 수행하는 또 다른 사례를 보여주는 도면이다.
도 21은 도 1의 메모리 시스템에서의 데이터 복구 처리를 수행하는 또 다른 사례를 보여주는 도면이다.
도 22a 및 도 22b는 도 1의 메모리 시스템에서의 데이터 복구 처리를 수행하는 또 다른 사례를 보여주는 도면이다.
도 23은 본 발명의 기술적 사상에 따른 레이드 스토리지 시스템 구성을 예시적으로 보여준다.
도 24는 도 23에 도시된 레이드 컨트롤러에 대한 구성의 일 예를 보여준다.
도 25는 도 23에 도시된 레이드 컨트롤러에 대한 구성의 다른 예를 보여준다.
도 26은 도 23에 도시된 하나의 스토리지 디바이스에 대한 블록 구성을 예시적으로 보여준다.
도 27은 본 발명의 기술적 사상에 따른 데이터 복원 방법의 흐름도이다.
도 28은 도 27에 도시된 타깃 코드워드를 수정하는 단계에 대한 세부적인 흐름도를 보여준다.
도 29는 도 28에 도시된 수정된 타깃 코드워드를 생성하는 단계에 대한 세부적인 흐름도를 보여준다.
도 30은 도 29에 도시된 타깃 코드워드를 수정하는 단계에 대한 세부적인 흐름도를 보여준다.
도 31는 도 27의 흐름도에 추가될 수 있는 단계들의 일 예를 보여주는 흐름도이다.
도 32는 도 31의 흐름도에 추가될 수 있는 단계들의 일 예를 보여주는 흐름도이다.
도 33은 도 28의 흐름도에 추가될 수 있는 단계들의 일 예를 보여주는 흐름도이다.
도 34는 도 27의 흐름도에 추가될 수 있는 단계들의 다른 예를 보여주는 흐름도이다.
도 35는 도 33 또는 도 34의 흐름도에 추가될 수 있는 단계들의 일 예를 보여주는 흐름도이다.
10, 1110: 메모리 장치
20, 20A, 20B, 20C, 20D, 20E, 20F: 메모리 컨트롤러
21, 21A, 21B, 1201A, 1201B: 리커버리 모듈
22, 1202: ECC 디코더
210A, 210B, 1210A, 1210B: 프로세서
220A, 220B, 1220A, 1220B: RAM
230: 호스트 인터페이스 240: 메모리 인터페이스
250, 1240: 버스 1230: I/O 인터페이스
1000: 레이드 스토리지 시스템
1100: 복수의 스토리지 디바이스들
1200, 1200A, 1200B: 레이드 컨트롤러
1120: SSD 컨트롤러
11: 메모리 셀 어레이 12: 제어 로직
13: 전압 생성부 14: 로우 디코더
15: 페이지 버퍼
Claims (20)
- 타깃 코드워드의 디코더 입력에 대한 ECC 디코딩 처리에 실패한 경우에 상기 타깃 코드워드와의 코드 연관성이 있는 참조 코드워드들을 메모리 장치로부터 읽어내는 단계;
상기 타깃 코드워드 및 상기 참조 코드워드들을 이용한 연산 처리에 기초하여 수정된 타깃 코드워드의 디코더 입력을 생성하는 단계; 및
상기 수정된 타깃 코드워드의 디코더 입력에 대한 ECC 디코딩 처리를 다시 수행하는 단계를 포함하고,
상기 참조 코드워드들은 상기 타깃 코드워드와 동일한 스트라이프를 형성하는 저장 영역에서 읽어낸 코드워드들을 포함하고,
상기 참조 코드워드들은 짝수 패리티가 성립되지 않는 적어도 하나의 수직 코드워드에 대응됨을 특징으로 하는 데이터 복구 방법. - 삭제
- 제1항에 있어서, 상기 수정된 타깃 코드워드의 디코더 입력을 생성하는 단계는
상기 참조 코드워드들을 각각 ECC 디코딩 처리하는 단계; 및
상기 ECC 디코딩 처리에 성공한 참조 코드워드의 디코딩 결과, 상기 ECC 디코딩 처리에 실패한 참조 코드워드의 소프트 입력 및 상기 ECC 디코딩 처리에 실패한 타깃 코드워드의 소프트 입력을 이용하여 코드 연관성에 따른 연산 처리에 기초하여 상기 타깃 코드워드에 대한 디코더 입력을 수정하는 단계를 더 포함함을 특징으로 하는 데이터 복구 방법. - 제3항에 있어서, 상기 참조 코드워들 중 적어도 하나의 코드워드에 대한 ECC 디코딩 처리에 실패하는 경우에 상기 타깃 코드워드를 수정하는 단계를 수행하고, 상기 참조 코드워드들 모두에 대한 ECC 디코딩 처리에 성공한 경우에는 참조 코드워드들의 디코딩 결과를 이용하여 상기 타깃 코드워드를 복원하는 단계를 더 포함함을 특징으로 하는 데이터 복구 방법.
- 제3항에 있어서, 상기 타깃 코드워드에 대한 디코더 입력을 수정하는 단계는
상기 ECC 디코딩 처리에 성공한 참조 코드워드의 디코딩 결과, 상기 ECC 디코딩 처리에 실패한 참조 코드워드의 소프트 입력 및 상기 ECC 디코딩 처리에 실패한 타깃 코드워드의 소프트 입력으로 구성되는 코드 매트릭스로부터 코드 제약 조건을 만족시키지 못하는 후보 코드워드를 검출하는 단계; 및
상기 후보 코드워드에 포함된 코드 비트들에 대한 신뢰도에 기초하여 상기 타깃 코드워드의 소프트 입력을 수정하는 단계를 더 포함함을 특징으로 하는 데이터 복구 방법. - 제5항에 있어서, 상기 후보 코드워드를 검출하는 단계는 상기 ECC 디코딩 처리에 성공한 참조 코드워드의 디코딩 결과, 상기 ECC 디코딩 처리에 실패한 참조 코드워드의 소프트 입력 및 상기 ECC 디코딩 처리에 실패한 타깃 코드워드의 소프트 입력을 각각 상기 코드 매트릭스의 제1방향의 코드워드들로 배열하고, 상기 코드 매트릭스에서의 제2방향에 대한 패리티 체크에 따른 오류가 발생되는 제2방향의 코드워드를 상기 후보 코드워드로 결정하는 것을 특징으로 하는 데이터 복구 방법.
- 제5항에 있어서, 상기 타깃 코드워드의 소프트 입력을 수정하는 단계는
상기 후보 코드워드 단위로 코드 비트들의 신뢰도를 비교하는 단계;
상기 비교 결과 후보 코드워드 단위로 신뢰도가 가장 낮은 에러 후보 코드 비트를 검출하는 단계; 및
상기 타깃 코드워드의 소프트 입력에 포함된 에러 후보 코드 비트를 수정하는 단계를 더 포함함을 특징으로 하는 데이터 복구 방법. - 제3항에 있어서, 상기 ECC 디코딩 처리에 성공한 참조 코드워드의 디코딩 결과, 상기 ECC 디코딩 처리에 실패한 참조 코드워드의 소프트 입력 및 상기 ECC 디코딩 처리에 실패한 타깃 코드워드의 소프트 입력을 이용하여 코드 연관성에 따른 연산 처리에 기초하여 상기 ECC 디코딩 처리에 실패한 참조 코드워드에 대한 수정된 참조 코드워드의 디코더 입력을 생성하는 단계; 및
상기 수정된 참조 코드워드의 디코더 입력에 대한 ECC 디코딩 처리를 다시 수행하는 단계를 더 포함함을 특징으로 하는 데이터 복구 방법. - 제1항에 있어서, 상기 수정된 타깃 코드워드의 입력에 대하여 다시 수행된 ECC 디코딩 처리에서 데이터 복구에 성공한 경우에 상기 ECC 디코딩 처리에 성공한 수정된 타깃 코드워드의 디코딩 결과, 상기 참조 코드워드들에 대한 ECC 디코딩 처리에 따라서 ECC 디코딩 처리에 성공한 참조 코드워드의 디코딩 결과 및 ECC 디코딩 처리에 실패한 참조 코드워드의 소프트 입력을 이용한 코드 연관성에 따른 연산 처리에 기초하여 상기 ECC 디코딩 처리에 실패한 참조 코드워드에 대한 수정된 참조 코드워드의 디코더 입력을 생성하는 단계; 및
상기 수정된 참조 코드워드의 디코더 입력에 대한 ECC 디코딩 처리를 다시 수행하는 단계를 더 포함함을 특징으로 하는 데이터 복구 방법. - 제1항에 있어서, 상기 수정된 타깃 코드워드의 입력은 1차 소프트 입력으로 구성되고 상기 수정된 타깃 코드워드의 1차 소프트 입력에 대하여 다시 수행된 ECC 디코딩 처리에서 데이터 복구에 실패한 경우에, 상기 1차 소프트 입력보다 세분화된 신뢰도 레벨을 표시하는 신뢰도 비트를 생성시키는 소프트 디시젼 리드 동작에 기초하여 상기 타깃 코드워드의 2차 소프트 입력을 획득하는 단계; 및
상기 타깃 코드워드의 2차 소프트 입력에 기초하여 상기 타깃 코드워드에 대한 복구 처리를 위한 ECC 디코딩을 수행하는 단계를 더 포함함을 특징으로 하는 데이터 복구 방법. - 데이터를 저장하는 메모리 장치; 및
상기 메모리 장치로부터 읽어낸 데이터에 기초하여 타깃 코드워드를 복구하는 메모리 컨트롤러를 포함하고,
상기 메모리 컨트롤러는 상기 타깃 코드워드의 입력에 대한 ECC 디코딩 처리에 실패한 경우에 상기 타깃 코드워드와의 코드 연관성이 있는 참조 코드워드들을 상기 메모리 장치로부터 읽어내고, 상기 타깃 코드워드 및 상기 참조 코드워드들을 이용한 연산 처리에 기초하여 수정된 타깃 코드워드의 디코더 입력을 생성하고, 상기 수정된 타깃 코드워드의 디코더 입력에 대한 ECC 디코딩 처리를 다시 실행하고,
상기 참조 코드워드들은 상기 타깃 코드워드와 동일한 스트라이프를 형성하는 저장 영역에서 읽어낸 코드워드들을 포함하고,
상기 참조 코드워드들은 짝수 패리티가 성립되지 않는 적어도 하나의 수직 코드워드에 대응되는 것을 특징으로 하는 메모리 시스템. - 제11항에 있어서, 상기 메모리 컨트롤러는
상기 메모리 장치에서 읽어낸 코드워드 및 ECC 디코딩 결과를 저장하는 랜덤 액세스 메모리;
입력되는 코드워드를 ECC 디코딩 처리하는 ECC 디코더;
상기 ECC 디코더에서의 타깃 코드워드에 대한 ECC 디코딩 처리에 실패한 경우에 상기 타깃 코드워드와의 코드 연관성이 있는 참조 코드워드들을 상기 메모리 장치로부터 읽어내는 동작을 수행하는 프로세서; 및
상기 타깃 코드워드 및 상기 참조 코드워드들을 이용한 코드 연관성에 따른 연산 처리에 기초하여 수정된 타깃 코드워드의 디코더 입력을 생성하여 상기 ECC 디코더로 출력하는 리커버리 모듈을 포함함을 특징으로 하는 메모리 시스템. - 제12항에 있어서, 상기 ECC 디코더는 상기 참조 코드워드들에 대한 ECC 디코딩 처리를 수행하고, 상기 ECC 디코더에서의 ECC 디코딩 처리에 실패한 타깃 코드워드의 소프트 입력, ECC 디코딩 처리에 성공한 참조 코드워드의 디코딩 결과 및 ECC 디코딩 처리에 실패한 참조 코드워드의 소프트 입력은 상기 랜덤 액세스 메모리에 저장되고,
상기 리커버리 모듈은 상기 ECC 디코더에서의 상기 참조 코드워들 중 적어도 하나의 코드워드에 대한 ECC 디코딩 처리에 실패하는 경우에 상기 랜덤 액세스 메모리로부터 읽어낸 상기 참조 코드워드의 디코딩 결과, 상기 참조 코드워드의 소프트 입력 및 상기 타깃 코드워드의 소프트 입력으로 구성되는 코드 매트릭스로부터 코드 제약 조건을 만족시키지 못하는 후보 코드워드를 검출하고, 상기 후보 코드워드에 포함된 코드 비트들에 대한 신뢰도에 기초하여 상기 타깃 코드워드의 디코더 입력을 수정하는 연산 처리를 수행하는 것을 특징으로 하는 메모리 시스템. - 제13항에 있어서, 상기 리커버리 모듈은 상기 후보 코드워드 단위로 코드 비트들의 신뢰도를 비교하고, 상기 비교 결과 후보 코드워드 단위로 신뢰도가 가장 낮은 에러 후보 코드 비트를 검출하고, 상기 타깃 코드워드에 포함된 상기 에러 후보 코드 비트를 수정하는 것을 특징으로 하는 메모리 시스템.
- 제12항에 있어서, 상기 ECC 디코더에서의 상기 수정된 타깃 코드워드에 대한 ECC 디코딩 처리에 실패하는 경우에 상기 프로세서는 상기 수정된 타깃 코드워드를 구성하는 1차 소프트 입력보다 세분화된 신뢰도 레벨을 표시하는 신뢰도 비트를 생성시키는 소프트 디시젼 리드 동작에 기초하여 상기 타깃 코드워드의 2차 소프트 입력을 획득하고, 상기 타깃 코드워드의 2차 소프트 입력을 상기 ECC 디코더에 제공하는 것을 특징으로 하는 메모리 시스템.
- 삭제
- 제11항에 있어서, 상기 스트라이프는 상기 메모리 장치에 포함되는 메모리 칩(chip)들, 복수개의 다이(Die)들, 플레인들, 블록들, 워드라인들, 페이지들 및 섹터들 중의 어느 하나에 기초하여 구성되는 것을 특징으로 하는 메모리 시스템.
- 제17항에 있어서, 상기 메모리 장치는 2차원 메모리 어레이 또는 3차원 메모리 어레이를 포함하고, 상기 3차원 메모리 어레이의 동일한 평면에 배치되는 저장 영역들 또는 서로 다른 평면들에 배치되는 저장 영역들로 상기 스트라이프를 구성하는 것을 특징으로 하는 메모리 시스템.
- 복수의 스토리지 디바이스들; 및
상기 복수의 스토리지 디바이스들 중에서 동일한 스트라이프를 형성하는 2개 이상의 스토리지 디바이스들에서 읽어낸 코드워드들에 대한 ECC 디코딩 처리에 실패하는 경우에 ECC 디코딩 처리에 실패한 스토리지 디바이스들로부터 수신되는 소프트 입력 및 ECC 디코딩 처리에 성공한 스토리지 디바이스들로부터 수신되는 디코딩 결과를 이용하여 코드 연관성에 따른 연산 처리에 기초하여 상기 ECC 디코딩 처리에 실패한 코드워드의 소프트 입력을 수정하고, 상기 수정된 코드워드의 소프트 입력 ECC 디코딩 처리를 수행하는 레이드 컨트롤러를 포함하고,
상기 레이드 컨트롤러는
상기 스토리지 디바이스들 중의 어느 하나에서의 타깃 코드워드에 대한 ECC 디코딩 처리에 실패한 경우에 상기 타깃 코드워드와의 코드 연관성이 있는 참조 코드워드들에 대한 읽기 요청을 상기 복수의 스토리지 디바이스들로 전달하고, 상기 복수의 스토리지 디바이스들로부터 ECC 디코딩 처리에 실패한 타깃 코드워드의 소프트 입력, ECC 디코딩 처리에 성공한 참조 코드워드의 디코딩 결과 및 상기 ECC 디코딩 처리에 실패한 참조 코드워드의 소프트 입력을 수신하는 동작을 수행하는 프로세서를 포함하고,
상기 참조 코드워드들은 상기 타깃 코드워드와 동일한 스트라이프를 형성하는 저장 영역에서 읽어낸 코드워드들을 포함하고,
상기 참조 코드워드들은 짝수 패리티가 성립되지 않는 적어도 하나의 수직 코드워드에 대응됨을 특징으로 하는 레이드 스토리지 시스템. - 제19항에 있어서, 상기 레이드 컨트롤러는
상기 스토리지 디바이스들로부터 수신되는 소프트 입력 및 ECC 디코딩 결과를 저장하는 랜덤 액세스 메모리;
입력되는 코드워드를 ECC 디코딩 처리하는 ECC 디코더; 및
상기 수신된 ECC 디코딩 처리에 성공한 참조 코드워드의 디코딩 결과, 상기 ECC 디코딩 처리에 실패한 참조 코드워드의 소프트 입력 및 상기 ECC 디코딩 처리에 실패한 타깃 코드워드의 소프트 입력을 이용하여 코드 연관성에 따른 연산 처리에 기초하여 수정된 타깃 코드워드의 디코더 입력을 생성하여 상기 ECC 디코더로 출력하는 리커버리 모듈을 더 포함함을 특징으로 하는 레이드 스토리지 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160082977A KR102673873B1 (ko) | 2016-06-30 | 2016-06-30 | 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템 |
US15/613,718 US10846174B2 (en) | 2016-06-30 | 2017-06-05 | Method of recovering data and memory system and raid storage system using the same |
CN201710544300.XA CN107643958B (zh) | 2016-06-30 | 2017-06-30 | 恢复数据的方法和使用该方法的存储器系统和raid存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160082977A KR102673873B1 (ko) | 2016-06-30 | 2016-06-30 | 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180003320A KR20180003320A (ko) | 2018-01-09 |
KR102673873B1 true KR102673873B1 (ko) | 2024-06-10 |
Family
ID=60807461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160082977A Active KR102673873B1 (ko) | 2016-06-30 | 2016-06-30 | 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10846174B2 (ko) |
KR (1) | KR102673873B1 (ko) |
CN (1) | CN107643958B (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190019728A (ko) * | 2017-08-18 | 2019-02-27 | 에스케이하이닉스 주식회사 | 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 |
US10636495B2 (en) | 2018-06-12 | 2020-04-28 | Western Digital Technologies, Inc. | Adjustable read retry order based on decoding success trend |
US10747614B2 (en) | 2018-07-23 | 2020-08-18 | Micron Technology, Inc. | Hybrid iterative error correcting and redundancy decoding operations for memory sub-systems |
US10824502B2 (en) * | 2018-08-08 | 2020-11-03 | Micron Technology, Inc. | Enhanced codeword for media persistence and diagnostics |
KR102654297B1 (ko) * | 2018-08-27 | 2024-04-04 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR102800486B1 (ko) | 2018-11-19 | 2025-04-25 | 삼성전자주식회사 | Ecc 회로를 포함하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 에러 정정 방법 |
KR102696810B1 (ko) | 2019-04-03 | 2024-08-21 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11057060B1 (en) * | 2020-03-23 | 2021-07-06 | Sage Microelectronics Corporation | Method and apparatus for matrix flipping error correction |
US11474920B2 (en) | 2020-03-31 | 2022-10-18 | International Business Machines Corporation | Dynamic mapping of logical to physical memory for increased performance |
US11170869B1 (en) | 2020-06-04 | 2021-11-09 | Western Digital Technologies, Inc. | Dual data protection in storage devices |
JP2022044286A (ja) * | 2020-09-07 | 2022-03-17 | キオクシア株式会社 | メモリシステム |
KR20220140367A (ko) | 2021-04-09 | 2022-10-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US11762735B2 (en) | 2021-10-01 | 2023-09-19 | Western Digital Technologies, Inc. | Interleaved ECC coding for key-value data storage devices |
US11934264B2 (en) | 2021-11-22 | 2024-03-19 | Western Digital Technologies, Inc. | ECC parity biasing for Key-Value data storage devices |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8468430B2 (en) * | 2010-09-03 | 2013-06-18 | Snu R&Db Foundation | Product code decoding method and device |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357471A (en) * | 1992-03-20 | 1994-10-18 | National Semiconductor Corporation | Fault locator architecture and method for memories |
JP3154607B2 (ja) | 1993-12-28 | 2001-04-09 | 三菱電機株式会社 | 誤り訂正復号装置及び誤り訂正復号方法 |
US6526531B1 (en) | 2000-03-22 | 2003-02-25 | Agere Systems Inc. | Threshold detection for early termination of iterative decoding |
US6865708B2 (en) | 2000-08-23 | 2005-03-08 | Wang Xiao-An | Hybrid early-termination methods and output selection procedure for iterative turbo decoders |
US7093179B2 (en) * | 2001-03-22 | 2006-08-15 | University Of Florida | Method and coding means for error-correction utilizing concatenated parity and turbo codes |
US8046660B2 (en) * | 2006-08-07 | 2011-10-25 | Marvell World Trade Ltd. | System and method for correcting errors in non-volatile memory using product codes |
US8112699B2 (en) * | 2008-02-14 | 2012-02-07 | Atmel Rousset S.A.S. | Error detecting/correcting scheme for memories |
KR101529880B1 (ko) * | 2008-10-31 | 2015-06-19 | 삼성전자주식회사 | 에러 추정 방법 및 정정 방법 |
US8458574B2 (en) * | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
US8327249B2 (en) * | 2009-08-20 | 2012-12-04 | Broadcom Corporation | Soft error rate protection for memories |
KR101633048B1 (ko) * | 2010-02-25 | 2016-06-24 | 삼성전자주식회사 | 메모리 시스템 및 그것의 데이터 처리 방법 |
KR101774496B1 (ko) * | 2010-12-08 | 2017-09-05 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법 |
US8869000B2 (en) | 2011-01-31 | 2014-10-21 | Marvell World Trade Ltd. | Methods and systems for efficient decoding of concatenated error correction codes |
US8788922B2 (en) * | 2011-02-28 | 2014-07-22 | Apple Inc | Error correction codes for incremental redundancy |
US8671326B1 (en) * | 2011-05-16 | 2014-03-11 | Sk Hynix Memory Solutions Inc. | Concatenated codes for recovering stored data |
DE112012006153B4 (de) * | 2012-03-28 | 2021-09-23 | Intel Corp. | Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals |
US9053047B2 (en) | 2012-08-27 | 2015-06-09 | Apple Inc. | Parameter estimation using partial ECC decoding |
US9191256B2 (en) * | 2012-12-03 | 2015-11-17 | Digital PowerRadio, LLC | Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems |
KR102123946B1 (ko) * | 2012-12-28 | 2020-06-17 | 삼성전자주식회사 | 멀티 레벨 셀 메모리 장치 및 그것의 동작방법 |
US9319250B2 (en) * | 2013-03-15 | 2016-04-19 | Jonathan Kanter | Turbo decoding techniques |
KR20160046467A (ko) * | 2014-10-21 | 2016-04-29 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템, 데이터 저장 시스템 및 그것의 동작 방법 |
US9870284B2 (en) * | 2015-05-27 | 2018-01-16 | International Business Machines Corporation | First responder parities for storage array |
-
2016
- 2016-06-30 KR KR1020160082977A patent/KR102673873B1/ko active Active
-
2017
- 2017-06-05 US US15/613,718 patent/US10846174B2/en active Active
- 2017-06-30 CN CN201710544300.XA patent/CN107643958B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8468430B2 (en) * | 2010-09-03 | 2013-06-18 | Snu R&Db Foundation | Product code decoding method and device |
Also Published As
Publication number | Publication date |
---|---|
CN107643958A (zh) | 2018-01-30 |
US20180004601A1 (en) | 2018-01-04 |
US10846174B2 (en) | 2020-11-24 |
CN107643958B (zh) | 2022-11-08 |
KR20180003320A (ko) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102673873B1 (ko) | 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템 | |
KR102653401B1 (ko) | 메모리 시스템 및 그의 동작방법 | |
KR102800875B1 (ko) | 리클레임 제어부를 갖는 메모리 콘트롤러 및 그에 따른 동작 제어 방법 | |
KR102609130B1 (ko) | 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치 | |
KR102769764B1 (ko) | 컨트롤러, 메모리 시스템 및 그의 동작 방법 | |
US9213598B2 (en) | Nonvolatile memory device and method of operating the same | |
KR102293136B1 (ko) | 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 | |
CN105719703B (zh) | 存储系统及其操作方法 | |
KR102110767B1 (ko) | 메모리 컨트롤러 구동방법 및 메모리 컨트롤러 | |
KR102777278B1 (ko) | 읽기 요청 횟수를 줄이는 데이터 복원 동작을 수행하는 데이터 스토리지 시스템 | |
KR102707003B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR101925383B1 (ko) | 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 | |
US10747612B2 (en) | Multi-page parity protection with power loss handling | |
KR20180131023A (ko) | 반도체 메모리 시스템 및 그것의 동작 방법 | |
KR102784728B1 (ko) | 재분배기를 포함하는 메모리 시스템 | |
KR102329800B1 (ko) | 메모리 장치 및 메모리 장치의 에지 워드라인 관리 방법 | |
CN113053441A (zh) | 存储装置和存储装置的操作方法 | |
KR102495539B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR102804381B1 (ko) | 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템 | |
KR20190128794A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20200012221A (ko) | LDPC 코드(Low Density Parity Check Code) 부호를 위한 복호 방법 및 장치 | |
KR20200122407A (ko) | Nand 데이터 배치 스키마 | |
CN105718378A (zh) | 存储系统及其操作方法 | |
KR102546304B1 (ko) | 데이터 중복 제거를 수행할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템 | |
CN115985373A (zh) | 搜索非易失性存储器装置的读取电压的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20160630 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20210525 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20160630 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: 20231110 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: 20240418 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20240604 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20240605 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration |