KR102179228B1 - 메모리에서의 티어드 오류 정정 코드(ecc) 동작 - Google Patents
메모리에서의 티어드 오류 정정 코드(ecc) 동작 Download PDFInfo
- Publication number
- KR102179228B1 KR102179228B1 KR1020197027923A KR20197027923A KR102179228B1 KR 102179228 B1 KR102179228 B1 KR 102179228B1 KR 1020197027923 A KR1020197027923 A KR 1020197027923A KR 20197027923 A KR20197027923 A KR 20197027923A KR 102179228 B1 KR102179228 B1 KR 102179228B1
- Authority
- KR
- South Korea
- Prior art keywords
- ecc
- data
- operations
- codeword
- ecc operation
- Prior art date
Links
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/1044—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 with specific ECC/EDC distribution
-
- 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
-
- 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
- H03M13/1125—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
-
- 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/2906—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 using block codes
- H03M13/2909—Product codes
- H03M13/2912—Product codes omitting parity on parity
-
- 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/2906—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 using block codes
- H03M13/2927—Decoding strategies
-
- 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/2948—Iterative decoding
-
- 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
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- 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/6566—Implementations concerning memory access contentions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
오류 정정 코드(ECC) 동작을 수행하기 위한 장치 및 방법이 제공된다. 하나의 예시적인 방법은 데이터의 일부분에 대해 제1 오류 코드 정정(ECC) 동작을 수행하는 것, 제1 ECC 동작 실패에 응답하여 데이터의 부분에 대해 제2 ECC 동작을 수행하는 것, 및 제2 ECC 동작 실패에 응답하여 데이터의 부분에 대해 제3 ECC 동작을 수행하는 것을 포함할 수 있다.
Description
본 개시내용은 일반적으로 메모리 디바이스에 관한 것이며, 특히 메모리에서 티어드 오류 정정(tiered error correction)을 위한 장치 및 방법에 관한 것이다.
메모리 디바이스는 통상적으로 컴퓨터 또는 다른 전자 디바이스에서 내부의, 반도체, 집적 회로로서 제공된다. 휘발성 및 비-휘발성 메모리를 포함한 많은 상이한 유형의 메모리가 있다. 휘발성 메모리는 그의 데이터를 유지하기 위해 전력을 요구할 수 있으며, 특히, 랜덤-액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함한다. 비-휘발성 메모리는 동력이 공급되지 않을 때 저장된 데이터를 유지함으로써 영구적 데이터를 제공할 수 있으며, 특히, NAND 플래시 메모리, NOR 플래시 메모리, 판독전용 메모리(ROM), 전기적으로 삭제 가능한 프로그램 가능 ROM(EEPROM), 삭제 가능한 프로그램 가능 ROM(EPROM), 및 상 변화 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리(RRAM), 및 자기저항성 랜덤 액세스 메모리(MRAM)와 같은 저항 가변 메모리를 포함할 수 있다.
메모리 디바이스는 고체 상태 드라이브(SSD)와 같은 메모리 시스템의 저장 볼륨을 형성하기 위해 함께 조합될 수 있다. 고체 상태 드라이브는, 다양한 다른 유형의 비-휘발성 및 휘발성 메모리 중에서, 비-휘발성 메모리(예컨대, NAND 플래시 메모리 및 NOR 플래시 메모리)를 포함할 수 있고/있거나 휘발성 메모리(예컨대, DRAM 및 SRAM)를 포함할 수 있다.
SSD는 고체 상태 드라이브가 성능, 크기, 중량, 견고성, 동작 온도 범위, 및 전력 소비에 대하여 하드 드라이브에 비해 이점을 가질 수 있으므로, 컴퓨터에 대한 주된 저장 볼륨으로서 하드 디스크 드라이브를 대체하기 위해 사용될 수 있다. 예를 들면, SSD는 가동부의 부족으로 인해 자기 디스크 드라이브에 비교될 때 우수한 성능을 가질 수 있으며, 이것은 자기 디스크 드라이브와 연관된 탐색 시간, 대기 시간, 및 다른 전자-기계 지연을 피할 수 있다.
메모리는 또한 광범위한 전자 애플리케이션을 위한 휘발성 및 비-휘발성 데이터 저장 장치로 이용된다. 비-휘발성 메모리는, 예를 들면 개인용 컴퓨터, 휴대용 메모리 스틱, 디지털 카메라, 휴대 전화, MP3 플레이어와 같은 휴대용 음악 플레이어, 영화 플레이어, 및 다른 전자 디바이스에서 사용될 수 있다. 메모리 셀은 어레이로 배열될 수 있으며, 어레이는 메모리 디바이스에서 사용되고 있다.
도 1은 본 개시내용의 다수의 실시형태에 따른 메모리 시스템을 포함한 컴퓨팅 시스템의 형태에서의 장치의 블록도이다.
도 2는 본 개시내용의 다수의 실시형태에 따라 동작 가능한 메모리 셀의 어레이를 포함한 메모리의 일부분의 개략도이다.
도 3은 본 개시내용의 다수의 실시형태에 따른 메모리에 저장된 인코딩된 데이터의 블록도이다.
도 4는 본 개시내용의 다수의 실시형태에 따른 디코딩 티어(decoding tier)의 블록도이다.
도 5는 본 개시내용의 다수의 실시형태에 따른 디코딩 구성요소의 기능 블록도이다.
도 2는 본 개시내용의 다수의 실시형태에 따라 동작 가능한 메모리 셀의 어레이를 포함한 메모리의 일부분의 개략도이다.
도 3은 본 개시내용의 다수의 실시형태에 따른 메모리에 저장된 인코딩된 데이터의 블록도이다.
도 4는 본 개시내용의 다수의 실시형태에 따른 디코딩 티어(decoding tier)의 블록도이다.
도 5는 본 개시내용의 다수의 실시형태에 따른 디코딩 구성요소의 기능 블록도이다.
오류 정정 코드(error correction code: ECC) 동작을 수행하기 위한 장치 및 방법이 제공된다. 하나의 예시적인 방법은 데이터의 일부분에 대해 제1 오류 코드 정정(error code correction: ECC) 동작을 수행하는 것, 제1 ECC 동작 실패에 응답하여 상기 데이터의 부분에 대해 제2 ECC 동작을 수행하는 것, 및 제2 ECC 동작 실패에 응답하여 상기 데이터의 부분에 대해 제3 ECC 동작을 수행하는 것을 포함할 수 있다.
본 개시내용의 하나 이상의 실시형태에서, 제어기는 인코딩된 데이터에 대해 다수의 디코딩, 예컨대, ECC 동작을 실행하도록 구성될 수 있다. 제1 ECC 동작은 컴포넌트 코드워드에서 하드 데이터를 통해 오류를 정정하기 위해 컴포넌트 코드를 사용하는 것을 포함할 수 있다. 제2 ECC 동작은 제1 ECC 동작이 데이터에서 오류의 모두를 정정하는데 실패하는 것에 응답하여 수행될 수 있다. 제2 ECC 동작은 내부 코드와 연관된 블록-별 연쇄 코드워드(block-wise concatenated codeword)를 사용한 반복적 디코딩 동작일 수 있다. 제3 ECC 동작은 제2 ECC 동작이 데이터에서 오류의 모두를 정정하는데 실패하는 것에 응답하여 수행될 수 있다. 제3 ECC 동작은 제2 ECC 동작에서 사용된 내부 코드와 연관된 블록-별 연쇄 코드워드와 함께 외부 코드와 연관된 코드워드를 사용할 수 있다. 제4 ECC 동작은 제3 ECC 동작이 데이터에서 오류의 모두를 정정하는데 실패하는 것에 응답하여 수행될 수 있다. 제4 ECC 동작은 데이터에서의 오류를 정정하기 위해 소프트 데이터를 사용하는 것을 포함할 수 있다. 소프트 데이터는, 예컨대, 코드워드 비트가 0 또는 1인지에 대한 판단 외에, 하드 정보의 신뢰성을 나타내는 신뢰도 정보일 수 있다. 제4 ECC 동작은 소프트 정보에 기초하여 잘못될 수 있는 비트를 식별하며 이들 식별된 비트의 상태의 서브세트를 플리핑하는 반복적 동작이다. 일단 비트 또는 비트들이 플리핑되었다면, 부가적인 ECC 동작, 예컨대, 제1 ECC 동작, 제2 ECC 동작, 및/또는 제3 ECC 동작이 데이터에 대해 수행된다. 데이터가 부가적인 ECC 동작을 통과한다면, 모든 오류는 정정되었으며 ECC 디코딩 동작은 완료된다. 데이터가 부가적인 ECC 동작을 통과하지 않았다면, 비트의 또 다른 서브세트의 상태가 플리핑되며 모든 오류가 정정될 때까지 또는 임계 수의 시도가 도달되고/되거나 임계 수의 비트가 플리핑될 때까지 부가적인 ECC 동작이 수행된다.
다수의 실시형태에서, 제1, 제2, 제3 및/또는 제4 ECC 동작은 각각 상이한 대기 시간, 전력 소비 및 오류 정정 능력을 가질 수 있다. 예를 들면, 제1 ECC 동작은 가장 낮은 대기 시간 및 전력 소비를 가질 수 있는 반면, 가장 낮은 오류 정정 능력을 갖는다. 제2 ECC 동작은 다음으로 가장 낮은 대기 시간 및 전력 소비를 가질 수 있지만, 다음으로 가장 낮은 오류 정정 능력을 갖는다. 제3 ECC 동작은 다음으로 가장 낮은 대기 시간 및 전력 소비를 가질 수 있지만, 다음으로 가장 낮은 오류 정정 능력을 갖는다. 다수의 실시형태에서, 제1, 제2, 제3 및/또는 제4 ECC 동작은, 예를 들면, 메모리 디바이스의 건강/수명 및/또는 데이터의 크기와 같은, 선험적 정보에 기초하여 성능을 위해 선택될 수 있다. 예를 들면, 제3 ECC 동작은 먼저 선험적 정보에 기초하여 수행되도록 선택될 수 있다. 다수의 실시형태에서, 제1, 제2, 제3 및/또는 제4 ECC 동작은 하드웨어 및/또는 펌웨어를 사용하여 성능을 위해 선택될 수 있다.
본 개시내용의 다음의 상세한 설명에서는, 본 개시내용의 일부를 형성하며, 개시내용의 다수의 실시형태가 어떻게 실시될 수 있는지가 예시로서 도시되는 수반된 도면을 참조한다. 이들 실시형태는 이 기술분야의 통상의 기술자가 본 개시내용의 실시형태를 실시할 수 있게 하기 위해 충분히 상세하게 설명되며, 다른 실시형태가 이용될 수 있고 프로세스, 전기적, 및/또는 구조적 변화가 본 개시내용의 범위에서 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다. 여기에서 사용된 바와 같이, 지정자 "N"은 그렇게 지정된 다수의 특정한 특징이 본 개시내용의 다수의 실시형태와 함께 포함될 수 있다는 것을 나타낸다.
여기에서 사용된 바와 같이, "다수의" 어떤 것은 이러한 것 중 하나 이상을 나타낼 수 있다. 예를 들면, 다수의 메모리 디바이스는 메모리 디바이스 중 하나 이상을 나타낼 수 있다. 부가적으로, 여기에서 사용된 바와 같이, 특히 도면에서 참조 번호에 대하여, "N"과 같은 지정자는 그렇게 지정된 다수의 특정한 특징이 본 개시내용의 다수의 실시형태와 함께 포함될 수 있다는 것을 나타낸다.
여기에서의 도면은 제1 숫자 또는 숫자들이 도면 도 번호에 대응하며 나머지 숫자는 도면에서의 요소 또는 구성요소를 식별한다는 넘버링 관례를 따른다. 상이한 도면 사이에서의 유사한 요소 또는 구성요소는 유사한 숫자의 사용에 의해 식별될 수 있다. 이해될 바와 같이, 여기에서의 다양한 실시형태에서 도시된 요소는 본 개시내용의 다수의 부가적인 실시형태를 제공하기 위해 부가, 교환 및/또는 제거될 수 있다. 또한, 도면에서 제공된 요소의 비율 및 상대적인 스케일은 본 개시내용의 다양한 실시형태를 예시하도록 의도되며 제한적인 의미로 사용되지 않을 것이다.
도 1은 본 개시내용의 하나 이상의 실시형태에 따른, 적어도 하나의 메모리 시스템(104)의 형태에서의 장치를 포함한 컴퓨팅 시스템(100)의 기능 블록도이다. 여기에서 사용된 바와 같이, "장치"는 예를 들면, 회로 또는 회로부, 다이 또는 다이들, 모듈 또는 모듈들, 디바이스 또는 디바이스들, 또는 시스템 또는 시스템들과 같은, 다양한 구조 또는 구조의 조합 중 임의의 것을 나타낼 수 있지만, 이에 제한되지 않는다. 도 1에 예시된 실시형태에서, 메모리 시스템(104)은 제어기(108) 및 하나 이상의 메모리 디바이스(110-1, ..., 110-N)를 포함할 수 있다. 이 예에서, 제어기(108)는 하나 이상의 메모리 디바이스(110-1, ..., 110-N)의 외부에 있다. 메모리 디바이스(110-1, ..., 110-N)는, 예컨대, 메모리 디바이스로 포맷팅된 파일 시스템에, 메모리 시스템을 위한 저장 볼륨을 제공할 수 있다. 다수의 실시형태에서, 다수의 메모리 디바이스(110-1, ..., 110-N)는 다수의 논리 유닛(LUN들)을 포함한 비-휘발성 메모리를 포함할 수 있다. LUN은 독립적으로 제어 가능할 수 있는 비-휘발성 메모리의 일부분일 수 있다. 제어기(108)는 제어 회로, 예컨대, 하드웨어, 펌웨어, 및/또는 소프트웨어를 포함할 수 있다. 하나 이상의 실시형태에서, 제어기(108)는 물리 인터페이스 및 메모리 디바이스(110-1, ..., 110-N)를 포함한 인쇄 회로 보드에 결합된 애플리케이션 특정 집적 회로(ASIC)일 수 있다. 또한, 제어기는 휘발성 및/또는 비-휘발성 메모리를 포함할 수 있다.
제어기(108)는 데이터에 대해 ECC(130) 동작을 수행하기 위해, 예컨대, 데이터에서의 오류를 정정하기 위해 하드웨어, 펌웨어, 및/또는 소프트웨어를 포함할 수 있다. 예를 들면, 임계 전압 시프트로 인한 메모리 셀의 상태에서의 오류가 ECC(130)에 의해 정정될 수 있다. ECC 동작은 단지 하드 데이터에 기초하여 오류를 정정하기 위해 사용된 정규 ECC 동작 및 오류를 정정하기 위해 소프트 데이터를 사용할 수 있는 개선된 ECC 동작을 포함할 수 있다. 정규 ECC 및/또는 개선된 ECC가 사용되는지는 예를 들면, 잘못된 셀의 수, 예컨대, 잘못된 비트의 양에 의존할 수 있다.
본 개시내용의 다수의 실시형태에서, ECC(130) 동작이 수행된다. 데이터는 제1 코드, 예컨대, 외부 코드(132), 및 제2 코드, 예컨대, 내부 코드(134)를 사용하여 인코딩될 수 있다. 예를 들면, 제1 코드는 BCH 코드일 수 있으며 제2 코드는 블록-별 연쇄 곱 코드일 수 있다.
도 1에 예시된 바와 같이, 호스트(102)는 메모리 시스템(104)에 결합될 수 있다. 호스트(102)는 다른 호스트 시스템 중에서, 랩탑 컴퓨터, 개인용 컴퓨터, 디지털 카메라, 디지털 기록 및 재생 디바이스, 이동 전화, PDA, 메모리 카드 판독기, 인터페이스 허브일 수 있으며, 메모리 액세스 디바이스, 예컨대, 프로세서를 포함할 수 있다. 이 기술분야의 통상의 기술자는 "프로세서"가 병렬 프로세싱 시스템, 다수의 코프로세서 등과 같은, 하나 이상의 프로세서를 의도할 수 있다는 것을 이해할 것이다.
하나 이상의 실시형태에서, 물리적 호스트 인터페이스는 표준화된 인터페이스의 형태에 있을 수 있다. 예를 들면, 메모리 시스템(104)이 컴퓨팅 시스템(100)에서 데이터 저장을 위해 사용될 때, 물리적 호스트 인터페이스는, 다른 커넥터 및 인터페이스 중에서, 직렬 고급 기술 접속(SATA), 주변 구성요소 상호연결 고속(PCIe), 또는 범용 직렬 버스(USB)일 수 있다. 일반적으로, 그러나, 물리적 호스트 인터페이스는 메모리 시스템(104)과 물리적 호스트 인터페이스를 위한 호환 가능한 수용기를 가진 호스트(102) 사이에서 제어, 어드레스, 데이터, 및 다른 신호를 전달하기 위한 인터페이스를 제공할 수 있다.
제어기(108)는, 다른 동작 중에서도, 데이터를 판독, 기록 및 삭제하기 위해 메모리 디바이스(110-1, ..., 110-N)와 통신할 수 있다. 제어기(108)는 하나 이상의 집적 회로 및/또는 이산 구성요소일 수 있는 회로를 가질 수 있다. 제어기는 적절한 시간에 적절한 I/O 연결에서 적절한 신호를 수신하기 위해 메모리 디바이스(110-1, ..., 110-N)의 I/O 연결(도 1에 도시되지 않음)을 선택적으로 결합할 수 있다. 유사하게, 호스트(102)와 메모리 시스템(104) 사이에서의 통신 프로토콜은 메모리 디바이스(110-1, ..., 110-N)의 액세스를 위해 요구되는 것과 상이할 수 있다. 제어기(108)는 메모리 디바이스(110-1, ..., 110-N)로의 원하는 액세스를 달성하기 위해 호스트로부터 수신된 명령을 적절한 명령으로 변환할 수 있다.
메모리 디바이스(110-1, ..., 110-N)는 메모리 셀, 예컨대, 비-휘발성 메모리 셀의 하나 이상의 어레이를 포함할 수 있다. 어레이는, 예를 들면, NAND 아키텍처를 가진 플래시 어레이일 수 있다. 실시형태는 특정한 유형의 메모리 디바이스에 제한되지 않는다. 예를 들면, 메모리 디바이스는, 특히, RAM, ROM, DRAM, SDRAM, PCRAM, RRAM, 및 플래시 메모리를 포함할 수 있다.
메모리 디바이스(110-1, ..., 110-N)는 그룹화될 수 있는 다수의 메모리 셀을 포함할 수 있다. 여기에서 사용된 바와 같이, 그룹은 페이지, 블록, 평면, 다이, 전체 어레이, 또는 다른 그룹의 메모리 셀과 같은, 하나 이상의 메모리 셀을 포함할 수 있다. 예를 들면, 몇몇 메모리 어레이는 메모리 셀의 블록을 이루는 메모리 셀의 다수의 페이지를 포함할 수 있다. 다수의 블록은 메모리 셀의 평면에 포함될 수 있다. 메모리 셀의 다수의 평면은 다이 상에 포함될 수 있다. 예로서, 128GB 메모리 디바이스는 페이지당 4314바이트의 데이터, 블록당 128페이지, 평면당 2048개 블록, 및 디바이스당 16개 평면을 포함할 수 있다.
메모리 디바이스에서, 물리 페이지는 기록 및/또는 판독의 단위, 예컨대, 함께 기록 및/또는 판독되는 셀의 수 또는 메모리 셀의 기능 그룹으로서 나타낼 수 있다. 짝수 페이지 및 홀수 페이지는 별개의 기록 및/또는 판독 동작으로 기록 및/또는 판독될 수 있다. 다중레벨 셀(MLC)을 포함한 실시형태에 대해, 물리 페이지는, 예를 들면, 데이터의 상부 페이지 및 하부 페이지로 논리적으로 나뉠 수 있다. 예를 들면, 하나의 메모리 셀은 데이터의 상부 페이지에 하나 이상의 비트를 및 데이터의 하부 페이지에 하나 이상의 비트를 기여할 수 있다. 따라서, 데이터의 상부 페이지 및 하부 페이지는, 논리 상부 페이지 및 논리 하부 페이지 양쪽 모두가 동일한 물리 페이지의 부분이므로, 하나의 기록 및/또는 판독 동작의 부분으로서 기록 및/또는 판독될 수 있다.
도 1의 실시형태는 본 개시내용의 실시형태를 모호하게 하지 않도록 예시되지 않은 부가적인 회로를 포함할 수 있다. 예를 들면, 메모리 시스템(104)은 I/O 회로를 통해 I/O 연결에 걸쳐 제공된 어드레스 신호를 래치하기 위해 어드레스 회로를 포함할 수 있다. 어드레스 신호가 수신되며 메모리 디바이스(110-1, ..., 110-N)를 액세스하기 위해 행(row) 디코더 및 열(column) 디코더에 의해 디코딩될 수 있다. 이 기술분야의 숙련자에 의해 어드레스 입력 연결의 수가 메모리 디바이스(110-1, ..., 110-N)의 밀도 및 아키텍처에 의존할 수 있다는 것이 이해될 것이다.
일반적으로, 제어기(108)는 호스트(102)로부터, 예컨대, PCIe 버스로부터 수신된 코맨드 패킷을 호스트-메모리 변환 회로를 위한 코맨드 명령어(command instruction)로 변환하고 메모리 응답을 요청 호스트로의 송신을 위한 호스트 시스템 명령으로 변환할 책임이 있다.
하나 이상의 실시형태에서, 데이터는 한 번에 하나의 페이지가 메모리 디바이스에 기록될 수 있다. 메모리 디바이스에서의 각각의 페이지는 다수의 물리 섹터를 가질 수 있으며 각각의 물리 섹터는 논리 블록 어드레스(LBA)와 연관될 수 있다. 예로서, 물리 페이지는 8개의 물리 섹터의 데이터를 가질 수 있다. 그러나, 실시형태는 물리 페이지당 특정한 수의 물리 섹터에 제한되지 않는다.
도 2는 본 개시내용의 다수의 실시형태에 따라 동작 가능한 메모리 셀의 어레이를 포함한 메모리(210)의 일부분의 개략도이다. 도 2의 실시형태는 NAND 아키텍처 비-휘발성 메모리 어레이를 예시하지만; 여기에서 설명된 실시형태는 이 예로 제한되지 않는다. 예를 들면, 다수의 실시형태가 NOR 아키텍처 비-휘발성 메모리 어레이에 구현될 수 있다. 도 2에 도시된 바와 같이, 메모리 어레이는 액세스 라인(예컨대, 워드 라인(205-1, .., 205-N)) 및 교차 데이터 라인(예컨대, 로컬 비트 라인(207-1, 207-2, 207-3, ..., 207-M))을 포함한다. 디지털 환경에서 어드레싱의 용이를 위해, 워드 라인(205-1, ..., 205-N)의 수 및 로컬 비트 라인(207-1, 207-2, 207-3, ..., 207-M)의 수는 2의 몇몇 거듭제곱(power)(예컨대, 256 워드 라인×4,096 비트 라인)일 수 있다.
메모리 어레이는 NAND 스트링(209-1, 209-2, 209-3, ..., 209-M)을 포함한다. 각각의 NAND 스트링은 비-휘발성 메모리 셀(211-1, ..., 211-N)을 포함하며, 각각은 각각의 워드 라인(205-1, ..., 205-N)에 통신 가능하게 결합된다. 각각의 NAND 스트링(및 그의 구성 메모리 셀)은 또한 로컬 비트 라인(207-1, 207-2, 207-3, ..., 207-M)과 연관된다. 각각의 NAND 스트링(209-1, 209-2, 209-3, ..., 209-M)의 메모리 셀(211-1, ..., 211-N)은 선택 게이트 소스(예컨대, 전계-효과 트랜지스터(FET)(213))와 선택 게이트 드레인(예컨대, FET(219)) 사이에서 소스에서 드레인으로 직렬로 결합된다. 각각의 선택 게이트 소스(213)는 소스 선택 라인(217) 상에서의 신호에 응답하여 공통 소스(223)에 각각의 NAND 스트링을 선택적으로 결합하도록 구성되지만, 각각의 선택 게이트 드레인(219)은 드레인 선택 라인(215) 상에서의 신호에 응답하여 각각의 비트 라인에 각각의 NAND 스트링을 선택적으로 결합하도록 구성된다.
도 2에 예시된 실시형태에서 도시된 바와 같이, 선택 게이트 소스(213)의 소스는 공통 소스 라인(223)에 결합된다. 선택 게이트 소스(213)의 드레인은 대응하는 NAND 스트링(209-1)의 메모리 셀(211-1)의 소스에 결합된다. 선택 게이트 드레인(219)의 드레인은 드레인 접촉(221-1)에서 대응하는 NAND 스트링(209-1)의 비트 라인(207-1)에 결합된다. 선택 게이트 드레인(219)의 소스는 대응하는 NAND 스트링(209-1)의 마지막 메모리 셀(211-N)(예컨대, 부동-게이트 트래지스터)의 드레인에 결합된다.
다수의 실시형태에서, 비-휘발성 메모리 셀(211-1, ..., 211-N)의 구성은 소스, 드레인, 부동 게이트 또는 다른 전하 저장 구조, 및 제어 게이트를 포함한다. 메모리 셀(211-1, ..., 211-N)은 각각 워드 라인(205-1, ..., 205-N)에 결합된 이들의 제어 게이트를 갖는다. NOR 어레이 아키텍처는 메모리 셀의 스트링이 선택 게이트 사이에서 병렬로 결합될 것이라는 점을 제외하고, 유사하게 배치될 것이다. 예를 들면, 각각의 메모리 셀(도 2에 예시된 바와 같이 메모리 셀(211-N))의 일단부는 비트 라인에 결합될 수 있으며, 동일한 메모리 셀의 또 다른 단부는 비트 라인과 병렬로 정렬될 수 있는 소스 라인에 결합될 수 있다. 더욱이, NOR 아키텍처는 (예컨대, NAND 아키텍처와 마찬가지로 페이지-기반 액세스에 대조적으로) 어레이에서 메모리 셀로의 랜덤 액세스를 위해 제공할 수 있다.
동작 시, 선택된 워드 라인(예컨대, 205-1, ..., 205-N)에 결합된 다수의 메모리 셀은 그룹으로서 함께 기록 및/또는 판독될 수 있다. 함께 기록된 그리고/또는 판독된 메모리 셀의 그룹은 셀의 페이지(예컨대, 물리 페이지)로서 참조될 수 있으며 데이터의 다수의 페이지(예컨대, 논리 페이지)를 저장할 수 있다. 특정한 워드 라인에 결합되며 각각의 데이터 상태로 함께 프로그램된 다수의 메모리 셀은 타깃 페이지로서 지칭될 수 있다. 프로그래밍 동작은 메모리 셀을 프로그램하기 위해 사용되고 있는 특정한 프로그래밍 알고리즘에 대응하는 다수의 프로그램 펄스(예컨대, 16V 내지 20V)를, 상기 선택된 워드 라인에 결합된 선택된 셀의 임계 전압(Vt)을 타깃 데이터 상태에 대응하는 원하는 전압 레벨로 증가시키기 위해 선택된 워드 라인에 인가하는 것을 포함할 수 있다.
판독 동작은 선택된 셀의 상태를 결정하기 위해 선택된 셀에 결합된 비트 라인의 전압 및/또는 전류 변화를 감지하는 것을 포함할 수 있다. 판독 동작은 비트 라인을 프리차징하는 것 및 선택된 셀이 전도하기 시작할 때 방전을 감지하는 것을 포함할 수 있다. 일 유형의 판독 동작은 램핑 판독 신호를 선택된 워드 라인에 인가하는 것을 포함하며, 또 다른 유형의 판독 동작은 셀의 상태를 결정하기 위해 복수의 이산 판독 신호를 선택된 워드 라인에 인가하는 것을 포함한다.
도 3은 본 개시내용의 다수의 실시형태에 따른 메모리에 저장된 인코딩된 데이터의 블록도이다. 도 3에서, 데이터, 예컨대, 외부 코드의 사용자 데이터 및 패리티 데이터는 블록-별 연쇄 곱 코드로 인코딩된다. 인코딩된 데이터는 열 컴포넌트 코드워드(344-1, ..., 344-X) 및 행 컴포넌트 코드워드(342-1, ..., 342-Y)에 저장된다. 인코딩된 데이터는 사용자 데이터 및/또는 외부 코드 패리티 데이터를 포함하는 ECC 페이로드(346), 열 컴포넌트 코드워드 패리티 데이터(352), 및 행 컴포넌트 코드워드 패리티 데이터(350)를 포함한다. 열 컴포넌트 코드워드(344-1, ..., 344-X)와 행 컴포넌트 코드워드(342-1, ..., 342-Y)의 교차점은 특정한 교차점에서 열 컴포넌트 코드워드 및 행 컴포넌트 코드워드에 의해 보호되는 비트의 블록을 포함한다.
도 4는 본 개시내용의 다수의 실시형태에 따른 디코딩 티어의 블록도이다. ECC(460-1)의 제1 티어는 컴포넌트 코드워드에서의 하드 데이터를 통해 오류를 정정하기 위해 컴포넌트 코드 디코드(462)를 사용한 동작을 포함할 수 있다. ECC(460-2)의 제2 티어는 내부 코드와 연관된 블록-별 연쇄 코드워드를 사용한 반복적 디코딩 동작을 포함할 수 있는, 내부 코드 디코드(464)를 사용한 동작을 포함할 수 있다. ECC(460-3)의 제3 티어는 ECC의 제2 티어에서 사용된 내부 코드와 연관된 블록-별 연쇄 코드워드와 함께 외부 코드와 연관된 코드워드를 사용할 수 있는, 내부 코드 디코드 및 외부 코드 디코드(466)를 사용한 동작을 포함할 수 있다. 제4 ECC 동작은 제3 ECC 동작이 데이터에서의 오류의 모두를 정정하는데 실패하는 것에 응답하여 수행될 수 있다. 제4 ECC 동작은 데이터에서의 오류를 정정하기 위해 소프트 데이터를 사용하는 것을 포함할 수 있다. 소프트 데이터는 예컨대, 코드워드 비트가 0 또는 1인지에 대한 판단 외에, 하드 정보의 신뢰성을 나타내는 신뢰도 정보일 수 있다. 제4 ECC 동작은 제2 ECC 동작에서 디코딩하는데 실패한 컴포넌트 코드워드의 교차점에서의 소프트 정보에 기초하여 잘못될 수 있는 비트를 식별하며 이들 식별된 비트의 상태의 서브세트를 플리핑하는 반복적 동작이다. 일단 비트 또는 비트들이 플리핑되었다면, 부가적인 ECC 동작, 예컨대, 제1 ECC 동작, 제2 ECC 동작, 및/또는 제3 ECC 동작이 데이터에 대해 수행된다. 데이터가 부가적인 ECC 동작을 통과한다면, 모든 오류는 정정되었으며 ECC 디코딩 동작은 완료된다. 데이터가 부가적인 ECC 동작을 통과하지 않았다면, 또 다른 서브세트의 비트의 상태가 플리핑되며 부가적인 ECC 동작은 모든 오류가 정정될 때까지 또는 임계 수의 시도가 도달되고/되거나 임계 수의 비트가 플리핑될 때까지 수행된다.
ECC(460-4)의 제4 티어는 오류가 열 코드워드와 행 코드워드의 하나 이상의 교차점을 발생시킨다는 것에 응답하여 수행될 수 있다. 비트 플립 후보의 리스트가 생성될 수 있다. 비트 플립 후보는 오류 또는 오류들이 남아있는 행 코드워드 및 열 코드워드의 교차점에서의 비트로부터 선택된다. 비트 플립 후보 리스트에서의 비트는, 특정한 비트가 잘못될 가능성의 표시인, 그들의 로그 우도비(LLR)에 기초하여 선택될 수 있다. 비트에 대한 보다 높은 LLR 크기는 비트가 잘못될 가능성이 적다는 것을 나타낸다. 비트 플립 후보 리스트는 예를 들면, 특정한 LLR 미만인 비트 모두를 포함할 수 있다. 비트 플립 후보 리스트로부터의 특정한 수의 비트가 플리핑될 수 있으며 그 후 부가적인 ECC 동작이 임의의 남아있는 오류를 정정하기 위해 플리핑된 비트와 함께 데이터에 대해 수행될 수 있다. 부가적인 ECC 동작이 남아있는 오류를 정정하는데 성공적이면, 티어드 ECC 동작은 완료될 수 있다. 부가적인 ECC 동작이 성공적이지 않다면, 비트 플립 후보 리스트로부터의 또 다른 수의 비트가 플리핑될 수 있으며 또 다른 ECC 동작이 수행될 수 있다.
예를 들면, 비트 플립 후보 리스트는 X 비트를 포함할 수 있으며 ECC 디코딩의 제4 티어 동안, Y 비트가 한 번에 플리핑될 수 있고, 따라서 XchooseY 비트 플립 치환은 ECC 동작이 남아있는 오류를 정정하는데 성공적일 때까지 또는 임계 수의 비트 플립 치환이 시도될 때까지 시도될 수 있다.
다수의 실시형태에서, ECC의 제1 티어(460-1)는 크기가 64B인 데이터에 대해 사용될 수 있다. 예를 들면, 4kB와 같은, 데이터의 크기가 64B보다 크다면, ECC의 제1 티어(460-1)는 스킵될 수 있으며 ECC 프로세스는 ECC의 제2 티어(460-2)로 시작할 수 있다.
ECC의 각각의 연속적인 티어는 ECC의 이전의 티어가 데이터에서의 오류를 정정할 수 없을 때 개시될 수 있다. 예를 들면, ECC의 제2 티어(460-2)는 ECC의 제1 티어(460-1)가 데이터에서의 오류 모두를 정정하는데 실패하는 것에 응답하여 수행될 수 있다. ECC의 제3 티어(460-3)는 ECC의 제2 티어(460-2)가 데이터에서의 오류의 모두를 정정하는데 실패하는 것에 응답하여 수행될 수 있다. ECC의 제4 티어(460-4)는 ECC의 제3 티어(460-3)가 데이터에서의 오류의 모두를 정정하는데 실패하는 것에 응답하여 수행될 수 있다. ECC의 제1 티어(460-1)는 ECC의 티어 중 가장 낮은 대기 시간, 전력 소비, 및 정정 능력을 가질 수 있다. 각각의 연속적인 티어는 보다 큰 대기 시간, 전력 소비, 및 정정 능력을 가질 수 있으며, 그러므로 ECC의 티어를 사용하는 것은 시스템으로 하여금 데이터에 존재하는 오류를 정정하기 위해 필요한 대기 시간 및 전력의 양만을 사용하여 오류를 정정하도록 허용할 수 있다. 또한, ECC의 티어의 각각은 하드웨어를 통해 구현될 수 있으며, 따라서 ECC 동작을 수행하기 위해 사용된 티어가 자동으로 선택된다. ECC의 티어는 또한 수동으로 선택될 수 있으며, 여기에서 펌웨어는 데이터에서의 오류를 정정하기 위해 사용될 ECC의 티어를 선택하기 위해 사용될 수 있다.
도 5는 본 개시내용의 다수의 실시형태에 따른 디코딩 구성요소의 기능 블록도이다. 제2 티어 디코딩 구성요소(560-2)는 행 신드롬 계산 구성요소(570), 계산될 때 행 신드롬을 저장하기 위한 행 신드롬 메모리(571), 열 신드롬 계산 구성요소(572), 및 계산될 때 열 신드롬을 저장하기 위한 열 신드롬 메모리(573)를 포함할 수 있다. 디코드 엔진(574)은 내부 코드에 기초하여 데이터에서의 오류를 정정하기 위해 열 신드롬 및 행 신드롬을 사용할 수 있다. 디코드 엔진(574)에 의해 정정되는 오류는 외부 코드 신드롬(582)에 매핑된다(576). 지수화 엔진(578)은 디코드 엔진(574)에 의해 정정된 오류에 기초하여 행 신드롬 메모리(571) 및 열 신드롬 메모리(573)를 업데이트할 수 있다. 제2 티어 ECC 프로세스는 디코드 엔진(574)이 오류 플로어에 도달하며 더 이상 데이터에서의 남아있는 오류를 정정할 수 없거나 또는 반복적 디코딩 기법에서 임계 수의 시도에 도달할 때까지 반복적일 수 있다.
제3 티어 디코딩 구성요소(560-3)는 외부 코드에 기초하여 오류를 정정하기 위해 외부 코드 및 구성요소(584)(예컨대, Berlekamp 및/또는 Chien 탐색 디바이스)를 위한 신드롬을 생성하기 위해 외부 코드 디코더(580)를 포함한다. 제3 티어 디코딩 구성요소는 또한 제2 티어 ECC에 의해 정정된 오류에 기초하여 업데이트된 외부 코드 신드롬(582)을 포함한다.
구성요소(560-4)는 XOR 연산(588)을 수행하기 위해 데이터 및 로직을 저장하기 위해 버퍼(586)를 포함한다. 버퍼(586)는 남아있는 오류가 위치되는 코드워드를 저장할 수 있으며 버퍼(586)에 저장된 코드워드는 제4 티어 디코딩 동작에 기초하여 정정될 수 있다. 비트 플립 후보 리스트를 위한 비트는 디코딩하는데 실패한 컴포넌트 코드워드의 교차점에 기초하여 버퍼(586)에 저장된 비트로부터 선택될 수 있다. 비트 플립 후보 리스트로부터의 특정한 수의 비트가 플리핑될 수 있으며 그 후 부가적인 ECC 동작이 임의의 남아있는 오류를 정정하기 위해 플리핑된 비트와 함께 데이터에 대해 수행될 수 있다. 부가적인 ECC 동작이 남아있는 오류를 정정하는데 성공적이면, 티어드 ECC 동작은 완료될 수 있으며 버퍼(586)에서의 코드워드는 업데이트될 수 있다.
특정 실시형태가 여기에서 예시되고 설명되었지만, 이 기술분야의 통상의 기술자는 동일한 결과를 달성하기 위해 산출된 배열이 도시된 특정한 실시형태를 위해 대체될 수 있다는 것을 이해할 것이다. 이러한 개시내용은 본 개시내용의 다양한 실시형태의 적응화 또는 변화를 커버하도록 의도된다. 상기 설명은 제한적인 것이 아닌, 예시적인 방식으로 이루어졌다는 것이 이해될 것이다. 상기 실시형태의 조합, 및 여기에서 구체적으로 설명되지 않은 다른 실시형태는 상기 설명을 검토할 때 이 기술분야의 숙련자에게 명백할 것이다. 본 개시내용의 다양한 실시형태의 범위는 상기 구조 및 방법이 사용되는 다른 애플리케이션을 포함한다. 그러므로, 본 개시내용의 다양한 실시형태의 범위는 이러한 청구항이 자격을 부여받은 등가물의 전체 범위와 함께, 첨부된 청구항을 참조하여 결정되어야 한다.
앞서 기술한 상세한 설명에서, 다양한 특징은 개시내용을 간소화할 목적으로 단일 실시형태에서 함께 그룹화된다. 본 개시내용의 이러한 방법은 본 개시내용의 개시된 실시형태가 각각의 청구항에서 명확하게 나열되는 보다 많은 특징을 사용해야 한다는 의도를 반영한 것으로서 해석되지 않을 것이다. 오히려, 다음의 청구항이 반영할 때, 본 발명의 주제는 단일의 개시된 실시형태의 모든 특징보다 적다. 따라서, 다음의 청구항은 상세한 설명에 통합되며, 각각의 청구항은 별개의 실시형태로서 그 자체로 성립한다.
Claims (25)
- 방법으로서,
데이터의 일부분에 대해 제1 오류 코드 정정(error code correction: ECC) 동작을 수행하는 단계;
상기 제1 ECC 동작 실패에 응답하여 상기 데이터의 부분에 대해 제2 ECC 동작을 수행하는 단계;
상기 제2 ECC 동작 실패에 응답하여 상기 데이터의 부분에 대해 제3 ECC 동작을 수행하는 단계 - 상기 제1, 제2 및 제3 ECC 동작은 상기 데이터의 부분에서의 오류를 정정하기 위하여 하드 데이터를 사용함 -; 및
상기 제3 ECC 동작 실패에 응답하여 제4 ECC 동작을 수행하는 단계를 포함하되,
상기 제4 ECC 동작은, 상기 제1, 제2 및 제3 ECC 동작이 정정하는데 실패한 오류를 정정하기 위해 열 코드워드와 행 코드워드의 교차점에서의 비트로부터 비트 플립 후보 리스트를 소프트 데이터를 이용하여 생성하는, 방법. - 제1항에 있어서, 상기 제1 ECC 동작을 수행하는 단계는 컴포넌트 코드 디코더를 사용하는 단계를 포함하고,
상기 제2 ECC 동작을 수행하는 단계는 반복적 곱 코드 디코더(iterative product code decoder)를 사용하는 단계를 포함하며, 그리고
상기 제3 ECC 동작을 수행하는 단계는 외부 BCH 디코더를 사용하는 단계를 포함하는, 방법. - 제1항에 있어서, 상기 제4 ECC 동작을 수행하는 단계는 코드워드가 상기 제3 ECC 동작을 실패하는 것에 응답하여 변경된 코드워드에 대해 반복적 곱 코드 디코더(iterative product code decoder) 및 외부 BCH 디코더 중 하나를 사용하는 단계를 포함하는, 방법.
- 제1항에 있어서, 상기 제1 ECC 동작은 상기 제2 및 제3 ECC 동작보다 적은 대기 시간을 갖고 그리고 상기 제4 ECC 동작은 상기 제1, 제2 및 제3 ECC 동작보다 큰 오류 정정 능력 및 대기 시간을 갖는, 방법.
- 방법으로서,
메모리 어레이로부터 판독된 데이터에 대해 제1 오류 코드 정정(ECC) 동작을 수행하는 단계로서, 상기 ECC 동작은 상기 데이터에서의 오류를 정정하기 위하여 컴포넌트 코드 워드에서 하드 데이터를 사용하는, 상기 제1 ECC 동작을 수행하는 단계;
상기 제1 ECC 동작 실패에 응답하여 상기 데이터에 대해 제2 오류 코드 정정(ECC) 동작을 수행하는 단계를 포함하되,
상기 제2 ECC 동작을 수행하는 단계는 로그 우도비에 기초하여 이전의 ECC 동작을 실패한 행 코드워드(342-1, ..., 342-Y)와 열 코드워드(344-1, ..., 344-X)의 교차점에서의 비트를 포함하는 비트 플립 후보 리스트를 생성하는 단계, 상기 비트 플립 후보 리스트로부터 다수의 비트의 상태를 변경하는 단계, 및 상기 데이터에서의 오류를 정정하기 위하여 다른 ECC 동작을 수행하는 단계를 포함하는, 방법. - 제5항에 있어서, 상기 제1 ECC 동작을 수행하는 단계는,
이전의 ECC 동작에서 사용된 하드 디코더를 사용하는 단계를 포함하는, 방법. - 제5항에 있어서, 상기 제2 ECC 동작을 수행하는 단계는,
상기 제1 ECC 동작을 다시 수행하여 상기 다수의 변경된 비트를 포함하는 상기 코드워드에 대해 또 다른 ECC 동작을 수행하는 단계를 포함하는, 방법. - 제5항에 있어서, 상기 방법은 이전의 ECC 동작을 실패하고 부가적인 ECC 동작 중 하나가 성공적일 때까지 또는 임계 수의 부가적인 ECC 동작이 수행될 때까지 상기 비트 플립 후보 리스트로부터의 변경된 비트를 포함하는 코드워드에 대해 부가적인 ECC 동작을 수행하는 단계를 포함하는, 방법.
- 방법에 있어서,
블록-별 연쇄(block-wise concatenated) 열 코드워드 및 행 코드워드를 생성하기 위해 제1 인코더 및 제2 인코더로 데이터를 인코딩하는 단계;
상기 데이터에 대해 제1 오류 코드 정정(ECC) 동작을 수행하는 단계;
상기 제1 ECC 동작이 상기 데이터에서의 오류를 정정하는데 실패하는 것에 응답하여 상기 데이터에 대해 제2 ECC 동작을 수행하는 단계; 및
상기 제2 ECC 동작이 상기 데이터에서의 오류를 정정하는데 실패하는 것에 응답하여 하나 이상의 부가적인 ECC 동작을 수행하는 단계를 포함하되,
상기 하나 이상의 부가적인 ECC 동작은, 상기 제1 및 제2 ECC 동작이 정정하는데 실패한 오류를 정정하기 위하여 상기 열 코드워드와 행 코드워드의 교차점에서의 비트로부터 비트 플립 후보 리스트를 생성하는 것을 포함하는, 방법. - 제9항에 있어서, 상기 제1 ECC 동작은,
다수의 컴포넌트 코드워드에 대한 컴포넌트 코드 디코딩 동작, 및
반복적 곱 코드 디코딩 동작
중 하나이고, 그리고 상기 제2 ECC 동작은,
반복적 곱 코드 디코딩 동작, 및
외부 BCH 디코딩 동작
중 하나인, 방법. - 제9항에 있어서, 상기 하나 이상의 부가적인 ECC 동작은 소프트 디코딩 동작인, 방법.
- 제9항에 있어서, 상기 하나 이상의 부가적인 ECC 동작을 수행하는 단계는 이전의 ECC 동작을 실패하고 상기 부가적인 ECC 동작 중 하나가 성공적일 때까지 또는 임계 수의 부가적인 ECC 동작이 수행될 때까지 상기 비트 플립 후보 리스트로부터의 변경된 비트를 포함하는 코드워드에 대해 ECC 동작을 수행하는 단계를 포함하는, 방법.
- 장치로서,
메모리 디바이스;
상기 메모리 디바이스에 결합된 제어기로서,
데이터에 대해 제1 오류 코드 정정(ECC) 동작을 수행하도록;
상기 제1 ECC 동작이 상기 데이터에서의 오류를 정정하는데 실패하는 것에 응답하여 상기 데이터에 대해 제2 ECC 동작을 수행하도록; 그리고
상기 제2 ECC 동작이 상기 데이터에서의 오류를 정정하는데 실패하는 것에 응답하여 하나 이상의 부가적인 ECC 동작을 수행하도록
구성된, 상기 제어기를 포함하되,
상기 하나 이상의 부가적인 ECC 동작은, 상기 제1 및 제2 ECC 동작이 정정하는데 실패한 열 코드워드와 행 코드워드의 교차점에서의 비트로부터 비트 플립 후보 리스트를 생성하는 것을 포함하는, 장치. - 제13항에 있어서, 상기 제1 ECC 동작은,
컴포넌트 코드 디코딩 동작, 및
반복적 곱 코드 디코딩 동작
중 하나이고, 그리고 상기 제2 ECC 동작은,
반복적 곱 코드 디코딩 동작, 및
외부 BCH 디코딩 동작
중 하나인, 장치. - 제13항에 있어서, 상기 하나 이상의 부가적인 ECC 동작은 소프트 디코딩 동작인, 장치.
- 제15항에 있어서, 상기 하나 이상의 부가적인 ECC 동작은 이전의 ECC 동작을 실패하고 상기 부가적인 ECC 동작 중 하나가 성공적일 때까지 또는 임계 수의 부가적인 ECC 동작이 수행될 때까지 상기 비트 플립 후보 리스트로부터의 변경된 비트를 포함하는 코드워드에 대해 수행되는, 장치.
- 제13항에 있어서, 상기 제어기는 블록-별 연쇄 열 코드워드 및 행 코드워드를 생성하기 위해 제1 인코더 및 제2 인코더로 상기 데이터를 인코딩하도록 구성되는, 장치.
- 장치로서,
메모리 디바이스;
상기 메모리 디바이스에 결합된 제어기로서,
다수의 이전의 ECC 동작 실패에 응답하여 데이터에 대해 오류 코드 정정(ECC) 동작을 수행하도록 구성된 제어기를 포함하되,
상기 ECC 동작은 상기 다수의 이전의 ECC 동작을 실패한 열 코드워드 및 행 코드워드의 교차점에 위치된 데이터의 비트에 대해 수행되고,
상기 ECC 동작은 상기 다수의 이전의 ECC 동작을 실패한 열 코드워드 및 행 코드워드의 교차점에서의 다수의 비트의 상태를 변경하는 것과 상기 데이터에서의 오류를 정정하기 위하여 상기 다수의 이전의 ECC 동작 중 하나를 다시 수행하는 것을 포함하는, 장치. - 삭제
- 제18항에 있어서, 상기 ECC 동작은 로그 우도비(LLR) 마스킹을 사용하여 비트 플립 후보 리스트를 생성하는 것을 포함하되, 상기 비트 플립 후보 리스트는 상기 다수의 이전의 ECC 동작을 실패한 상기 열 코드워드 및 행 코드워드의 교차점으로부터의 비트를 포함하는, 장치.
- 제20항에 있어서, 상기 ECC 동작은 상기 다수의 이전의 ECC 동작을 실패한 코드워드의 비트 플립 후보 리스트로부터의 다수의 비트를 변경하는 것 및 상기 다수의 변경된 비트를 포함하는 상기 코드워드에 대해 상기 다수의 이전의 ECC 동작 중 또 다른 것을 수행하는 것을 포함하는, 장치.
- 제21항에 있어서, 변경되는 상기 비트 플립 후보 리스트로부터의 비트의 수는 상기 ECC 동작을 수행할 때 변경할 미리 결정된 임계 수의 비트에 기초하는, 장치.
- 제20항에 있어서, 상기 제어기는 상기 다수의 이전의 ECC 동작을 실패한 코드워드에 대해 상기 이전의 ECC 동작 중 하나를 다시 수행하도록 구성되고, 상기 코드워드는 다시 수행된 상기 이전의 ECC 동작 중 하나가 성공적일 때까지 또는 임계 수의 이전의 ECC 동작이 수행될 때까지 변경되는 상기 비트 플립 후보 리스트로부터의 비트를 포함하는, 장치.
- 장치로서,
메모리 디바이스;
상기 메모리 디바이스에 결합된 제어기로서,
데이터에 대해 제1 오류 코드 정정(ECC) 동작을 수행하도록;
상기 제1 ECC 동작 실패에 응답하여 상기 데이터에 대해 내부 코드 디코드를 사용해서 제2 ECC 동작을 수행하도록;
상기 제2 ECC 동작 실패에 응답하여 내부 코드 디코드와 외부 코드 디코드를 이용해서 제3 ECC 동작을 수행하도록 - 상기 제3 ECC 동작은 내부 코드와 연관된 블록-별 연쇄 코드워드와 함께 외부 코드와 연관된 코드워드를 포함함 -; 그리고
상기 제3 ECC 동작 실패에 응답하여 제4 ECC 동작을 수행하도록
구성된, 상기 제어기를 포함하되,
상기 제4 ECC 동작은 상기 제1, 제2 및 제3 ECC 동작이 정정하는데 실패한 오류를 정정하기 위하여 열 코드워드와 행 코드워드의 교차점에서의 비트로부터 비트 플립 후보 리스트를 소프트 데이터를 이용하여 생성하는, 장치. - 방법으로서,
메모리 어레이로부터 판독된 데이터에 대해 제1 오류 코드 정정(ECC) 동작을 수행하는 단계; 및
상기 제1 ECC 동작 실패에 응답하여 상기 데이터에 대해 제2 ECC 동작을 수행하는 단계를 포함하되,
상기 제2 ECC 동작은, 열 코드워드와 행 코드워드의 하나 이상의 교차점에서 발생된 오류에 응답하여 비트 플립 후보 리스트를 생성하는 단계, 상기 비트 플립 후보 리스트로부터 다수의 비트의 상태를 변경하는 단계, 및 상기 데이터에서의 오류를 정정하기 위하여 다른 ECC 동작을 수행하는 단계를 포함하는, 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/461,672 US10331514B2 (en) | 2017-03-17 | 2017-03-17 | Tiered error correction code (ECC) operations in memory |
US15/461,672 | 2017-03-17 | ||
PCT/US2018/021639 WO2018169764A1 (en) | 2017-03-17 | 2018-03-09 | Tiered error correction code (ecc) operations in memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190112828A KR20190112828A (ko) | 2019-10-07 |
KR102179228B1 true KR102179228B1 (ko) | 2020-11-18 |
Family
ID=63519311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197027923A KR102179228B1 (ko) | 2017-03-17 | 2018-03-09 | 메모리에서의 티어드 오류 정정 코드(ecc) 동작 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10331514B2 (ko) |
KR (1) | KR102179228B1 (ko) |
CN (1) | CN110431532A (ko) |
TW (1) | TWI671748B (ko) |
WO (1) | WO2018169764A1 (ko) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331514B2 (en) * | 2017-03-17 | 2019-06-25 | Micron Technology, Inc. | Tiered error correction code (ECC) operations in memory |
US10831596B2 (en) | 2018-01-22 | 2020-11-10 | Micron Technology, Inc. | Enhanced error correcting code capability using variable logical to physical associations of a data block |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
JP7182373B2 (ja) * | 2018-04-24 | 2022-12-02 | ラピスセミコンダクタ株式会社 | 半導体集積回路、記憶装置及びエラー訂正方法 |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
WO2020000136A1 (en) | 2018-06-25 | 2020-01-02 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of i/o requests |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US10977122B2 (en) * | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US10853167B2 (en) * | 2019-01-28 | 2020-12-01 | Winbond Electronics Corp. | Memory apparatus having hierarchical error correction code layer |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US11379447B2 (en) | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11449386B2 (en) | 2020-03-20 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory |
US11657889B2 (en) * | 2020-03-23 | 2023-05-23 | Intel Corporation | Error correction for dynamic data in a memory that is row addressable and column addressable |
US11169881B2 (en) | 2020-03-30 | 2021-11-09 | Alibaba Group Holding Limited | System and method for facilitating reduction of complexity and data movement in erasure coding merging on journal and data storage drive |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11301173B2 (en) | 2020-04-20 | 2022-04-12 | Alibaba Group Holding Limited | Method and system for facilitating evaluation of data access frequency and allocation of storage device resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11409601B1 (en) * | 2021-01-26 | 2022-08-09 | Micron Technology, Inc. | Memory device protection |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
US11782778B2 (en) * | 2021-07-28 | 2023-10-10 | Alibaba Singapore Holding Private Limited | Data recovery bypassing protocol for cloud network storage system |
US11972822B2 (en) * | 2021-09-24 | 2024-04-30 | Sandisk Technologies Llc | Programmable ECC for MRAM mixed-read scheme |
US11687405B2 (en) * | 2021-12-01 | 2023-06-27 | Western Digital Technologies, Inc. | Centralized SRAM error location detection and recovery mechanism |
US20240176509A1 (en) * | 2022-11-29 | 2024-05-30 | Micron Technology, Inc. | Bit flipping decoder with optimized maximum iterations for varied bit flipping thresholds |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317460A1 (en) * | 2011-06-07 | 2012-12-13 | Chilappagari Shashi Kiran | Identification and mitigation of hard errors in memory systems |
US20150155888A1 (en) * | 2013-11-29 | 2015-06-04 | Korea Advanced Institute Of Science And Technology | Concatenated error correction device |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9116823B2 (en) | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
US20130022501A1 (en) * | 2007-09-14 | 2013-01-24 | University Of Medicine And Dentistry Of New Jersey | Salivary Bioassay for Early Detection of Bone Loss |
US8176399B2 (en) * | 2008-05-02 | 2012-05-08 | Lsi Corporation | Using short burst error detector in a queue-based system |
US8560918B1 (en) * | 2009-04-21 | 2013-10-15 | Marvell International Ltd. | Method and apparatus for dynamically selecting an error correction code to be applied to data in a communication system |
US20110021928A1 (en) * | 2009-07-23 | 2011-01-27 | The Boards Of Trustees Of The Leland Stanford Junior University | Methods and system of determining cardio-respiratory parameters |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
JP5039160B2 (ja) * | 2010-03-02 | 2012-10-03 | 株式会社東芝 | 不揮発性半導体記憶システム |
US8631300B2 (en) * | 2011-12-12 | 2014-01-14 | Lsi Corporation | Systems and methods for scalable data processing shut down |
US20130318418A1 (en) * | 2012-05-22 | 2013-11-28 | Politecncio di Milano | Adaptive error correction for phase change memory |
US8832532B2 (en) * | 2012-06-20 | 2014-09-09 | Lsi Corporation | Dynamically controlling the number of local iterations in an iterative decoder |
US8938656B2 (en) * | 2012-09-14 | 2015-01-20 | Sandisk Technologies Inc. | Data storage device with intermediate ECC stage |
US9116822B2 (en) * | 2012-12-07 | 2015-08-25 | Micron Technology, Inc. | Stopping criteria for layered iterative error correction |
US9419655B2 (en) | 2014-04-04 | 2016-08-16 | Seagate Technology Llc | Error correction code (ECC) selection using probability density functions of error correction capability in storage controllers with multiple error correction codes |
US9428034B2 (en) * | 2014-07-21 | 2016-08-30 | Ford Global Technologies, Llc | Integrated vehicle cabin with driver or passengers' prior conditions and activities |
KR20160046467A (ko) * | 2014-10-21 | 2016-04-29 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템, 데이터 저장 시스템 및 그것의 동작 방법 |
US9673840B2 (en) * | 2014-12-08 | 2017-06-06 | SK Hynix Inc. | Turbo product codes for NAND flash |
KR102262909B1 (ko) * | 2014-12-18 | 2021-06-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 동작 방법 |
US9703631B2 (en) | 2015-03-20 | 2017-07-11 | Burlywood, LLC | Storage emulation in a storage controller |
US20160378591A1 (en) | 2015-06-24 | 2016-12-29 | Intel Corporation | Adaptive error correction in memory devices |
KR102286193B1 (ko) * | 2015-06-30 | 2021-08-09 | 에스케이하이닉스 주식회사 | 플래시 메모리 시스템 및 그의 동작 방법 |
US9692455B2 (en) | 2015-09-11 | 2017-06-27 | Micron Technology, Inc. | Multi channel memory with flexible code-length ECC |
US10331514B2 (en) * | 2017-03-17 | 2019-06-25 | Micron Technology, Inc. | Tiered error correction code (ECC) operations in memory |
-
2017
- 2017-03-17 US US15/461,672 patent/US10331514B2/en active Active
-
2018
- 2018-03-09 KR KR1020197027923A patent/KR102179228B1/ko active IP Right Grant
- 2018-03-09 CN CN201880018962.6A patent/CN110431532A/zh not_active Withdrawn
- 2018-03-09 WO PCT/US2018/021639 patent/WO2018169764A1/en active Application Filing
- 2018-03-16 TW TW107108955A patent/TWI671748B/zh active
-
2019
- 2019-05-29 US US16/424,836 patent/US10860416B2/en active Active
-
2020
- 2020-12-04 US US17/112,359 patent/US11422885B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317460A1 (en) * | 2011-06-07 | 2012-12-13 | Chilappagari Shashi Kiran | Identification and mitigation of hard errors in memory systems |
US20150155888A1 (en) * | 2013-11-29 | 2015-06-04 | Korea Advanced Institute Of Science And Technology | Concatenated error correction device |
Also Published As
Publication number | Publication date |
---|---|
US20180267851A1 (en) | 2018-09-20 |
US20190278654A1 (en) | 2019-09-12 |
TW201841163A (zh) | 2018-11-16 |
US11422885B2 (en) | 2022-08-23 |
US20210089389A1 (en) | 2021-03-25 |
TWI671748B (zh) | 2019-09-11 |
CN110431532A (zh) | 2019-11-08 |
KR20190112828A (ko) | 2019-10-07 |
WO2018169764A1 (en) | 2018-09-20 |
US10331514B2 (en) | 2019-06-25 |
US10860416B2 (en) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102179228B1 (ko) | 메모리에서의 티어드 오류 정정 코드(ecc) 동작 | |
KR102102828B1 (ko) | 메모리에서 에러 정정 코드(ecc) 연산 | |
KR101645906B1 (ko) | 계층적 반복 에러 교정을 위한 종료 기준 | |
JP6181257B2 (ja) | 誤り訂正符号の編成を含む装置および方法 | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
US11431355B2 (en) | Error correction code (ECC) operations in memory for providing redundant error correction | |
US11243838B2 (en) | Methods and apparatuses for error correction | |
CN113064547B (zh) | 有局部顺序信息的校验矩阵的保护的数据存取方法及设备 | |
US20230100557A1 (en) | Host-based error correction | |
TWI682399B (zh) | 操作記憶體之方法及用於錯誤率降低之設備 | |
US10855316B2 (en) | Error correction code (ECC) operations in memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |